|
Развитие первых ОС
Важный период развития ОС относится к 1965-1975 годам. В это время в
технической базе вычислительных машин произошёл переход от отдельных
полупроводниковых элементов типа транзисторов к интегральным микросхемам,
что открыло путь к появлению следующего поколения компьютеров. В этот
период были реализованы практически все основные механизмы, присутствующие
современным ОС: мультипрограммирование, мультипроцессирование, поддержка
многотерминального многопользовательского режима, виртуальная память,
файловые системы, разграничение доступа и сетевая работа. В эти годы
начинается расцвет системного программирования. Революционным событием
данного этапа явилась промышленная реализация мультипрограммирования. В
условиях резко возросших возможностей компьютера по обработке и хранению
данных выполнение только одной программы в каждый момент времени оказалось
крайне неэффективным. Решением стало мультипрограммирование – способ
организации вычислительного процесса, при котором в памяти компьютера
находилось одновременно несколько программ, попеременно выполняющихся на
одном процессоре. Эти усовершенствования значительно улучшили эффективность
вычислительной системы. Мультипрограммирование было реализовано в двух
вариантах – в системах пакетной обработки и разделения времени.
Мультипрограммные системы пакетной обработки так же, как и их
однопрограммные предшественники, имели своей целью обеспечение максимальной
загрузки аппаратуры компьютера, однако решали эту задачу более эффективно.
В мультипрограммном пакетном режиме процессор не простаивал, пока одна
программа выполняла операцию ввода-вывода (как это происходило при
последовательном выполнении программ в системах ранней пакетной
обработки), а переключался на другую готовую к выполнению программу. В
результате достигалась сбалансированная загрузка всех устройств компьютера,
а следовательно, увеличивалось число задач, решаемых в единицу времени.
В мультипрограммных системах пакетной обработки пользователь по-
прежнему был лишен возможности интерактивного взаимодействия со своими
программами. Для того, чтобы хотя бы частично вернуть пользователям
ощущение непосредственного взаимодействия с компьютером, был разработан
другой вариант мультипрограммных систем – системы разделения времени. Этот
вариант рассчитан на многотерминальные системы, когда каждый пользователь
работает за своим терминалом. В числе первых операционных систем разделения
времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM),
CTSS и MULTICS (Массачусетский технологический институт совместно с Bell
Labs и компанией General Electric). Вариант мультипрограммирования,
применяемый в системах разделения времени, был нацелен на создание для
каждого отдельного пользователя иллюзии единоличного владения
вычислительной машиной за счёт периодического выделения каждой программе
своей доли процессорного времени. В системах разделения времени
эффективность использования оборудования ниже, чем в системах пакетной
обработки, что явилось платой за удобства работы пользователей.
Многотерминальный режим использовался не только в системах разделения
времени, но и в системах пакетной обработки. При этом не только оператор,
но и все пользователи получали возможность формировать свои задания и
управлять их выполнением со своего терминала. Такие ОС получили название
систем удалённого ввода заданий. Терминальные комплексы могли располагаться
на большом расстоянии от процессорных стоек, соединяясь с ними с помощью
различных глобальных связей – модемных соединений телефонных сетей или
выделенных каналов. Для поддержания удалённой работы терминалов в
операционных системах появились специальные программные модули, реализующие
различные (в то время, как правило, нестандартные) протоколы связи. Такие
вычислительные системы с удалёнными терминалами, сохраняя централизованный
характер обработки данных, в какой-то степени являлись прообразом
современных сетей, а соответствующее системное программное обеспечение –
прообразом сетевых операционных систем.
В компьютерах 60-х годов большую часть действий по организации
вычислительного процесса взяла на себя операционная система. Реализация
мультипрограммирования потребовала внесения очень важных изменений в
аппаратуру компьютера, непосредственно направленных на поддержку нового
способа организации вычислительного процесса. При разделении ресурсов
компьютера между программами необходимо обеспечить быстрое переключение
процессора с одной программы на другую, а также надёжно защитить коды и
данные одной программы от непреднамеренной или преднамеренной порчи другой
программы. В процессорах появился привилегированный и пользовательский
режим работы, специальные регистры для быстрого переключения с одной
программы на другую, средства защиты областей памяти, а также развитая
система прерываний.
В привилегированном режиме, предназначенном для работы программных
модулей операционной системы, процессор мог выполнять все команды, в том
числе и те из них, которые позволяли осуществлять распределение и защиту
ресурсов компьютера. Программам, работающим в пользовательском режиме,
некоторые команды процессора были недоступны. Таким образом, только ОС
могла управлять аппаратными средствами и исполнять роль арбитра для
пользовательских программ, которые выполнялись в непривилегированном,
пользовательском режиме.
Система прерываний позволяла синхронизировать работу различных
устройств компьютера, работающих параллельно и асинхронно, таких как каналы
ввода-вывода, диски, принтеры и т.п.
Ещё одной важной тенденцией этого периода является создание семейств
программно – совместимых машин и операционных систем для них. Примерами
семейств программно – совместимых машин, построенных на интегральных
микросхемах, являются серии машин IBM/360, IBM/370 и PDP-11.
Программная совместимость требовала и совместимости операционных
систем. Однако такая совместимость подразумевает возможность работы на
больших и малых вычислительных системах, с большим и малым количеством
разнообразной периферии, в коммерческой области и в области научных
исследований. Операционные системы, построенные с намерением удовлетворить
всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они
состояли из многих миллионов ассемблерных строк, написанных тысячами
программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток
исправлений. Операционные системы этого поколения были очень дорогими. Так,
например, разработка OS/360, объём кода для которой составил 8 Мбайт,
стоила компании IBM 80 миллионов долларов.
Однако, несмотря на необозримые размеры и множество проблем, OS/3600 и
другие ей подобные операционные системы этого поколения действительно
удовлетворяли большинству требований потребителей. За это десятилетие был
сделан огромный шаг вперёд и заложен прочный фундамент для создания
современных операционных систем.
|
|