Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Механизм прерываний



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

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

Суть механизма прерываний заключается в следующем.

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

Главные функции механизма прерываний:

ü распознавание и классификация прерываний

ü передача управления обработчику прерываний

ü корректное возвращение к прерванной программе.

Схема обработки прерываний:

Обозначения:

! ­ Прерывание (сигнал – установление факта прерывания)

1 ­ Идентификация прерывания

2 ­ Отключение всех других прерываний

3 ­ Смена контекста_1 (сохранение состояния прерванного процесса из системных регистров, загрузка в системные регистры контекста соответствующего обработчика прерываний)

4 ­ Обработка прерывания, включающая определение программы Q, которую следует запустить;

5 ­ Смена контекста_2 (загрузка в системные регистры контекста определенной на предыдущем шаге программы Q)

6 ­ Установка прежнего режима системы прерываний.

Замечания:

1. Передача управления осуществляется аппаратно.

2. Программой Q может быть и прерванная программа Р.

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

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

Программные прерывания (по внутрипрограммной команде) являются синхронными операциями. Любая программа может инициировать синхронное программное прерывание путем выполнения программы INT. MS-DOS использует для взаимодействия с программами прерывания с номерами 20Н – 1FH, программы BIOS и прикладные программы использует другие номера. При этом распределение номеров условно и аппаратно не закреплено.

Задание

Для всех вариантов:

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

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

Вариант 1. Реализация планировщика с двумя состояниями:

ГОТОВ ßàВЫПОЛНЕНИЕ

Вариант 2. Реализация планировщика с тремя состояниями:

ГОТОВ ßàВЫПОЛНЕНИЕ àОЖИДАНИЕ

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

Вариант 3. Реализация планировщика с тремя состояниями, где величина кванта зависит от приоритета процесса, приоритет можно повысить или понизить.

Схема (см. вариант 2)

Например: Процесс блокируется по нажатию определенной клавиши.

(+ / -) – (увеличение / уменьшение) приоритета.

Пробуждение – по нажатию той же клавиши.

Общая схема работы

  1. запуск планировщика
  2. инициализация процессов и постановка их в очередь готовых к выполнению
  3. выбор первого процесса из очереди готовых
  4. обращение к контексту процесса и запуск процесса
  5. в каждом элементарном цикле обработка счетчика тиков и проверка истечения кванта:

если квант закончился – передача управления планировщику, нет продолжение работы процесса

  1. для прерванного процесса запоминается контекст, а процесс ставится в очередь готовых
  2. если очередь не пуста – возврат на 3, иначе завершение программы

Требования к реализации (для всех вариантов)

- три программных модуля + планировщик

- наличие структуры, имитирующей БУП

- обязательно инициализируемая в начале работы очередь готовых процессов

- возможность изменения кванта

Требования к отчету

- Описание процессов

- Схема и алгоритм работы планировщика

- Описание структур, имитирующих БУП

- Листинг

Дополнительные сведения и пример для реализации

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





Дата публикования: 2015-10-09; Прочитано: 1157 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...