Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
129623_042E7_shpargalki_po_operacionnym_sistema....doc
Скачиваний:
18
Добавлен:
15.04.2019
Размер:
1.1 Mб
Скачать

33) Стек. Указатель стека.

Стек – это такая структура данных в памяти, которая используется для временного хранения информации. Программа может поместить информацию в стек или извлечь ее из стека. Данные в стеке располагаются в следующем порядке: извлекаемый из стека элемент данных – это всегда тот элемент, который был записан туда последним. Такая структура организации хранения данных сокращенно называется LIFO (Last – In – First - Out). Информация выбирается из стека в обратном по отношению к записи порядке. В ЭВМ за стеком резервируется блок памяти и указатель, называемый указателем стека. Указатель стека используется программой для того. Чтобы фиксировать самый последний, записанный в стек элемент данных. Указатель стек перемещается только по мере записи и считывания данных из стека.

SP SP

SP SP

а б в г

Рис а иллюстрирует состояние стека после того, как туда были последовательно записаны значения A, B, C. Указатель стека SP указывает на содержимое вершины стека.

Рис б: после того как в стек был записан еще один элемент D, значение указателя стека уменьшается на единицу, т.е. значение вершины стека равно D. Указатель стека указывает на последний записанный в стек элемент.

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

Рис г: элемент, записанный на место элемента D, т представляет теперь новое значение содержимого вершины стека. Таким образом: во – первых, основание стека имеет адрес памяти больший, чем вершину, во – вторых, стек растет в меньшие значения адресов памяти, в – третьих, считываться из стека данные продолжают храниться в памяти, но со стеком уже не связаны.

34) Прерывания. Механизм обработки прерываний.

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

Механизм обработки прерываний независимо от архитектуры вычислительной системы включает следующие элементы:

  1. установление факта прерывания и идентификация прерывания;

  2. запоминание состояния прерванного процесса;

  3. аппаратная передача управления программе обработки прерывания;

  4. сохранение информации о прерванной программе, которую не удалось сохранить на шаге №2 с помощью действий аппаратуры;

  5. обработка прерывания;

  6. восстановление информации, относящейся к прерванному процессу;

  7. возврат в прерванную программу.

Шаги 1-3 реализуются аппаратно, а 4-7 – программно.

Р ис. Обработка прерывания.

Подпрограмма обработки прерывания

Исполняемая

программа

Сохранение контекста прерванной программы

Тело программы, прерванной прерыванием

Восстановление контекста прерванной программы

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

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

Главные функции механизма прерывания:

  1. распознавание (классификация) прерываний;

  2. передача управления обработчику прерываний;

  3. корректное возвращение к прерванной программе.

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