Система прерывания программ.

Содержание

Слайд 2

Основные этапы реализации прерываний. 1. Передача управления осуществляется аппаратно. 2. Программой

Основные этапы реализации прерываний.

1. Передача управления осуществляется аппаратно.
2. Программой Q

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

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

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

Слайд 4

Обозначения: ! ­ Прерывание (сигнал – установление факта прерывания) 1 ­

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

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

прерывания 2 ­ Отключение всех других прерываний 3 ­ Смена контекста_1 (сохранение состояния прерванного
процесса Р из системных регистров, загрузка в системные
регистры контекста соответствующего обработчика
прерываний) 4 ­ Обработка прерывания, включающая определение программы
Q, которую следует запустить; 5 ­ Смена контекста_2 (загрузка в системные регистры контекста
определенной на предыдущем шаге программы Q) 6 ­ Установка прежнего режима системы прерываний. Прерывания, возникающие при работе вычислительной системы, можно разделить на три класса: -       Внутренние аппаратные (синхронные); -       Внешние аппаратные (асинхронные); -       Программные.
Слайд 5

Классификация прерываний Внешние аппаратные прерывания ­ асинхронные события, которые происходят вне

Классификация прерываний

Внешние аппаратные прерывания ­ асинхронные события, которые происходят вне

процесса : 1. прерывания от таймера, 2. от внешних устройств, 3.   прерывание по нарушению питания, 4. прерывание с пульта вычисления системы,   5.  прерывание от другого процессора в вычислительной сети.   Внутренние аппаратные прерывания ­ синхронные события, которые связаны с работой процессора и являются его синхронными операциями (сигнал прерывания формируется внутри процессора при выполнении программы, закрепленные за событиями номера прерываний зашиты внутри процессора и не могут быть изменены): нарушение адресации; наличие в поле кода операции незадействованной двоичной операции; переполнение и исчезновение порядка; ошибки четности.    Программные прерывания (по команде внутри программы) также являются синхронными операциями. Любая программа может инициировать синхронное программное прерывание путем выполнения программы INT. MS-DOS использует для взаимодействия с программами прерывания с номерами 20Н – 1FH, программы BIOS и прикладные программы использует другие номера. При этом распределение номеров условно и аппаратно не закреплено.
Слайд 6

Видов (номеров) прерывания может быть всего 256, и, соответственно, векторов прерывания

Видов (номеров) прерывания может быть всего 256, и, соответственно, векторов

прерывания в ОП насчитыва-ется до 256. Более подробная классификация видов прерываний показана на рис. 17.2.
Слайд 7

Прикладные прерывания временно устанавливаются пользователем при много­программной работе МП для указания

Прикладные прерывания временно устанавливаются пользователем при много­программной работе МП для указания

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

Аппаратные прерывания инициируются при обращениях к МП со стороны внешних устройств

Аппаратные прерывания инициируются при обращениях к МП со стороны внешних устройств

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

Программные прерывания — это обычные процедуры, которые вызывает текущая программа для

Программные прерывания — это обычные процедуры, которые вызывает текущая программа для

выполнения предусмотренных в ней стандартных подпрограмм, чаще всего подпрограмм — служебных функций работы с внешними устройствами, то есть, фактически, программные прерывания ничего не прерывают. Они делятся на две большие группы, вызывающие служебные функции:
базовой системы ввода-вывода — прерывания BIOS;
операционной системы — прерывания DOS.
Программы обработки прерываний DOS, в отличие от программ обработки прерываний BIOS, не встроены в ПЗУ и для разных операционных систем могут быть разными. К программным прерываниям можно отнести также прерывания при пошаговом исполнении программы, при работе с контрольным остановом и т. д.
Слайд 10

Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении

Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении

отказов и сбоев в работе технических средств (аппаратуре) ПК. Большинство технических прерываний не маскируются, то есть они разрешаются всегда, а некоторые из них относятся к категории «аварийных» (например, отключение питания), и при их возникновении даже не запрашивается причина прерывания, а просто по возможности спасаются важные промежуточные результаты — записываются в безопасное место, в НЖМД, например.
Логические прерывания возникают при появлении ошибок в выполняемых программах (деление на 0, потеря точности мантиссы, нарушение защиты памяти и т. п.). Многие из логических прерываний также относятся к категории немаскируемых.
Слайд 11

Вектора прерывания Между запросами (и соответствующими прерывающими программами) должны быть установлены

