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

Введение в специальность

.pdf
Скачиваний:
49
Добавлен:
11.05.2015
Размер:
5.78 Mб
Скачать

202

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

50-е годы:

Вернемся к истокам вычислительной тех

ники. 50-е годы — время ЭВМ первого по

человек-оператор

коления. Машины тогда были громоздки-

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

Разобратьсявовсемэтомхозяйствемогтолькоспециальноподготовленный человек. В первые годы, когда машины только училисьсчитать, имиуправлялисамипрограммисты. Каждомупользователюотводилосьопределенноевремя, стоимостьодногочасамашинного времени примерно равнялась месячной зарплате инженера. Программист садился за пульт и оставался с машиной один на один. Никаких операционных систем и файлов на диске, — «все свое ношу с собой». Первое его действие за пультом — нажатие кнопки «Стирание ОЗУ», затем в пустую машину вводилась колода перфокарт и управление передавалось в ячейку с адресом 0001. Когда программа заканчивала работу, машина останавливалась и загоралась лампочка «Останов», а если возникала особая ситуация

— деление на нуль или переполнение, то вспыхивала лампочка аварийного останова «Авост». Вот и все управление вычислительным процессом.

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

Программисты за пультом управления ЭВМ БЭСМ-4 на ВЦ ТГУ

203

почему произошел авост, машина простаивала, драгоценное время тратилось впустую. В самом начале 50-х годов это было еще терпимо, но скоро политика открытых дверей себя изжила. Машин было еще мало, а программистов стало очень много, буквально каждая минута машинного времени была на счету. Думать за пультом ЭВМ стало недопустимой роскошью. Двери машинных залов наглухо закрыли, туда допускались только люди с экзотической и престижной профессией «оператор ЭВМ».

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

Работа оператора была невероятно напряженной. Подходя к ящику с заданиями, он брал очередную колоду, вставлял ее в считывающее устройство, затем в соответствии с инструкцией набирал на пульте команды, записывал показания лампочек, сматывал в рулон выдачу с печатающего устройства и вместе с отработанной колодой складывал все в ящик для пропущенных задач, который возвращался назад в дис-

60-е годы:
от автооператора до пакетных ОС с мульти-
программированием

204

петчерскую ВЦ.

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

Первыесистемы дляорганизации вычислительного процесса на ЭВМ называлисьавтооператорами, мониторными системами или

супервизороми. Они появились вместесмашинамивторогопоколенияв начале 60-х годов. Для их реализации в конструкцию ЭВМ при-

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

тыеязыкиуправлениязаданиями.

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

На рисунке слева изобразена загрузка двух блоков компьютера

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

Для того, чтобы уменьшить внутренние простои, был предложен режим мультипрограммирования, реализованный в пакетных операционныхсистемах60-хгодов.

Основные понятия пакетной ОС — задание и задача.

 

 

 

 

 

 

 

205

Процессор

 

 

 

Процессор

 

 

 

1

2

 

3

1

2

3

t

 

 

 

 

 

 

 

Печать

 

 

 

Печать

 

 

 

 

1

2

3

 

1

2

3

t

Однопрограммный режим

Мультипрограммный режим

Использование ресурсов ЭВМ в одно- и мультипрограммном режиме. 1, 2, 3 — номера задач.

Задание (job) — та самая колода перфокарт, которая передана программистом на ВЦ. Задание содержит: 1) карты управления заданием на языке JCL, 2) программу на любом языке программирования, 3) исходные данные к программе.

Задача(task) — вычислительныйпроцесс, требующийопределенных ресурсов (процессора, памяти). Одно задание состоит как правило из нескольких задач, например, компиляция модулей программы, редактированиемежпрограммныхсвязей, исполнениепрограммы, печатьрезультатов.

В мультипрограммной ОС в машину сразу загружается целый пакет заданий. Система сама разбирается сними исамостоятельно организуетвычислительныйпроцесс. Основныефункциипакетной ОСсводятсякследующему:

