Появление первых операционных систем
Выше отмечено, что идея компьютера была предложена Ч. Бэббиджем в середине XIX века. Его механическая «аналитическая машина» так и не смогла по-настоящему заработать, потому что те технологии не удовлетворяли требованиям, необходимым для изготовления нужных деталей точной механики. Конечно, никакой речи об операционной системе для этого «компьютера» не шло. Рождение цифровых электронных вычислительных машин произошло вскоре после Второй мировой войны. Были созданы первые ламповые вычислительные устройства. Причем одни и те же люди проектировали, эксплуатировали и программировали ЭВМ. Это была скорее научно-исследовательская работа в вычислительной технике, а не использование компьютеров в качестве инструмента решения каких-либо практических прикладных задач. Программирование осуществлялось исключительно на машинном языке. Системного программного обеспечения не было, кроме библиотек математических и служебных подпрограмм. Их программист использовал, чтобы не писать каждый раз коды, вычисляющие значение какой-либо математической функции или управляющие стандартным устройством ввода-вывода. Все задачи организации вычислительного процесса решались вручную (вместо ОС) каждым программистом с пульта управления - примитивного устройства ввода-вывода из кнопок, переключателей и индикаторов. С середины 50-х годов на основе полупроводников началось 2-е поколение компьютеров. Выросло быстродействие процессоров, увеличились объемы оперативной и внешней памяти. ЭВМ стали более надежными, могли непрерывно работать столько, чтобы на них можно было возложить выполнение действительно практически важных задач. Наряду с аппаратным, наблюдался заметный прогресс и в области автоматизации программирования и организации вычислительных работ. Появились алгоритмические языки, и таким образом к библиотекам математических и служебных подпрограмм добавился новый тип системного программного обеспечения - трансляторы. В программы стали включать большое количество вспомогательных работ: загрузка нужного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ и т.п.), его запуск и получение результирующей программы в машинных кодах, связывание программы с библиотечными подпрограммами, загрузка программы в оперативную память, запуск программы, вывод результатов на периферийное устройство. Для эффективного использования таких возможностей в штат многих вычислительных центров ввели должности операторов, выполнявших работу по организации вычислительного процесса для всех пользователей этого центра. Но работа операторов не могла состязаться в производительности с работой устройств компьютера. Большую часть времени процессор простаивал в ожидании, пока оператор запустит очередную задачу. А поскольку процессор был весьма дорогим, то низкая эффективность его использования означала низкую эффективность использования компьютера в целом. Поэтому были разработаны первые системы пакетной обработки, которые автоматизировали всю последовательность действий оператора по организации вычислительного процесса. Системы пакетной обработки явились прообразом современных ОС, они стали первыми системными программами, предназначенными не для обработки конкретных данных, а для управления вычислительным процессом. В ходе их реализации создали формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какие действия и в какой последовательности он хочет выполнить на вычислительной машине. Типовой набор директив обычно включал признак начала отдельной работы, вызов транслятора, вызов загрузчика, признаки начала и конца исходных данных. Оператор составлял пакет заданий, которые затем без его участия последовательно запускались на выполнение управляющей программой-монитором. Кроме того, программа-монитор могла самостоятельно обрабатывать наиболее часто встречающиеся при работе пользовательских программ аварийные ситуации (отсутствие исходных данных, переполнение регистров, деление на ноль, обращение к несуществующей области памяти и т.д.). Обычно пакет был набором перфокарт, но для ускорения работы мог переноситься на более удобный и емкий носитель, например, на магнитную ленту или магнитный диск. Ранние системы пакетной обработки значительно сократили затраты времени на вспомогательные действия по организации вычислительного процесса и значительно повысили эффективность использования ЭВМ. Но программисты-пользователи лишились непосредственного доступа к управлению компьютером, что снижало эффективность их работы — внесение любого исправления требовало значительно больше времени, чем при интерактивной работе за пультом машины.
|