Изобретение операционной системы

 

В те времена, когда компьютеры только появились, принципы работы с ними сильно отличались от современных. Одним компьютером пользовалось большое количество людей. Рядом с машиной лежал листок бумаги, и если программист хотел запустить свою программу, он записывался на какое-то определенное вре­мя, скажем, на среду с трех часов ночи до пяти утра (многие программисты лю­били работать в тишине). В назначенное время программист направлялся в ком­нату, где стояла машина, с пачкой перфокарт (которые тогда служили средством ввода) в одной руке и хорошо заточенным карандашом в другой. Каждая перфо­карта содержала 80 колонок; на ней в определенных местах пробивались отвер­стия. Войдя в комнату, программист вежливо просил предыдущего программи­ста освободить место и приступал к работе.

Если он хотел запустить программу на языке FORTRAN, ему необходимо бы­ло пройти следующие этапы:

1. Он подходил к шкафу, где находилась библиотека программ, брал большую зеленую стопку перфокарт с надписью «Компилятор FORTRAN», помещал их в считывающее устройство и нажимал кнопку «Пуск».

2. Он помещал стопку карточек со своей программой, написанной на языке FORTRAN, в считывающее устройство и нажимал кнопку «Продолжить». Программа считывалась.

3. Когда компьютер прекращал работу, программист считывал свою программу во второй раз. Некоторые компиляторы требовали только одного считывания перфокарт, но в большинстве случаев необходимо было выполнять эту проце­дуру несколько раз. Каждый раз требовалось считать большую стопку перфо­карт.

4. В конце концов трансляция завершалась. Программист часто становился очень нервным, потому что если компилятор находил ошибку в программе, ему приходилось исправлять ее и начинать процесс ввода программы заново. Если ошибок не было, компилятор выдавал в виде перфокарт программу на машинном языке.

5. Тогда программист помещал эту программу на машинном языке в устройство считывания вместе с пачкой перфокарт из библиотеки подпрограмм и загру­жал обе эти программы.

6. Начиналось выполнение программы. В большинстве случаев она не работала, неожиданно останавливаясь в середине. Обычно в этом случае программист начинал дергать переключатели на пульте и смотрел на лампочки. В случае удачи он находил и исправлял ошибку, подходил к шкафу, в котором лежала большая зеленая стопка перфокарт с надписью «Компилятор FORTRAN», и начинал все заново. В случае неудачи он делал распечатку содержания па­мяти, что называлось разгрузкой оперативного запоминающего устройства, и брал эту распечатку домой для изучения.

Эта процедура была обычной на протяжении многих лет. Программистам приходилось учиться, как работать с машиной и что нужно делать, если она выходила из строя, а происходило это довольно часто. Машина постоянно про­стаивала без работы, пока люди носили перфокарты по комнате или ломали го­ловы над тем, почему программа не работает.

В 60-е годы человек попытался ускорить дело, автоматизировав работу опе­ратора. Программа под названием операционная система загружалась в компь­ютер на все время его работы. Программист приносил пачку перфокарт со спе­циализированной программой, которая выполнялась операционной системой. На рис. 1.3 показана модель пачки перфокарт для первой широко распростра­ненной операционной системы FMS (FORTRAN Monitor System) к компьютеру 709 компании IBM.

clip_image002

*END

Рис. 1.3. Схема работы с операционной системой FMS

Операционная система считывала перфокарту *JOB и использовала содержа­щуюся на ней информацию для учета системных ресурсов (звездочка ставилась, чтобы отличать перфокарты с управляющей программой от перфокарт с данны­ми). Затем операционная система считывала перфокарту *FORTRAN, которая представляла собой команду для загрузки компилятора FORTRAN с магнитной ленты. После этого компилятор считывал и компилировал программу, написан­ную на языке FORTRAN. Как только компилятор заканчивал работу, операци­онная система считывала перфокарту *ДАННЫЕ — команду по выполнению транслированной программы с использованием перфокарт данных.

Операционная система была придумана для того, чтобы автоматизировать ра­боту оператора (отсюда и название), но это — не единственное ее преимущество. Создание операционной системы было первым шагом в развитии новой вирту­альной машины. Перфокарту * FORTRAN можно рассматривать как виртуаль­ную команду к компилятору, а перфокарту *ДАННЫЕ — как виртуальную ко­манду для выполнения программы. И хотя этот уровень состоял всего из двух команд, он стал первым шагом в развитии виртуальных машин.

В последующие годы операционные системы все больше и больше усложня­лись. К уровню архитектуры набора команд добавлялись новые команды, при­способления и особенности, и в конечном итоге сформировался новый уровень. Некоторые команды нового уровня были идентичны командам предыдущего, но некоторые (в частности, команды ввода-вывода) полностью отличались. Эти но­вые команды тогда назывались макросами операционной системы, или вызова­ми супервизора. Сейчас обычно используется термин системный вызов.

Первые операционные системы считывали пачки перфокарт и распечатывали результат на принтере. Такая организация вычислений называлась пакетным режимом. Чтобы получить результат, обычно нужно было ждать несколько ча­сов. При таких условиях было трудно развивать программное обеспечение.

В начале 60-х годов исследователи Массачусетского технологического инсти­тута (МТИ) разработали операционную систему, которая давала возможность работать с компьютером сразу нескольким программистам. В этой системе к центральному компьютеру через телефонные линии подсоединялись отдаленные терминалы. Таким образом, центральный процессор разделялся между большим количеством пользователей. Программист мог напечатать свою программу и по­лучить результаты почти сразу прямо в офисе, гараже или где бы то ни было еще (там, где находился терминал). Эти системы назывались (и сейчас называются) системами разделения времени.

Хотя нас интересуют только те компоненты операционной системы, которые интерпретируют команды третьего уровня, необходимо понимать, что это — не единственная функция операционных систем.

Таненбаум Э. Архитектура компьютера. 5-е изд. (+CD). — СПб.: Питер, 2007. — 844 с: ил.

Предлагаю ознакомиться с аналогичными статьями: