Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Shpory_Sp_(1)

.pdf
Скачиваний:
8
Добавлен:
08.03.2016
Размер:
1 Mб
Скачать

1.Основні компоненти обчислювальної системи (апаратне забезпечення, програмне забезпечення: прикладне, системне: операційна система (ОС), система програмування).

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

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

Программное обеспечение (ПО) – совокупность программ и правил вместе с документацией. Традиционно ПО разделяют на прикладное и системное; иногда говорят о кроссовом и тестовом ПО.

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

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

Системное ПО не предназначено для решения задач пользователя, особенностьмашинная зависимость.

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

Тестовое ПО - для проверки работоспособности устройств ЭВМ на стадиях разработки.

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

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

Система программирования – совокупность программ для автоматизации процессов разработки и отладки программ (компиляторы, ассемблеры, макрогенераторы, редакторы, библиотекари, средства отладки(debugger)).

2.Режими функціонування ЕОМ (однопрограмний, багатопрограмний, багатозадачний, часова діаграма).

Три режима :

Однопрограммный, многопрогр., многозадачный.

Воднопрограммном режиме все ресурсы предоставляются только одной программе (ресурсвсякий объект, который может распределить ОС между вычислительными процессами)

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

Для однопроцессорной вычислительной системы в каждый момент времени выполняется только одна задача. Чтобы начать обмен данными с ПУ, выполняемая программа обращается

к ОС с запросом на ввод-вывод. В ответ ОС передает периферийному устройству команду начать обмен и затем переключает МП на выполнение другой программы. После завершения ПУ обмена данными, программа, инициировавшая обмен, снова готова использовать МП.

Временные диаграммы: однопрограммный режим

многопрограммный режим

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

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

3. Загальні принципи та рівні програмного управління зовнішніми пристроями та файлами (фізичний: перевірка готовності, обробка переривань: запит переривань, підпрограма обробки переривань; логічний: драйвери, система управління файлами (файлова система)).

На физическом уровне:

1)―по готовности‖;

2)―по прерыванию‖ На логическом уровне:

1)драйвер устройства;

2)файловая система Физический уровень - на этом уровне обмен информацией осущ. машинными командами.

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

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

Обработка прерывания - в этом случае инициирование ввода вывода осущ не МП, а внешним устр-вом, кот при своей готовности к в/в генерирует запрос прерывания, кот проявляется в виде электрич сигнала подаваемого на вход ―INTR‖ МП (через контроллер прерывания

8259А) и заставляет МП прекратить выполнение текущей посл-ти команд, переключится на выполнение подпр-ы обслуживания устр-ва кот вызвало прерывание. Такая подпр-ма наз подпр-мой обработки прерывания ISR (interrupt service routine) и содержит команды, кот осущ обмен данными.

Логич уровень. Пр-ние в/в на физ уровне явл сложным т. к. требует знания особенностей работы периферийного устр-ва, особенности работы ОС.

Чтобы упростить пр-ние в/в в ОС предусматриваются средства упр-ния устр-вами на логич уровне. Для их реализации в состав ОС включены стандартные драйверы и сист управления файлами, кот могут входить в состав монитора (сист использование вызовов из ядра)или сист пр-м (администраторы ресурсов В ОС QNX/ Neutrino 2).

Драйвер-это спец пр-ма управления конкретным ПУ, кот реализ средство физ. уровня и обеспечивает в/в. Здесь для выполнения обмена нужно просто включить в свою пр-му запрос в/в, кот обрабатыв. драйвером.Файловая сист- FAT-12, FAT-16, FAT-32, NTFS, VFAT обеспечивает более высокий уровень управления ПУ. Файл размещается на внешнем носителе инф-ции или в ОП и обычно содержит однородную инф-цию заданного функц. назначения (пр-ма или данные). Файловая сист позволяет обращаться с файлом как с основной единицей хранения инф-ции и обеспечивает эффект в/в отдельных эл-ов файла. Файловая сист предоставляет простой способ доступа к файлам путем указания их имен , а также копирование, создание, и т. д. Указание выполнить файловую оп-цию задается или на языке директив ОС или включением запроса файловой оп-ции в свою пр-му.

4.Управління зовнішніми пристроями на фізичному рівні (приклади).

5.Управління зовнішніми пристроями в ОС Win32.

ReadFile #include <stdio.h> #include <windows.h>

const buf_len=15;

int main()

{

HANDLE hCom=INVALID_HANDLE_VALUE;//файловый дискриптор

DCB dcb;//структура файла (внешнего устройства) hCom=CreateFile("COM1",GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,0,NULL);

GetCommState(hCom,&dcb);

dcb.BaudRate=9600;//скорость, не включая стартовый, стоповый и четный dcb.ByteSize=8;//размер слова

dcb.Parity=NOPARITY;//нет проверки четности dcb.StopBits=ONESTOPBIT;//равно нулю SetCommState(hCom,&dcb);

//запись (передача) данных

DWORD n_read; char* buf;

buf=(char*)malloc((size_t)buf_len);

//динамически выделить память под синхронный режим while (1)

{

ReadFile(hCom,buf,buf_len,&n_read,0); printf("%d bytes read - %s\n", n_read,buf);

//Sleep(300);

}

CloseHandle(hCom); return 0;

}

WriteFile #include <stdio.h> #include <windows.h>

const buf_len=15;

int main()

{

HANDLE hCom=INVALID_HANDLE_VALUE;//файловый дискриптор

DCB dcb;//структура файла (внешнего устройства) hCom=CreateFile("COM1",GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL);

GetCommState(hCom,&dcb);

dcb.BaudRate=9600;//скорость, не включая стартовый, стоповый и четный dcb.ByteSize=8;//размер слова

dcb.Parity=NOPARITY;//нет проверки четности dcb.StopBits=ONESTOPBIT;//равно нулю

SetCommState(hCom,&dcb);

//запись (передача) данных

DWORD n_written; char* buf;

buf=(char*)malloc((size_t)buf_len); unsigned short i=0;

//динамически выделить память под синхронный режим while (1)

{

sprintf(buf,"send %d",i); WriteFile(hCom,buf,buf_len,&n_written,0);

printf("%d bytes write - %s\n", n_written,buf);

Sleep(300);

i++;

}

CloseHandle(hCom); return 0;

}

6. Система програмування. Транслятори (асемблер, компілятор, інтерпретатор).

Это совокупность пр-ных средств для автоматизации разработки и отладки пр-м. Она включает языки пр-ния, трансляторы, библиотеки, компановщикии отладчики программ.

Языки пр-ния классифицируют:

Трансляторы- это пр-мы, кот преобразуют исходный текст пр-мы в объектную пр-му на машинном языке или на языке низкого уровня. В зависимости от входного языка и порядка следования этапов трансляции и исполнения оп-ров пр-мы. Трансляторы делят на Ассемблеры, интерпретаторы и компиляторы.

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

Интерпретатор-транслятор с языка высокого уровня (или компилятор), в зависимости от порядка следования этапов трансляции оп-ра и выполнения оп-ра пр-мы. Интерпретатор после трансляции каждогооп-ра вызывает его немедленное выполнение, компилятор вначале транслирует все оп-ры пр-мы, а потом исполнение пр-мы без его участия. Сущ 2 разновидности компилятора.

Библиотеки пр-м. Обычно в формируемую пр-му компилятор включает обращение к объектным модулям, кот вычисляют зн-ние матем ф-ций обеспечивают в/в и т. д. Эти модули хранятся в библиотеках пр-м и овтомат извлекаются из них компоновщиком. Компоновщикэто редактор связи + загрузчик. Объединяет несколько объектных модулей в 1 загрузочный модуль, кот готов для непосредственного выполнения после его загрузки в ОП.

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

8.Загальна характеристика архітектури мікропроцесорів х86 (адресація, розподіл пам’яті, система команд, порти введення-виведення, переривання апаратні та програмні, адресна шина та шина даних).

Регистры данных Регистры данных базовой модели 8086/88 могут рассматриваться как 16 и 8 битовых.

Эти регистры можно использовать при программировании. Часть из них используется неявно. axaccumulation register

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

SCAS-сканирование строки STOSсохранить строку.

Регистр ahпри умножении и делении байтов.

alпри умножении и делении байтов, операциях вв\вывода байта (out; in); при образованиях 10-тичных чисел (BCD) и выполнении над ними арифметических операций.

bx – base register – используются для адресации данных в памяти (косвенным образом). dx – data register – используется при умножении и делении слов. dx:ax/bx

в операциях вв\вывода как № порта.

Mov dx, 310h Out dx, ax

Регистры сегментов

86\88 Базовая модель работает с 4 сегментами одновременно cs, ds, es, ss.

