Н. К. Токжигитова а ционные системы



Pdf көрінісі
бет78/79
Дата31.01.2022
өлшемі3,3 Mb.
#116517
түріУчебное пособие
1   ...   71   72   73   74   75   76   77   78   79
Байланысты:
book 0846

синхронной форме. 

^

Последняя  проблема  состоит  в  том,  что  одни  устройства

 

являются разделяемыми (диски), а другие -  выделенными (принтеры).

 

Наличие  выделенных  устройств  создает  для  операционной  системы

 

некоторые проблемы.



Для  решения  поставленных  проблем  целесообразно  разделить

 

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



- обработка прерываний;

- драйверы устройств;

- независимый от устройств слой операционной системы;

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

64



Приложения

Библиотечные

функ

III

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



Программные средства

 

обращения к подсистеме

 

ввода-вывода

Обработка системных вызовов

Система буферизации 

данных


Подсистема

ввода-вывода

ОС

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

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

3 «тросы 



гф*рыиннк

 

от упрогогп



Камшди

упроляны


устройствами

Дшкхк

Рисунок  25  — Многоуровневая  организация  подсистемы  ввода- 



вывода

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

Прерывания  должны  быть  скрыты  как  можно  глубже  в  недрах 

операционной  системы,  чтобы  как  можно  меньшая  часть  ОС  имела с 

ними 

дело.  Наилучший  способ  состоит  в  разрешении  процессу, 



инициировавшему  операцию 

ввода-вывода,  блокировать  себя  до 



завершения операции и  наступления прерывания.

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

Весь 


зависимый  от  устройства  код

 

помещается  в  драйвер  устройства.  Каждый  драйвер  управляет

 

устройствами одного типа или, может быть, одного класса.

В  операционной  системе  только  драйвер  устройства  знает  о

 

конкретных особенностях какого-либо устройства.



Драйвер 

устройства 

принимает 

запрос 

от 

устройств

 

программного  слоя  и  решает,  как  его  выполнить.  Если  драйвер  был

 

свободен  во  время  поступления  запроса,  то  он  начинает  выполнять

 

запрос  немедленно,  т.е.  посылает  контроллеру 



определенную

 

последовательность  команд.  Если  же  он  был  занят  обслуживанием

65



другого  запроса,  то  вновь  поступившим  запрос  присоединяется  к

 

очереди  уже  имеющихся  запросов,  и  он  будет  выполнен,  когда

 

наступит его очередь.

7.4 Независимый от устройств, слой операционной системы

Большая  часть  программного обеспечения  ввода-вывода является

независимой  от  устройств.  Точная  граница  между  драйверами  и

 

независимыми  от устройств  программами  определяется  системой,  так

 

как  некоторые  функции,  которые  могли  бы  быть  реализованы

 

независимым  способом,  в  действительности  выполнены  в  виде

 

драйверов для  повышения эффективности или по другим причинам.

Типичными  функциями  для  независимого  от  устройств  слоя

 

являются:



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

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

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

- обеспечение независимого размера блока;

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

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

- распределение и освобождение выделенных устройств;

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

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

Хотя  большая  часть  программного  обеспечения  ввода-вывода

 

находится  внутри  ОС,  некоторая  его часть содержится  в библиотеках,

 

связываемых 

с 

пользовательскими 

программами. 

Стандартные

 

библиотеки  ввода-вывода содержат большое число процедур, которые

 

выполняют  ввод-вывод  и  работают  как  часть  пользовательской

 

программы  [6].



В  современных  ОС  обеспечением  ввода-вывода  занимается

 

подсистема  спулинга  (spooling).  Спулинг  -   это  способ  работы  с

 

выделенными 

устройствами 

в 

мультипрограммной 

системе.

 

Рассмотрим  типичное  устройство,  требующее  спулинга  -   строчный

 

принтер. 

Хотя 

технически 

легко 

позволить 

каждому

 

пользовательскому  процессу  открыть  специальный  файл,  связанный  с

 

принтером,  такой  способ  опасен  из-за  того,  что  пользовательский

 

процесс  может  монополизировать  принтер  на  произвольное  время.

 

Вместо  этого  создается  специальный  процесс-монитор,  который

 

получает  исключительные  права  на  использование  этого  устройства.

 

Также  создается  специальный  каталог,  называемый  каталогом

 

спулинга. Для того, чтобы  напечатать файл, пользовательский процесс

66



помещает  выводимую  информацию  в  этот  файл  и  помещает  его  в

 

каталог  спулинга.  Процесс-монитор  по  очереди  распечатывает  все

 

файлы, содержащиеся в каталоге спулинга.

1

 



Контрольные вопросы

1. Какова  одна  из  главных  функций  ОС  связанная  с  вводом-

 

выводом?



2. На какие типы делятся устройства ввода-вывода?

3. В  чем  различия  блок-ориентированных  устройств  от  байт-

 

ориентированных? Назовите примеры этих устройств?



4. Каковы функции контроллера?

5. В  чем  состоит  основная  идея  организации  программного

 

обеспечения ввода-вывода?



6. Каковы вопросы программного обеспечения ввода-вывода?

7.  Что 

представляют 

собой 



Достарыңызбен бөлісу:
1   ...   71   72   73   74   75   76   77   78   79




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет