ЗАНЯТИЕ 4. «Режимы пакетной обработки и разделения времени»

4.1 Отечественные операционные системы
При анализе истории развития области ИТ следует иметь в виду особые условия, в которых развивались эти разработки как в СССР (России), так и в США, начиная с 1950-х гг. – «холодная война» и «железный занавес». Вследствие этого, все эти разработки, как в области аппаратуры, так и в области программного обеспече¬ния, были строго засекречены (по мнению автора, в СССР – даже более строго, чем в США, так как о работах американских специалистов мы все же имели возможность узнавать из журналов). Такая ситуация приводила к тому, что аналогичные идеи подчас возникали и реализовывались по обе стороны «железного занавеса» примерно в одно и то же время, при почти полном отсутствии информации о работах друг друга. Однако в этом были и своего рода положительные стороны: на эти работы выделялись значительные средства правительством и отраслевыми министерствами, на эти средства создавались и развивались весьма сильные команды разработчиков (прежде всего – в области аппаратуры, операционных систем и компиляторов). В конце 1980-х – начале 1990-х гг., в известный переходный период в СССР и России, когда начинали создаваться группы для работы по outsourcing – проектам, финансируемые фирмами США, американские специалисты были просто поражены, обнаружив в России сильнейшие исследовательские и промышленные группы в области ИТ, предлагающие и реализующие массу своих идей, находящиеся в курсе новейших разработок, а своим теоретическим уровнем, разработками в области структур данных и эффективных алгоритмов подчас опережавшие лучшие американские команды. Все описанные тенденции существенно повлияли на разработку аппаратуры и операционных систем. Отечественные разработчики, почти ничего не зная об аналогичных работах американских коллег, создавали свои оригинальные системы, в том числе – ОС. Например, идея многопоточности (multi-threading) была реализована в ОС «Эльбрус» еще в конце 1970-х гг., а в популярных зарубежных ОС (UNIX, Solaris, Windows NT) мно¬гопоточность появилась только в конце 1980-х – начале 1990-х гг. К сожалению, имело место и существенное отставание советских и российских ИТ-специалистов от американцев – прежде всего, в об¬ласти разработки элементной базы и технологии производства ком¬пьютеров, а также в области графических пользовательских интер¬фейсов (GUI).
Среди передовых оригинальных отечественных разработок в области компьютерной аппаратуры и ОС 1960-х – 1970-х гг. сле¬дует выделить прежде всего ЭВМ БЭСМ-6, ее операционные си¬стемы: ОС ДИСПАК, ОС ДИАПАК, ОС ИПМ и ее системное и прикладное программное обеспечение. Разработчиком БЭСМ-6, ОС ДИСПАК и ОС ДИАПАК был Институт точной механики и вычис¬лительной техники АН СССР под руководством академика Сергея Алексеевича Лебедева, основателя всей нашей отечественной вы¬числительной техники. Разработчик ОС ИПМ – Институт приклад¬ной математики АН СССР. ЭВМ БЭСМ-6 и ее программное обес¬печение следует признать уникальными. В их развитии участвовали многие академические и университетские коллективы не только СССР, но и зарубежных стран — достаточно вспомнить такие си¬стемы, как АЛГОЛ-ГДР — реализацию расширения Алгола-60 с раз¬витыми математическими библиотеками, выполненную нашими коллегами из Германии, а также реализацию Паскаля для БЭСМ-6, разработанную специалистами из Польской Академии наук. Опера¬ционные системы для БЭСМ-6 поддерживали пакетный (с учетом приоритетов и ресурсов заданий) и диалоговый режимы взаимодей¬ствия с компьютером, страничную организацию виртуальной па¬мяти, работу с внешними устройствами и телекоммуникационными каналами, работу в локальных сетях. К каждой БЭСМ-6 были под¬ключены десятки терминалов, работавших под управлением диало¬говых систем ДИМОН, ДЖИН и др. (это при объеме оперативной памяти БЭСМ-6 всего в 32 страницы по 4096 байтов и быстродей¬ствии до 1 млн. операций в секунду). Работу БЭСМ-6 и ее ОС отли¬чала высокая надежность. Руководитель разработки ОС ДИСПАК – В.Ф. Тюрин.
Другой передовой отечественной разработкой 1970-х – 1980-х гг. была разработка многопроцессорных вычислительных комплексов (МВК) «Эльбрус-1» и «Эльбрус-2». В разработке про¬граммного обеспечения системы «Эльбрус» автор курса со своей командой принимал активное участие в течение 15 лет. Идейным вдохновителем проекта «Эльбрус» стал сам С.А. Лебедев, затем им руководили академик Всеволод Сергеевич Бурцев, а после него – чл.-корр. АН СССР Борис Арташесович Бабаян. Следует признать, что у «Эльбруса» были зарубежные прототипы и задолго до его появления были написаны академические зарубежные работы, за¬ложившие научные основы подобных компьютерных архитектур. Коммерческим прототипом «Эльбруса» была известная серия ком¬пьютеров фирмы Burroughs (США): B5000 / B5500 / B6700 / B7700. Однако разработчикам «Эльбруса» и его операционной системы удалось предложить и реализовать целый ряд собственных ориги¬нальных идей и методов. Основными принципами «Эльбруса», как и его предшественников, являлись: теговая архитектура (каждое слово памяти, кроме данных, содержало тег – код типа данных, хранящихся в этом слове, по которому аппаратура контролировала правильность выполнения операции), динамизм и аппаратная под¬держка типичных (подчас весьма сложных) последовательностей действий, используемых при реализации языков высокого уровня — например, вход в процедуру по указателю на нее, с установкой дисплей-регистров, ссылающихся на доступные процедуре области локальных данных. ОС «Эльбрус» поддерживала создание процес¬сов и операции над ними, аналогичные тем, которые впоследствии в зарубежных разработках были названы многопоточностью (multi-threading); была реализована математическая (виртуальная) память с поддержкой страничного распределения виртуальной памяти (на диске) и сегментного распределения физической (оперативной) па¬мяти. Динамизм выражался в том, что отсутствовала статическая линковка; все программы и модули загружались в память только динамически, при первом вызове. Также динамически, при первом запросе, по прерыванию, выделялся каждый массив математиче¬ской памяти. Подобные принципы были для своего времени пере¬довыми, использование тегов значительно повысило надежность. Однако, с современной точки зрения, идеологию «Эльбруса», по-видимому, нельзя считать гибкой и эффективной, так как все аппа-ратные операции и соответствующие действия ОС были реализо¬ваны в общем виде, и практически отсутствовала какая-либо воз¬можность оптимизаций, например, для более быстрого вызова про¬цедуры в случае отсутствия необходимости обращения к ее аргу¬ментам, для быстрого доступа к статической области памяти и т.д.
Были и другие интересные отечественные разработки новых архитектур компьютеров и их операционных систем, прежде всего — оригинальные специализированные компьютеры для различных применений и их операционные системы (в основном, по своему классу и назначению, они были системами реального времени).
Однако в начале 1970-х годов в развитии отечественной вы-числительной техники и ее системного программного обеспечения начался новый, неожиданный для большинства пользователей и специалистов, этап. Правительство СССР приняло беспрецедентное решение о создании, в качестве основной на достаточно долгий пе¬риод времени (как изначально планировалось, на 20-30 лет, что оказалось утопией), отечественной серии — Единой Системы ЭВМ (ЕС ЭВМ) — путем копирования американских компьютеров серии IBM 360. Соответственно, все базовое системное программное обеспечение, в том числе и ОС, также было адаптировано к исполь¬зованию в СССР (либо использовалось в оригинальном виде – с сообщениями на английском языке и т.д.). Это решение вызвало большие проблемы с финансированием у разработчиков отече¬ственных архитектур компьютеров. Это также вызвало большие сложности у пользователей и разработчиков программного обеспе¬чения, так как далеко не все хорошо владели английским языком (ныне в этом последнем отношении ситуация гораздо лучше). По¬явились, например, системы-обертки, обеспечивающие русско¬язычный интерфейс: с их помощью все задания для ЕС писались с использованием русскоязычной мнемоники, затем конвертирова¬лись в англоязычный Job Control Language (язык управления зада¬ниями IBM 360), а все сообщения, выдаваемые в качестве результа¬тов, переводились на русский язык. Это было интересным подхо¬дом, однако не прижилось. Документация по IBM 360 постепенно была переведена на русский язык, появилась русскоязычная спра¬вочная и учебная литература по ЕС ЭВМ. К сожалению, отече-ственные аналоги аппаратуры IBM 360 – машины серии ЕС ЭВМ – оказались гораздо менее надежными, чем их прототипы. В течение еще нескольких лет было принято еще одно правительственное ре¬шение – об аналогичном копировании американских миникомпью¬теров серий PDP 10 и PDP 11, под общим названием «Система Мини-ЭВМ» (СМ ЭВМ). Были выпущены компьютеры этой серии СМ-1, СМ-2, СМ-3 и СМ-4. Были и другие аналогичные работы по копированию зарубежных архитектур компьютеров и выпуске на этой основе отечественных аналогов. Фактически, можно сказать, что, благодаря подобному подходу, срок использования зарубеж¬ных ОС в СССР и в России был продлен не менее чем на 15-20 лет, что просто беспрецедентно. Копирование машин IBM 360 и PDP, с одной стороны, дало возможность советским программистам осво¬ить новые развитые операционные системы, языки программирова-ния, библиотеки программ, с другой – отбросило нашу отечествен¬ную вычислительную технику еще дальше назад. Один из класси¬ков компьютерной науки, профессор Эдсгер Дейкстра (E. Dijkstra) в 1977 г. на научном семинаре в Ленинграде в АН СССР не без иро¬нии заметил, что «решение русских о копировании IBM-360 можно считать серьезной победой США в «холодной войне».
Разумеется, история отечественных ОС на этом не закончи¬лась. Например, в настоящее время ведется разработка отечествен¬ной свободно распространяемой операционной системы на базе Linux. Среди отечественных программистов многие являются спе¬циалистами весьма высокого уровня по операционным системам.
4.2 Пакетный режим .
Более подробное рассмотрение операционных систем начнем с особенностей ОС для mainframes.
Один из основных режимов работы ОС – пакетный режим (batch mode) – режим пропуска и одновременной обработки поль¬зовательских заданий ( jobs ) – программ, введенных с внешнего носителя или с терминала, с учетом их приоритетов и требуемых ими ресурсов. При этом ОС пытается максимально сэкономить время пропуска пакета заданий, формируя их оптимальным обра¬зом, — например, запускать на процессоре короткое задание, пока более длинное выполняет ввод-вывод.
Уже в самых первых ОС была реализована другая основная возможность — автоматическая передача управления от одного за¬дания к другому при завершении или прекращении предыдущего задания. Для этого ОС использует резидентный (постоянно нахо¬дящийся в памяти по фиксированным адресам) монитор – про¬грамму, осуществляющую поочередную передачу управления от задания к заданию, по мере их завершения. Алгоритм работы мони¬тора следующий. При запуске компьютера управление передается монитору, который выбирает очередное задание и передает ему управление. По окончании задания управление возвращается мони¬тору, и т.д.

4.3 Распределение памяти в однозадачной ОС с пакетной обработкой заданий
Оно очень простое: операционная система занимает посто¬янно смежную область памяти (например, по меньшим адресам), остальная область памяти отдана пользовательской программе.

Такая операционная си¬стема является однозадачной – обрабатывает, выполняет и хра¬нит в оперативной памяти в каждый момент времени только одно пользовательское задание (программу). По окончании те¬кущего задания ОС загружает в освободившуюся область па¬мяти следующее задание. Разу¬меется, такой режим работы не¬достаточно удобен и эффекти-
Рис. 14. Распределение памяти в про¬стой системе пакетной обработки
вен, так как при выполнении задания возможны прерывания на выполнение ввода-вывода и другие паузы, во время которых ОС могла бы дать возможность выполняться другим очередным заданиям.

Рис. 14. Распределение памяти в про¬стой системе пакетной обработки

4.4 ОС пакетной обработки с поддержкой мультипрограммирования
Более развитые операционные системы поддерживают ре¬жим мультипрограммирования – одновременной обработки и раз¬мещении в памяти сразу нескольких пользовательских заданий. Распределение памяти в такой системе изображено на рис. 15.

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

Рис. 15. Распределение памяти в системе пакет-ной обработки с поддерж¬кой мультипрограммирования

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

