Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции_операционные системы (Информатики)

.pdf
Скачиваний:
57
Добавлен:
06.06.2015
Размер:
3.81 Mб
Скачать

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

процессором. Часто SRAM-память так и называют кэш-памятью.

Эта кэш-память может быть многоуровневая (3-4 уровня кэша),

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

Во-вторых, для ускорения доступа к данным на диске, в

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

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

Суть кэширования данных в том, что из основной памяти считывается блок данных, которые с наибольшей вероятностью будут использоваться в ближайшее время. Руководствуются следующими правилами:

Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам

(пространственная локальность);

Если произошло обращение по некоторому адресу, то

следующее обращение по этому же адресу произойдет в ближайшее время (временная локальность).

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

81

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

принципу пространственной локальности.

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

1.Для чего используется виртуальная адресация?

2.Что такое виртуальное адресное пространство?

3.Какие преимущества дает использование технологии виртуальной памяти?

4.Какие существуют способы организации виртуальной памяти?

5.Для чего применяется кэширование данных? Как оно реализуется?

ГЛАВА 6. ПОДСИСТЕМА ВВОДА-ВЫВОДА

Управление всеми устройствами ввода-вывода компьютера является одной из главных функций ОС. В современных операционных системах за обмен данными с периферийными устройствами отвечает подсистема ввода-вывода.

Подсистема ввода-вывода должна:

обеспечивать эффективное управление устройствами ввода-вывода и их параллельную работу с процессором;

поддерживать простой и удобный интерфейс обращения к устройствам ввода-вывода, скрывающий от пользователя специфику работы устройств;

распределять устройства между параллельно

выполняющимися программами и разрешать конфликты.

Чтобы подсистема ввода-вывода могла беспрепятственно решать все перечисленные задачи, все операции по управлению вводом-выводом объявляются привилегированными и выполняются операционной системой только в привилегированном режиме

82

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

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

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

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

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

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

Драйвер взаимодействует с модулями ядра ОС (подсистемой ввода-

вывода, модулями системных вызовов, подсистемами управления процессами и памятью и др.) – интерфейс «драйвер-ядро» (Driver Kernel Interface, DKI). Также драйвер взаимодействует с

83

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

устройством – интерфейс «драйвер-устройство» (Driver Device Interface, DDI).

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

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

(технология Plug and Play) и динамически загружать драйверы для их обслуживания.

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

идентифицировать установленное устройство;

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

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

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

Укаждого устройства ввода-вывода имеется контроллер –

блок управления, который и взаимодействует с драйвером. Какие-то операции контроллер выполняет автономно, а для каких-то операций контроллеру нужна реакция процессора. Подсистема ввода-вывода планирует в реальном масштабе времени запуск и приостановку большого числа разнообразных драйверов так, чтобы реакция драйвера на независимые события контроллера произошла в приемлемое для работы устройства время. Но с другой стороны,

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

84

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

Чтобы минимизировать загрузку процессора задачами ввода-

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

6.2. Обмен данными с устройствами ввода-вывода

Как и другие ресурсы, устройства ввода-вывода могут давать процессам монопольный доступ, а могут совместный (разделяемый)

доступ, т.е. несколько процессов могут одновременно использовать это устройство. Конечно, в случае разделяемого использования устройства, также как и с процессором, операционная система должна организовать совместный доступ нескольких процессов так,

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

если несколько процессов обмениваются данными с диском,

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

Также операционная система должна обеспечить контроль доступа процессов к устройствам ввода-вывода путем проверки прав пользователя или группы пользователей, от имени которых запущен процесс, запросивший выполнение той или иной операции с

85

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

Контроль доступа может касаться не только устройства в целом, но и отдельных блоков данных, хранимых или отображаемых этим устройством. Например, к жесткому диску система обеспечивает контроль доступа не только в целом, но и к отдельным областям – каталогам и файлам.

