Появление мультипрограммных операционных систем
Следующий важный период развития ОС - это 1965-1975 годы.
В технической базе ЭВМ был переход к интегральным микросхемам и, фактически, к новому поколению. Большие функциональные возможности интегральных схем сделали возможным реализацию на практике сложных компьютерных архитектур, как, например, IBM/360.
Тогда были реализованы практически все основные механизмы, присущие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многотерминального многопользовательского режима, виртуальная память, файловые системы, разграничение доступа и сетевая работа. Начинается расцвет системного программирования. Из области прикладной математики (для узкого круга специалистов) системное программирование превращается в отрасль индустрии, оказывающую непосредственное влияние на практическую деятельность миллионов людей.
Революционным событием стала промышленная реализация мультипрограммирования. Мультипрограммирование — способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре. Это значительно улучшило эффективность ЭВМ. Она теперь могла использоваться почти постоянно, а не менее половины рабочего времени, как это было раньше.
Мультипрограммирование было реализовано в двух вариантах - в системах пакетной обработки и разделения времени.
Мультипрограммные системы пакетной обработки так же, как и их однопрограммные предшественники, имели своей целью обеспечение максимальной загрузки аппаратуры компьютера, но решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода (как это происходило при последовательном выполнении программ в системах ранней пакетной обработки), а переключался на другую готовую к выполнению программу. Этим достигалась сбалансированная загрузка всех устройств компьютера, а, следовательно, увеличивалось число задач, решаемых в единицу времени.
Но и здесь пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими программами. Для того чтобы хотя бы частично вернуть пользователям ощущение непосредственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем — системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых ОС разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.
Многотерминальный режим использовался не только в системах разделения времени, но и в системах пакетной обработки. Теперь и оператор, и все пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие ОС получили название систем удаленного ввода заданий. Терминальные комплексы могли располагаться на большом расстоянии от процессорных стоек, соединяясь с ними с помощью различных глобальных связей - модемных соединений телефонных сетей или выделенных каналов.
К этому времени можно констатировать существенное изменение в распределении функций между аппаратными и программными средствами компьютера. ОС становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикаторов, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычислительного процесса взяла на себя ОС. (В большинстве современных компьютеров не предусмотрено даже теоретической возможности выполнения какой-либо вычислительной работы без участия ОС. После включения питания автоматически происходит поиск, загрузка и запуск ОС, а в случае ее отсутствия компьютер просто останавливается.)
Важной тенденцией этого периода является создание семейств программно-совместимых машин и ОС для них. Программная совместимость требовала и совместимости ОС. Однако такая совместимость подразумевает возможность работы на больших и малых вычислительных системах, с большим и с малым количеством разнообразной периферии, в коммерческой области и в области научных исследований. ОС, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они состояли из многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток исправлений. ОС этого поколения были очень дорогими. Так, разработка OS/360, объем кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.