Управление памятью. Поскольку заданий в памяти может быть несколько, причем число и размеры их областей могут ме¬няться, перед операционной системой возникает задача распреде¬ления памяти для пользовательских заданий – выделения памяти для загружаемого пользовательского задания и ее освобождения после завершения каждого задания. При решении этой классиче¬ской задачи возникает целый ряд проблем: хранение списков сво¬бодной и занятой памяти, реализация оптимального алгоритма по¬иска и выделения свободной области памяти, реализация освобож¬дения памяти, фрагментация — дробление свободной памяти на мел¬кие участки, вследствие неточного совпадения размеров свободных и требуемых участков памяти и др. Все эти проблемы и общепри¬нятые алгоритмы их решения подробно описаны в классической монографии Д. Кнута.
Планирование загрузки процессора (CPU scheduling) – ре¬ализация в ОС алгоритмов выбора очередного задания из набора загруженных в память заданий и выделения кванта времени цен¬трального процессора очередному выбранному заданию. В отличие от однозадачного режима, в режиме мультипрограммирования опе¬рационная система, таким образом, в определенные моменты вре¬мени должна сделать выбор, какое из нескольких загруженных в память заданий запустить. Алгоритмы планирования и диспетчери¬зации процессов подробно рассмотрены ниже в данном курсе.
Управление внешними устройствами и буферизация ввода-вывода. В однозадачном режиме загруженная в память поль¬зовательская программа для вывода на печать могла выполнить специальную машинную команду, которая выводила на устройство печати очередную строчку, что не вызывало проблем и не приво¬дило к какой-либо путанице, вследствие монопольности «владе¬ния» компьютером очередным заданием. Однако в мультипро¬граммном режиме ситуация иная. Если сохранить тот же режим вывода на печать, то на печатающее устройство могут быть выве¬дены фрагменты, принадлежащие разным заданиям, что недопу¬стимо. Для группировки и отделения выводимой информации раз¬личных заданий друг от друга в мультипрограммной ОС использу¬ется буферизация вывода (spooling) – хранение для каждого задания буфера его вывода (в виде области памяти или файла), накопление в буфере выводимой заданием информации и ее вывод полностью на устройство (принтер) при завершении задания.

