А.Н. Томилин - Операционные системы супер-ЭВМ (1156254), страница 2
Текст из файла (страница 2)
4. ПОСЛАТЬ ОТВЕТ (ИДС, ОТВЕТ)
где ИДС - идентификатор принятого сообщения, на который посылается ответ. ОТВЕТ - адрес и длина посылаемого ответа.
5. ЖДАТЬ ОТВЕТА (ИДС1,...,ИДСn) <ИДСi>
где ИДС1,...,ИДСn - список идентификаторов отправленных сообщений, по которым ожидаются ответы. ИДСi - идентификатор отправленного сообщения, на который получен ответ.
6. ЖДАТЬ ВРЕМЯ (Т)
где Т - интервал времени, истечения которого ожидает выдавшая примитив задача.
Кроме перечисленнных примитивов возможны примитивы, которые составляют комбинации примитивов 3, 5 и 6. Существует разновидность примитива 4 - ПОСЛАТЬ ОТРИЦАТЕЛЬНЫЙ ОТВЕТ - в результате выполнения которого будет сгенерирована исключительная ситуация в задаче-отправителе. Семантически примитивы 1-5 соответствуют конструкциям: вызов подпрограммы, вход в подпрограмму и возврат из нее.
Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО, откладывается до момента выдачи примитива ПОСЛАТЬ ОТВЕТ ее задачей-партнером и переписи ответа в буфер под ответ. Соответственно, задача, давшая примитив ПРИНЯТЬ СООБЩЕНИЕ, либо получает сообщение, если оно есть, либо откладывается до тех пор, пока от одного из ее партнеров не поступит примитив ПОСЛАТЬ СООБЩЕНИЕ и сообщение не перепишется в буфер. Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО, будет продолжать свое выполнение до тех пор, пока не будет выдан явный примитив ожидания сообщения, ответа, времени либо их комбинации. Перепись сообщения из адресного пространства задачи - отправителя в адресное пространство задачи-получателя происходит без промежуточных системных буферов, поэтому для корректной работы повторно использовать память, в которой располагается сообщение, можно только после получения соответствующего ответа на данное сообщение.
Для задач ОС уникальные идентификаторы фиксированы. Для пользовательской задачи уникальный идентификатор вырабатывается при ее образовании и может быть известен другой задаче через посредство задачи ОС. Уникальные идентификаторы отправленных и полученных сообщений вырабатываются при выполнении примитива ПОСЛАТЬ СООБЩЕНИЕ.
Существуют две основные категории задач: пользовательские и задачи ОС. Все задачи выполняются в непривилегированном режиме. Такая реализация задач ОС упрощает их отладку, обеспечивает раннюю диагностику ошибок системы и препятствует распространению этих ошибок.
Процессорный приоритет задач ОС выше приоритета любой пользовательской задачи. Уникальные идентификаторы закреплены за задачами ОС. Существует категория задач ОС, которая не использует векторные регистры.
Существует ряд программ ОС, для выполнения которых требуется привилегированный режим. К ним относятся программы управления оперативной памятью, массовой памятью, дисковой и т.д. Поэтому эти программы оформляются в виде "псевдозадач". Псевдозадачи имеют собственные уникальные идентификаторы, они взаимодействуют с другими задачами, используя примитивы обмена сообщениями, но в отличие от обычных задач выполняются в привилегированнном режиме, не имеют своего изолированного адресного пространства и виртуального комплекта основных и промежуточных регистров.
Категория псевдозадач позволяет разгрузить ядро от таких функций, как управления задачами, собственно обработка прерываний, управление оперативной памятью. Функциями ядра остаются только управление передачей сообщений, управление процессором, временем и дешифрация прерываний. Обработку прерываний выполняет соответствующая псевдозадача.
Контроль в операционной системе от несанкционированного обращения децентрализован и основан на закреплении постоянных уникальных идентификаторов за системными задачами. Это дает возможность не контролировать обращения на наиболее часто
используемых трактах: задача пользователя - задача ОС, и позволяет самим системным задачам решать, кто имеет право к ним обращаться. Так, например, псевдозадача управления оперативной памятью разрешает обрашаться с командами запроса и возврата памяти только Инициатору-Терминатору, а с командами запроса и возврата буферов-только псевдозадаче обмена с внешней памятью.
Таким образом, операционная система состоит из ядра, псевдозадач и задач. Каждая из задач выполняется в изолированном адресном пространстве. Взаимодействие и синхронизация взаимодействия задач (включая псевдозадачи) осуществляется средствами обмена сообщениями. Программы ОС размещаются и в адресном пространстве пользовательской задачи. Это системные программы, реализующие методы доступа к файлам и программам, выполняющимся на внешней машине, а также программы, интерпретирующие конструкции языка управления заданиями.
3.2. Инициатор-Терминатор
Инициатор-терминатор (ИТ) является центральной задачей ОС. Основная функция ИТ - порождение задач и их завершение. В частности, именно ИТ присваивает уникальные идентификаторы вновь созданным задачам. ИТ разрешает все конфликты, возникающие в системе: из-за нехватки памяти оперативной или массовой, из-за тупиков, в результате синхрозахватов в Файловой системе.
ИТ управляет выполнением заданий. Максимальное число одновременно обрабатываемых заданий в пакетном режиме устанавливается на этапе генерации системы. Сведения о введенном в машину задании ИТ получает от задачи ВВОДа заданий в виде имени вводного справочника задания, идентификатора задания в локальной сети и паспортной информации. В паспортной информации содержится имя пользователя, шифр задания, пароль, время выполнения задания. В справочнике задания обязательно должно быть указание на файл, содержащий текст на языке управления заданиями. ИТ контролирует пароль на имя пользователя и создает задачу, в которую загружается системная программа (в виде двоичного кода) инициации задания. Функциями этой программы являются создание рабочего справочника задания, справочника выводных файлов, создание в выводном справочнике стандартного выводного файла, установление стандартной среды поиска в задаче АРХИВ.
После выполнения подготовительных действий управление пакетным заданием входит в цикл обработки, на каждом этапе которого выполняется определеннная программа в виде двоичного кода (шаг задания). Имя программы передается от завершившегося предыдущего шага при обращении от него к ИТ с командой "Выполни шаг".
Последовательность шагов задания, которые необходимо выполнить, описывается на языке управления заданиями. Первым шагом в этой последовательности является трансляция этого описания. Для выполнения каждого шага создается задача.
ИТ заканчивает выполнение текущего шага ликвидацией задачи. При возникновении ошибок во время выполнения очередного
шага управление передается программе обработки исключительных ситуаций, выполняющейся в том же адресном пространстве, что и задача. Программа обработки исключительных ситуаций либо принимает меры по дальнейшему выполнению задания, либо заканчивает выполнение задания командой "Конец задания". В случае истечения интервала времени, выделенного для выполнения задания, управление передается Инициатору-Терминатору, и он аварийно заканчивает задание.
Получив команду "Конец задания", ИТ ликвидирует задачу выполнения шага, выдавшую эту команду, и запускает стандартный шаг терминации задания. Эта задача уничтожает рабочие файлы и справочники в файловой системе, отправляет выводные файлы, отмеченные в справочнике выводных файлов, на соответствующую внешнюю машину. Задание выполнено.
Основными командами, с которыми ИТ обращается к другим компонентам ОС при выполнении пакетного задания, являются запрос и освобождение оперативной памяти (к псевдозадаче Управления оперативной памятью ), создание и ликвидация задачи (к псевдозадаче управления задачами).
Удовлетворение запроса на оперативную память может быть отложено до момента освобождения памяти другой задачей. Задача управления памятью ведет очередь неудовлетворенных запросов.
Одной из важных функций при обработке задания является управление контрольными точками - необходимым средством для решения больших задач в пакетном режиме.
Контрольные точки позволяют продолжить выполнение задания с последней контрольной точки в случае отказов аппаратуры ОМ или ОС. Заказ на образование контрольных точек устанавливается специальным обращением со стороны задачи к ИТ, и задание продолжает выполняться с контрольными точками либо до выдачи команды конца работы с контрольными точками, либо до конца выполнения задания. При задании режима контрольных точек может быть установлен циклический интервал времени, по истечении которого каждый раз автоматически будет производиться установка контрольной точки. Если интервал времени не задается, то установка контрольных точек производится только по явным командам от пользовательских задач. В обоих случаях контрольная точка будет устанавливаться между шагами задания.
При установке контрольной точки ИТ останавливает задачу обращением "Остановить задачу" к псевдозадаче управления задачами. В ответ ИТ получает информацию о состоянии задачи - идентификаторы тех задач, ответы от которых ждет данная задача. Задаче с контрольными точками разрешается общаться только с системными задачами АРХИВ, ОБМЕНМД, ОБМЕНМП. ИТ сообщает этим задачам идентификатор задачи пользователя, для которой строится контрольная точка. Задачи ОБМЕНМД и ОБМЕНМП заканчивают обмены, заказанные данной задачей.
Получив ответы от обменнных задач и задачи АРХИВ, ИТ запускает задачу ЖУРНАЛ. ЖУРНАЛ, опрашивая системные задачи, заносит в файл следующие записи: список открытых файлов, установленная среда поиска (информация от задачи АРХИВ), время выполнения, состояние задачи, состояние каналов связи, состояние регистров и оперативной памяти задачи (информация от псевдозадачи управления задачами), паспортная информация ( от Инициатора-Терминатора).
Получив управление от задачи ЖУРНАЛ, ИТ сообщает задаче АРХИВ о построении контрольной точки для данной задачи. АРХИВ приводит в согласованное состояние файл-журнал и модифицированные файлы той задачи, для которой строится контрольная точка(см. 3.3.8). После этого ИТ возобновляет выполнение задачи пользователя - выдает команды "Продолжить задачу" для псевдозадачи управления задачами и "Продолжить работу" для задачи АРХИВ.
Механизм контрольных точек используется при разрешении конфликтов по нехватке массовой памяти. ИТ выбирает одну из задач, попавших в тупик из-за нехватки массовой памяти, и устанавливает для нее контрольную точку. После построения контрольной точки задача ликвидируется и освобождается массовая и оперативная память.
Продолжение выполнения с контрольной точки происходит после отказов ОМ и ОС, либо после разрешения конфликта по массовой памяти. ИТ запрашивает оперативную память под задачу (ее размер имеется в файле-журнале), создает задачу и запускает задачу ЖУРНАЛ для действий, обратных построению контрольной точки. Журнал сообщает задачам ОБМЕНМД, ОБМЕНМП и АРХИВ информацию, характеризующую задачу пользователя; информирует псевдозадачу управления задачами о состоянии задачи, времени выполнения, состоянии каналов связи; заполняет в соответствии с содержимым файла-журнала память, в которой хранятся копии регистров, и собственно саму оперативную память задачи.
Получив управление от задачи ЖУРНАЛ, ИТ продолжает выполнение задачи пользователя - выдает команды: "Продолжить задачу" для псевдозадачи управления задачами и "Продолжить работу" для задач ОБМЕНМД, ОБМЕНМП и АРХИВ.
3.3. Файловая система
Функциями файловой системы (ФС) ОС ОМ являются:
-
хранение объектов ФС на внешней памяти и перемещение объектов между уровнями внешней памяти;
-
именование объектов;
-
автоматическое распределение многоуровневой внешней памяти;
-
защита объектов от несанкционированного доступа;
-
синхронизация доступа к объектам;
-
сохранность объектов при сбоях и отказах;
-
реализация различных методов доступа к файлам.
3.3.1. Внешняя память ОМ.
Объекты файловой системы хранятся на внешней памяти ОМ. Внешняя память ОМ состоит из дисковой и массовой памяти.
Дисковая память состоит из совокупности несъемных дисков, управляемых контроллерами (или дисковыми серверами), которые подключены к основной машине через каналы (пропускная способность 10 Мгб/сек).
Память на дисках представляет собой последовательность блоков по 512 64-х разрядных слов. Контроллер дисковой памяти (или дисковый сервер) реализует команды обмена между оперативной памятью основной машины и блоками диска. Одной операцией обмена (записи или чтения) можно задать обмен с совокупностью смежных блоков на диске.
Наблюдается существенный дисбаланс в соотношении скорости процессора основной машины и темпом обмена с дисками.