
- •Системное программное обеспечение: определение, место в структуре компьютера, состав спо.
- •Система управления файлами и Файловая система: определения, сходства и различия двух понятий. Файловые менеджеры. Утилиты.
- •Утилиты
- •Утилиты используются для
- •Типы утилит
- •Операционная система и Операционная среда: определения, сходства и различия двух понятий. Функции ос. Компоненты ос.
- •Классификация ос. Примеры ос. Операционные системы реального времени. Системные программные модули. Виртуальная машина.
- •Вычислительный (последовательный) процесс: определение. Ресурсы: определение, классификация.
- •Однозадачный и многозадачный режимы работы вычислительной системы: основные принципы, преимущества и недостатки. Дисциплина обслуживания. Дескриптор процесса: определение, состав.
- •Возможные состояния процесса. Граф состояний процесса. Условия перехода из одного состояния в другое.
- •Тред (поток): определение, сходства и отличия по сравнению с понятием «процесс». Основные правила организации тредов.
- •Прерывание: определение, назначение, стадии процесса обработки прерывания. Отличия и различия по сравнению с вызовом процедур/функций.
- •Классификация прерываний. Приоритет прерываний. Различные виды дисциплин обслуживания прерываний.
- •Супервизор прерываний: назначение. Обработка прерывания при участии супервизора прерываний.
- •Основные виды ресурсов: процессорное время, память (внутренняя и внешняя), внешние устройства, информационные ресурсы.
- •Программные модули: непривилегированные, привилегированные и реентерабельные, повторно входимые.
- •Понятие «языка ассемблера» и «программы-оболочки ассемблера». Основные компоненты программы ассемблера. Примеры программ-оболочек ассемблера.
- •Примеры: gss Visual Assembler, asmTool Professional Edition.
- •Регистры: определение, классификация. Регистры общего назначения. Сегментные регистры.
- •Стек: определение, назначение. Регистр флагов.
- •Способы адресации: регистровая адресация, непосредственная адресация, прямая адресация, косвенная адресация, адресация по базе со сдвигом.
- •Способы адресации: косвенная адресация с масштабированием, адресация по базе с индексированием, адресация по базе с индексированием и масштабированием.
- •Псевдокоманды определения переменных. Использование оператора dup. Метка и переменная: сходства и отличия. Структуры.
- •Модели памяти и упрощенные директивы определения сегментов. Процедуры.
Прерывание: определение, назначение, стадии процесса обработки прерывания. Отличия и различия по сравнению с вызовом процедур/функций.
Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Таким образом, прерывание – это принудительная передача управления от выполняемой программы к системе (а через неё – к соответствующей программе обработки прерывания), происходящая при возникновении определённого события.
Идея прерываний была предложена в середине 50-х годов и можно без преувеличения сказать, что она внесла наиболее весомый вклад в развитие вычислительной техники. Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливание работы отдельных устройств вычислительного комплекса.
Механизм прерываний реализуется аппаратно-программными средствами. Структуры систем прерывания (в зависимости от аппаратной архитектуры) могут быть самыми разными, но все они имеют одну общую особенность – прерывание непременно влечёт за собой изменение порядка выполнения команд процессором.
Механизм обработки прерываний независимо от архитектуры вычислительной системы включает следующие элементы:
1. Установление факта прерывания (приём сигнала на прерывание) и идентификация прерывания (в операционных системах иногда осуществляется повторно, на шаге 4).
2. Запоминание состояния прерванного процесса. Состояние процесса определяется прежде всего значением счётчика команд (адресом следующей команды, который, например, в i80x86 определяется регистрами CS и IP – указателем команды), содержимым регистров процессора и может включать также спецификацию режима (например, режим пользовательский или привилегированный) и другую информацию.
3. Управление аппаратно передаётся подпрограмме обработки прерывания. В простейшем случае в счётчик команд заносится начальный адрес подпрограммы обработки прерываний, а в соответствующие регистры – информация из слова состояния. В более развитых процессорах, например в том же i80286 и последующих 32-битовых микропроцессорах, начиная с i80386, осуществляется достаточно сложная процедура определения начального адреса соответствующей подпрограммы обработки прерывания и не менее сложная процедура инициализации рабочих регистров процессора.
4. Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью действий аппаратуры. В некоторых вычислительных системах предусматривается запоминание довольно большого объёма информации о состоянии прерванного процесса.
5. Обработка прерывания. Эта работа может быть выполнена той же подпрограммой, которой было передано управление на шаге 3, но в ОС чаще всего она реализуется путём последующего вызова соответствующей подпрограммы.
6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).
7. Возврат в прерванную программу.
Шаги 1-3 реализуются аппаратно, а шаги 4-7 – программно.
На рис. 6 показано, что при возникновении запроса на прерывание естественный ход вычислений нарушается и управление передаётся программе обработки возникшего прерывания. При этом средствами аппаратуры сохраняется (как правило, с помощью механизмов стековой памяти) адрес той команды, с которой следует продолжить выполнение прерванной программы. После выполнения программы обработки прерывания управление возвращается прерванной ранее программе посредством занесения в указатель команд сохранённого адреса команды. Однако такая схема используется только в самых простых программных средах. В мультипрограммных операционных системах обработка прерываний происходит по более сложным схемам.
Рис. 6. Обработка прерывания
Главные функции механизма прерываний:
1) распознавание или классификация прерываний;
2) передача управления соответственно обработчику прерываний;
3) корректное возвращение к прерванной программе.
Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы (вектора прерываний), содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний содержимое регистров процессора запоминается либо в памяти с прямым доступом, либо в системном стеке (System Stack).