4.5 Режим разделения времени и особенности ОС с режимом разделения времени
Когда в составе компьютерных систем появились терми¬налы (вначале телетайпы, затем дисплеи), возникла необходимость реализации в ОС режима разделения времени (time sharing ) – возможности одновременной работы пользователей со своими за¬даниями с терминалов, ввода заданий в систему, их запуска (при наличии свободного процессора), управления заданиями с терми¬нала, их приостановки, отладки, визуализации на терминале их ре¬зультатов. Рассмотрим особенности ОС с режимом разделения вре¬мени.
Хранение заданий в памяти или на диске. Ресурсы процес¬сора в ОС с разделением времени распределены между несколь¬кими заданиями, находящимися в памяти или на диске. Задание загружается в память (при наличии свободной памяти), если оно является пакетным и выбрано операционной системой для выпол¬нения, либо если оно активируется пользователем с терминала. Процессор выделяется только тем заданиям, которые находятся в памяти.
Откачка и подкачка (swapping) — загрузка заданий с диска в память и их выгрузка из памяти на диск. В системе с разделением времени возможна ситуация, когда какое-либо задание, управляе¬мое с терминала, неактивно (например, выполняет ввод-вывод, либо система ожидает ответа от пользователя, у которого в данный момент перерыв в работе). В этом случае ОС может принять реше¬ние о временной выгрузке (swap out) образа памяти задания из опе¬ративной памяти на диск, с целью освобождения памяти для других заданий. При повторной активизации задания оно (при возможно¬сти) вновь загружается в память ( swapped in ). Подобная стратегия называется откачкой и подкачкой.
Поддержка диалогового взаимодействия между пользова¬телем и системой. Когда ОС завершает исполнение пользователь¬ской команды, она выполняет поиск следующего управляющего оператора (control statement),введенного с пользовательской клави¬атуры.
Предоставление диалогового доступа к данным и коду пользовательской программы. В ОС с разделением времени обес-печивается возможность для пользователя ввода, запуска, редакти¬рования, отладки своей программы с терминала, управления своим заданием (приостановки, с последующим возобновлением), про¬смотра его промежуточных результатов, состояния памяти и реги¬стров, просмотра окончательных результатов на терминале при за¬вершении задания.
Следует учитывать, что в ОС с разделением времени обра-батываются как пакетные, так и интерактивные (диалоговые) зада¬ния, поэтому система должна обеспечивать их диспетчеризацию – переключение в нужный момент с диалогового задания на пакет¬ное, либо с одного диалогового (пакетного) задания на другое.
Режим разделения времени, наряду с пакетным режимом, был основным в операционных системах 1960-х – 1970х- гг

Оставить комментарий

avatar
  Подписаться  
Уведомление о