386: cs, ds, es, ss, gs, fs.

cs – code segment – указывает на сегмент, содержащий текущую используемую программу. Для вычисления адреса следующей исполняемой команды, мк.проц к содержащему cs*16+ip. ss – stack segment – указывает на текущий сегмент стека. Стек – область памяти для временного хранения адреса и данных.

ds – data segment – дополнительный сегмент, который обычно используется при работе под строками.

Ds:si – источник. Cs:di – приемник.

Регистры указателей и индексов

Sp – указатель на вершину стека. (TOS)-top of stack. Bp – base pointer.

Si – course index

Di – destination index.

Для доступа к сегменту данных мк\проц. № блока из регистра bx, следовательно из si, di. Для ss мк\проц. извлекает № блока из регистра ss, а смещение из регистра sp, bp.

Ip – указывает на следующую исполняемую команду арифметического действия не допускаются над ip, но jump могут изменять его содержимое.

Базовая модель содержат 14 регистров: регистры данных Ax, Bx, Cx, Dx, индексные регистры Si, Di, регистры - указатели Sp, Вр, сегментные регистры Cs, Ds, Es, Ss, регистр указателя команд IP и flags.

Адресация в реальном режиме.

МП всегда генерирует 20-разрядный физический адрес, что обеспечивает доступ к 1 Мб ячеек памяти. Физический адрес в реальном режиме формируется так: ФА=(сегмент)*16 + (смещение). Например, сегмент=0001, смещение=0А00, ФА=00010+0А00=00А10.

Распределение памяти.

16 старших байтов памяти отводятся под команды начальной загрузки системы по включе-

нию питания (FFFFF - FFFFO).

Первые 1024 б занимают адреса программ обработки внешних прерываний процессора. Остальная память доступна для системных и прикладных программ.

В МП адрес любой ячейки памяти задаѐтся 2-мя числами, т.е. номером блока и смещением. Это связано с тем, что для данной архитектуры команды и данные должны располагаться в разных блоках. Если программе требуется обратиться к ячейке памяти за данными, то МП потребуется номер блока и смещение в этом блоке, которое он извлекает из регистра DS и какого-нибудь РОНа. Для получения информации о следующей команде № блока извлекается из регистра Cs, а смещение через регистр IP.

Система команд.

Содержит 92 типа основных команд и 7 различных режимов адресации, т.е. режимов доступа к данным. Комбинация этих типов команд и способов адресации образует тысячи машинных команд,

Порты ввода/вывода.

Дополнительно к ОЗУ 1 Мб существует возможность адресации к 64 Кб портов ввода/вывода. МП имеет спец. команды ввода/вывода.

Прерывания.

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

MП 8088 (8086) - это ИС с 40 выводами, 20 из которых служат для вывода адресов ячеек памяти и образуют адресную шину. Первые младшие 8 (16) бит адресной шины используются также для ввода данных и вывода данных в ЦП и образуют шину данных. Такое совмещение шины данных и шины адреса назыв. мультиплексированием.

9, 10.Програмна модель мікропроцесорів серії х86 в режимі Protected Mode.

Регистры для работы в защищенном режиме: eax, ebx, ecx, edx,esi, edi, esp, ebp – 32разр.

ds, cs, es, ss, gs, fs – 16р. имеют „двойников‖ – теневые регистры. Управляющие регистры: CR0,CR3,CR6

Сегм регистры содержат в себе селекторы.

Классический режим адресации, использованный в первых моделях семейства. Использует сегментированную модель памяти, организованную следующим образом: адресное пространство в 1 MiB разбивается на 16-байтовые блоки, называемые параграфами. Всего параграфов в 1 MiB — 65536, что позволяет пронумеровать их 16-разрядными числами. Сегменты памяти имеют размер 65536 байт, и всегда начинаются на границе параграфа. Адрес ячейки памяти состоит из двух частей: номера параграфа, с которого начинается сегмент и смещения внутри сегмента и обычно записывается как SSSS:OOOO (Segment и Offset), где S и O — шестнадцатеричные цифры. SSSS называется сегментной компонентой адреса, а OOOO — смещением. Адрес ячейки, выдаваемый на шину, представляет собой сегментную компоненту умноженную на 16 плюс смещение. Сегментная компонента помещается в специальный регистр, называемый сегментным, а смещение в регистр IP(регистр инструкций). Микропроцессоры 8086/8088, 80186/80188 и 80286 имели четыре сегментных регистра, т.е могли работать одновременно с четырьмя сегментами памяти, имеющими определенное назначение. В 80386 добавили ещѐ два, не имеющих специального назначения.

