Архитектуры, основанные на портах

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

Архитектура ОС Windows 2000/2003/ХР/7

Рис. 2.8. Архитектура ОС Windows 2000/2003/ХР/7

Клиент-серверная архитектура ОС

Рис. 2.9. Клиент-серверная архитектура ОС

Системный вызов

і

Приложение

Системный вызов

РЕЖИМ ПОЛЬЗОВАТЕЛЯ

СЕРВЕР ОС

Приложение

Переключение режимов работы в макроядерных

Рис. 2.10. Переключение режимов работы в макроядерных

и микроядерных ОС

Организация ядра операционной системы SUE

Рис. 2.11. Организация ядра операционной системы SUE

Механизмы типа вызова процедуры или подпрограммы относятся ко второй группе; они передают от одной части системы к другой и управление, и данные. К третьей группе относятся механизмы портов - это методы передачи данных без передачи управления [17].

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

Порт - это просто текущий список входных сообщений (список параметров) для подсистемы. Каждая подсистема рассматривается как асинхронный процесс, т.е. все подсистемы работают параллельно. Если одна из них хочет передать некоторые данные другой, она посылает их во входной порт этой другой подсистемы. Если подсистема готова обрабатывать какие-то данные, она читает их из одного из своих входных портов. Для организации такой связи используются операции ПОСЛАТЬ и ПОЛУЧИТЬ.

Механизм портов увеличивает независимость подсистем, освобождая их от временной зависимости друг от друга. Более того, подсистемы не должны даже знать о взаимном расположении. Только механизм посылки-получения (почта) должен знать расположение каждой подсистемы (например, в той же виртуальной памяти, в другой виртуальной памяти, в другом компьютере и т.д.). На рис. 2.12 изображена подсистема программной системы (процесс), имеющая несколько первичных входных портов, по одному для каждой функции процесса. Процесс может выполнять команды типа ПОЛУЧИТЬПОРП (А, В, С), на основании чего из входного порта ПОРТ1 выбирается очередное сообщение и выделенные из него аргументы присваиваются параметрам А, В, С.

Процесс может послать данные другим процессам в результате выполнения команды ПОСЛАТЬ _УПРДАННЫМИ (.X, У), по которой из аргументов X, У формируется сообщение, пересылаемое в порт по имени УПРДАННЫМИ. У процесса может быть и другой набор портов - вторичные порты. Они используются для связи с подчиненными процессами. Например, подчиненный процесс может поставлять данные из базы данных.

Архитектура системы на основе портов прямой

Рис. 2.12. Архитектура системы на основе портов прямой

конфигурации

Процесс, показанный на рис. 2.12, - часть прямой конфигурации. Каждый такой процесс осуществляет связь посылкой сообщения прямо во входной порт другого процесса. На рис. 2.13 изображен процесс, являющийся частью непрямой конфигурации. Процессы этого типа имеют выходные порты. Вместо того чтобы посылать сообщения во входные порты других процессов, они посылают сообщения в свои выходные порты. Выходной порт связывается с входными портами других процессов посредством специальных указаний (например, в компьютерах третьего поколения, на языке управления заданиями). Физически выходные порты не существуют, это абстрактные наименования для входных портов других процессов.

На рис. 2.14 приведена схема информационно-поисковой системы, использующей прямую конфигурацию [17]. Управление терминалами-это непрерывно выполняемый процесс, который опрашивает терминалы пользователей и, получив команду с терминала, посылает сообщение подсистеме интерпретации команд. Сообщение состоит из двух аргументов: идентификатора терминала и команды. Управление терминалом выполняет также функцию выдачи на терминал выходных строк. Получив команду с терминала, подсистема интерпретации команд использует две подчиненные системы, чтобы подготовить ключ для поиска и осуществить поиск в базе данных.

Первичные

входные

порты

Первичные

выходные

порты

Рис. 2.13. Архитектура системы на основе портов непрямой

конфигурации

Информационно-поисковая система прямой конфигурации

Рис. 2.14. Информационно-поисковая система прямой конфигурации

 
< Пред   СОДЕРЖАНИЕ     След >