Лекция N2: Система прерывания программ — страница 5

Эта подсистема построена единообразно с подсистемой управления данными (файловой системой). Пользователю предоставляется унифицированный способ доступа как к ПУ, так и к файлам. Под файлом в ОС UNIX понимают набор данных на диске, видеотерминале и т.д.; любое ПУ рассматривается как специальный файл. При запросе программного процесса о выводе данных в специальный файл ОС перехватывает запрос и аправляет данные на соответствующее устройство. Аналогично организуется чтение данных из специального файла — это прием данных с ПУ. Таким образом, доступ, например, к файлу на диске и к специальному файлу дисплея обеспечивается одним и тем же набором системных вызовов.
Другая особенность подсистемы ввода-вывода в ОС UNIX заключается в том, что она работает как синхронная система. Любой прогаммный процесс, требующий ввода данных, приостанавливается в точке, где он выдал запрос, до тех пор, пока не завершится операция ввода из указанного специального файла. При выводе процесс приостанавливается в точке запроса на вывод данных вплоть до того момента, пока выводимые данные будут приняты системой в буфер пользователя. Такая организация вода-вывода приводит в мультипрограммном режиме работы ЭВМ к повышению эффективности использования времени ЦП вследствие уменьшения простоев этого ЦП. Заметим, что в системах реального времени (СРВ) чаще используется асинхронный принцип работы подсистемы ввода-вывода, так как в этом случае уменьшается время реакции СРВ на события, требующие немедленной обработки.
Для управления ПУ в ОС UNIX используются 2 вида интерфейса с этими ПУ: байториентированный и блокориентированный. Блокориентированный интерфейс обеспечивает связь с ПУ, к которым можно адресоваться как к последовательности блоков по 512 байт. Такими ПУ в основном являются ВЗУ. Основой организации такого интерфейса является система буферизации, поддерживаемая в ОП. Байториентированный интерфейс используется для доступа к печатающему устройству, клавиатуре дисплея и некоторым другим устройствам, при этом буферизация не используется.
В состав системы управления вводом-выводом входят также драйверы и набор специальных таблиц для логического подключения ядра ОС к драйверам различных устройств. Каждый драйвер содержит 2 части и может обслуживать несколько устройств одного типа. Первая часть драйвера содержит набор программных модулей для выполнения операций по открытию, закрытию, чтению и записи специальных файлов, а также для управления специальными режимами работы ПУ. Чтобы начать работать с некоторым устройством, необходимо открыть или создать специальный файл, сопоставляемый с этим устройством. Открытие файла — это процесс установления связи между именем файла и некоторой переменной, хранимой в области памяти того процесса, который открывает файл. Эта переменная, называемая номером дескриптора файла, используется далее в операциях над открытым файлом. После открытия файла процессу, проводившему открытие, разрешен доступ к устройству. Операция закрытия обратна по назначению и приводит к разрыву связи между программным процессом и указываемым ПУ. Вторая часть драйвера — это модуль обработки прерываний. При управлении большинством ПУ в ОС UNIX используется метод прерываний. Для байториентированного ПУ прерывание возникает после передачи байта, для блокориентированного ПУ — после передачи блока. Модуль обработки прерывания, являющийся частью драйвера, или прекращает работу с ПУ, или продолжает работу с ним, выдавая ему новое задание.
Некоторые из изложенных принципов построения системы ввода-вывода ОС UNIX были реализованы в ОС, созданных позднее, например, в MS DOS, функционирующей в ЭВМ IBM РС с МП типа 80х86.

Оцените статью
Добавить комментарий