Сегментные регистры и их назначение:

CS — Сегмент кода. Используется для выборки команд программы;

DS — Сегмент данных. Используется по умолчанию для доступа к данным;

ES — Дополнительный сегмент. Является получателем данных в командах обработки строк; SS — Сегмент стека. Используется для размещения программного стека;

FS — Дополнительный сегментный регистр. Специального назначения не имеет. Появился в процессоре 80386;

GS — Аналогично предыдущему, но в новых процессорах с 64-битной архитектурой имеет особый статус: может использоваться для быстрого переключения контекстов.

Несмотря на то, что сегментные регистры имеют специальные назначения, архитектура допускает при обращении к данным заменить один сегмент на любой другой. Сегменты кода, стека и получателя строк всегда используют регистры CS, SS и ES и не могут быть изменены.

Общий объѐм памяти, адресуемый в реальном режиме составляет 1048576 байт (0000:0000- F000:FFFF(00000-FFFFF)-логический адрес (физический адрес) в шестнадцатеричной системе счисления). Сегментный подход позволяет разделить всю память на 16 сегментов, начинающихся с адресов, кратных 64 Кбайт. Эти 16 сегментов называют страницами памяти. Обычно деление на страницы используется для совместного функционирования устройств, интерфейсы которых отображены на адресное пространство памяти; тогда каждое такое устройство использует одну страницу памяти, и адрес ячейки в адресном пространстве устройства будет совпадать со смещением в сегменте памяти компьютера. Так в компьютерах IBM PC страницы c 11 по 15 используются как «видеопамять»(адресное пространство видеоадаптера), а шестнадцатая страница(размещающаяся в адресах FFFF:0000 — FFFF:FFFF) получила название «области верхней памяти» (High Memory Area), которую впоследствии MS-DOS использовала для размещения своего ядра и буферов ввода-вывода, оставив больше «обычной» памяти прикладным программам. Таким образом реально доступная пользователю память составляет 640 Кбайт (первые 10 страниц).

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

11. Організація взаємодії процесора та співпроцесора.

ЦП и сопроцессор могут выполнять команды параллельно, однако ЦП х86 считается главным, а х87подчиненным, это значит, что когда х86 встречает команду х87, то он:

1)ожидает, пока х87 не освободится;

2)разрешает начать выполнение его команды;

3)сразу же х86 переходит к следующей команде.

х86 не ожидает пока х87 выполнит свои команды, но если х87 не выполнил свои команды, а х86 встретил команду х87, то х86 начинает ждать. Такой подход позволяет х86 продолжать выполнение программы, пока х87 занят медленной командой.

Пример

Fist A ; сохранить значение вершины стека mov ax,A

Здесь х86 начинает выполнять команду mov раньше, чем х87 завершит команду Fist и в ах будет передано неверное значение. Этой проблемы не будет, если

1)между этими двумя командами будет находиться еще одга команда 87-го.

2)Установлена команда F Wait

Fist A

F Wait mov ax,A

Если х87 эммулируется, то необходимо использовать команду FWait , т.к. при этом эммулятор кода х87 заменит Fwait на NOP, чтобы не было бесконечного ожидания сигнала от несуществующей аппаратуры.

12.Обробка переривань. Зовнішні переривання.

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

Действие, симулирующее такое – прерывание, а программа – процедура обработки прерывания.

Существует 2 основных типа прерываний – внутрение и внешние.

Внешние прерывания иниц. сигналом, поступающим в центр процессора по линиям NMI, IMP от других компонент вычислительной системы.

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

При вызове процедуры обработки прерывания автоматически записываются в стеке значения регистра флагов, регистров, IS, IC. А также нужно запомнить значение регистров, участвующих в обработке прерываний.

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

Внешние прерывания реализуются на х86 через NMI и INTR NMI – вход не маск. прерывания.

Если в порт 7Øh переслать ØАС, то прерывания будут замаскироваными.

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

NMF – катастрофа.

Если внешнее устройство формирует сигнал на входе NMI то процессор реагирует на прерывание.

Обычный вход для прерываний микропроцессора внешним устр-ом зависит от того, какое значение имеет бит if в регистре флагов: если if=0 (CLI) прерывание запрещено, если if=1 (STI), то прерывания разрешены.

