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

Вопрос 35. Четыре слоя по. Функции слоя ос, независимых от устройств

Для решения имеющихся проблем целесообразно разделить программное обеспечение ввода – вывода на четыре слоя:

  1. Обработка прерываний

  2. Драйверы устройств

  3. Слой ОС независимый от устройств

  4. Пользовательский слой программного обеспечения

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

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

Весь зависимый от устройства код помещается в драйвер устройства.

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

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

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

  1. Обеспечение общего интерфейса к драйверам устройств

  2. Именование устройств

  3. Защита устройств

  4. Обеспечение независимого размера блока

  5. Уведомление об ошибках

Вопрос 36. Спулинг. Механизм прямого доступа внешних устройств к памяти.

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

Спулинг - это способ работы с выделенными устройствами в многозадачной системе.

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

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

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