- •Лекция 1. 7.02.2014
- •Монтирование файловой системы.
- •Лекция 2. 10.02.2014
- •Лекция 3. 17.02.2014
- •Открытые файлы.
- •Лекция 4. 24.02.2014
- •Лекция 5. 3.03.2014 Файлы.
- •Лекция 6. 17.03.2014
- •Организация виртуальной файловой системы (vfs)
- •Регистрация и дерегистрация фс
- •Функции для работы с элементами фс proc.
- •Лекция 7. 24.03.2014
- •Файловая система specfs.
- •Терминалы.
- •Терминальный ввод-вывод.
- •Лекция 8. 31.03.2014
- •Типы флагов структуры termios.
- •Принятые соглашения и стандарты.
- •Простые способы открытия псевдотерминалов.
- •Лекция 9. 7.04.2014
- •Лекция 10. 14.04.2014
- •Реализация доступа к устройствам.
- •Структура контроллера внешнего устройства.
- •Южный и северный мосты.
- •Последовательные и параллельные интерфейсы.
- •Лекция 11. 21.04.2014
- •Управление вводом-выводом.
- •Прерывания.
- •Лекция 12. 28.04.2014 Контроллер прерывания.
- •Лекции 13-14. 5.05.2014, 12.05.2014
- •Проблемы прямого доступа к памяти.
- •Управление устройствами.
- •Многослойная модель системы ввода-вывода.
- •Пространство имен устройств.
- •Доступ к драйверу символьного устройства.
- •Доступ к драйверу блочного устройства.
- •Дополнительная информация о драйверах.
- •Лекция 15. 19.05.2014
- •Типичные точки входа в драйвер устройства.
- •Файлы устройств.
- •Буферизация ввода-вывода.
- •Схемы обменной буферизации
- •Обслуживание прерываний.
- •Лекция 16. 26.05.14
- •Лекция 17. 02.06.14
Схемы обменной буферизации
Для управления буферами в системе создается специальная таблица. Каждый элемент этой таблицы описывает один.
Буферный пул или отдельный буфер могут быть созданы
а) статически во время выделения памяти задаче. Такой буфер будет существовать все время существования задачи (под задачей в данном случае можно понимать процесс или нить)
б) динамически. Динамическое создание является более эффективным с точки зрения ресурсов системы. буферный пул создается перед началом обмена с внешним устройством. По завершении обмена буфера освобождаются
Буферный пул формируется одним из следующих способов:
Созданием в обрабатывающей программе специальной области памяти и последующим выполнением макро-команды build (BUILT?), которая связывает данный буферный пул с соответствующим набором (наборами) данных.
С помощью макро-команды GETPOOL, которая требует, чтобы операционная система создала буферный пул. Он будет освобожден командной FREEPOOL
Разрешением ОС автоматически создавать буферный пул при открытии набора данных.
В системе для работы с буферами предусмотрены специальные макрокоманды: GETBUF, FREEBUF, READ, WRITE.
Разница между буферизацией, которая выполняется с запрашиванием соответствующих буферов, и системной буферизацией, которая выполняется независимо. Такая буферизация в системе называется кэшированием. Буферный кэш предназначен для выравнивания скоростей. На лабораторной работе в прошлом семестре рассматривались кэши. Смысл кэша – держать актуальную информацию (информация, которая востребована в текущий момент времени). Алгоритм заполнения кэша (используемый в последнее время). В кэшах должна содержаться информация, обращения к которой выполнялись в последнее время. Если произошло закрытие файла, то содержимое кэша теряет свою актуальность. Такое событие в системе должно перехватываться. Так называемая когерентность кэшей. Спулинг.
Прерывания.
Обработчики прерываний являются частью драйверов. Аппаратные прерывания происходят по завершении операции ввода вывода.
Обслуживание прерываний.
Прерывания – очень высокоприоритетное событие в системе. Обработчики прерываний выполняются на очень высоких уровнях приоритетов. В видноус для этого определены IRQL. Все аппаратные прерывания имеют уровень приоритета выше dpc dispatch. Наивысший приоритет у таймера. С точки зрения системы, пока выполняется обработчик аппаратного прерывания, никакие другие действия в системе невозможны. Реализация вложенных прерываний чревата проблемами. Проще запретить на время прерывания другие прерывания. Но тогда никакая работа в системе выполняться не будет, пока обработчик прерываний не будет завершен. Очевидно, что это недопустимая ситуация. В системе прерывания делятся на так называемые быстрые и медленные.
Во всех системах прерывания делятся на две части: верхняя и нижняя половина. Виндоус оперирует понятием dpc. Тем не менее, и в Юникс и в Виндоус прерывания делятся на две части.
В Юникс и Юникс-подобных системах эти части называются top half и bottom half.
После инициирования прерывания, процедуры обработки прерывания должны выполняться как можно быстрее и прерывать работу в системе на как можно меньшее время. Однако не все задачи, стоящие перед прерываниями можно выполнить за несколько инструкций. Например, обработка поступившего в сетевой адаптер пакета требует несколько тысяч тактов, прежде чем пакет сможет быть передан в адресное пространство пользователя.
