Операционные системы ЭВМ и трансляторы

Операционные системы ЭВМ и трансляторы



Операционная система ОС ЕС предназначена для обеспечения пакетной обработки заданий, режима разделения времени и совмещения этих режимов.

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

Операционная система может работать как в однопрограммном режиме, так и в режиме мультипрограммирования. При однопрограммном режиме в оперативной памяти в каждый момент времени находится только одна выполняемая программа, все задания выполняются последовательно. Для работы в этом режиме достаточен объем оперативной памяти 64 Кбайт. Режим мультипрограммирования может выполняться с фиксированным и переменным числом задач.

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

В режиме мультипрограммирования с переменным числом задач все ресурсы, включая оперативную память, минимальный объем которой составляет 256 Кбайт, распределяются между одновременно выполняемыми заданиями динамически. Число заданий может быть произвольным, но не более 15. Число задач, организуемых для распараллеливания вычислений, не лимитируется и определяется динамически в соответствии с наличием свободных ресурсов.

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

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

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

На старших моделях ЕС ЭВМ с объемом оперативной памяти не менее 512 Кбайт на базе мультипрограммного режима с переменным числом задач реализуется система разделения времени для обслуживания более 100 одновременно работающих удаленных абонентов. В оперативной памяти выделяются разделы, предназначенные для выполнения одного или нескольких заданий. Каждое задание получает управление в течение кванта времени, после чего оно вытесняется во внешнюю память, а на его место загружается следующее задание, получающее управление на свой квант времени.

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

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

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

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

Составной частью ОС ЕС является система программирования, в которую входят трансляторы с языков программирования АССЕМБЛЕР, ФОРТРАН IV, АЛГОЛ-60, КОБОЛ, ПЛ/1, РПГ, а также редактор связей и тестран. Программы готовятся с использованием модульного принципа. Большие программы сегментируются на меньшие, разрабатываемые и отлаживаемые самостоятельно с последующим объединением в процессе выполнения или перед ним.

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

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

Загрузочный модуль есть объединение объектных модулей, он уже может быть помещен в оперативную память для выполнения; редактор связей осуществляет редактирование – замену, исключение и перегруппировку секций программы по указанию программиста, создание необходимой структуры программы, формирование и запись характеристик загрузочного модуля в оглавление библиотеки и др.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вторая составная часть ОС 7.0 ЕС – базовая операционная система – ориентирована на режим пакетной обработки. Она может работать на одной или нескольких виртуальных машинах.

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

Монитор виртуальных машин поддерживает двухпроцессорные конфигурации ЭВМ.

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

Операционная система ОС 7.0 ЕС реализуется с центральным процессором третьей очереди ЕС ЭВМ с оперативной памятью емкостью не менее 1 Мбайт.

Технические возможности малых ЭВМ позволяют создавать мультимодульные системы, в которых отдельные модули выполняют некоторые выделенные функции.

Такими модулями могут быть специализированные процессоры, универсальные микропроцессоры, интеллектуальные терминалы. На такие системы, называемые системами с разделением функций, ориентирована операционная система РАФОС (РАзделения Функций Операционная Система).

Система РАФОС предназначена для организации вычислительного процесса в магистрально-модульных комплексах СМ ЭВМ, имеющих от 16 до 248 Кбайт оперативной памяти.

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

В структуре РАФОС выделяют драйверы внешних устройств, мониторы, файловую систему, системные программы и библиотеки. Используя языки высокого уровня типа ФОРТРАН, ПАСКАЛЬ, БЕЙСИК, пользователи создают прикладные программы, пакеты и библиотеки.

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

В состав РАФОС входит пять типов мониторов, программно совместимых снизу вверх:

RM – монитор, постоянно находящийся в оперативной памяти (резидентный) и предназначенный для исполнения в реальном времени отлаженной программы;

SJ – монитор – монитор реального времени, обеспечивающий самую высокую скорость реакции на внешнее событие (прерывание). Он функционирует при минимальной конфигурации технических средств, требуя около 4 Кбайт оперативной памяти и обеспечивая работу системы в оперативной памяти от 16 до 56 Кбайт. Введение в его состав при генерации многотерминального драйвера позволяет программе работать с несколькими терминалами;

FB – монитор – простейший мультипрограммный монитор РАФОС, являющийся фоново-оперативным монитором реального времени. Все задачи получают один из восьми приоритетов. Фоновая задача имеет самый низкий приоритет 0, оперативная задача – самый высокий 7. Приоритеты от 1 до 6 имеют системные задачи, аналогичные оперативной задаче, но с более низким приоритетом. Все прикладные задачи и системные с низким приоритетом выполняются в фоновом режиме. Общее число задач – не более 8. Монитор использует оперативную память от 32 до 56 Кбайт, его резидентная часть занимает около 8 Кбайт.

ХМ – монитор является расширением FB-монитора и обслуживает до 8 задач реального времени. Он занимает около 14 Кбайт памяти и обеспечивает работу с оперативной памятью от 64 до 248 Кбайт.

TS – монитор является самым мощным монитором. Он обслуживает до 30 задач пользователей, работающих одновременно с разных терминалов в режиме разделения времени. Предназначен для работы с системой, имеющей от 96 до 248 Кбайт памяти; его память около 40–48 Кбайт.

Для вычислительных комплексов, реализуемых на базе микроЭВМ типа «Электроника» используется операционная система ФОДОС (Фоновая Основная Дисковая Операционная Система).

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

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

При подготовке программ на языке АССЕМБЛЕР имеется возможность создавать программы с оверлейной структурой и автоматизировать процесс отладки программ.

В результате трансляции программ, написанных на языках АССЕМБЛЕРе и ФОРТРАНе, получают объектные форматы, состоящие из набора данных и машинных кодов и являющиеся объектными модулями. Последние используются в качестве входных для редактора связей.

Операционная система содержит ряд мониторов, имеющих модульную структуру.

Монитор одного задания (SJ) предназначен для выполнения одной программы пользователя. Он обслуживает все периферийные устройства и обеспечивает выполнение всех программ системы. Для работы монитора требуется не менее 8К слов; он позволяет использовать до 28К слов оперативной памяти.

Монитор основного фонового задания (FB) позволяет одновременно выполнять два независимых задания, из которых одно является основным и имеет приоритет по отношению ко второму – фоновому.

Монитор расширенной памяти (ХМ) дополнительно к возможностям монитора FB может обслуживать до 124К слов оперативной памяти. Кроме указанных мониторов существуют драйверы; программа обслуживания пользователей, обеспечивающая операции с файлами и загрузку драйверов; интерпретатор командной строки, являющийся составной частью программы обслуживания пользователя и осуществляющий прием и синтаксический анализ командной строки пользователя и некоторые другие.

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