
- •Обработка информации и операции ввода-вывода. Основные понятия и концепции организации ввода-вывода в операционной системе.
- •Классификация устройств ввода-вывода
- •Физические принципы организации ввода-вывода
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Логические принципы организации ввода-вывода
- •Функции базовой подсистемы ввода-вывода
- •Блокирующиеся, не блокирующиеся и асинхронные системные вызовы. Синхронный и асинхронный ввод-вывод.
- •Буферизация и кеширование
- •Спулинг (spooling) и захват устройств
- •Обработка прерываний и ошибок
- •Планирование запросов
- •Алгоритмы планирования запросов к жесткому диску
- •Строение жесткого диска и параметры планирования
- •Алгоритмы планирования
ОБРАБОТКА ИНФОРМАЦИИ И ОПЕРАЦИИ ВВОДА-ВЫВОДА. ОСНОВНЫЕ ПОНЯТИЯ И КОНЦЕПЦИИ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА. КЛАССИФИКАЦИЯ УСТРОЙСТВ ВВОДА-ВЫВОДА. ФИЗИЧЕСКИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА. ОПРОС УСТРОЙСТВ И ПРЕРЫВАНИЯ. ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ И СИСТЕМНЫЕ ВЫЗОВЫ. ЛОГИЧЕСКИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА. ФУНКЦИИ БАЗОВОЙ ПОДСИСТЕМЫ ВВОДА-ВЫВОДА
Обработка информации и операции ввода-вывода. Основные понятия и концепции организации ввода-вывода в операционной системе.
Функционирование любой вычислительной системы обычно сводится к выполнению двух видов работы: обработке информации и операций по осуществлению ее ввода-вывода.
С точки зрения программиста, под обработкой информации понимается выполнение команд процессора над данными, лежащими в памяти независимо от уровня иерархии – в регистрах, кэше, оперативной или вторичной памяти. Под операциями ввода-вывода программист понимает обмен данными между памятью и устройствами, внешними по отношению к памяти и процессору, такими как магнитные ленты, диски, монитор, клавиатура, таймер. С точки зрения операционной системы обработкой информации являются только операции, совершаемые процессором над данными, находящимися в памяти на уровне иерархии не ниже, чем оперативная память. Все остальное относится к операциям ввода-вывода. Чтобы выполнять операции над данными, временно расположенными во вторичной памяти, операционная система, сначала производит их подкачку в оперативную память, и лишь затем процессор совершает необходимые действия.
Сложность проектирование ввода-вывода возникает из-за огромного числа устройств различной природы и назначения. Разработчик ввода-вывода должен решить две задачи:
обеспечить эффективное управление устройствами ввода-вывода;
создать удобный и эффективный интерфейс устройств ввода-вывода, позволяющий прикладным программистам просто считывать или сохранять данные.
Система ввода-вывода должна быть универсальной.
Главный принцип ввода/вывода – любые операции по управлению вводом-выводом объявляются привилегированными и могут выполняться только самой операционной системой.
Для обеспечения этого принципа в большинстве процессоров вводятся два режима:
режим пользователя, выполнение команд ввода/вывода запрещено;
режим супервизора, выполнение команд ввода/вывода разрешено.
Использование команд ввода/вывода в пользовательском режиме вызывает исключение (прерывание) и управление передается операционной системе.
Для мультипрограммных операционных систем одним из основных видов ресурсов являются устройства ввода-вывода и обслуживающие их программы. Операционные системы должны управлять разделяемыми и неразделяемыми устройствами и позволять параллельно выполняющимися задачам использовать различные устройства ввода-вывода.
Непосредственное обращение к внешним устройствам из пользовательских программ не разрешено по трем причинам:
возможные конфликты при доступе к устройствам ввода-вывода;
повышение эффективности использование этих ресурсов;
ошибки в программах ввода-вывода могут привести к разрушению системы.
Компонента операционной системы, выполняющая ввод-вывод называется супервизором ввода-вывода. Основные задачи супервизора следующие:
модуль супервизора операционной системы, иногда называемый супервизором задач, получает запросы от прикладных задач на выполнение тех или иных операций, в том числе на ввод-вывод. Эти запросы проверяются на корректность и, если они соответствуют спецификациям и не содержат ошибок, то обрабатываются дальше. В противном случае пользователю (задаче) выдается соответствующее диагностическое сообщение о недействительности (некорректности) запроса;
супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы;
супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод (определяет очередность предоставления устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение;
супервизор ввода-вывода инициирует операции ввода-вывода (передает управление соответствующим драйверам) и в случае управления вводом-выводом с использованием прерываний предоставляет процессор диспетчеру задач с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение;
при получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы и передает управление соответствующим программам обработки прерываний;
супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода;
супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию задаче и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.
Если устройство ввода-вывода является инициативным, управление со стороны супервизора ввода-вывода заключается в активизации соответствующего вычислительного процесса. Инициативное устройство – устройство, по сигналу прерывания от которого запускается соответствующая ему программа.
Имеются два основных режима ввода-вывода:
режим обмена с опросом готовности;
режим обмена с прерываниями.