Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Системное программное обеспечение. Учебник
.pdf
21
Глава 1. Принципы организации системного программного обеспечения
дании такого проекта системы математического обеспечения
(МО), который заранее предусматривал бы функции, состав
и организацию этой системы. Появление таких проектов и работы по их реализации можно считать зарождением системного
программирования.
Создаваемые по таким проектам комплексы программ ста-
ли называться операционными системами (ОС).
Первые попытки создать систему, функционально объеди-
няющую различные части математического обеспечения, были
предприняты в начале 1960-х годов. Одной из первых была система для машин АТЛАС (первое поколение).
Основная особенность этой системы заключается в том, что
все программы – компиляторы, прикладные программы, программы обработки прерываний – являются программами супер-
визора (управляющей программы). Работу каждой из программ
инициирует супервизор, передавая ей управление, и каждая
программа, закончив работу, возвращает управление супервизору. В системе реализованы пакетная обработка заданий с планированием набора поступающих в систему задач, мультипрограммирование, система управления вводом-выводом с логической
адресацией внешних устройств, динамическое распределение
памяти.
Развитие программного обеспечения, отражая общее раз-
витие вычислительной техники, следовало идее постепенного
приближения пользователя к машине. В машинах третьего поколения ОС была весьма примитивной. Машина обслуживалась оператором, а пользователи, так же как и программисты,
были достаточно отдалены от машины. Задачи решались в пакетном режиме. Многопользовательский режим был реализован за счет разделения памяти на разделы по степени важности
выполняемых задач. Между разделами (и соответственно задачами) была закреплена система приоритетов. Это выражалось
в том, что наиболее важные задачи (и имеющие соответственно высший приоритет) выполнялись в первую очередь. Когда
по какой-либо причине возникало прерывание в выполнении
высокоприоритетной задачи, выполнялась задача с более низким приоритетом. Самый низкий приоритет имели задачи,
идущие в так называемом фоновом режиме. Поскольку пользо-

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

23
Глава 1. Принципы организации системного программного обеспечения
Режим разделения времени – это один из методов одновре-
менной работы пользователей на одной ЭВМ. Работа в режиме
разделения времени создает у каждого пользователя иллюзию
монопольной работы на машине. Суть этого режима состоит
в том, что каждая единица времени делится на некоторое число временных квантов. Любой программе ставится в соответствие один квант. Чем больше программ работает одновременно, тем меньше величина кванта для каждой из них, поэтому
должно быть оптимальное количество таких программ, иначе
больше времени требуется на переключение.
В целом в литературе выделяют следующие поколения
в развитии операционных систем [1, 2, 5].
Нулевое поколение (1940-е годы двадцатого века). В пер-
вых вычислительных машинах операционных систем не было.
Пользователи имели доступ к машинному языку, и все программы писали непосредственно в машинных командах.
Первое поколение (1950-е годы). До создания этих опера-
ционных систем много машинного времени тратилось в промежутках между завершением выполнения одной задачи и вводом
в решение другой. Это было начало систем пакетной обработки, которые предусматривали объединение отдельных задач
в группы, или пакеты. Запущенная задача получала в свое распоряжение все ресурсы машины. После завершения каждой задачи (нормального либо аварийного) управление ресурсами возвращалось к операционной системе, которая готовила машину
к вводу и запускала в решение следующую задачу.
Второе поколение (начало 1960-х годов). Эти операцион-
ные системы создавались как системы коллективного пользования с мультипрограммным режимом работы и как первые системы мультипроцессорного типа. В таких системах
(мультипрограммных) несколько пользовательских программ одновременно находятся в основной памяти компьютера, а центральный процессор быстро переключается с задачи на задачу. Были разработаны системы с разделением
времени, с которыми пользователи работали в диалоговом
или интерактивном режиме. Взаимодействие пользователя
с компьютером осуществлялось с помощью пультов – терминалов. Пользователь системы с разделением времени получил

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
24
возможность обнаруживать и исправлять ошибки буквально
за считанные секунды или минуты вместо того, чтобы ждать
зачастую несколько часов или даже дней, пока будут получены результаты пакетной обработки. Появились первые системы реального времени, в которых компьютеры применялись
для управления технологическими процессами производства.
Для систем реального времени характерно то, что они обеспечивают немедленную реакцию на предусмотренные события.
Это их главное назначение, и поэтому они находятся в состоянии постоянной готовности, но работают со значительной недогрузкой и по этой причине дорогие.
Третье поколение (середина 1960-х – середина 1970-х го-
дов). Это поколение появилось с представлением фирмой IBM
в 1964 году семейства компьютеров System/360, которые были
разработаны как машины общего назначения (для любых задач в любой области). Это было неудобно, так как некоторым
пользователям, решающим конкретные прикладные задачи,
приходилось оплачивать увеличенное машинное время, не требующиеся функциональные возможности, техническое обслуживание и т.д.
Операционные системы здесь были многорежимными. Не-
которые из них обеспечивали работу сразу во всех известных
режимах: пакетную обработку, разделение времени, режим
реального времени и мультипроцессорный режим. Они были
громоздкими и дорогими. Исключением является операционная система UNIX, разработанная фирмой Bell Laboratories
и претерпевшая множество версий.
На этой стадии операционные системы стали как бы про-
слойкой (программной) между пользователями и аппаратурой
ЭВМ. Часто эта прослойка была такой «толстой», что пользователь терял из виду аппаратуру и видел только ее отображение,
которое создавало для него программное обеспечение. Для выполнения простейшей задачи пользователю необходимо было
изучить сложные языки управления заданиями, чтобы уметь
описывать задания и требуемые для них ресурсы.
Четвертое поколение (с середины 1970-х до середины
1980-х годов). Благодаря широкому распространению вычис-
лительных сетей и средств оперативной обработки данных