Вектора прерывания

Между запросами (и соответствующими прерывающими программами) должны быть установлены

приоритетные соотношения. Приоритетный выбор запроса для исполнения входит в процедуру перехода к прерывающей программе.
Назовем вектором прерывания вектор "начального состояния прерывающей программы. Вектор прерывания содержит всю необходимую информацию для перехода к прерывающей программе, в том числе ее начальный адрес. Каждому запросу (уровню) прерывания соответствует свой вектор прерывания. Векторы прерывания обычно находятся в специально выделенных фиксированных ячейках памяти.
Для того чтобы связать адрес обработчика прерывания с номером прерывания, используется таблица векторов прерываний, занимающая первый килобайт оперативной памяти - адреса от 0000:0000 до 0000: 03FF. Таблица состоит из 256 элементов - FAR - адресов обработчиков прерываний. В первом слове элемента таблицы записано смещение, а во втором - адрес сегмента обработчика прерывания. Прерыванию с номером 0 соответствует адрес 0000:0000, прерыванию с номером 1 - 0000:0004 и т.д.
Инициализация таблицы происходит частично BIOS после тестирования аппаратуры и перед началом загрузки операционной системой, частично при загрузке DOS.
DOS может переключить на себя некоторые прерывания BIOS.
Слайд 12

Таблицы векторов прерываний. Назначение некоторых наиболее важных векторов:

Таблицы векторов прерываний. Назначение некоторых наиболее важных векторов:

Слайд 13

Слайд 14

Слайд 15

Слайд 16

 

Слайд 17

Приоритеты Различают абсолютный и относительный приоритеты. Запрос, имеющий абсолютный приоритет, прерывает

Приоритеты

Различают абсолютный и относительный приоритеты. Запрос, имеющий абсолютный приоритет, прерывает выполняемую

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

Стандартное распределение приоритетов внутри вычислительной системы Не всегда сигнал прерывания вызывает

Стандартное распределение приоритетов внутри вычислительной системы

Не всегда сигнал прерывания вызывает прерывание

исполняющейся программы. Прерывание можно запрещать посредством отключения системы прерываний или операций маскирования отдельных прерываний.
Слайд 19

Маскирование прерываний Часто при выполнении критических участков программы для того, чтобы

Маскирование прерываний

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

выполнение определённой последовательности команд целиком, приходится запрещать прерывания. Это можно сделать командой CLI. Её надо поместить в начало критической последовательности команд, а в конце расположить команду STI, разрешающую процессору воспринимать прерывания. Команда CLI запрещает только маскируемые прерывания, немаскируемые всегда обрабатываются процессором.
Если необходимо замаскировать не все прерывания, а только некоторые, например, от асинхронного адаптера, то для этого необходимо воспользоваться услугами контроллера прерываний. Подробно об этом ниже, сейчас только отметим, что выдачей в этот контроллер определённой управляющей информации можно замаскировать прерывания от отдельных устройств.
Слайд 20

Особенности обработки аппаратных прерываний В отличие от программных прерываний, вызываемых запланировано

Особенности обработки аппаратных прерываний

В отличие от программных прерываний, вызываемых запланировано самой

прикладной программой, аппаратные прерывания всегда происходят асинхронно по отношению к выполняемой программе. Кроме того, может одновременно возникнуть несколько прерываний! Для того чтобы система знала, в какой последовательности необходимо обрабатывать запросы на прерывание, существует специальная схема приоритетов.
Система приоритетов реализуется на микросхемах Intel 8259. Каждая микросхема обслуживает до восьми приоритетов. Для увеличения количества уровней приоритетов микросхемы объединяются (каскадируются). Приоритеты аппаратных прерываний, получаемых в результате каскадирования двух микросхем для машин AT, представлены последовательностью номеров векторов прерываний (смотри таблицу), записанных в порядке возрастания приоритета обслуживания: 8; 9; А; 70...77; B: C: D: E: F. Из этой записи видно, что самый высокий приоритет у прерываний от интервального таймера, затем идёт прерывание от клавиатуры.
Слайд 21

Для управления схемами приоритетов необходимо знать внутреннее устройство контроллера прерываний 8259.

Для управления схемами приоритетов необходимо знать внутреннее устройство контроллера прерываний 8259.