При возникновении сигнала на линии интер-микропроцессор запрещает контроллер прерываний, который сообщает ему число из диапазона 255, называемое типом прерывания, сигнализирующее ему причину прерывания по линии INTR. Для каждого типа прерывания определена программа обработки прерывания, адрес которой записан в 256 элементной таблице векторов прерываний. Каждый элемент в байт указывает на процедуры обработки.

0000:0000←IR ошибка деления на Ø

0000:0002←CS 0000:0004←IP

0000:0006←2S прерывание типа 1

После обследования прерывания, возврат в прерванную программу осуществляется IRCT.

Направление команды DIV, IDIV, вызывание прерывания типа Ø если частное от деления превращает в диапазон приемного регистра при независимом от состояния флагов IF, TF.

15.Обробка маскованих переривань.

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

1)Устр-во посылает сигнал через шину управления.

2)После завершения текущей команды ЦП выдает запрос на подтверждение.

3)В ответ на запрос в ЦП передается тип или номер прерывания.

4)Текущее содержание регистров FLAGS, LS, IP, помещается в стек.

5)Сбросившиеся флажки IF, TF, то прерывание запрещается.

6)В регистр IP загружается содержание ячейки памяти по физическому адресу 4*N→IP, a

4*N+2→LS N – номер прерывания.

7)Начинается процедура обработки прерывания.

8)По завершении процедуры командой IRET извлекается из стекa IP, CS, Flags.

9)Выпускается возврат в прерванную программу.

Для того, чтобы ЦП был извещен о конце обработки прерывания, необходимо в конце процедуры обработки прерывания например 2 команды: mov cd, 20h cut 20h, al или : mov dx, 0A0h mov al, 20h

cut dx, al.

16. Пріоритети апаратних переривань. Алгоритм обробки переривань.

Для упорядоченного прерывания в системе используются приоритеты. Аппаратных средств у ЦП для этого нет и все прерывающие устр-ва подключены к микросхеме 8259А контроллер прерываний которых подключается к ЦП с использованием линий INTR, INTA. Но контроллер 8259А может обрабатывать до 8 видов прерываний IRQ 0 – IRQ 7.

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

Регистр типа прерывания(номер

ISR

 

 

 

IPR

 

 

 

Логика

 

IRQ

 

 

 

 

 

 

 

 

 

 

IMR

 

0

 

 

Регистр масок

 

-

 

 

 

-

 

 

прерываний

 

 

 

 

IRQ

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

Обычно неравенство прямых IRQ 0 –IRQ 7

Когда запрос прерывания реализуется на имеющийся наивысший приоритет 8 бит в регистре типа устанавливается на номер линии с запросом, затем устанавливается соответствующий бит в регистре, обслуживающем прерывания.

Если флаг IF=1, то ЦП возвращает сигнал потверждаться и схема упровления контролѐра выдаѐт по шине данных байт с номером прерывания. Все запросы с меньшими приоритетами блокируются до тех пор, пока не будет сброшен бит в регистры обслужиемом ISR – это должна сделать програма обработки.

Предусмотрены маскирующие прерываний регистры IMR если бит маски = 1 тогда запрос на прерывание IPR подаѐтся в логику приоритетов, иначе он блокируется. К данному регистру можно обращаться через порт 21h или A1h.

Если прерывание вызывается одновременно, то контролер передаѐт в центр процессора прерывание с более высоким приоритетом, а менее приоритетный задерживает. После обработки первого прерывания контролер сообщает процесору о втором.

Для того чтобы центральный процесор был извещѐн о конце обработки прерывания: mov ai, eoi

mov dx, pot cut dx, al

Алгоритм обработки прерываний.

1) Пусть выполняется процедура обработки прерываний. Пусть возникает новое прерывание 1.1) Если приоритет меньше либо = приоритету обслужимоемого прерывания то контролер задерживает обслуживание прерывания до завершения процеса прерывания.

1.2) Если приоритет нового больше приоритета обслуживаемого то возможно два случая:

1.2.1) IF =1 – прерывание разрешено то процедура обслуживаемого прерывания сама будет прервана и будет вызвана процедура обработки нового более приоритетного прерывания в этом случае обрабатываются вложеные прерывания.

1.2.2) IF =0 – прерывание запрещено. Новое прерывание задержуется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]