Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ос_ЛЕКЦИИ_для _методички_.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
821.76 Кб
Скачать

Ввод-вывод.

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

Контроллеры устройств для различных устройств различны.

Драйвер – программная часть ОС, которая взаимодействует с контроллером.

Драйвера устройств работают в режиме ядра, поэтому для каждой ОС для одного и того же устройства требуются различные драйвера.

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

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

В некоторых случаях регистры располагаются в устройствах над портами и каждый регистр имеет свой адрес порта. Запись/чтение в регистр порта по командам in/out.

Как правило, ввод-вывод может осуществляться тремя способами:

1. Пользовательская программа выдает системный запрос на ввод-вывод. Ядро ОС анализирует запрос вызова процедуры. Другое проверяется состояние устройства и ждёт его готовности. Если готово, помещает данные в регистр устройства. Недостаток – ожидание готовности устройства.

2. Драйвер запускает устройство и просит вызвать его прерывание по окончании ввода-вывода. В это время центральным процессором выставляется прерывание. ОС обрабатывает его и передает управление другой пользовательской программе. Как только операции ввода-вывода закончились, происходит прерывание ввода-вывода и управление передается прерванной программе для обработки окончания ввода-вывода.

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

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

Процессор ввода-вывода использует команды ввода-вывода на микропрограммном уровне.

Прерывания.

Прерывание – сигнал (возможно электрический), который может прерывать выполнение программы, предусмотренное исполнительным модулем, в случае, если флаги и маски команд установлены так, что прерывание разрешено.

Прерывание, как правило, передается обработчику соответствующего типа прерываний.

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

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

В зависимости от типа прерывания и результатов обработки, возврат управления может осуществляться как в операционную систему, так и в пользовательскую программу.

Как правило, общепринятыми классами прерываний являются следующие:

1. Программные прерывание – вырабатывается при выполнении команд в случаях: неправильная команда, неправильный адрес, превышение разрядной сетки и т.п. для каждой команды ЦП в спецификации системы команд указывается условие или код завершения команды и выработки прерывания.

2. Прерывания службы времени – в каждой вычислительной системе количество служб времени различно (часы, интервальный таймер, компаратор). Что конкретно произошло по прерыванию от службы времени, определяет соответствующий обработчик.

3. Прерывания ввода-вывода – как правило, инициируется контроллером внешнего устройства или аварийной ситуацией на внешнем устройстве.

4. Прерывания от схем контроля – инициируется в случае аппаратных сбоев ЦП, оперативной памяти, КЭШа и т.д. Каждое устройство в вычислительной установке имеет собственные схемы контроля. Схемы контроля строятся различными способами. Самый простой – контроль по модулю два (значения в регистре складываются по модулю два и складываются с контрольным разрядом, в результате должен получиться 0; если не 0, в каком-то бите ошибка). Более сложные схемы включают использование кодов исправления и обнаружения ошибок (код Хемминга обнаруживает двойные ошибки и исправляет единичные; циклические коды). Как правило, прерывания от схем контроля имеют самый высокий приоритет. В ЭВМ от IBM такие прерывания вырабатываются после неоднократного повторения сбойной ситуации.

Передача данных между устройствами ЭВМ.

Передача между устройствами(адресация устройств) может быть реализована двумя различными способами: дешифровкой полей микрокоманд и открытием определенных вентилей для передачи информации тому или иному адресату; выставлением адреса устройства на некоторую адресную магистраль с последующей передачей данных адресату. В первом случае выше быстродействие, но выше и количество электрических соединений. Во втором случае быстродействие ниже, но количество связей меньше.

В ранних моделях компьютеров использовалась одна шина, к которой подключались различные устройства, в настоящее время используется несколько шин. Основные их них ISA(Industry Standard Architecture – для совместимости со старыми устройствами), PCI (Peripheral Connect [Component] Interconnect - для подключения высокоскоростных устройств), IDE(Integrated Drive Electronics), SCSI (Small Computer Systems Interface) и др.