25
Глава 1. Принципы организации системного программного обеспечения
(в режиме онлайн) пользователи получают возможность доступа к территориально распределенным компьютерам при помощи терминалов различных типов. Появление микропроцессора создало условия для разработки персонального компьютера
(ПК) – наиболее важного достижения предыдущих десятилетий. Персональные компьютеры оснащаются интерфейсными
средствами приема-передачи данных и могут использоваться
в качестве терминалов мощных вычислительных систем.
Если в 1960-х и начале 1970-х годов пользователю прихо-
дилось работать на языках программирования, включающих
множество символических, мнемонических обозначений и сокращений, то в конце 1970-х годов уже появились системы с
управлением при помощи меню. Начала широко распространяться концепция виртуальных машин. Пользователь получил
возможность не задумываться о физических деталях построения машин или сетей, с которыми он работает. Вместо этого он
имел дело с функциональным эквивалентом компьютера, создаваемым операционной системой и называемым виртуальной
машиной.
Важную роль стали играть системы базы данных. Широкое
распространение получила концепция распределенной обработки данных, то есть «целесообразнее иметь вычислительные
мощности там, где они необходимы, вместо того чтобы передавать данные для обработки в какие-либо вычислительные центры» [4].
Считается, что первую операционную систему создала в на-
чале 1950-х годов для своих компьютеров IBM-701 исследовательская лаборатория фирмы General Motors. Пока не было
этих операционных систем, задачи загружались в машину индивидуально, в основном с перфокарт. Во время выполнения занимались все ресурсы машины, пока задача не заканчивалась
или не снималась с решения из-за ошибки. В подготовительное
и заключительное время машина простаивала. Поэтому разработки первых операционных систем стремились свести к минимуму простои.
Уже в первых операционных системах появилась концеп-
ция имен системных файлов как средства достижения определенной независимости программ от аппаратуры. Это дало

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
26
пользователю возможность не задавать непосредственно в программе конкретные номера физических устройств, а указывать стандартный системный файл ввода как устройство, с которого как бы считываются управляющие перфокарты. То же
самое со стандартным системным файлом вывода как устройством для распечатки результатов. Стандартные имена файлов
позволили более эффективно взаимодействовать ассемблерам
и компиляторам с редакторами связей и загрузчиками, работающими с их входными модулями.
Тогда операционные системы использовались главным об-
разом на крупных ЭВМ. Многие малые ЭВМ, например компьютеры серии IBM-1400, работали без операционных систем.
Пользователи сами производили загрузку собственной системы управления вводом-выводом (IOCS).
В разработках начала 1960-х годов операционные системы
обладали уже более широкими возможностями. Их поставляли
фирмы – изготовители компьютеров вместе с аппаратурой. Наибольшую роль играли фирмы Bendix, Control Data Corporation,
IBM, General Electric и др. Операционные системы были ориентированы на пакетную обработку, нацелены на увеличение
пропускной способности дорогостоящей аппаратуры. Предусматривался мультипрограммный режим. Главный фактор,
способствовавший внедрению мультипрограммирования, когда
центральный процессор быстро переключался с одной задачи
на другую, был связан с существенным различием в скоростных характеристиках (быстродействий) устройств ввода-вывода
и центрального процессора.
Затем появились мультипроцессорные системы и комплек-
сы, в которых одновременно работают несколько процессоров –
иногда как независимые машины, обменивающиеся данными
друг с другом, а иногда как ряд взаимодействующих процессоров с общей памятью. Подобные системы существенно производительнее. Одним из наиболее значительных достижений этого
периода было внедрение системы бронирования и предварительной продажи билетов на самолеты американских авиалиний.
Компьютеры должны были быстро реагировать на запросы,
которые поступали с сотен и даже тысяч терминалов, расположенных в разных местах. Поэтому начали уделять внимание ор-

27
Глава 1. Принципы организации системного программного обеспечения
ганизации подсистем внешней памяти с прямым доступом, обеспечивающих быстрый доступ данным.
В 1963 году фирма Burroughs для своих компьютеров В-5000
разработала операционную систему MCP (главная управляющая программа), в которой были реализованы многие концепции и режимы, ставшие стандартными для последующих операционных систем, а именно:
• мультипрограммирование;
• мультипроцессорная обработка;
• виртуальная память;
• написание операционной системы на языке высокого
уровня;
• возможность отладки программ на исходном языке.
Большое значение имело создание семейства совместимых
компьютеров. В апреле 1964 года фирма IBM анонсировала
свое семейство под этим названием, что в литературе [1, 2, 5]
расценивается как самое важное событие в истории операционных систем. Разработки фирмы IBM сделали компьютеры
System/360 совместимыми по архитектуре. В этих компьютерах была предусмотрена возможность применения одной
и той же операционной системы OS/360, а также увеличение
вычислительной мощности при переходе от ранних к более
поздним моделям семейства. Эта концепция семейства совместимых компьютеров стала затем практически стандартной
для всех фирм. Если пользователь выбирал серию 360, он получал возможность в течение многих лет работать с компьютерами этой серии. Причем для пользователей, работающих с
другими машинами того периода, фирма IBM предложила самый широкий выбор имитаторов и эмуляторов за всю историю
вычислительной техники.
Один из стратегических принципов – разработка опера-
ционных систем, аналогичных System/360. Такая стратегия
была у фирмы RCA (США). Аппаратуру они еще как-то смогли
копировать и продавать ее дешевле, но операционную систему
OS/360 скопировать не удалось. Операционная система, созданная фирмой RCA, в каком-то отношении даже превосходила OS/360, но надежность ее была низкой, не было хорошего
сопровождения операционной системы у заказчиков.

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
28
Второй стратегический принцип приняли фирмы Burroughs
и General Electric. Они разработали машины, не совместимые
с компьютерами серии 360, но более мощные и более экономичные. Эта стратегия выглядела также весьма дальновидной,
но разработка новых машин оказалась слишком сложной задачей, и вскоре фирма General Electric вслед за RCA прекратила
работы в области вычислительной техники [1, 2, 5]. Некоторые
действовали более осторожно, разрабатывали усовершенствованные компьютеры, напоминающие машины IBM серий 1400
и 7000, чем привлекли некоторых заказчиков фирмы IBM.
Итак, разработчики фирмы IBM не смогли ограничиться од-
ной операционной системой для всего семейства IBM/360 из-за
различных требований, предъявляемых различными пользователями. Так, пользователям малых компьютеров не нужна было
сложная операционная система с бесконечным набором возможностей. Фактически производительность малых компьютеров
под управлением OS/360 существенно снизилась. Пользователям более крупных компьютеров требовались операционные
системы с расширенными функциональными возможностями.
Более мощные машины также могли работать с большим числом операционных систем. Поэтому вместо одной операционной
системы (OS/360) фирма IBM создала четыре основные операционные системы, которые она поставляла в течение 1960-х годов
[1, 2, 5]:
• DOS/360 (дисковая операционная система) для младших
моделей системы System/360;
• OS/MFT (мультипрограммирование с фиксированным чис-
лом задач) для средних и старших моделей System/360;
• OS/MVT (мультипрограммирование с переменным числом
задач) для старших моделей System/360;
• CP-67/CMS (управляющая программа 67/диалоговая мо-
ниторная система) для мощной модели 360/67, имеющей виртуальную память и предусматривающей работу в режиме разделения времени.
Важным шагом в развитии ОС было создание систем с раз-
делением времени. В конце 1950-х и начале 1960-х годов был
создан ряд таких систем. Эти системы дают возможность нескольким пользователям, работающим на терминалах, вести

