- •Содержание
- •1 Группа
- •1. Організація адресації ат286 в захищеному режимі.
- •2. Архітектура мп 80386.
- •3. Архітектура мп 80486.
- •4. Регістри стану й керування і486.
- •5. Архітектура та функціональні можливості Pentium.
- •6. Провести порівняльний аналіз архітектур мікропроцесорів фірми Intel.
- •7. Risc-процесори.
- •8. Архітектура сигнального мікропроцесора adsp.
- •9. Описати роботу системного таймера ibm-сумісного комп'ютера.
- •10. Класифікація мікропроцесорних наборів.
- •11. Класифікація мікропроцесорних наборів за числом віс.
- •12. Режими роботи таймерів однокристальної мікро еом Intel 8051.
- •13. Архітектура пам’яті процесорів adsp-2100.
- •14. Система команд і регістри процесорів сімейства adsp-2100.
- •15. Динамічні зп з довільною вибіркою.
- •16. Стекова адресація. Польський зворотній запис.
- •If (число)
- •17. Перетворення віртуальних адресів у фізичні.
- •18. Адресний простір еом. Способи адресації операндів.
- •19. Оперативна пам’ять. Організація та принципи управління.
- •20. Система переривань та її характеристики.
- •21. Формування фізичної адреси з логічної у реальному режимі.
- •22. Формування фізичної адреси з логічної у 386 захищеному режимі.
- •23. Підсистема керування оперативної пам’яті. Організація та принципи управління.
- •1. Динамическое распределение памяти.
- •2. Разделение памяти на страницы.
- •3. Использование связанных списков.
- •4. Сегментация памяти.
- •5. Свопинг памяти.
- •6. Организация виртуальной памяти.
- •24. Динамічний розподіл пам’яті. Організація віртуальної пам’яті.
- •25. Загальні принципи будування багатопроцесорних обчислювальних комплексів..
- •26. Загальні принципи будування багатомашинних обчислювальних комплексів.
- •27. Конвеєрні, векторні та матричні багатопроцесорні комплекси.
- •28. Асоціативні системи та системи зі структурою, що перебудовується.
- •29. Принципи будування високонадійних обчислювальних систем - кластерів.
- •30. Принципи побудови систем з симетрично-паралельною обробкою даних. Переваги та недоліки таких систем
- •31. Страницы jsp. Теги и встроенные объекты jsp
- •32. Архитектура распределенных приложений. Web – сервисы
- •33. Soap
- •34. Java rmi Достоинства и недостатки Java rmi
- •35. Распределенные компьютерные системы. Промежуточное программное обеспечение распределенных компьютерных систем
- •36. Виртуальная машина jvm
- •37. Пространства и схемы xml
- •38. Corba. Достоинтсва и недостатки corba
- •39. Сервлет-технология Java
- •40.Xml. Структура xml-документа
- •2 Группа
- •1 Класифікація операційних систем
- •2 Мультизадачність, її розновиди
- •3. Процеси, потоки та їх взаємодія
- •4. Стани процесів
- •5. Розподіл оперативної пам'яті фіксованими розділами
- •6. Розподіл оперативної пам'яті зміними розділами, алгоритми завантаження нових процесів
- •7. Пошук фізичної адреси у реальному режимі
- •8.Пошук фізичної адреси у захищеному режимі
- •9. Пошук фізичної адреси при сторінковій адресації
- •10.Сегментна та сторінкова організація віртуальної пам’яті, алгоритми заміщення сегментів
- •11. Системи введення-виведення, основні режими, базові таблиці
- •12.Файлові системи fat (fat-16, fat-32, vfat).
- •Vfat и длинные имена файлов
- •13.Файлова система hpfs.
- •14.Файлова система ntfs.
- •15.Файлова система UfS.
- •16. Структура жорсткого магнитного диску
- •1.Каждый жесткий диск обслуживают несколько головок, в зависимости от количества круглых пластинок, покрытых магнитным материалом, из которых состоит диск.
- •2.Информация записывается и читается блоками, поэтому все дорожки как бы разбиты на секторы (обычно по 512 байт).
- •3.В операциях чтения или записи на физическом уровне необходимо указывать номер головки (0,1,...), дорожки или цилиндра (0,1,...), сектора (1,2,...).
- •17 Класифікація системного програмного забезпечення
- •18 Мікроядерні та монолітні операційні системи, їх особливості
- •19 Сервісні системи (інтерфейсні системи, оболонки, утілити)
- •20 Інструментальні системи
- •21 Системи програмування, їх основні типи.
- •22 Системи штучного інтелекту
- •23 Асемблери, алгоритм двохпрохідного асемблера
- •24 Завантажувачі
- •25 Макропроцесори
- •26 Компілятори
- •27 Призначення та структура головної функції вікна.
- •Реєстрація класу вікна, параметри, які підлягають реєстрації.
- •29 Етапи створення вікна. Які функції задіяно на кожному етапі?
- •30 Ініціалізація dll-бібліотеки у середовищі Microsoft Windows nt/2000/xp.
- •31 Експорт та імпорт функцій при використанні dll-бібліотек.
- •32 Динамічний імпорт функцій при використанні dll-бібліотек.
- •33 Структура простої прикладної програми з бібліотекою динамічної компоновки. Послідовність дій при компіляції.
- •If(!strcmp((lpstr)lParam, szBuf)) // Сравниваем заголовок со строкой, адрес которой передан в функцию EnumWindowsProc
- •3 Группа
- •Void main ()
- •Void main ()
- •Void main ()
- •Int n; scanf("%d",&n); //число элементов в массиве
- •Void main()
- •Int n; scanf("%d",&n); //число элементов в массиве
- •Int main()
- •Int n,m; scanf("%d%d",&n,&m); //число элементов строк и элементов в строке
- •Int main()
- •Int n,m; scanf("%d%d",&n,&m); //число элементов строк и элементов в строке
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int mul(double X,double y)
- •Int main()
- •Int main()
- •Void func(a);
- •Int fclose(file *имя);
- •Void perror(const char *s);
- •Int fputc(int ch, file *fp);
- •Int fgetc(file *fp);
- •Int fputs(char* string, file *fp);
- •Int fprintf(file *fp, char *format [,аргумент]…);
- •Int fscanf(file *fp, char *format [,указатель]…);
- •Int n; float f; long l; int a[5]; float m[5];
- •Int fwrite(void *ptr, int size, int n, file *fp);
- •Int fread(void *ptr,int size,int n,file *fp);
- •16 Ооп. Визначення класу. Компоненти класу. Спеціфікатори доступу до компонентів класу. Різниця між методами класу, визначеними в класі та поза межами класу.
- •Void define(double re,double im)
- •Void display()
- •X.Define(1,2);
- •Void set(int);
- •Void myclass::set(int c)
- •Int myclass::get()
- •17 Ооп. Визначення класу. Конструктор, перевантажені конструктори, деструктор.
- •Void main()
- •Void main()
- •Void main()
- •18 Ооп. Поняття дружніх функціїй. Різниця між дружньою функцією - членом класу та не членом класу.
- •19 Ооп. Поняття перевантаження операцій. Правила її використання.
- •20 Ооп. Наслідування. Поняття базового та похідного класів. Спеціфікатори доступу до членів класів.
- •21 Моделювання. Визначення моделі та призначення моделювання. Види моделей.
- •22 Моделювання. Загальносистемна модель функціонування систем. Моделі систем: безперервна, лінійна, безперервна лінійна, дискретна.
- •23 Моделювання. Узагальнена модель систем масового обслуговування (смо). Типи смо
- •24 Моделювання. Позначений граф станів системи. Рівняння Колмогорова для ймовірностей стану системи. Фінальні ймовірності станів системи.
- •25 Асемблер. Регістри та біти ознак процесора Intel 8086. (регістри загального вжитку та сегментні регістри, їх призначення; ознаки cf, of, sf, pf, af, zf)
- •26 Асемблер. Структура програми (директиви сегментування segment та з використанням директиви model; директиви assume; моделі пам’яті; ініціалізація сегментних регістрів)
- •Int 21h ;вызов прерывания с номером 21h
- •28 Асемблер. Арифметичні операції додавання та віднімання чисел зі знаком та беззнакових, з урахуванням ознаки переносу, інкрементування й декрементування
- •Vich_1 dd 2 dup (0)
- •Vich_2 dd 2 dup (0)
- •Inc ax ;увеличить значение в ax на 1
- •29 Асемблер. Арифметичні операції множення та ділення чисел зі знаком та беззнакових
- •Imul eax,bx,8
- •Idiv (Integer diVide) Деление целочисленное со знаком
- •Idiv делитель
- •Idiv bx ;частное в ax, остаток в dx
- •30 Асемблер. Команди безумовної передачі керування. (прямі короткі; прямі; непрямі)
- •31 Асемблер. Організація циклів за допомогою команд jcxz; loop, loopz та loopnz
- •32 Асемблер. Команди умовного передавання керування. (операція cmp; операції умовного передавання керування jcxz, jc, jo, jz, jc, je, jl, jg, ja, jb)
- •Int 21h ;Вызов системной функции
- •33 Асемблер. Макроси (опис, розташування, використання)
- •4 Группа
- •1,2 Общая характеристика модели osi
- •3 Понятие «открытая система»
- •4 Стандартные стеки коммуникационных протоколов (osi , ipx/spx, NetBios/smb)
- •5 Стек tcp/ip
- •6 Общая структура телекоммуникационной сети
- •7 Корпоративные сети
- •8,9 Сети операторов связи
- •10 Классификация линий связи: первичные сети, линии и каналы связи; физ.Среда пердачи аднных
- •11 Классификация линий связи: аппаратура передачи данных
- •12 Структурированная кабельная система
- •13 Безпровідна лінія зв'язку, діапазони електромагнітного спектру
- •14 Безпровідне середовище передачі даних: розповсюдження електромагнітних хвиль, ліцензування
- •15 Общая характеристика протоколов локальных сетей: стандартная топология и разделяемая среда, стек протоклов локальных сетей.
- •16 Протокол mac. Адресация mac-уровня.
- •17 Структура стандартов ieee 802.X
- •18 Спецификация физической среды Ethernet ( общая характеристика стандартов 10Мбит/мек,Домен коллизий)
- •19 Спецификация физической среды Ethernet ( Стандарт 10Base-5, 10Base-5)
- •20 Спецификация физической среды Ethernet ( Стандарт 10Base-т)
- •21 Спецификация физической среды Ethernet ( Оптоволоконная сеть Ethernet)
- •22 Технология Fast Ethernet (Физический уровень технологии Fast Ethernet)
- •23 Технология Fast Ethernet (спецификация 100Base-fx/тх/т4)
- •24 Правила построения сегментов Fast Ethernet при наличии повторителей
- •25. Gigabit Ethernet
- •26. Технология Token Ring
- •27 Загальна характеристика безпровідних локальних мереж
- •28 Мережі Стек протоколів ieee 802.11, безпека безпровідних локальних мереж
- •29 Мережі Топології безпровідних локальних мереж стандарту 802.11, розподілений та централізований режими доступу до розділеного середовища
- •30 Мережі Особливості персональних мереж, архітектура Bluetooth
- •31 Мережі Стек протоколів Bluetooth, кадри Bluetooth.
- •32 Мережі Основні функції мережних адаптерів
- •33 Мережі Основні и додаткові функції концентраторів
- •34 Мережі Багатосегментні концентратори
- •35 Мережі Основні характеристики та особливості комутаторів. Неблокуючі комутатори
- •36 Мережі Функції комутаторів (боротьба з перевантаженнями трансляція протоколів канального рівня, фільтрація трафіку)
- •37 Мережі Характеристики продуктивності комутаторів
- •38 Мережі Поняття та призначення віртуальних мереж
- •39 Мережі Створення віртуальніх мереж на базі одного та декількох комутаторів
- •40 Мережі Якість обслуговування в віртуальних мережах
- •41 Мережі Типи адрес стеку tcp/ip (локальні адреси, мережні ip-адреси, доменні імена).
- •42 Мережі Протокол dhcp
- •43 Мережі Протоколи транспортного рівня tcp и udp (загальна характеристика, порти)
- •44 Мережі Протокол транспортного рівня udp
- •45 Мережі Протокол транспортного рівня tcp (формат tcp - сегмента, логічне з‘єднання, послідовний та затверджений номер)
- •47 Мережі Класифікація протоколів маршрутизації, маршрутизація без таблиць, адаптивна маршрутизація
- •48 Мережі Використання декількох протоколів маршрутизації, зовнішні та внутрішні шлюзні протоколи
- •49 Мережі Протокол bgp
- •50 Мережі Поняття, типи icmp-повідомлень
- •51 Мережі Протокол icmp (формат ехо – запитання /ехо - відповідь и утиліта ping; формат повідомлення про помилку та утиліта traceroute)
- •5 Группа
- •1 Трьохрівнева модель субд
- •2 Моделі даних
- •3 Реляційна модель даних
- •4 Ключі відношень. Визначення, різновиди, призначення. Умови цілісності даних
- •5 Інфологічне моделювання предметної області. Модель “Сутність – зв’язок”
- •6 Види зв’яку між сутностями. Навести приклади
- •7 Нормалізація відношень. Призначення. Послідовність виконання нормалізації.
- •8 Нормалізація відношень. 1 та 2 нормальні форми.
- •9 Нормалізація відношень. 3 нормальна форма та нормальна форма Бойса-Кодда. Навести приклади
- •10 Функціональні залежності атрибутів у відношеннях.
- •11 Реляційна алгебра. Основні операції реляційної алгебри.
- •12 Оператор Select. Речення From . Синтаксис. Використання. Навести приклади.
- •13 Відбирання рядків у запитах. Синтаксис. Навести приклад.
- •14 Відбирання груп у запитах. Синтаксис. Навести приклад.
- •15 Групування та сортування записів у запиті. Навести приклад
- •16 Вкладені запити. Різновиди. Синтаксис. Навести приклади.
- •17 Використання агрегатних функцій у запитах.
- •18 Фізична модель даних. Структура записів на носії.
- •21. Рівні та задачі проектування електронних пристроїв от.
- •22. Математичне моделювання електронних пристроїв от: переваги та недоліки.
- •23. Математичні моделі елементів електронних пристроїв. Визначення і класифікація, методи розробки.
- •24. Задачі схемотехнічного проектування електронних пристроїв от.
- •25. Структура та можливості програм моделювання електронних схем.
- •26. Типова структура і засоби розробки макромоделей інтегральних мікросхем.
- •27. Імітаційне моделювання електронних пристроїв от: процес, подія, активність.
- •28. Методи функціонального моделювання аналогових і цифрових пристроїв.
- •29. Методи логічного моделювання цифрових пристроїв.
- •30. Тестування цифрових пристроїв: контролюючі та діагностичні тести. Засоби їх отримання.
- •31 Моделювання на рівні регістрових передач
- •32 Функціональне моделювання за допомогою програм моделювання аналогових схем.
- •33 Математические методы и модели на разных уровнях проетирования
- •6 Группа
- •1 Властивості інформації. Класифікація загроз інформації.
- •2 Уровни защиты информации в компьютерных системах
- •3 Законодательний рівень захисту інформації
- •4. Організаційно-адміністративний рівень захисту інформації
- •5. Фізико-технічні засоби захисту інформації в компьютерних системах
- •6. Криптографічний захист інформації
- •7. Стандарти симетричного шифрування даних
- •8. Криптосистеми з відкритим ключем
- •9. Канали несанкціонованого доступу до інформації
- •10, Системи захисту від несанкціонованого доступу
- •11. Аутентифікація електронних даних: імітоприкладка, електронний цифровий підпис
- •3. Проверка подписи
- •1. Генерация ключей
- •2. Подписание документа
- •3. Проверка подписи
- •12. Системи ідентифікації та аутентифікації користувачів
- •13. Взаємна аутентифікація користувачів
- •1. «Запрос-ответ»
- •2. «Временной штемпель»
- •3. Процедура рукопожатия
- •4. Протокол аутентификации с нулевым разглашением знаний
- •14. Парольная система. Требования к паролям.
- •15. Захист від віддалених мережевих атак
- •27. Перетворення спектра при дискретизації сигналів. Теорема Котельникова
- •28. Швидке перетворення Фур'є з проріджуванням за часом. Структурна схема "метелика" з проріджуванням за часом.
- •29. Поняття цифрового фільтра. Рекурсивні та нерекурсивні фільтри. Чотири основні форми реалізації фільтрів.
- •30. Операції над зображеннями. Поняття околу (4-точечний, 8-точечний окіл). Вікно, опорна точка вікна.
- •31. Лінійна фільтрація зображень. Рівняння лінійної фільтрації
- •7 Группа
- •2 За допомогою методики розрахунка конфігурації мережі Ethernet, підтвердіть правило 4-х хабів.
- •8 Наведіть обмеження для мереж, що побудовані на основі комутаторів
- •11 Яку максимальну кількість підмереж можливо організувати для мережі класа с? Приведіть значення маски
- •20 Проаналізуйте можливості та характеристики сучасних принтерів
- •21 Проведіть логічне тестування і відновлення інформації на гнучкому магнітному диску
- •22 Структура та принцип роботи сучасного модема, блок-схема передавача та приймача
- •23 Реалізація функцій скремблювання та ехоподавлення в сучасних модемах
- •24 Сучасні жорсткі диски. Проаналізуйте їх характеристики
- •25 Сучасні сканери, Проаналізуйте їх функції та характеристики
- •26 Джерела безперервного живлення. Проаналізуйте їх основні характеристики
- •27 Дайте визначення та наведіть робочі формули основних показників надійності. Приведіть та роз'ясніть графік інтенсивності відмов для обчислювальних пристроїв.
- •28 Приведіть формулу ймовірності безвідмовної роботи Pc(t) системи з навантаженим загальним резервом. Приведіть графік залежності нароботки до відказу від кратності резерву.
- •17 Розробіть на мові асемблер програму для обчислення суми чисел масиву з 10 елементів типу байт у процедурі з передаванням аргументів через регістри.
- •18 Розробіть на мові асемблер фрагмент програми, в якій знаходиться максимальний елемент масиву з 10 чисел типу слово (з використанням команди jcxz).
- •19 Розробіть на мові асемблер фрагмент програми для обчислення номеру мінімального елементу в масиві з 10 чисел типу слово (за допомогою команди loop)
- •20 Розробіть на мові асемблер фрагмент програми, що порівнює значення двох змінних введених з клавіатури й відображає результат у вигляді: рівні або нерівні.
- •21 Розробіть на мові асемблер фрагмент програми, в якій додаються та множаться два байтові числа, визначається парний чи непарний результат суми та дво- чи чотирьохбайтовий результат добутку.
- •26 Приведіть методи підвищення ефективності роботи з жорстким диском по переміщенню голівок
- •31 Проаналізуйте структуру драйверу ms dos. Його частини. Завантаження драйверу та робота з ним.
- •33 Наведіть характеристики режимів відеосистеми. Характеристики, які не змінюються, які змінюються з використанням фізичних методів. Характеристики, які змінюються програмно.
- •34 Проаналізувати методи створення розділів диску. Скільки розділів та логічних дисків можливо встановити на одному фізичному диску?
20. Система переривань та її характеристики.
Сигналы аппаратных прерываний, возникающие в устройствах, входящих в состав компьютера (таймер, клавиатура, диски и прочее), поступают в процессор не непосредственно, а через два контроллера прерываний, один из которых называется ведущим, а другой – ведомым.
В прежних моделях машин контроллеры представляли собой отдельные микросхемы; в современных компьютерах они входят в состав многофункциональной микросхемы периферийного контроллера.
Два контроллера используются для увеличения допустимого количества внешних устройств. Дело в том, что каждый контроллер прерываний может обслуживать сигналы лишь от 8 устройств. Для обслуживания большего количества устройств контроллеры можно объединять, образуя из них веерообразную структуру. В современных машинах устанавливают два контроллера, увеличивая тем самым возможное число входных устройств до 15 (7 у ведущего и 8 у ведомого контроллеров).
Ко входным выводам IRQ1…IRQ7 и IRQ8…IRQ15 (IRQ – это сокращение от Interrupt Request, запрос прерывания) подключаются выводы устройств, на которых возникают сигналы прерываний. Выход INT ведущего контроллера подключается к одноименному входу микропроцессора, а выход INT ведомого – к входу IRQ2 ведущего. Основная функция контроллеров – передача сигналов запросов прерываний от внешних устройств на единственный вход прерываний микропроцессора. При этом, кроме сигнала INT, контроллеры передают в микропроцессор по линиям данных номер вектора, который образуется в контроллере путем сложения базового номера, записанного в одном из его регистров, с номером входной линии, по которой поступил запрос прерывания. Получив сигнал INT и номер вектора, процесс извлекает из вектора адрес обработчика прерывания и передает управление на этот обработчик.
Номера базовых векторов заносятся в контроллеры автоматически в процессе начальной загрузки компьютера. Ведущий контроллер программируется через порты 20h и 21h, ведомый – A0h и A1h.
Поскольку базовый вектор ведущего контроллера всегда равен 8, а базовый вектор ведомого – 70h, номер векторов, закрепленных за аппаратными прерываниями, лежат в диапазонах 8h…Fh и 70h…77h. Очевидно, что номера векторов аппаратных прерываний однозначно связаны с номерами линий, или уровнями IRQ, а через них – с конкретными устройствами компьютера. В следующей таблице приведен перечень аппаратных векторов и закрепленных за ними устройств.
Уровень прерывания |
Вектор прерывания |
Устройство |
IRQ0 IRQ1 IRQ2 IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 |
08h 09h 0Ah 70h 71h 72h 73h 74h 75h 76h 77h 0Bh 0Ch 0Dh 0Eh 0Fh |
Таймер Клавиатура Вход от ведомого КМОП-микросхема Перенаправлено на INT 0Ah Зарезервировано Зарезервировано Мышь (PS/2) Исключение сопроцессора Жесткий диск Зарезервировано Последовательный порт COM2 Последовательный порт COM1 Принтер LPT2 Гибкий диск Принтер LPT2 |
Обратимся теперь к внутренней структуре контроллера (для примера рассмотрим ведущий контроллер). Логически в ней можно выделить четыре основных узла: регистр входных запросов, регистр маски, схему приоритетов и регистр обслуживаемых запросов.
Все эти узлы восьмибитовые, по одному биту на каждый входной сигнал.
Сигнал запроса прерывания IRQ от устройства (на рисунке IRQ1, т.е. сигнал от клавиатуры) поступает на вход регистра запросов и устанавливает в 1 соответствующий бит этого регистра. Далее на пути сигнала стоит регистр маски, программируемый через порт 21h. Значение 0 в бите маски разрешает прохождение сигнала, значение 1 – запрещает. Пройдя через маску, сигнал поступает на схему анализа приоритетов.
При стандартной настройке схемы анализа приоритетов (она программируется посылкой определенных команд через порт 20h) приоритеты сигналов IRQ снижаются по мере роста номера сигнала, т.е. максимальным приоритетом обладает сигнал IRQ0, минимальным – IRQ7.
Ведомый контроллер всегда подключается к входу IRQ2 ведущего, поэтому все приоритеты ведомого контроллера располагаются между приоритетами уровней IRQ1 и IRQ3 ведущего и образуется такая цепочка приоритетов:
IRQ0 … IRQ1 ----- IRQ8 … IRQ15 ----- IRQ3 … IRQ7
Наивысший Приоритеты Низший
приоритет ведомого приоритет
Приоритеты уровней прерываний не имеют никакого значения, пока прерывания поступают редко и не накладываются друг на друга. Вопрос о приоритетах становится важным только в том случае, если очередной сигнал прерывания приходит в тот момент, когда еще не закончено выполнение программы обработки предыдущего прерывания. Алгоритм обработки таких наложенных прерываний определяет программист путем соответствующего построения обработчика прерывания.
Пройдя через схему анализа приоритетов, сигнал запроса прерывания поступает на вход регистра обслуживаемых запросов и дает разрешение на установку в 1 его бита (однако не устанавливает его). Одновременно сигнал поступает на вход INT микропроцессора. Микропроцессор регистрирует поступление сигнала INT лишь в том случае, если установлен флаг разрешения прерывания IF в регистре флагов. Таким образом, сброс флага IF командой cli запрещает все аппаратные прерывания.
Микропроцессор, получив сигнал INT, отвечает на него выходным сигналом INTA (INTerrupt Acknoledge, подтверждение прерывания), который поступает в контроллер прерываний и выполняет там два действия: устанавливает бит регистра обсуживаемых запросов, разрешенный сигналом запроса прерывания, и сбрасывает бит регистра запросов. Таким образом, запрос, для которого началась процедура обслуживания его микропроцессором, переводится в разряд обслуживаемых. Начиная с этого момента на тот же вход контроллера прерываний может придти следующий сигнал прерывания от устройства. Он, правда, какое-то время не будет обслуживаться, но, по крайней мере, не пропадет, а запомнится в регистре запросов и будет ждать своей очереди на обслуживание контроллером и процессором.
Микропроцессор одновременно с посылкой в контроллер прерываний сигнала INTA сбрасывает флаг IF в регистре флагов, запрещая все аппаратные прерывания. Прерывания останутся запрещенными до выполнения пользователем команды sti, или до установки флага IF каким-либо другим образом.
Установка 1 в бите регистра обслуживаемых запросов воздействует на схему анализа приоритетов. Установленный бит блокирует в схеме анализа приоритетов все уровни прерываний, начиная с текущего и ниже. Таким образом, если не принять специальных мер, даже после завершения обработчика прерывания все прерывания данного и более низких приоритетов останутся заблокированными. Сброс бита регистра обслуживаемых запросов осуществляется засылкой кода 20h в порт 20h для ведущего контроллера и в порт A0h для ведомого. Этот код получил название команды, или приказа EOI (End of Interrupt, конец прерывания). Приказ конца прерывания должен возбуждаться в любом обработчике прерываний.
Исходя из изложенного, в программе обработки прерывания можно выделить три участка.
Поскольку процессор, получив сигнал INT, сбрасывает флаг IF, при входе в обработчик все прерывания оказываются запрещенными и программа не может быть прервана внешними сигналами. Команда sti, выполненная в программе, устанавливает флаг IF и разрешает прохождение запросов прерываний в процессор. Однако все уровни прерываний, начиная с текущего, остаются заблокированными в контроллере. В результате работа обработчика может быть прервана только при поступлении запроса прерывания более высокого приоритета. Такая ситуация называется вложенным прерыванием.
Выполнение в обработчике команд, реализующих приказ конца прерывания EOI, снимает блокировку в контроллере, и начиная с этого момента запрос прерывания любого уровня прервет выполнение обработчика. Особенно неприятной может оказаться ситуация, когда обработчик прерывается сигналом запроса прерывания того же уровня. Это приводит к тому, что программа обработчика, не дойдя до конца, опять начинает выполнятся с самого начала, т.е. происходит повторный вход в программу. Для того, чтобы такое явление не нарушило работоспособность системы, обработчик прерываний должен быть написан по определенным правилам, обеспечивающим его реентерабельность. Лучше, однако избегать возникновения такой ситуации.
Практически структуру программы обработки прерывания выбирают исходя из конкретных условий.
Часто в самом начале программы выполняют команду sti, чтобы не задерживать обработку прерываний от более приоритетных устройств (в частности, таймера). Приказ конца прерывания EOI посылается в контроллер в самом конце программы, перед завершающей командой iret с тем, чтобы полностью исключить вложенные прерывания от запросов того же уровня. Однако сигнал прерывания того же (или более низкого) уровня может придти между командой out 20h AL и командой iret. Поскольку блокировка нижележащих уровней в контроллере уже снята, возникает вложенное прерывание и повторный вход в ту же программу. Чтобы избежать этого, перед командой EOI выполняют команду запрета всех прерываний cli. В результате вложенные прерывания запрещаются до выхода из обработчика. Можно подумать, что прерывания останутся запрещенными навсегда, однако это не так. Команда iret восстанавливает не только адрес возврата в регистрах CS и IP, но и содержимое регистра флагов на момент прерывания. Если при этом содержимом регистра флагов возникало прерывание, значит, флаг IF был установлен. Получается, что команда iret в программе обработки аппаратного прерывания всегда восстанавливает установленное состояние флага IF, т.е. разрешает прерывания.
Между прочим, отсюда следует, что в обработчике прерываний вообще может отсутствовать команда sti. В этом случае программа обработчика будет выполняться при запрещенных прерываниях, а разрешены прерывания будут после выполнения завершающей команды iret.
Запросы на прерывания, поступающие в ведущий контроллер (уровни IRQ0…IRQ7) блокируют только ведущий контроллер. Однако запросы на прерывания, поступающие в ведомый контроллер (уровни IRQ8…IRQ15) блокируют не только уровни низших приоритетов в ведомом контроллере, но и уровни IRQ2…IRQ7 в ведущем контроллере. Поэтому в обработчиках аппаратных прерываний уровней 8…15 следует предусматривать посылку команд EOI в оба контроллера:
mov AL, 20h
out 20h, AL
out A0h, AL