32 
 
соизмеримой  с  ОЗУ.  Буферизация  решает  и  другую  задачу  –  сократить 
количество  реальных  обращений  к  устройствам  за  счет  кэширования 
(дисковый кэш) 
Разделение  устройств  и  данных  между  процессами.  Устройства 
ввода-вывода  могут  предоставляться  процессам  в  монопольное  или 
совместное использо вание.  Устройства типа "диск" позволяют разграничить 
доступ  с  точностью  до  отдельных  порций  данн ых,  со  своим и  правам и. 
Другие устройства, например терминал, используется только в монопольном 
режиме.  П ринтер  не  выделяется  в  монопольное  использование,  но 
разграничивает порции выдач разных процессов  
Удобный  логический  интерфейс.  Практически  все  современные  ОС 
поддерживают  в  качестве  основного  логического  интерфейса  файловую 
модель  устройств  ввода-вывода,  когда  любое  устройство  – 
последовательность  байтов,  с  которым и  можно  работать  с  помощью 
системных вызовов. На этой базе строится более  сложная модель устройств 
ввода-вывода, с учетом их собственной специфики. 
Простое  включение  новых  драйверов.  Достоинством  любой 
современной  ОС   является  разнообразие  набора  драйверов  для  наиболее 
популярных устройств и поддержка нескольких файловых систем 
Удобный интерфейс  между  драйверами  и другими  компонентами ОС, 
необходим для того, чтобы драйверы писали не только разработчики ОС, но 
и производители устройств. 
Существуют два типа интерфейсов:  
• “драйвер-ядро”  (Driver  Kernel  Interface,  DKI)  для  взаимодействия  с 
ядром ОС;  
• интерфейс  “драйвер-устройство”  (Driver  Device  Interface,  DDI)  для 
взаимодействия с контроллером.  
Для поддержки разработки драйверов обычно выпускается пакет DDK 
(Driver Development Kit) 
Поддержка  нескольких  файловых  систем.  Данные  на  дисках 
организуются в файловые системы. Свой ст ва   файловой  системы во  многом 
определяют  свойства  ОС  (отказоустойчивость,  быстродействие,  емкость  и 
пр.). Популярные системы мигрируют из одной ОС  в другую (например, FAT 
мигрировала из MS DOS в OS/2, MS Windows, Unix). 
Поддержка синхронных и асинхронных операций ввода-вывода. 
Операция ввода-вывода  может  выполняться по  отношению  к  модулю, 
запросившему  операцию,  синхронно   и  асинхронно ,  т.е.  с  ожиданием 
завершения операции или без ее ожидания. 
Системные  вызовы  ввода-вывода  из  пользовательского  процесса 
выполняются  чаще  как  синхронные,  в  связи  с  тем,  что  такие  операции 
выполняются  долго  и  потоку  все  равно  придется  ждать  результата. 
Внутренние же вызовы ядр а обычно выполняются асинхрон но, для свободы 
дальнейшего поведения ОС. 
Менеджер  ввода-вывода.  В  подсистеме  ввода-вывода  есть  модуль