Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[2 курс] Операционные системы.docx
Скачиваний:
15
Добавлен:
20.08.2020
Размер:
218.45 Кб
Скачать

Машинная команда и способы адресации

Машинная команда – это последовательность битов длиной в 1, 2 и более байтов, которая определяет выполняющуюся операцию и источники данных. Обязательным элементом которой является код операции. Операндов может быть несколько.

Способ адресации – это способ задания адресов выполняемой команды.

Бывают следующие типы адресации:

    • непосредственная (данные указываются непосредственно в команде);

    • прямая (в адресной части указывается адрес ячейки памяти данных);

    • регистровая (адрес хранится в одном из регистров процессора);

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

Вспомните! Массив – множество однотипных данных, которые находятся в ОЗУ и имеют одинаковые имя (индексы).

Система прерываний

Прерывание – это временная остановка программы, для обработки какого-либо события (например, нажатия клавиши, запроса принтера и т.п.). Программа обрабатывающая событие называется обработчиком прерывания.

Функции системы прерывания:

  • Фиксация и распознавание прерывания

  • Передача и управления программе-обработчику

  • Корректное возвращение управления прерванной программы

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

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

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

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

Выполняемые действия:

  • Адрес возврата записывается в стек;

  • Адрес программы-обработчика прерывания записывается в регистр PC, что приводит к передаче управления программе-обработчику;

  • Выполняется обработчик прерывания;

  • В регистр PC переписывается из стека адреса возврата, что приводит к возвращению управления основной программе.

(1 – запрет прерывания, 2 – собственно обработчик, 3 – разрешение прерывания)

Запрет прерывания касается события такого же уровня значимости, как и событие вызвавшее текущее прерывание.

Программа, обрабатывающая прерывание, состоит из трёх блоков:

    • отключение прерывания и сохранения в памяти контекста программы, установка временного режима работы прерываний;

    • выполнение обработки прерывания;

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

Обработка прерывания в сложных операционных системах

(1_С, 2_С – секции кода супервизора СВП; 1_Д, 2_Д – секции кода диспетчера задач; ПОП – программа обработки прерывания)

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

    • 1_С – отключение прерываний, сохранение контекста прерванной программы в её дескрипторе, установка временного режима работы прерываний, сохранение адреса возврата;

    • 2_С – определение вектора прерывания и передача ему управления посредством записи вектора прерывания в регистр РС.

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

    • 1_Д – отыскивает программу, готовую к выполнению, ею может быть или прерванная программа, или другая в соответствии с дисциплиной обслуживания программ;

    • 2_Д – если обслуживанию подлежит прерванная программа, то восстанавливает контекст программы, устанавливает контекст программы и переписывает адрес возврата из стека в регистр РС, передавая тем самым управление прерванной программе.

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