1)управлениезаданиями: формированиеочередей, образование задач. Этимзанимается компонентОС, назывемыйглавнымплани-

ровщиком;

2)управление задачами — выделение им ресурсов, защита задач друг от друга, обработка прерываний. Это — прерогатива су-

первизораОС;

3)управлениефайлами. Прирешениисложныхзадачневозмож-

206

но все необходимые для их работы внешние данные (библиотеки стандартныхпрограмм, промежуточныерезультаты) каждыйразносить с собой. Поэтому в ОС образовался отдельный компонент, ответственныйзаколлективноехранениеданныхнавнешнихустрой-

ствах— системауправленияфайлами.

ЛегкоусмотретьаналогиюмеждуоперационнойсистемойЭВМ

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

ипродуктивна, так как позволяет использовать в алгоритмах ОС математические модели иметоды, разработанные для организации производства.

На протяжении 60-х годов шло непрерывное совершенствование мультипрограммныхОС, развивалась ихтеория, накапливался бесценныйпрактическийопыт. Высшимдостижениемвэтойобла-

сти можно считать OS/360 MVT (Multiprogramming with Variable number of Tasks — мультипрограммированиеспеременнымчислом задач), созданную IBM для знаменитой серии машин третьего поколения. Разработка системы и сопровождающего базового программногообеспеченияпотребовалаболее150 000 человеко-леттру- да квалифицированных системных программистов, она отлаживалась и шлифовалась не один год; создав ее, IBM стала лидером по производствубольшихпрограммныхсистем.70-егоды:

70-е годы:

Пакетные ОС 60-х годов заботились лишь

ободном— экономииресурсовкомпьюте-

диалоговыеОС

ра. Опрограммистахниктонедумал, опла-

сразделением

та ихтруданешланивкакое сравнение со

времени

стоимостьюмашинноговремени. Из-зазак-

 

рытости ВЦ программу в лучшем случае удавалось пропускать через машину 1-2 раза в сутки, программисты с тоской вспоминали о 50-хгодах, когда двери машинных залов были для них открыты.

Возникла проблема — нельзя ли так организовать вычислительный процесс, чтобы, с одной стороны, каждый пользователь имел бы неограниченный доступ к мишинным ресурсам, а, с дру-

207

гойстороны, этиресурсыиспользовалисьбысвысокимКПД(в70- е годы ЭВМ были все еще очень дорогими).

Выходбылнайденвпринциперазделениявремени(русскоесокращение РВ, английское TS — time sharing), предложенным профессоромДжоном Маккарти, уже извесnномнамвкачестве автора языкаLisp. ВсоответствиисэтимпринципомнаЭВМодновременнозапускалосьнесколькозадач, каждаяизнихпоследовательнополучала квант времени. К каждой задаче привязывалось устройство общенияспользователем(вначалетелетайп, потомпоявилисьдисплеи) и выделялась своя область памяти. В результате у каждого пользователяскладывалосьвпечатление, чтоонодинработаетскомпьютером. То есть на аппаратуре одной ЭВМ средствами операционнойсистемыорганизуетсянескольковоображаемых— виртуальных машин). Естественно, базовая ЭВМ должна быть достаточно мощной, для того чтобы вместить все виртуальные машины.

Просто было только на бумаге. На практике возникло множество проблем, потребовался длительный период времени, прежде чем системы с разделением времени стали реальностью. В своем развитии они прошли несколько стадий.

Экспериментальная стадия. Родина систем РВ — Массачу-

сетский технологическийинститут(МТИ). ИдеяДжона Маккарти, высказанная им еще в 1959 году, была впервые реализована в 1961

году, когда под руководством адъюнкт-профессора Фернандо Корбато (Corbató, Fernando) была создана экспериментальная ОС РВ

для ЭВМ IBM 7090 под названием CTSS (Compartible Time Sharing System). В результате опытов с ней родился замысел крупномасштабногопроектасозданияединойвычислительнойсистемыдляобу-

ченияMAC (Multiplexed Access Computer), врамкахкоторогодолж-

