Краткая история операционных систем.

 

1) Доисторический период

В 1832 г. английский математик и изобретатель Чарльз Бебидж сконструировал первую программную вычислительную машину, которую он назвал аналогичной машиной. Особенность этой машины заключалась в том, что для выполнения операций ей был нужен не человек а набор инструкций. Такие инструкции представляли собой определен узор дыр на карточках-перфокартах. Они стали примером первых вычислительных программ.

 

В 1942 году профессор электротехническй школы Мура Пенсильванского университета Джон Маучли представил проект "Использование быстродействующих электронных устройств для вычислений", который положил начало созданию первой электронной вычислительной машины ENIAC (Electronic Numerical Integrator and Computer). В 1943 году под руководством Маучли и Эккерта были начаты работы по созданию ENIAC, А демонстрация работы машины состоялась 15 февраля 1946 года.

 

2) Первый период (1945-1955)

- Все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления

- Программа загружалась в память машины в лучшем случае с колоды перфокарт

- Вычислительная система выполняла одновременно только одну операцию

- Отладка программ велась с пульта управления

 

Первое системное ПО

n В 1951-52 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.)

n В 1954 г. Нэт Рочестер разрабатывает ассемблер для IBM-701

n Первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования (последовательная обработка)

 

3) Второй период (1955-Начало 60-х)

· Компьютеры на основе транзисторов;

· Повышена надежность компьютеров

· Снижение потребления электроэнергии

· Упрощение систем охлаждения

· Уменьшение размеров компьютеров

· Удешевление эксплуатации и обслуживания

· Начало использования ЭВМ коммерческими компаниями

 

n Бурное развитие алгоритмических языков (ALGOL-58, LISP, COBOL, ALGOL-60, PL-1 и т.д.)

n Появление компиляторов, редакторов связей, библиотек математических и служебных подпрограмм

n Упрощение процесса программирования

n Разделение персонала на программистов и операторов, специалистов по эксплуатации и разработчиков вычислительных машин

n Изменился процесс прогона программ

n Пользователь приносит программу с входными данными в виде колоды перфокарт (задание)и указывает требуемые для нее ресурсы

n Оператор загружает задание в память машины и запускает его на исполнение

n Полученные выходные данные печатаются на принтере, и пользователь получает их обратно

n Для повышения эффективности использования компьютера задания с похожими требуемыми ресурсами собираются вместе, образуя пакет заданий

 

ü Первые системы пакетной обработки

ü Автоматизируют запуск одной программы из пакета за другой

ü Увеличивают коэффициент загрузки процессора

ü Формализованный язык управления заданиями

ü Программист сообщает системе и оператору, какую работу он хочет выполнить на вычислительной машине

ü Прообраз современных операционных систем

ü Системные программы, предназначенные для управления вычислительным процессом

 

4) Третий период (Начало 60-х - 1980)

ü Буферизация ввода/вывода

ü Вначале реальные операции ввода-вывода осуществлялись в режиме off-line

ü Затем - на том же компьютере, который производит вычисления

ü Spooling (Simultaneous Peripheral Operation On Line) или подкачка-откачка данных

ü Позволяет совместить реальные операции ввода-вывода одного задания с выполнением другого задания

ü Требует наличия аппарата прерываний

ü От магнитных лент к магнитным дискам

ü При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода

ü При обработке пакета заданий на магнитном диске появляется возможность выбора очередного выполняемого задания

ü Пакетные системы начинают заниматься планированием заданий

ü На счет то или иное задание выбирается в зависимости от наличия запрошенных ресурсов, срочности вычислений и т.д.

 

n Мультипрограммирование - дальнейшее повышение эффективности использования процессора

n Пока одна программа выполняет операцию ввода-вывода, процессор выполняет другую программу

n Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы

n Требуется наличие в памяти нескольких программ одновременно

n Каждая программа загружается в свой раздел оперативной памяти и не должна влиять на выполнение другой программы

 

n Революция в строении вычислительной системы

n Аппаратная поддержка ОС

n Реализация защитных механизмов

n Программы пользователей не должны иметь самостоятельного доступа к распределению ресурсов

n Привилегированные и непривилегированные команды

n Переход управления от прикладной программы к ОС сопровождается контролируемой сменой режима

n Защита памяти для изолирования конкурирующих пользовательских программ друг от друга, а ОС от программ пользователей

 

n Наличие прерываний

n Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например, завершилась операция ввода-вывода

n Внутренние прерывания (исключительные ситуации) возникают, когда выполнение программы приводит к ситуации, требующей вмешательства ОС

n Деление на ноль или попытка нарушения защиты

 

Наиболее существенные изменения в ОС

- Интерфейс между прикладной программой и ОС организуется в виде набора системных вызовов

- Организация очереди из заданий в памяти и выделение процессора одному из заданий требуют планирования заданий

- Для переключения процессора с одного задания на другое возникает потребность в сохранении содержимого регистров и структур данных, необходимых для продолжения выполнения задания, иначе говоря, контекста

- Поскольку память является ограниченным ресурсом, требуются стратегии управления памятью, упорядочивающие процессы размещения, замещения и выборки информации из памяти

- Для обеспечения санкционированного обмена данными между программами, нужны средства коммуникации

- Для корректного обмена данными необходимо предусмотреть координацию программами своих действий, т.е. средства синхронизации

n Логическим развитием идей мультипрограммирования стали системы разделения времени

n Процессор переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного интервала времени

n Эти переключения происходят столь часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно

n Возможность одновременной работы многих пользователей на одной компьютерной системе

 

Внешняя эволюция вычислительных систем

n Идея создания семейств программно-совместимых машин, работающих под управлением одной и той же операционной системы

n Первым таким семейством машин, построенных на интегральных микросхемах, явилась серия машин IBM/360

n Превосходило машины второго поколения по критерию цена/производительность

n За ней последовала линия компьютеров PDP, несовместимых с линией IBM, кульминацией которой стала PDP-11

 

5) Четвертый период (1980-настоящее время)

ü Персональные компьютеры; классические, сетевые и распределенные системы

ü Появление больших интегральных схем (БИС)

ü Возрастание степени интеграции и удешевление микросхем

ü Эра персональных компьютеров

ü Однопользовательский режим

ü Деградация архитектуры PC и их операционных систем

ü Потребность в "дружественном" ПО

ü Конец кастовости программистов

ü Со временем рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем

 

n В середине 80-х стали бурно развиваться сети компьютеров, в том числе PC

n Появились сетевые и распределенных операционных систем

n В сетевой ОС пользователи знают о наличии другого сетевого компьютера и могут воспользоваться его ресурсами

n В локальной ОС имеются программная поддержка сетевых интерфейсных устройств доступа к удаленным ресурсам

n Эти дополнения существенно не меняют структуру операционной системы

 

n Распределенная система внешне выглядит как обычная автономная система

n Пользователь не знает и не должен знать, где хранятся его файлы и где выполняются его программы

n Может не знать, подключен ли компьютер к сети

n Внутреннее строение распределенной операционной системы существенно отличается от автономных систем

n Автономные ОС будем называть классическими