Хелпикс

Главная

Контакты

Случайная статья





ОП.07.Операционные системы и среды



ОП.07.Операционные системы и среды

Дата: 11.10.2021г.

ПЛАН ЗАНЯТИЯ №11

Тема:  Организация побайтного ввода – вывода.  

Цель занятия: формирование ОК через освоение студентами её компонентов; формирование          

                    понятий побайтного ввода-вывода

Теоретический материал

1. Основные концепции организации ввода-вывода в операционных системах

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

Для обеспечения этого принципа в большинстве процессоров вводятся режимы пользователя и супервизора (привилегированный режим, или режим ядра). Как правило, в режиме супервизора выполнение команд ввода-вывода разрешено, а в пользовательском режиме – запрещено.

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

Существуют устройства:

• разделяемые – допускают разделение посредством механизма доступа. Примеры – накопитель на магнитных дисках, устройства чтения компакт-дисков – устройства с прямым доступом;

• неразделяемые – устройства с последовательным доступом. Примеры –принтер, накопитель на магнитных лентах.

ОС должна управлять и теми, и другими устройствами.

Нельзя разрешать каждой отдельной пользовательской программе обращаться к внешним устройствам непосредственно по причинам:

1) необходимость разрешать возможные конфликты в доступе к устройствам ввода- вывода;

2) желание увеличить эффективность использования ресурсов ввода-вывода;

3) необходимость избавить программы ввода-вывода от ошибок.

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

Основные задачи супервизора:

1) супервизор задач (модуль супервизора ОС) получает запросы от прикладных задач на выполнение тех или иных операций, в том числе на ввод-вывод. Эти запросы проверяются на корректность и, если они соответствуют спецификациям и не содержат ошибок, то обрабатываются дальше;

2) супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы.

3) супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод Запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение.

4) супервизор ввода-вывода инициирует операции ввода-вывода и (при использовании прерываний) предоставляет процессор диспетчеру задач, чтобы передать его первой задаче, стоящей в очереди на выполнение;

5) при получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы и передает управление соответствующим программам обработки прерываний;

6) супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода.

7) супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию задаче и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.

 

2. Режимы управления вводом-выводом. Закрепленные и общие устройства ввода-вывода

Имеется два основных режима ввода-вывода:

1) режим обмена с опросом готовности устройства ввода-вывода;

2) режим обмена с прерываниями

Если управление вводом-выводом осуществляет центральный процессор, то это программный канал обмена данными между внешними устройством и оперативной памятью (в отличие от канала прямого доступа к памяти, при котором управление вводом- выводом осуществляет специальное дополнительное оборудование).

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

Выгоднее, выдав команду ввода-вывода, перейти на выполнение другой программы. А появление сигнала готовности трактовать как запрос на прерывание от устройства ввода- вывода. Именно эти сигналы готовности и являются сигналами запроса на прерывание.

Для того чтобы не потерять связь с устройством, может быть установлен тайм-аут (максимальный интервал времени, в течение которого устройство ввода-вывода или его контроллер должны выдать сигнал запроса на прерывание).

Драйверы, работающие в режиме прерываний, представляют собой сложный комплекс программных модулей и могут иметь несколько секций:

1) секцию запуска – инициирует операцию ввода-вывода.

2) одну или несколько секций продолжения – осуществляет основную работу по передаче данных и является основным обработчиком прерывания;

3) секцию завершения – обычно выключает устройство ввода-вывода или просто завершает операцию.

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

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

Понятие виртуального устройства шире, чем понятие спулинга (spooling — Simultaneous Peripheral Operation On-Line). Основное назначение спулинга — создать видимость разделения устройства ввода-вывода, которое фактически является устройством с последовательным доступом и должно использоваться только монопольно и быть закрепленным за процессом.

Например, несколько приложений должны выводить на печать результаты своей работы.

Каждому процессу предоставляют виртуальный принтер, и поток выводимых символов сначала направляют в специальный файл на диске (спул-файл — spool-file) и только по окончании виртуальной печати выводят содержимое спул-файла на принтер. Системные процессы, которые управляют спул-файлом, называются спулером чтения (spool-reader) или спулером записи (spool-writer).

3. Основные системные таблицы ввода-вывода

Для управления всеми операциями ввода-вывода и отслеживания состояния всех ресурсов, занятых в обмене данными, операционная система должна иметь соответствующие информационные структуры, которые отображают информацию:

• состав устройств ввода-вывода и способы их подключения;

• аппаратные ресурсы, закрепленные за имеющимися в системе устройствами ввода- вывода;

• логические (символьные) имена устройств ввода-вывода, используя которые вычислительные процессы могут запрашивать те или иные операции ввода-вывода;

• адреса размещения драйверов устройств ввода-вывода и области памяти для хранения текущих значений переменных, определяющих работу с этими устройствами;

• области памяти для хранения информации о текущем состоянии устройства ввода- вывода и параметрах, определяющих режимы работы устройства;

данные о текущем процессе, который работает с данным устройством;

• адреса тех областей памяти, которые содержат данные, собственно и участвующие в операциях ввода-вывода (получаемые при операциях ввода данных и выводимые на устройство при операциях вывода данных).

Создаются три системных таблицы.

Первая таблица содержит информацию обо всех устройствах ввода-вывода, подключенных к вычислительной системе – таблица оборудования, а каждый элемент этой таблицы называется UCB (Unit Control Block — блок управления устройством ввода- вывода). Каждый элемент UCB содержит информацию:

- тип устройства, его конкретная модель, символическое имя и характеристики устройства;

- способ подключения устройства;

- номер и адрес канала (и подканала), если такие используются для управления устройством;

- информация о драйвере, который должен управлять этим устройством,

- информация о том, используется или нет буферизация при обмене данными с устройством, «имя» буфера;

- установка тайм-аута и ячейки для счетчика тайм-аута;

- состояние устройства;

- поле указателя для связи задач, ожидающих устройство;

- возможно, множество других сведений.

Вторая таблица предназначена для реализации принципа независимости от устройства.

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

Поэтому в запросе на ввод-вывод программист указывает логическое имя устройства.

Вторая системная таблица называется таблицей виртуальных логических устройств (Device Reference Table, DRT). Назначение ее — установление связи между виртуальными (логическими) устройствами и реальными устройствами, описанными посредством первой таблицы (таблицы оборудования).

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

Каждое устройство либо имеет свою линию запроса на прерывание, либо разделяет линию запроса на прерывание с другими устройствами, но при этом имеется механизм второго уровня адресации устройств ввода-вывода.

Таким образом, таблица прерываний отображает связи между сигналами запроса на прерывания и самими устройствами ввода-вывода.

 

Домашнее задание:

1.Составить краткий конспект по теме.

2.Фото конспекта прислать на указанный электронный адрес.

3.Просмотреть презентацию во вложенном файле.

 

 

Обратная связь с преподавателем: kulikovskaya.tanya@yandex.ru

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.