29
Глава 1. Принципы организации системного программного обеспечения
непосредственный диалог с компьютером. Наиболее известной
системой того периода была CTSS (совместимая система разделения времени), разработанная в Массачусетском технологическом институте на компьютере IBM-7094. Она применялась и для разработки в Массачусетском технологическом
институте системы разделения времени следующего поколения – MULTICS, которая разрабатывалась с целью создания
универсального вычислительного комплекса с разделением
времени на основе концепции виртуальной памяти. Эта система была написана на языке высокого уровня EPL, первой
версии языка ПЛ/I фирмы IBM. Это явилось отличительной
чертой MULTICS. Затем были созданы и другие системы с разделением времени.
В течение 1960-х годов появилось много операционных си-
стем, созданных людьми, которые не понимали, что программы,
как и аппаратные средства, необходимо проектировать таким
образом, чтобы они были надежными, понятными и удобными
для сопровождения. Ошибки стоили очень дорого. Уход программиста приводил к тому, что большое количество программных модулей выбрасывали, затем их создавали заново другие
люди, поскольку разобраться в существующих программах было
гораздо сложнее.
Итак, стали выделяться значительные ресурсы для реше-
ния задачи конструирования программных систем. Этим было
положено начало развитию новой дисциплины – технологии
конструирования программ.
В начале 1970-х годов фирма IBM разделила свои программ-
ные средства и аппаратуру, установила на них отдельные цены,
хотя продолжала поставлять базовое программное обеспечение
бесплатно.
В результате этого решения поставщики компьютеров ста-
ли более ответственно относиться к обязательствам по поставке
и качеству программного обеспечения. Кроме того, возникла
независимая индустрия программного обеспечения. Появились
независимые поставщики программного обеспечения для компьютеров IBM. Но главное – поставщики при разработке программных средств начали методично проводить модульный
принцип, чтобы можно было поставлять или предоставлять

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
30
на них лицензии как на отдельные изделия. Многие пользователи приобретали совместимые компьютеры (PCM), скопированные с IBM, но более мощные и дешевые, так как могли использовать программное обеспечение фирмы IBM.
1.5. Назначение и основные функции ОС
Главное назначение операционной системы – это управле-
ние ресурсами, а главные ресурсы, которыми она управляет, –
это аппаратура компьютера.
Определение концепции процесса преследует цель вырабо-
тать механизмы распределения и управления ресурсами. Понятие ресурса, так же как и понятие процесса, является, пожалуй,
основным при рассмотрении операционных систем. Термин «ре-
сурс» обычно применяется по отношению к повторно используемым, относительно стабильным и часто недостающим объектам,
которые запрашиваются, используются и освобождаются процессами в период их активности. Другими словами, ресурсом
называется всякий объект, который может распределяться внутри системы.
Ресурсы могут быть разделяемыми, когда несколько про-
цессов могут их использовать одновременно (в один и тот же
момент времени или параллельно, в течение некоторого интервала времени процессы используют ресурс попеременно),
а могут быть и неделимыми.
При разработке первых систем ресурсами считались про-
цессорное время, память, каналы ввода-вывода и периферийные устройства. Однако очень скоро понятие ресурса стало
гораздо более универсальным и общим. Различного рода программные и информационные ресурсы также могут быть определены для системы как объекты, которые могут разделяться
и распределяться и доступ к которым необходимо соответствующим образом контролировать. В настоящее время понятие
ресурса превратилось в абстрактную структуру с целым рядом
атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе [4]. Более того, помимо системных ресурсов как ресурс стали толковать и такие
объекты, как сообщения и синхросигналы, которыми обмениваются задачи.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