Поступающие прерывания запоминаются в регистре запроса на прерывание IRR. Каждый бит из восьми в этом регистре соответствует прерыванию. После проверки на обработку в настоящий момент другого прерывания запрашивается информация из регистра обслуживания ISR. Перед выдачей запроса на прерывание в процессор проверяется содержимое восьмибитового регистра маски прерываний IMR. Если прерывание данного уровня не замаскировано, то выдаётся запрос на прерывание.
Наиболее интересными, с точки зрения программирования контроллера прерывания, являются регистры маски прерываний IMR и управляющий регистр прерываний.
В машинах AT регистры маски первого и второго контроллеров имеют адреса 21h, A1h соответственно, а адреса управляющих регистров имеют значения: 20h; A0h.
Разряды регистра маски прерываний соответствуют номерам IRQ. Для того чтобы замаскировать аппаратные прерывания какого-либо уровня, надо заслать в регистр маски байт, в котором бит, соответствующий этому уровню, установлен в 1. Например, для маскирования прерываний от НГМД в порт 21h надо заслать двоичное число 01000000. При этом все остальные устройства будут продолжать нормально работать. В случае использования машинной команды CLI были бы отключены все аппаратные прерывания, включая клавиатуру.
Слайд 22

Упрощенная структурная схема PIC

Упрощенная структурная схема PIC

Слайд 23

• IRR – регистр запросов прерываний - связан с внешними входами

• IRR – регистр запросов прерываний - связан с внешними

входами запросов (IRQ0 – IRQ7); • IMR – регистр маски запросов; • ISR – Interrupt Service Register – регистр обслуживаемых запросов; • ICW1-ICW3 – Initialization Control Word – управляющее слово инициализации (приказы инициализации); • OCW1-OCW3 - Operation Control Word – операционное управляющее слово (рабочие приказы); OCW1 = IMR Кроме регистров в состав PIC входят: блок управления и схема анализа приоритетов (арбитр). Назначением блока управления является выработка внутренних и внешних сигналов управления, с помощью которых осуществляются те или иные элементарные действия (микрооперации) внутри микросхемы. Например, запись байта из внешней шины данных в один из регистров контроллера. Сигналы CAS0-CAS2 используются для реализации каскадирования микросхемы. Входной сигнал CS (Chip Select – выбор кристалла) генерируется в том случае, если на внешней шине адреса (АВ) зафиксированы адреса, относящиеся к контроллеру прерываний. Программирование контроллера осуществляется по стандартным адресам портов ввода / вывода.
Слайд 24

Контроллер прерываний 8259 допускает каскадирование, обеспечивающее до 64 уровней прерываний. Контроллер

Контроллер прерываний 8259 допускает каскадирование, обеспечивающее до 64 уровней прерываний. Контроллер

имеет несколько режимов работы, которые устанавливаются программным способом. За первоначальную установку режимов контроллера отвечает BIOS. Однако часто возникает необходимость изменения текущего режима работы (запрет или разрешение прерываний определённого, или всех уровней, обработка кода прерывания) или опроса состояния внутренних регистров контроллера.
Если контроллеры каскадированы, то ведомой микросхеме присваивается код (выдачей в микросхему соответствующего командного слова). Этот код равен номеру входа IRQ ведущей микросхемы, с которой связан выход запроса прерывания INT ведомой микросхемы. Внутри микросхемы приоритет зависит от номера IRQ . Самым высоким приоритетом внутри группы, обслуживаемой каждым контроллером, обладает вход IRQ0. Однако, возможно программное изменение приоритетов в рамках так называемого приоритетного кольца. При этом дно кольца имеет самый низкий приоритет. Возможные варианты задания приоритетов приведены в таблице.
Слайд 25

Таблица кольцевых вариантов задания приоритетов Наибольший приоритет у входа IRQ с

Таблица кольцевых вариантов задания приоритетов

Наибольший приоритет у входа IRQ с обозначением

0 приоритетного кольца, наиболее низкий - с обозначением 7.
Как уже рассматривалось выше, контроллер имеет регистры: IRR - запросов прерываний; ISR - обслуживания прерываний: IMR - маски прерываний. После выработки сигнала в процессор соответствующий разряд регистра ISR устанавливается в единичное состояние, что блокирует обслуживание всех запросов с равным и более низким приоритетом. Устранить эту блокировку либо сбросом соответствующего бита в ISR, либо командой специального маскирования.
Слайд 26

Типы команд, посылаемых программой в контроллер. Имеются два типа команд, посылаемых

