Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Систематизация внешних устройств




Система типов устройств является не полной и нестрого выдержанной. Обычно устройства принято разделять по типу интерфейса на:

1. Символьные – модем, клава

2. Блочные – магнит, оптический привод

3. Сетевые – сетевые адаптеры, видеокарты, дисплеи

Такое деление является условным. В одних ОС сетевые устройства могут не выделяться в отдельную группу, в другие отдельные группы составляют видеоустройства и звуковые. Некоторые группы могут разбиваться на подгруппы.

Рассмотрим блочные и символьные устройства.

Символьные Блочные
Передают по 1 байту Передают информацию блоками (магнитные и оптические диски)
Устройства ввода/вывода информации, которые генерируют входные данные (мышь, клава, джостик) Устройства вывода информации, у которых данные выводятся в виде линейного потока (принтер, звуковые карты) Символьные устройства могут ввести и вывести данные Для блочных устройств характерна операция чтения информации, а также для устройств прямого доступа, т.е. операции поиска требуемого поиска информации

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

Помимо функции read, write, geek(поискать) (характерные для блочных устройств), get(взять) и put(положить) (для символьных устройств)в состав интерфейса включены следующие дополнительные функции:

1. Функция инициализации open

2. Функция временного завершения работы с устройством Cloze

3. Функция опроса состояния устройств poll

4. Функция остановки драйвера, который вызывается для остановки ОС или выгрузки драйвера из памяти halt

Существует еще ряд действий выполнение которых возложено на драйвер.

 

Функции базовой подсистемы

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

Системные вызовы для выполнения операции ввода/вывода вызова функции необходимого драйвера устройств.

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

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

Планирование запросов на последовательное этих операций.

Блокирующие, не блокирующие и асинхронные системные вызовы.

Все системные вызовы связаны с операцией ввода/вывода. Можно разбить на 3 группы по способам реализации взаимодействия процесса и устройства ввода/вывода:

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

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

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

Разница между не блокирующим и асинхронным вызовами.

Не блокирующий системный вызов для выполнения операции reed вернется немедленно, но может прочитать запрошенной количество байтов, часть их или вообще ничего. Асинхронный вернется немедленно, но требуемое количество байтов рано или поздно будет прочитано в полном объеме.

Буферизация и кэширование

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

Существует 3 причины приводящие к исполнению буфера в базовую подсистему ввода/вывод:

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

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

3. Связана с необходимостью копирования информации из приложений кот осуществляют ввод/вывод в буфер ядра ОС и обратно. допустим некий пользовательский процесс пожелал вывести информацию из своего адресного пространства на внешнее устройство для этого он должен выполнить системный вызов передав в качестве параметров адрес области памяти где расположены данные и их объем. Если внешнее устройство занят, о то к моменту его освобождения содержимое нужной области может оказаться испорченной.Что бы избежать этого(подобной ситуации) проще всего в начале работы системного вызова скопировать необходимые данные в буфе ядра ОС постоянно находящийся в оперативной памяти и выводить их на устройство из этого буфера. Под КЭШем обычно понимают область быстрой памяти содержащую копию данных расположенных в более медленной памяти и предназначенную для ускорения работы вычислительно системы. Базовой подсистемой ввод/вывода не следует смешивать два этих понятия буферизация и кэширование. Хотя за частую для выполнения этих функций отводится одна и та же область памяти. Буфер содержит единственный набор данных существующий в системе, в то время как КЭШ содержит копию данных существующих где ни то еще. Так буфер используемой базовой системой для копирования данных из пользовательского пространства процесса при выводе на диск может применяться как КЭШ для этих данных. Функции буферизации и кэширования не обязательно должны быть локализованы(размещены) в базовой системе ввода/вывода. Они могут быть частично реализованы в драйверах и в контроллерах устройства скрытно по отношению к базовой подсистеме.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...