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

       

Базовые объекты ОС


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

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

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

Таким образом, базовыми объектами ОС являются задачи и сообщения как средство взаимодействия между задачами.

Рассмотрим примитивы управления этими объектами.Примитивы реализуются ядром ОС.

Существуют следующие примитивы  обмена  сообщениями:

1. ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО (Nз,Nвх,СООБЩ,ОТВЕТ)

где Nз  - уникальный идентификатор задачи-получателя сообщения, Nвх - идентификатор входа в задаче-получателе, СООБЩ - адрес сообщения и его длина, ОТВЕТ - адрес буфера, куда будет помещен ответ, и его длина.

2. ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО (Nз,Nвх,СООБЩ,ОТВЕТ) <ИДС>

где Nз - уникальный идентификатор задачи-получателя сообщения, Nвх - идентификатор входа в задаче-получателе, СООБЩ - адрес сообщения и его длина, ОТВЕТ - адрес буфера, куда будет помещен ответ, и его длина. ИДС - идентификатор отправленного сообщения (выходной параметр).

3. ПРИНЯТЬ СООБЩЕНИЕ (Nв1,...,Nвn,СООБЩ) <ИДС,Nвi>

где Nв1,...,Nвn - список входов в задачу,  по которым  разрешен прием сообщений.  СООБЩ - адрес буфера и его длина,  куда будет помещено сообщение.  ИДС - идентификатор  принятого  сообщения, Nвi - идентификатор входа, по которому было получено сообщение.


ИДС и Nвi - выходные параметры.

4. ПОСЛАТЬ ОТВЕТ (ИДС, ОТВЕТ)

где ИДС - идентификатор принятого сообщения, на который посыла­ется ответ. ОТВЕТ - адрес и длина посылаемого ответа.

5. ЖДАТЬ ОТВЕТА (ИДС1,...,ИДСn) <ИДСi>

где ИДС1,...,ИДСn - список идентификаторов отправленных сообще­ний, по которым ожидаются ответы. ИДСi - идентификатор отправ­ленного сообщения, на который получен ответ.

6. ЖДАТЬ ВРЕМЯ (Т)

где Т - интервал времени, истечения которого ожидает выдавшая примитив задача.

Кроме перечисленнных примитивов возможны примитивы, кото­рые составляют комбинации примитивов 3, 5 и 6. Существует разновидность примитива 4 - ПОСЛАТЬ ОТРИЦАТЕЛЬ­НЫЙ ОТВЕТ - в результате выполнения которого будет сгенерирова­на исключительная ситуация в задаче-отправителе. Семантически примитивы 1-5 соответствуют конструкциям: вызов подпрограммы, вход в подпрограмму и возврат из нее.

Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ СИНХРОННО, отк­ладывается до момента выдачи примитива ПОСЛАТЬ ОТВЕТ ее зада­чей-партнером и переписи ответа в буфер под ответ. Соответс­твенно, задача, давшая примитив ПРИНЯТЬ СООБЩЕНИЕ, либо получа­ет сообщение, если оно есть, либо откладывается до тех пор, пока от одного из ее партнеров не поступит примитив ПОСЛАТЬ СООБЩЕНИЕ и сообщение не перепишется в буфер. Задача, давшая примитив ПОСЛАТЬ СООБЩЕНИЕ АСИНХРОННО, будет продолжать свое выполнение до тех пор, пока не будет выдан явный примитив ожи­дания сообщения, ответа, времени либо их комбинации. Перепись сообщения из адресного пространства задачи - отправителя в адресное пространство задачи-получателя происходит без промежу­точных системных буферов, поэтому для корректной работы повтор­но использовать память, в которой располагается сообщение, можно только  после  получения  соответствующего  ответа на данное сообщение.

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


Уникальные идентификаторы отправленных и полученных сообщений вырабатываются при выполнении примитива ПОСЛАТЬ СООБЩЕНИЕ.

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

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

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

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

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

используемых трактах: задача пользователя - задача ОС, и позво­ляет самим системным задачам решать, кто имеет право к ним обращаться. Так, например, псевдозадача управления оперативной памятью разрешает обрашаться с командами запроса и возврата памяти только Инициатору-Терминатору, а с командами запроса и возврата буферов-только псевдозадаче обмена с внешней памятью.

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


Содержание раздела