набытьразработанаоперационнаясистемаMultics.

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

208

системе Multics выросло целое поколениесистемныхпрограммистов, втомчисле будущий создатель Unix Кеннет Томпсон, онавдохновилаКеменииКурцана созданиемногопользовательскогоБэйсика.

Промышленнаястадия. Ещеприсо-

зданиисистемыCTSS сталосовершенно ясно, что для успешной реализации ОС РВтребуетсятеснейшеевзаимодействие программистов-разработчиковядраОСи инженеров, производящихмодификацию аппаратуры компьютера для работы в

режимеразделениявремени. Дляпроек-

та Multics , например, фирма General ФернандоКорбато

Electric поставиласпециальнуютехнику.

ПоэтомуразработкапромышленныхОСРВвначале70-хгодовпе- реместилась в фирмы-производители ЭВМ.

Первой ЭВМ семейства IBM S/360, работающей в режиме разделениявремени, стала модель67, выущеннаяв1971 году. Длянее ипоследующихмоделейсерии370 быларазработанаоперационная системаOS/VM — Virtual Mashines.

Фирма DEC, вырвавшаяся во второй половине 60-х годов на второе место благодаря изобретению мини-ЭВМ, ответила выпуском ОС RSX-11 для 16-битовой PDP-11 и системы MVS для 32битовойVAX. Посколькуархитектурамини-ЭВМнамногопрощеи логичнее, чем у мэйнфреймов, их системы получились дешевле, надежнее и эффективнее, что способствовало постепенному вытеснению мэйнфреймов с рынка.

Когда первые сливки с рынка диалоговых ОС были сняты, выяснилось, что дальнейшее совершенствование их характеристик дается с большим трудом по двум причинам.

В-первых, разработка эффективных вычислительных систем требует глубоких теоретических исследований. Политика механи-

209

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

В-вторых, реализация таких систем — мучительный и долгий процесс. Из-завысокойсложностиалгоритмов, необходимостипрограммирования на уровне машинных команд итрудностей взаимодействия с аппаратурой в реальном времени неизбежны многочисленные ошибки. Отладка систем требует длительного времени и больших средств. Надежная операционная система как марочное вино — она должна вызреть в течение многих лет.

Долгая история Unix. Указанные выше обстоятельства объективно привели к тому, что разнообразие промышленных операционных систем, наблюдавшееся в 60-е годы, в течение 70-х резко сократилось. Однако и это разннобразие с точки зрения программистов было излишним. Дело в том, что исполняемые программные модули, как правило, работоспособны только в среде конкретной ОС. С развитием прикладного программного обеспечения сталовесьмаобременительнымразрабатыватьвариантыпрограммдля различныхоперационныхсистем. Идеальнойдляприкладногопрограммистабылабыединаядляразличныхаппаратныхплатформунифицированная операционная система. Долгий путь к этому идеалу оказался связанным с созданной в Bell Laboratories операционной системойUnix.

Разработкасистемынестоялавпланахфирмы, этобылаличная инициативамолодогосистемногопрограммистаКеннетаТомпсона (Thompson, Kenneth L.; р. 1943). Самая первая однопользовательская версия системы была разработана им в 1969 году для миниЭВМ PDP-7, в 1971 году Томпсон реализовал систему на Ассемблере для PDP-11, при этом многие принципиальные черты Unix (принципы мультипрограммирования, организация файлов) были заимствованы им из Multics (сначала система называлась Unics в пикуMultics, нозатембуквы«cs» превратилисьв«x»). В1973 году вместе с Деннисом Ричи, создавшим специально для этого машин- но-независимыйязыкСи, они переписалипрограммыUnix наэтом языке, что сразу сделало ее потенциально мобильной. Для перено-

210

са системы на другой тип компьютера нужно было переделывать тольконезначительную ядраОС.

Согласноамериканскимзаконам, владевшаяBell Laboratories кор-

