Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по конспектам 2011.docx
Скачиваний:
13
Добавлен:
21.04.2019
Размер:
967.53 Кб
Скачать

59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)

Является альтернативой локальному вызову процедур. Характерной чертой LPC является: ассиметричность (одна из сторон является инициатором) и асинхронность. RPC сложнее - разное АП процессов. В этом случае RPC не долж. содерж. указ. на нестековую память и необходимо (как правило) копир. с одного компьютера на другой. RPC обязат. использ. нижележ. с-му транспорта , но это не д.б. очевидным для польз. В выводе принимают участие 2 процесса и возм. неоднородн средств ОС , сред , языков программирования для разных абонентов сети.

60. Система ввода-вывода в Win nt

Часть исполнительной системы, получающая запросы от процессов пользователя либо режима пользователя, либо ядра, и передающая эти запросы устройствам ввода-вывода в преобразованном виде.

Основная функция – управление всем устройствами компьютера. Устройства – байт-ориентированные, блок-ориентированные, виртуальные.

Существуют устройства, которые не принадлежат ни одному типу (терминал, сетевой адаптер).

Специальная подсистема ввода/вывода (иерархичная архитектура).

Контроллеры устройств. Выполняют простейшие функции. Своя система команд (несколько десятков).

Используют регистры для взаимодействия с процессором – часть общего АП (внутренние обмены). Иначе – отдельное АП (внешние обмены –in/out).

ОС – В/В в контроллер (макрокоманды), контроллер, используя внутренний счётчик команд, разлагает их на команды устройства. Специальные регистры – порты. Взаимодействие происходит через них.

Организация ПО В/В

  • Необходимо обеспечить экранирование от особенностей аппаратуры

  • Необходимо обеспечить удобный интерфейс

  • Независимость от устройств (программа не должна зависеть от типа устройств)

  • Единообразие наименования

  • Обработка ошибок на всех уровнях (с низких к верхним)

  • Блокирующие/неблокирующие (синхронные (верхний)/асинхронные (низкий)) передачи

  • Использование буферизации

  • Разделяемые и выделенные устройства

Слои ПО

- обработчики прерываний (скрыты и глубоко в системе)

- драйверы устройств (зависящий от устройства слой)

- независящий от устройства слой ОС (программный)

- пользовательский слой ПО (функции для реализации обмена с устройствами)

Основная функция обработчика прерывания (!) – блокирование процесса (разблокирование по некоторому событию).

Этапы функционирования драйверов

  1. Принять от устройства запрос.

  2. Свободен – приступил к задаче. Занят – отложен в очередь.

  3. Реализация В/В (переход к конкретной форме запроса).

  4. Реализация каждого запроса на уровне контроллера.

  5. Блокировка процесса (либо синхронная, либо асинхронная) до окончания заданной операции.

  6. Разблокировка процесса по факту некоторого события.

  7. Выполнение следующих действий

Уникальная часть драйвера невелика – остальное можно получить автоматически (генерация кода).

Функции независящего от устройств слоя ОС

- общий интерфейс к драйверу устройств

- наименование устройств

- защита устройств

- буферизация

- распределение памяти на внутренних устройствах

- уведомление об ошибках ..

- распределение памяти в блок-ориентированных устройствах

Пользовательский слой ПО – библиотеки, API.

Ещё одна часть верхнего слоя – спуллинг – способ работы с выделенными устройствами в мультипрограммной системе.

Функция – чтобы не было монополизации пользования устройствами. Обычно есть специальный процесс – монитор.

Сегодня ФС входит в СВВ (но не усегда). ФС в NT, получается, написана как драйвер.