Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Системное программное обеспечение. Учебник

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
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]. Более того, по­мимо системных ресурсов как ресурс стали толковать и такие объекты, как сообщения и синхросигналы, которыми обмени­ваются задачи.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]