
- •Республики казахстан
- •Республики казахстан
- •Астана 2012
- •Республики казахстан
- •1. Сведения о преподавателе:
- •2. Характеристика дисциплины
- •3. Система оценки знаний студентов
- •4. Тематический план дисциплины Распределение часов по видам занятий Очная форма обучения
- •5. Содержание учебной дисциплины
- •6. Учебно-методическое обеспечение дисциплины
- •6.1 Список рекомендуемой литературы
- •6.2 Программное и мультимедийное сопровождение учебных занятий:
- •Программа обучения по дисциплине (Syllabus) для студента
- •Время и место проведения учебной дисциплины (определяется в соответствии с утвержденным расписанием: _согласно штатному расписанию,
- •Предварительные обязательные курсы (пререквизиты):
- •Характеристика дисциплины
- •План изучения дисциплины
- •Список основной и дополнительной литературы
- •Контроль знаний
- •Политика учебной дисциплины
- •Методические рекомендации по изучению учебной дисциплины
- •Лекционный комплекс лекция №1 Основные понятия. Определение ос, задачи и функции ос
- •Лекция №2 Классификация операционных систем
- •Лекция №3 Аппаратная зависимость и переносимость операционных систем
- •Лекция №4 Архитектура операционных систем
- •Лекция №5 Процессы и потоки
- •Лекция №6 Организация параллельных взаимодействующих процессов
- •Лекция №7 Подсистема управления процессами и потоками
- •Лекция №8 Управление памятью
- •Лекция №9 Сегментная, страничная и сегментно-страничная организация памяти
- •Лекция №10 Файловые системы.
- •Матрица прав доступа
- •Отображаемые в память файлы
- •Лекция №11 Структура каталогов
- •Физическая организация файла
- •Лекция №12 Управление вводом-выводом
- •Лекция №13 Взаимодействие драйверов с программной и аппаратной средой
- •Лекция №14 Поддержка широкого спектра драйверов и простота включения нового драйвера в систему
- •Лекция №15 ос для рабочих групп и ос для сетей масштаба предприятия
- •Планы семинарских (практических) занятий и методические рекомендации по подготовке к семинарским занятиям
- •Практическая работа № 1
- •Практическая работа № 2
- •Практическая работа №3.
- •Практическая работа № 4
- •Практическая работа № 5
- •Практическая работа № 6
- •Практическая работа № 7
- •Практическая работа № 8
- •Практическая работа № 9
- •Практическая работа №10
- •Материалы для самостоятельной работы обучающегося
- •Задания для срс.
- •Глоссарий
- •Материалы по контролю и оценке учебных достижений обучающихся (письменные контрольные задания, тестовые задания; перечень вопросов для самоподготовки, экзаменационных вопросов и др.);
- •Лист регистрации изменений и дополнений
Лекция №13 Взаимодействие драйверов с программной и аппаратной средой
В системе UNIX имеется два типа устройств - устройства ввода-ывода блоками и устройства неструктурированного или посимвольного ввода-вывода. Устройства ввода-вывода блоками, такие как диски и ленты, для остальной части системы выглядят как запоминающие устройства с произвольной выборкой; к устройствам посимвольного ввода-вывода относятся все другие устройства, в том числе терминалы и сетевое оборудование. Устройства ввода-вывода блоками могут иметь интерфейс и с устройствами посимвольного ввода-вывода.
Пользователь взаимодействует с устройствами через посредничество файловой системы. Каждое устройство имеет имя, похожее на имя файла, и пользователь обращается к нему как к файлу. Специальный файл устройства имеет индекс и занимает место в иерархии каталогов файловой системы. Файл устройства отличается от других файлов типом файла, хранящимся в его индексе, либо "блочный", либо "символьный специальный", в зависимости от устройства, которое этот файл представляет. Если устройство имеет как блочный, так и символьный интерфейс, его представляют два файла: специальный файл устройства ввода-вывода блоками и специальный файл устройства посимвольного ввода-вывода. Системные функции для обычных файлов, такие как open, close, read и write, имеют то же значение и для устройств. Системная функция ioctl предоставляет процессам возможность управлять устройствами посимвольного ввода-вывода, но не применима в отношении к файлам обычного типа. Тем не менее, драйверам устройств нет необходимости поддерживать полный набор системных функций. Например, вышеупомянутый драйвер трассировки дает процессам возможность читать записи, созданные другими драйверами, но не позволяет создавать их.
Конфигурация системы
Задание конфигурации системы это процедура указания администраторами значений параметров, с помощью которых производится настройка системы. Некоторые из параметров указывают размеры таблиц ядра, таких как таблица процессов, таблица индексов и таблица файлов, а также сколько буферов помещается в буферном пуле. С помощью других параметров указывается конфигурация устройств, то есть производятся конкретные указания ядру, какие устройства включаются в данную системную реализацию и их "адрес". Например, в конфигурации может быть указано, что терминальная плата вставлена в соответствующий разъем на аппаратной панели.
Существует три стадии, на которых может быть указана конфигурация устройств. Во-первых, администраторы могут кодировать информацию о конфигурации в файлах, которые транслируются и компонуются во время построения ядра. Информация о конфигурации обычно указывается в простом формате, и программа конфигурации преобразует ее в файл, готовый для трансляции. Во-вторых, администраторы могут указывать информацию о конфигурации после того, как система уже запущена; ядро динамически корректирует внутренние таблицы конфигурации.
Наконец, самоидентифицирующиеся устройства дают ядру возможность узнать, какие из устройств включены. Ядро считывает аппаратные ключи для самонастройки. Интерфейс "ядро - драйвер" описывается в таблице ключей устройств ввода-вывода блоками и в таблице ключей устройств посимвольного ввода-вывода. Каждый тип устройства имеет в таблице точки входа, которые при выполнении системных функций адресуют ядро к соответствующему драйверу. Функции open и close, вызываемые файлом устройства, "пропускаются" через таблицы ключей устройств в соответствии с типом файла. Функции mount и umount так же вызывают выполнение процедур открытия и закрытия устройств, но
для устройств ввода-вывода блоками. Функции read и write, вызываемые устройствами ввода-вывода блоками и файлами в смонтированных файловых системах, запускают алгоритмы работы с буферным кешем, инициирующие реализацию стратегической процедуры работы с устройствами. Некоторые из драйверов запускают эту процедуру изнутри из процедур чтения и записи. Более подробно взаимодействие с каждым драйвером рассматривается в следующем разделе.
Интерфейс "аппаратура - драйвер" состоит из машинно-зависимых управляющих регистров или команд ввода-вывода для управления устройствами и векторами прерываний: когда происходит прерывание от устройства, система идентифицирует устройство, вызвавшее прерывание.
Системные функции и взаимодействие с драйверами
В этом разделе рассматривается взаимодействие ядра с драйверами устройств. При выполнении тех системных функций, которые используют дескрипторы файлов, ядро, следуя за указателями, хранящимися в пользовательском дескрипторе файла, обращается к таблице файлов ядра и к индексу, где оно проверяет тип файла, и переходит к таблице ключей устройств ввода-вывода блоками или символами. Ядро извлекает из индекса старший и младший номера устройства, использует старший номер в качестве указателя на точку входа в соответствующей таблице и вызывает выполнение функции драйвера в соответствии с выполняемой системной функцией, передавая младший номер в качестве параметра. Важным различием в реализации системных функций для файлов устройств и для файлов обычного типа является то, что индекс специального файла не блокируется в то время, когда ядро выполняет программу драйвера. Драйверы часто приостанавливают свою работу, ожидая связи с аппаратными средствами или поступления данных, поэтому ядро не в состоянии определить, на какое время процесс будет приостановлен. Если индекс заблокирован, другие процессы, обратившиеся к индексу (например, посредством системной функции stat), приостановятся на неопределенное время, поскольку один процесс приостановил драйвер.
Драйвер устройства интерпретирует параметры вызова системной функции в
отношении устройства. Драйвер поддерживает структуры данных, описывающие состояние каждой контролируемой единицы данного типа устройства; функции драйвера и программы обработки прерываний реализуются в соответствии с состоянием драйвера и с тем, какое действие выполняется в этот момент (например, данные вводятся или выводятся). Теперь рассмотрим каждый интерфейс более подробно.