Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Организация прерываний в ЭВМ




Организация прерываний в ЭВМ

 

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

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

┌────────────┐ ┌───────────┐ ┌───────────┐

│ программа ├<─── IT │ ├<─── IT │ │

│ вычисления ╞══════════>╡ программа ╞═══════════>╡ программа │

│ счетов ╞<══════════╡ давления ╞<═══════════╡ разогрева │

└────────────┘ └───────────┘ └───────────┘

 

Таким образом ПРЕРЫВАНИЕМ называется ситуация, возникающая в результате какого-либо независимого события (сигнала), приводящего к временному прекращению выполнения одной программы, с целью выполнения другой программы.

Прерывание предсталяет собой передачу управления в ответ на сигналы, асинхронные по отношению к выполнению команд. При этом происходит операция замены старого PSW (а зачастую и всего контекста задачи) на новый, с запоминанием старого PSW (контекста задачи) в определенных специально отведенных ячейках памяти с тем, чтобы по окончании вновь вызвать программу. Сигнал IT принимается к обработке только, если его уровень является наиболее высоким из принятых в данный момент. Обычно прерывания иерархизуются по типам. Каждый из типов характеризуется определенным уровнем прерываний, которые с ним связаны. Для примера укажем типы прерываний и связанные с ними действия в ЕС ЭВМ, где имеется 5 типов прерываний:

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

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

обработка после появления команды SUC (SUC - программы) бывают 4-х видов:

I. Находящиеся в ядре системы и не допускающие прерываний из программы при их работе : изменение приоритета задачи (CMAP), выхода (EXIT), извлечения управляющей информации из защищенной области памяти (EXTRACT), выделения основной памяти (GETMAIN), освобождения основной памяти (FREEMAIN), извещения о завершении события (POST), получения времени и даты (TIME), проверки интегрального таймера (TTIMER) и ожидания завершения события (WAIT).

II. Программы, постоянно находящиеся в ОЗУ, допускающие при работе прерывания (программы ввода/вывода, которые ждут завершения обмена и потому могут быть прерваны).

III. Аналогичные II по своим характеристикам, но редко используемые программы и поэтому не находящиеся в ядре программы. Их необходимо вызвать из библиотеки супервизора SYS1.SVCLIB в транзитную зону.

IV. В SYS1.SVCLIB (или в любую другую зону) можно загрузить, например, программы из нескольких модулей и их вызвать по мере надобности или имитировать новые драйверы и т.д.

Алгоритм работы будет следующий:

│ │

│обрабатываемая│

│ программа │

│ . │ Таблица

│ . │ прерываний

│ . │ ├───────────┤ ┌───────────────────────────┐

├──────────────┤ │безусловный├──────>┤ обработчик прерываний SVC:│

│ SVC ├───>┤ переход(*)│ │ --------------------------│

├──────────────┼<─┐ ├───────────┤ │ сохраняет весь контекст │

│ . │ │ │ │ │ задачи в соответствующем │

│ . │ │ ├───────────┤ │ магазине (соответсвующем │

│ │ │ │ │ │ номеру SVC │

│ ├───────────┤ ├───────────────────────────┤

│ │ SVC - программа │

│ ├───────────────────────────┤

│ │ программа выхода │

│ │ ---------------- │

│ │ восстанавливает контекст │

│ ├───────────────────────────┤

└─────────────────────┤ диспетчер задач │

└───────────────────────────┘

 

(*) здесь именно команда безусловного перехода, которая не меняет контекста задачи (то есть ее регистров)

 

Из пунктов 2-4 необходимо создание блоков запроса супервизоров (SVRB), где содержится вся информация для SVC-программ. Аналогичная схема применяется и для других типов прерываний, то есть также прерывание начинается и завершается обработчиком и программой выхода. Однако есть машины, где весь контекст прерывания сохраняется единой командой в одном магазине (ИРИС80, CRAY-x MP и т.д.).

 

3) Программные прерывания возникают в результате неправильного использования команд или данных. Их 15:

код IT │ Причина

────────┼──────────────────────────────────────────────────────

1 │ Некорректен код операции

2 │ Некорректеное использование привелигированной команды

3 │ Исключение при команде ВЫПОЛНИТЬ

4 │ Нарушение защиты памяти

5 │ Неправильная адресация

6 │ Неправильная спецификация

7 │ Неправильные данные

8 │ Переполнение типа INTEGER

