![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
При большом разнообразии устройств ввода-вывода, обладающих существенно различными характеристиками, иерархическая структура подсистемы ввода-вывода позволяет соблюсти баланс между двумя противоречивыми требованиями. С одной стороны, необходимо учесть все особенности каждого устройства, а с другой стороны, обеспечить единое логическое представление и унифицированный интерфейс для устройств всех типов. При этом нижние слои подсистемы ввода-вывода должны включать индивидуальные драйверы, написаные для конкретных физических устройств, а верхние слои должны обобщать процедуры управления этими устройствами, предоставляя общий интерфейс если не для всех устройств, то по крайней мере для группы устройств, обладающих некоторыми общими характеристиками, например, для принтеров определенного производителя или для всех матричных принтеров и т. п.
Многослойность структуры, безусловно, облегчает решение большинства перечисленных в предыдущем разделе задач подсистемы ввода-вывода. Обобщенная структура подсистемы ввода-вывода показана на рис. 4.9 [28]. Как видно из рисунка, программное обеспечение подсистемы ввода-вывода делится не только на горизонтальные слои, но и на вертикальные. В данном случае в качестве примера приведены три вертикальные подсистемы управления дисками, графическими устройствами и сетевыми адаптерами. Естественно таких подсистем может быть больше. Например сюда можно добавить подсистему управления текстовыми терминалами или подсистему управления специализированными устройствами, такими как аналого-цифровые и цифро-аналоговые преобразователи.
В каждой вертикальной подсистеме несколько слоев модулей. Нижний слой образует аппаратные драйверы, управляющие аппаратурой внешних устройств, осуществляя обмен байтами и блоками байтов. Как правило, этот слой программного обеспечения не имеет дела с вопросами логической организации данных, например с файлами или сложными графическими объектами. Функции вышележащих слоев в значительной степени зависят от типа вертикальной подсистемы.
Наряду с модулями, отражающими специфику внешних устройств, в подсистеме ввода-вывода имеются модули универсального назначения. Эти модули организуют согласованную работу всех остальных компонентов подсистемы ввода-вывода, взаимодействие с пользовательскими процессами и другими подсистемами ОС. Эти организующие функции распределены по всем уровням, образуя оболочку, называемую менеджером ввода-вывода.
Верхний слой менеджера составляют системные вызовы ввода-вывода, которые принимают от пользовательских процессов запросы на ввод-вывод и переадресуют их отвечающим за определенный класс устройств модулям и драйверам, а также возвращают процессам результаты операций ввода-вывода. Таким образом, этот слой поддерживает пользовательский интерфейс ввода-вывода, создавая для прикладных программистов максимум удобств по манипулированию внешними устройствами и расположенными на них данными.
Нижний слой менеджера реализует непосредственное взаимодействие с контроллерами внешних устройств, экранируя драйверы от особенностей аппаратной платформы компьютера - шин ввода-вывода, системы прерываний и т. п. Этот слой принимает от драйверов запросы на обмен данными с регистрами контроллеров в некоторой обобщенной форме с использованием независимых от шины ввода-вывода адресации и формата, а затем преобразует эти запросы в зависящий от аппаратной платформы формат.
Диспетчер прерываний может входить в состав менеджера ввода-вывода или представлять отдельный модуль ядра. В последнем случае менеджер ввода-вывода выполняет для диспетчера прерываний первичную обработку запросов прерываний, передавая диспетчеру обобщения сведения об источнике запроса.
Важной функцией менеджера ввода-вывода является создание некоторой среды для остальных компонентов системы, которая бы облегчала их взаимодействие друг е другом. Эта задача решается созданием стандартного внутреннего интерфейса взаимодействия модулей ввода-вывода. Это облегчает включение новых драйверов и файловых систем в состав ОС. Кроме того, разработчики драйверов и других программных компонентов освобождаются от написания общих процедур, таких как буферизация данных и синхронизация нескольких модулей между собой при обмене данными. Все эти функции берет на себя менеджер ввода-вывода.
Еще одной функцией менеджера ввода-вывода является организация взаимодействия модулей ввода-вывода с модулями других подсистем ОС, таких как подсистема управления процессами, виртуальной памятью и другими.
Задачи файловой системы. Основные понятия
Файл – поименованная совокупность данных, хранящаяся на каком-либо носителе информации.
Поле – основной неделимый элемент данных. Характеризуется длиной и типом данных. Длина может быть фиксирована или переменна внутри файла. Из полей формируется структура, которая называется записью.
Запись представляет набор связанных полей. Запись воспринимается прикладной программой как единое целое; при обработке записи возможно изменение тех или иных ее полей.
Файл представляет собой совокупность однородных записей. Слово «однородность» говорит о том, что они принадлежат какой-то одной предметной области. С позиции приложения и позиции пользователя файл представляет собой единое целое. Обращение к нему осуществляется по имени.
Файловая система является частью ОС системы и включает:
¾ совокупность всех файлов на различных носителях информации
¾ наборы структур данных, используемых для управления файлами (каталоги файлов, таблицы распределения свободного и занятого пространства носителей информации)
¾ комплекс системных программных средств, реализующих различные операции над файлами (создание, чтение, запись, уничтожение, изменение свойств)
Файл имеет ряд признаков, которые его характеризуют. Эти признаки называются атрибутами файла, их порядка 16.
Одним из таких атрибутов является тип файлов. Выделяют следующие типы: обычный, каталог, специальный тип, исполняющая программа.
Среди других атрибутов можно выделить: текущий размер файла; владелец файла; системный, архивный или скрытый файл.
Обычные файлы содержат информацию, занесенную пользователем, системой или прикладной программой.
Каталоги – это системные файлы, поддерживающие структуру файловой системы. Они содержат системную справочную информацию о наборе файлов, который был сформирован пользователем для отражения какой-то предметной области.
В каталоги могут входить файлы и другие каталоги. При таком построении формируется древовидная структура.
Специальные файлы – фиктивные файлы, которые ассоциированы с устройствами ввода-вывода. Они используются для унификации доступа к последующим устройствам ввода-вывода.
Именованные конвейеры (каналы) – циклические буферы, позволяющие выходной файл одной программы соединить со входным файлом другой программы.
Отображаемые файлы – это обычные файлы, отображаемые на адресное пространство процессора по указанному виртуальному адресу.
Дата публикования: 2014-11-04; Прочитано: 740 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!