Кэширование данных повсеместно используется подсистемами ввода-вывода практически во всех операционных системах. Кэширование позволяет сократить время доступа к хранимым данным и согласовать скорости обмена данными между устройствами ввода-вывода и процессами. Для кэширования данных используется не только оперативная память, но и жесткий диск.

Часто кэширование идет в специальный файл, который называют

спул-файлом (spool). Так при выводе данных на принтер для временного хранения данных, отправленных на печать, используется спул-файл на жестком диске. Для временного размещения объемных данных в контроллерах некоторых устройств предусматривается буфер для кэширования данных. Например, в видеокартах

(контроллерах графических устройств) используется буфер по объему сопоставимый с оперативной памятью.

6.3. Менеджер ввода-вывода

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

верхние слои обобщают процедуры управления этими

86

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

устройствами, предоставляя общий интерфейс для групп устройств с общими характеристиками (матричные принтеры, колонки,

принтеры определенного производителя и др.)

Отдельно следует остановиться на менеджере ввода-вывода

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

Верхний слой поддерживает пользовательский интерфейс ввода-вывода: системные вызовы ввода-вывода, которые принимают запросы на ввод-вывод от пользовательских процессов и переадресуют их соответствующим модулям подсистемы ввода-

вывода и драйверам, а также возвращают процессам результаты операций ввода-вывода.

Нижний слой менеджера непосредственно взаимодействует с оборудованием – контроллерами внешних устройств, шиной ввода-

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

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

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

Именно менеджер ввода-вывода создает стандартный внутренний интерфейс взаимодействия всех модулей ввода-вывода между собой, а также организует взаимодействие модулей ввода-

вывода с модулями других подсистем ОС – подсистемой управления

87

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

процессами, виртуальной памятью и др. Внутренний межмодульный интерфейс дает возможность расширения подсистемы ввода-вывода.

Рис. 6.1. Подсистема ввода-вывода.

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

1.Какие функции выполняет подсистемы ввода-вывода?

2.Каково назначение драйверов?

3.Как организуется обслуживание устройств ввода-вывода?

4.Какова структура менеджера ввода-вывода и назначение его основных компонентов?

ГЛАВА 7. ФАЙЛОВАЯ СИСТЕМА

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

88

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

системы хранения данных на внешних устройствах, которая

включает:

Совокупность всех файлов на диске;

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

Комплекс системных программных средств,

реализующих различные операции над файлами

(создание, чтение, запись, удаление, поиск, именование).

Перечислим основные функции файловой системы:

1.Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.

2.Распределение внешней памяти между файлами.

3.Обеспечение надежности и отказоустойчивости.

Стоимость информации может во много раз превышать стоимость компьютера.

4.Обеспечение защиты от несанкционированного доступа.

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

6.Обеспечение высокой производительности.

7.1.Логическая организация файловой системы

Файл – это имеющая имя совокупность данных на внешнем носителе информации. (Под данными понимаются и сами данные и программы для их обработки).

89

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Пользователи могут давать файлам символьные имена. Каждая ОС имеет свои правила составления имен файлов (допустимые символы имени, длина имени). В некоторых ОС, например в

Windows, имя файла включает и расширение, или тип файла.

Обычно расширения txt , doc используются для текстовых файлов, exe – для исполняемых файлов и т.д. Однако в ОС семейства Unix не принято дописывать расширение к имени файла, хотя это и не является ошибкой.

С файлом связывается набор его атрибутов – информация,

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

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

Файлы для удобства использования объединяют в группы под общим названием, так образуются каталоги (директории, папки).

Каталог (директория, папка) – совокупность файлов и каталогов, объединенных под одним именем. Каталог содержит список файлов и каталогов, находящихся в нем. Для ОС каталог – это особый файл, в котором записана информация о сгруппированных в него файлах и каталогах: имя, расширение,

местонахождение, размер, дата и время создания и другие атрибуты файла*.

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

90