Cтраница 3
Разработка операционной системы является трудоемкой и дорогостоящей. Так, если над созданием операционной системы для машин второго поколения работало около 200 человек, то над созданием операционной системы для машин третьего поколения работало примерно 1000 человек и еще столько же работало над созданием компиляторов. Стоимость разработки программного обеспечения фирмы ИБМ достигла 1 млрд. долларов. При этом на проектирование ( вплоть до составления укрупненных блок-схем) относится 20 % затрат, а на программирование, отладку, комплексную увязку и документирование - 80 % затрат. Подсчитано, что за 20 лет после появления первой ЭВМ стоимость разработки всех программ достигает 36 млрд. долларов. Общественную ценность представляют из них только те программы, общая стоимость которых составляет 2 - 3 млрд. долларов. Ожидается, что объем программного обеспечения за ближайшие 15 лет увеличится в 10 раз. [31]
Заметим, что второй ассемблер отличается от первого не только тем, что он опирается на уже созданную операционную систему, но и тем, что в нем не используются привилегированные команды, допустимые только для диспетчера, и получаемые им программы не могут содержать таких команд. То есть по отношению к операционной системе второй ассемблер является обычной рабочей программой, тогда как первый ассемблер не был ничем ограничен и был пригоден для создания операционной системы. [32]
Второе поколение ЭВМ характеризуется появлением трансляторов с различных языков программирования, простейших программ управления прохождением задач, распределения памяти, автоматического управления работой устройств машины. Эти программы обеспечивали тот или иной уровень автоматизации функций, которые в машинах I поколения выполнялись программистом и оператором ЭВМ-Автоматизация функций оператора, стремление к более эффективному использованию средств вычислительной техники, к предоставлению более широких возможностей для программиста, чем это заложено в аппаратуре ЭВМ, и явились стимулами для создания операционных систем - неотъемлемой части современных ЭВМ. [33]
Эти устройства обеспечивают операции чтения-записи массивов информации длиной до 256 двухбайтных слов по прямому доступу к памяти, причем возможно одновременное выполнение операций, запущенных на разных сторонах. Программные средства таких многомашинных комплексов должны включать процедуры, реализующие посылку пакетов информации и получение подтверждений, и средства синхронизации задач пользователя, выполняемых на разных ЭВМ. Для многомашинных комплексов возможно также создание единой операционной системы, повышающей живучесть всей системы в целом. [34]
Реально распределение сводится к записи в таблицу ТЮТ для данной задачи указателей на определенные блоки UCB. Для каждого устройства в системе существует свой управляющий блок UCB. В эти блоки информация записывается при создании операционной системы, а также при изменении состава поддерживаемых устройств. Эта информация содержится в резидентной части ядра и защищена от возможных непредусмотренных воздействий. [35]
Чтобы получить автоматически желаемую индивидуальную операционную систему или выполнить генерирование операционной системы, пользователь запрашивает некоторый комплект трансляторов и обслуживающих программ и указывает параметры имеющегося комплекта аппаратных средств, а также желаемые возможности управляющей программы. Это задание выполняется, например, на языке микрокоманд. Задание анализируется ВС, которая формирует запрос на создание требуемой операционной системы из библиотеки программных модулей. [36]
Этот вывод вряд ли заслуживал бы специального упоминания, если бы сплошь и рядом не наблюдалось явление, которое большинство административных работников продолжают считать парадоксальным. Действительно, весьма типичной является ситуация, когда операционист, невзирая на имеющийся у него большой опыт построения моделей и несмотря на его умение анализировать сложные задачи организационного управления, как правило, оказывается плохо подготовленным к выполнению требований системного подхода, а нередко просто проявляет к этим требованиям полное безразличие. Поэтому те фирмы, у которых имеется опыт создания операционных систем, вводят в состав группы разработчиков операционного проекта специалистов в области именно системного анализа с тем, чтобы обеспечить построение процедур, гарантирующих поддержание используемой модели в рабочем состоянии. [37]
Все это вместе с рядом других причин обусловило значительное расширение задач системного программирования, основной задачей к-рого является создание операционных систем, управляющих работой машины ( расширяющих возможности машины программным путем и предоставляющих пользователю дополнительное обслуживание, не предусмотренное аппаратурой): возможность ввода и вывода одновременно с решением задач, автоматизация - редактирования выдачи, вывод графиков, работа с экраном, диалог с машиной, возможность одновременного решения на машине многих задач. [38]
Операционная система построена по модульному принципу. Программные компоненты системы не связаны между собой жестко. Поэтому, исходя из требований пользователя, можно создать такой вариант системы, который бы максимально соответствовал классу решаемых задач, набору внешних устройств, объему памяти, степени использования языков программирования. Например, если ПЛ / 1 используется в качестве единственного языка программирования, то при создании системы все остальные языки могут быть исключены, а освобождаемая память будет находиться в распоряжении программиста. Процесс создания операционной системы носит название генерации. [39]
В результате этой первичной обработки вызывается супервизор прерываний, входящий в супервизор ввода-вывода. Супервизор прерываний выясняет причину прерывания, выполняет все необходимые POST-операции, выбирает следующий запрос из очереди на ввод-вывод и передает его каналу для обработки. Чтобы определить причину прерывания и выполнить требуемые действия, часто приходится проводить анализ ошибочных состояний. С этой целью обычно вызываются программы обработки ошибок, поставляемые вместе с устройствами, затем предпринимается попытка повторно запустить ввод-вывод и, если предыдущие шаги свидетельствуют о невозможности нормального продолжения работы, прикладной программе или методу доступа передается соответствующее информационное сообщение. На самом деле значительная часть поддержки связана с обработкой различного рода ошибок. Иногда при создании операционной системы обработке ошибок уделяется настолько большое внимание, что система оказывается малоэффективной при безошибочном функционировании и фактически пригодной только в условиях частых сбоев. [40]
Освоение любой из операционных систем представляет для пользователя трудную задачу. Часто эта проблема по своей сложности намного превосходит задачу освоения какого-либо из языков программирования. Достаточно сказать, что полное описание такой операционной системы, как ОС ЕС, включает более ста книг. Поэтому среди программистов уже давно произошло естественное разделение на программистов-пользователей ( или прикладных программистов) и системных программистов. Первые ограничиваются минимальными сведениями о функционировании ОС, уделяя основное внимание средствам общения с операционной системой и тем возможностям, KOTqpbie она может предоставить. Вторые изучают onqpannoHHyio систему досконально, чтобы уметь ее генерировать, пополнять новыми программными средствами, консультировать прикладных программистов по вопросам системного обеспечения. Но даже с учетом такого разделения работа с любой из операционных систем больших и малых ЭВМ ( именно этим ОС уделяется основное внимание в данном пособии) требует от пользователя определенных профессиональных навыков. Это обстоятельство ( необходимость профессиональных знаний в области системного программного обеспечения) является серьезным препятствием на пути массового использования ЭВМ в инженерной практике. Поэтому уже давно назрела проблема создания операционных систем, не требующих для их эксплуатации большого умения. [41]