Типы команд, посылаемых программой в контроллер.

Имеются два типа команд, посылаемых программой в

контроллер 8259, - инициализации и операции. Так как инициализация производится программой BIOS, рассмотрим более подробно команды операции. Существует три типа команд операций:
1. Маскирование запросов прерывания;
2. Команды обработки конца прерывания;
3. Опрос регистров и специальное маскирование.
Байты команды маскирования вводятся соответственно в порты 21h, A1h для первого и второго контроллера соответственно.
Команды операций второго и третьего типа используют порты с адресами 20h, A0h.
Слайд 27

Команды обработки конца прерываний приведены в таблице.

Команды обработки конца прерываний приведены в таблице.

 

Слайд 28

Команды третьего типа имеют формат: По команде обычного конца прерывания устанавливается

Команды третьего типа имеют формат:

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

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

Аналогично работает команда циклического сдвига уровней приоритета со специальным концом прерывания,

Аналогично работает команда циклического сдвига уровней приоритета со специальным концом прерывания,

только низший уровень приоритета присваивается тому входу IRQ, номер которого указан в разрядах ВО...В2 команды.
Команда циклического сдвига уровней приоритета устанавливает статус уровней приоритета без выполнения операции конца прерывания. Разряды ВО...В2 указывают дно приоритетного кольца.
После выполнения команд разрешения чтения регистров ISR или IRR при выполнении команды ввода из порта 20h и A0h. считывается соответственно содержимое регистров ISR и IRR. Для получения содержимого регистра IMR необходимо выполнить чтение портов с адресами соответственно 21h и A1h.
Команда разрешения триггера специального маскирования блокирует действие тех разрядов ISR, которые замаскированы командой типа 1 (маскирования индивидуальных приоритетных уровней запроса прерывания).
Чтение регистров ISR и IRR может использоваться резидентными программами при проверке возможности своей активизации - можно проверить, не выполняется ли в настоящий момент обработка какого-нибудь прерывания, которая может конфликтовать с действиями резидентной программы.
Слайд 30

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

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

Слайд 31

Обработка прерываний

Обработка прерываний

Слайд 32

Уров-ни прио-рите-тов 1 2 3 4

Уров-ни прио-рите-тов
1
2
3
4

Слайд 33

D3 – третий Шаг детализации Отождествление себя 000 Я – Ничто

D3 – третий Шаг детализации

Отождествление себя
000 Я – Ничто
001 Я –

Объект
010 Я – Субъект
011 Я – Субъект & Объект
100 Я – Память
101 Я – Объект & Память
110 Я – Память & Субъект
111 Я – Всё

Связи отождествления: Я – Всё (1,1)
№ Содержание связей
0 Проявление / Растворение
1 Восприятие Субъектом Основы
2 Восприятие Субъектом Объекта / Воздействие Объекта на Субъект
3 Воздействие Субъекта на Объект / Восприятие Объектом Субъекта
4 Воздействие Субъекта на себя
5 Воздействие Субъекта на Память / Восприятие Памятью Субъекта
6 Воздействие Памяти на Субъекта / Обращение Субъекта к
Памяти

P – Потребность
S – Состояние
Яи – истинное
Ял – ложное (Эго)

D3=(((W0 / W1)/ W21 )/ W31);

((W0 / W1)/ W21 )
(РЕАЛЬНОСТЬ)

W31

Слайд 34

Таблица аналогий

Таблица аналогий

Слайд 35

Приоритеты при целостном подходе к обучению.

Приоритеты при целостном подходе к обучению.

Слайд 36

Свобода выбора Человек – сочетание двух видов особенностей. Один – животная

Свобода выбора

Человек – сочетание двух видов особенностей. Один – животная природа.

Другой – Божественная.
Поддаваясь влиянию дурных качеств, таких как вожделение, гнев, жадность, обман, гордыня и эгоизм
(шесть врагов человека – следствие
отождествления себя с отдельным), человек принижает себя до уровня животного.
С другой стороны, тот, кто правильно использует хорошие качества, данные Богом, такие как ум, мудрость и добродетель, следует по пути истины и праведности, посвящает себя святым делам, тот, в конце концов, достигает Божественного.
Человек может выбирать между путём, ведущим к животному состоянию, и путём, ведущим к Божественности, так как обе способности присутствуют в нём в равной мере.
Важен выбор, который он делает.
Слайд 37