порация Amerrican Telephone and Telegraph (AT&T) не имела права продаватьсистему, поэтомуUnix безвозмездноразошласьпомногочисленнымуниверситетам. Благодарябесплатности, масштабируемости, переносимости и абсолютной открытости (система поставлялась вместе с исходными текстами программ на Си), Unix стала пользоваться огромной популярностью в научном и образовательном мире. Варианты ОС были реализованы практически для всех аппаратных платформ — от 8-разрядных микропроцессоров до су- пер-ЭВМ Cray. Система непрерывно совершенствовалась на протяжении всех 70-х и 80-х годов, становясь от версии к версии все более мощной и зрелой. Мощный толчок распространению Unix в эти годы дало развитие сети интернет, для которой общедоступная бесплатнаясистемабыланаходкой.

ОднакодоступностьисходногокодаUnix имелаиобратнуюсторону: модификации системы, проводимые в различных организациях, скоро привели к тому, что отдельные версии стали плохо согласовываться друг с другом. Речь шла уже не об одной, а о целом классе юникс-подобных ОС. Кроме бесплатных, различными производителями ЭВМ были выпущены и коммерческие версии Unix подфирменныминазваниями. Так, IBM назваласвоюсистемуAIX, Microsoft — Xenix, Sun Microsystems — Solaris ит. д.

ОтечественныеОСсразделениемвремени. ВСоветскомСо-

юзе интенсивная разработка промышленных операционных системначаласьсразупослепоявленияв1966 годупервого«миллионника» — машиныБЭСМ-6 спроизводительностьюболеемиллиона оп./с. Для ЭВМ такой производительности потери процессорного времени из-за работы оператора с внешними устройствами слишкомрасточительны.

В ведущих программистских коллективах было создано сразу несколько систем с разделением времени для БЭСМ-6. Первая родилась в стенах ИТМ и ВТ, создавшего саму машину.Она носила название«Диспетчер-68» ибыларазработанаподруководствомЛьва

80-90-егоды:
настольныеОС

211

Николаевича Королева.Обновленная в 1970 году версия системы называлась «Новый диспетчер» — НД-70.

СвойвариантОСразработалив«космическом» Институтеприкладной математики (ИПМ) под руководством Э.З.Любимского, фамилия которого уже нами упоминалась в связи с написанием транслятора с Алгола. По утверждениям авторов, ОС ИПМ оказаласьсхожейссовременнойUnix.

На основе Диспетчера-68 и НД-70 в нескольких организациях были созданы свои варианты ОС для БЭСМ-6. Так, в Объединенном институте ядерных исследований (г. Дубна), где ЭВМ обрабатывалаинформацию, снимаемуюсомножествафизическихприборов, быларазработанаОС«Дубна», аводномсекретноминституте Челябинскаподруководством ВладимираФедоровичаТюринабыла создана самая популярная ОС для БЭСМ-6 под названием «Диспак», которая прошла через все модификации машины и работала вплоть до 90-х годов.

Микропроцессорная революция, произо- шедшдаянапороге80-хгодов, существенноизменилаподход коперационымсисте-

мам. Многиепроблемы, волновавшиеразработчиковОСдлямэйнфреймов, отпалисамисобойДляперсональногокомпьютераненужнасложнаямногопользовательскаясистемасразделениемвремени, самопонятиеОСприменительнокпервыммикрокомпьютерам коможетприменятьсясбольшиминатяжками.

CP/M. Для первого поколения 8-битовых персональных ЭВМ фактическим стандартом стала простейшая ОС CP/M — Control Program for Microcomputers, написаннаяв1976 годуГэриКилдолом (Kildall, Gary), основателемкомпанииDigital Research.

MS DOS. Когдав1981 годуIBM сталаготовитьквыпускуIBM PC, унееещенебылособственныхпрограммистов, имеющихопыт разработкипрограммдлямикрокомпьютеров. Рассматривалисьдве возможности: либозаказатьуавторитетнойDigital Research 16-бит- ную версию CP/M, либо придумать что-нибудь совершенно новое. По чисто случайным обстоятельствам переговоры с Килдолом не

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]