logo
Лекции_по_ОС / ТОС_11_п_вв_выв_слайды

Интерфейс доступа низкого уровня

Часть символь­ных драйверов служит в качестве интерфейса доступа низкого уровня к блочным устройствам, таким как диски или накопители на магнитных лентах.

Большинство таких драйверов отличаются от соответствующих им драйверов блочных устройств характером выполнения операций ввода/вывода.

В то время как драйверы блочных устройств производят обмен данными с буферным кэшем,

драйверы доступа низкого уровня обеспечивают обмен данных непосредственно с адресным пространством процесса.

Отсутствие посредника в виде буферного кэша устраняет необходимость в совершении дополнительных операций копирования (драйвер — буферный кэш - буфер процесса), но в то же время лишает процесс услуг кэширования данных предоставляемых операционной системой.

Интерфейс доступа низкого уровня используется многими системными утилитами обслуживания файловой системы, например, fsck(lM), а также рядом приложений, работающих с накопителями на магнитной ленте,

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

На рис. 5.8 показаны отличия в характере выполнения операции ввода/вывода с блочными устройствами в случаях, когда запрос формируется при участии буферного кэша (драйверы блочных устройств) и когда манипуляция буфером производится драйвером самостоятельно (драйверы низкого уровня).