пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Концепция организации ввода-вывода в современных операционных системах.

При проектировании подсистемы управления вводом-выводом определяющим становится следующий принцип: любые операции по управлению вводом-выводом объявляются привилегированными и могут выполняться только кодом самой операционной системы.

 

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

 

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

 

  1. Необходимость разрешать возможные конфликты в доступе к устройствам ввода-вывода
  2. Желание увеличить эффективность использования ресурсов ввода-вывода
  3. Необходимость избавить программы ввода-вывода от ошибок

 

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

  1. Супервизор ввода-вывода получает запросы на ввод-вывод от прикладных задач или от программных модулей самой операционной системы.  Эти запросы проверяются на корректность и, если они соответствуют спецификациям и не содержат ошибок, то обрабатываются дальше. В противном случае прикладной задаче выдается соответствующее диагностическое сообщение о некорректности запроса.
  2. Супервизор ввода-вывода планирует ввод-вывод, определяя очередность предоставления устройств ввода-вывода задачам, затребовавшим эти устройства. При этом запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение.
  3. Супервизор ввода-вывода инициирует операции ввода-вывода, передавая управление соответствующим драйверам, и, в случае управления вводом-выводом с использованием прерываний, передает диспетчеру задач право выделить процессор наиболее привилегированной задаче, стоящей в очереди на выполнение.
  4. При получении запросов на прерывание от внешних устройств супервизор ввода-вывода обрабатывает эти запросы и передает управление соответствующим программам обработки прерываний.
  5. Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые выявляются в процессе управления операциями ввода-вывода.
  6. Супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию прикладной программе и сбрасывает признак состояния ожидания ввода-вывода, если программа ожидала завершения операции.

 

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

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

 

06.01.2015; 18:43
хиты: 286
рейтинг:+1
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь