2. Основные принципы организации системы прерываний

Можно выделить следующие классы прерываний:

Внутрипроцессорные прерывания, вызванные событиями, происходящими в самом процессоре.

Внутрисистемные прерывания, определяемые событиями в системных устройствах компьютера.

Прерывания в выполняемой программе, возникающие при обращении к системе BIOS.

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

Реализация режима прерывания включает следующие шаги:

Идентификация источника прерывания;

Сохранение текущего состояния прерываемой программы;

Запрещение повторных прерываний от установленного источника прерывания;

Выполнение программы обработки прерывания;

Восстановление состояния прерванной программы и продолжение вычислений.

Для взаимодействия программ с устройствами предусматривается несколько способов:

при помощи вызовов функций операционной системы (прерывания DOS, API Windows и т. п.);

при помощи вызовов функций базовой системы ввода-вывода (BIOS);

непосредственно взаимодействуя с портами и памятью внешних устройств или контроллеров интерфейсов этих устройств.

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

Теперь рассмотрим случай, когда во время этого процесса случается асинхронное (не связанное с выполняемым процессом)событие, требующее реакции компьютера. Рассмотрим нажатие клавиши на клавиатуре. Клавиатура по нажатию (и по отпусканию) любой клавиши генерирует специальную посылку, содержащую код этого события (скан-код клавиши). Контроллер клавиатуры, находящийся на системной плате, принимает этот код в свой внутренний регистр и сигнализирует об этом двумя способами: устанавливает флаг готовности (бит в регистре состояния, который может быть прочитан процессором по адресу определенного порта ввода) и генерирует сигнал запроса прерывания (сигнал IRQ1). Этот сигнал поступает на вход контроллера прерываний. Контроллер прерываний формирует сигнал запроса, поступающий на вход маскируемого прерывания процессора. Если у процессора маскируемые прерывания разрешены, то он запросит у контроллера номер вектора прерывания, соответствующего данному источнику прерывания. Сигнал от клавиатуры соответствует вектору 9. Получив значение вектора, процессор сохранит в стеке адрес следующей инструкции исполняемого процесса и выполнит вызов процедуры обработки прерывания, адрес которой задан в 9-м элементе таблицы векторов прерываний. Вызванная процедура считает скан-код из контроллера клавиатуры (в ответ он сбросит бит готовности в своем регистре состояния), выполнит необходимые действия, связанные с получением этого кода. Процедура обработки прерывания завершается специальной инструкцией возврата, по которой управление вернется прерванному процессу.

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

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

Переключение задач производится по сигналу прерывания от таймера для процессов, работающих псевдопараллельно. Поэтому программисту, разрабатывающему прикладную программу, в большинстве случаев не надо заботиться о многозадачной работе. В распоряжение его программы предоставляется виртуальная машина (тоже фон-неймановская), которая выполняет единственный процесс. Конечно, поддержка виртуальных машин требует определенных усилий со стороны многозадачной операционной системы, которой приходится распределять не только процессорное время, но и память, устройства хранения, ввода-вывода и коммуникационные — то есть все ресурсы реального компьютера. В этом ей помогают специальные средства, введенные в процессоры x86 2–3-го поколений и постоянно развиваемые в старших поколениях. Кроме того современные процессоры имеют специальные интерфейсные средства для построения многопроцессорных систем. Интерфейс позволяет объединять в систему до 4-х процессоров, при этом почти все их одноименные выводы объединяются. Целью объединения является либо использование симметричной мультипроцессорной обработки SMP (Symmetric Multi-Processing), либо построение функционально-избыточных систем FRC (Functional Redundancy Checking).


Информация о работе «Организация прерываний и прямого доступа к памяти в вычислительных системах, распределение ресурсов, технология Plug and Play»
Раздел: Информатика, программирование
Количество знаков с пробелами: 56969
Количество таблиц: 3
Количество изображений: 7

Похожие работы

Скачать
21932
0
4

... – набор утилит и некоторые инструментальные программы (пользовательский интерфейс). К третьему уровню относятся все остальные программы. Программы второго и третьего уровней хранятся в файлах. Программное обеспечение первого уровня является машинно-зависимым [computer-independent]. То есть для каждого микропроцессора или семейства ЭВМ набор данных программ уникален. Операционная система имеет ...

Скачать
448518
14
55

... также невысока и обычно составляет около 100 кбайт/с. НКМЛ могут использовать локальные интерфейсы SCSI. Лекция 3. Программное обеспечение ПЭВМ 3.1 Общая характеристика и состав программного обеспечения 3.1.1 Состав и назначение программного обеспечения Процесс взаимодействия человека с компьютером организуется устройством управления в соответствии с той программой, которую пользователь ...

Скачать
293733
5
0

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

Скачать
229314
33
0

... вычислительным сетям"; ГОСТ 11326.2-79, ГОСТ 11326.16-79; структурной схемой ЛВС; необходимыми документами по обеспечению режимных мероприятий, специальными требованиями, предъявляемыми к электронно-вычислительной технике (ЭВТ) объектов информации соответствующей категории и предписаниями на эксплуатацию. Требования к средствам вычислительной техники Стандартными средствами при оснащении объектов ...

0 комментариев


Наверх