9 │ Неправильное деление с фиксированной точкой

10(А) │ Десятичное переполнение

11(B) │ Некорректность десятичного деления

12(C) │ Переполнение порядка

13(D) │ Исчезновение порядка

14(E) │ Потеря значимости

15(F) │ Некорректность деления с плавающей точкой

 

Причем 8,10,13 и 14 можно замаскировать командой SMP и тогда при работе они не будут учитываться. При возникновении таких прерываний старое PSW заменяется новым и управление переходит программе "Обработчик программных прерываний", которая аварийно завершает работу. Если аварийно завершилась одна из подзадач, то и основная задача завершается аварийно. Эти прерывания можно обработать самому пользователю макрокомандой SPIE [адрес_программы_обработки_прерываний, (прерывания)] где прерывания - одно или несколько десятичных чисел, определяющих прерывание Можно отложть аварийное завершение программы через макро STATE.

4) Прерывания от схем контроля машины - при их возникновении (обычно при сбоях в блоках ЭВМ) происходит инициация процедуры диагностики и диагностическая информация переносится в файл SYS.LOGREG, где собирается информация о сбоях. Выдается сообщение оператору. Если сбоев слишком много или они большой тяжести, то может быть аварийный останов машины. Обычно это прерывания самого высокого приоритета.

5) Прерывания ввода-вывода позволяют ЦП определять состояние каналов, внешних устройств и контролировать операции ввода/вывода. Поток запросов в/в диспетчеризируются в состветствии с приоритетами, присваеваемыми в порядке поступления запросов и сохраняются до их полной обработки.

6) В IBM 370 (Ряд-2, Ряд-3) есть прерывания повторного пуска, которые возникают в результате действий оператора (нажатие кнопки) или другого процессора. Они не маскируются.

Обычный порядок приоритетов:

1. От схем контроля

2. Программные прерывания и прерывания обращений к супервизору

3. Подавляемые прерывания от схем контроля

4. Прерывания внешние

5. Прерывания в/в

6. Прерывания повторного пуска. Однако, если процессор находится

в состоянии СТОП, то приритетность этих прерываний идет сразу

вслед за программными прерываниями.

 

Процессор может находится в одном из следующих состояний:

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

Р2 - обработка прерываний

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

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

ОЗУ │ ЦП

── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ──

┌────────────┐ 2 │

│ старое PSW ├───────────────────┐

└────────────┘ │ │

N IT│таблица прерываний│ │ │ 1 IT

. ╞══════════════════╡<───────────────┼───────────────────────

n │ SPSW ADRn ├─ ── ── ─┐ /│\

├──────────────────┤ │ ┌─┴──────────┐

n+1│ SPSW ADRn+1 │ └─ ─>┤регистр PSW │

. ├──────────────────┤ │ └─┬──────────┘

. │ . │ /│\

. │ . │ │ │

┌────────────┐ 3 │ │

│ новое PSW ├───────────────────┘

└────────────┘ │

 

Как видим, таблица прерываний содержит команду замены старого PSW на новое (SPSW) с адресом ячейки, где хранится новое PSW, и с адресом, куда надо послать старое PSW, хранящееся в данный момент в соответствующем регистре ЦП. Таким образом и происходит обмен контекстов. Заметим, что иногда вместо длинной SPSW используются более короткие операции специальных переходов. Операции ввода-вывода получают прерывания от устройств по окончании ввода/вывода, а обращаются к супервизору в/в с уровня программы, отсюда всегда драйверы состоят из двух уровней.

Адреса размещения PSW:

 

старого │ нового │ IT

───────────┼─────────┼───────────────────────────

24 │ 88 │ внешнее

32 │ 96 │ обращение к супервизору

40 │ 104 │ программные

48 │ 112 │ от схем контроля

56 │ 120 │ ввода/вывода

0 │ 8 │ повторного пуска

│ │

 

А проблемы ввода/вывода мы рассмотрим позже, при описании системы обработки информации.

Особенности работы системы прерывания

-------------------------------------

Возможны два вида работы Системы Прерываний (IT) в режиме мультипроцессирования.

Одна IT для командного ЦП.

--------------------------

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

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

Централизованная система прерываний.

------------------------------------

Эта система объединяет в себе все прерывания, приходящие от различных ЦП и каналов. Таким образом каждый раз при прибытии зап-

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

 

 


Поделиться:

Дата добавления: 2015-04-21; просмотров: 78; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты