Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Как процессор «узнает», где находится обработчик, соответствующий пришедшему запросу прерывания?




Что такое «контекст программы»?

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


9. Зачем (когда) требуется сохранение или восстановление контекста?

Зачем (когда) требуется сохранение или восстановление контекста?

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

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


10. Отметьте структурные особенности процессоров, облегчающие переключение контекста?

Не ответ на вопрос. но просто полезно знать: 65. Какие команды помогают программисту сохранять-восстанавливать контекст - приведите примеры для архитектур х86?

Команды pusha, popa - они сохраняют в стеке - восстанавливают регистры данных и адресные в таком порядке: (e)ax, (e)cx, (e)dx, (e)bx, (e)sp, (e)bp, (e)si, (e)di. При этом значение (e)sp берется то, которое было до начала выполнения команды pusha.


11. Что такое «стековый кадр»?

Что такое «стековый кадр»?

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


12. Каковы недостатки способа синхронизации с использованием опроса готовности (поллинга)?

Каковы недостатки способа синхронизации с использованием опроса готовности (поллинга)?

При ожидании готовности нерационально расходуется время процессора.


13. В чем состоят преимущества использования механизма прерывания для синхронизации программы с внешним событием?

В чем состоят преимущества использования механизма прерывания для синхронизации программы с внешним событием?

Можно проводить опрос готовности ВнУ к обмену не постоянно, следовательно время процессора расходуется более рационально.


14. Укажите правильную последовательность событий, происходящих при входе в прерывание.

75.

Укажите последовательность событий, происходящих при входе в прерывание.

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

1. Заканчивается выполнение текущей команды (иногда прерывается, если команда длинная, а иногда выполняется еще одна или несколько команд).

2. Анализируется, разрешено ли прерывание. (Если нет, то переход к выполнению следующей команды).

3. Если запросов несколько, принимается решение, который запрос обслуживать (разрешение приоритета priority resolving).
Если система запросов радиальная или источник запроса - внутреннее событие процессора (exception), то переход к.п.6.

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

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

6. Процессор сохраняет информацию о текущем контексте (текущий вектор состояния - почти всегда неполностью) и затем -

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

8. Для возврата из прерывания в системе команд обычно есть специальная команда "возврат из прерывания" (мнемоника iret или reti или rti). По этой команде восстанавливается контекст прерванной программы в том объеме, в котором он быь сохранен при входе в перывание (п.6). Эта команда должна быть последней исполняемой командой обработчика.

Приведенное описание соответствует обработке внешнего аппаратного прерывания. В случае, если причина прерывания - внутреннее событие процессора (исключительная ситуация - exception), то этапы 4 и 5 отсутствуют, как в случае радиальных прерываний.


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

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

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

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

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

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

17. Что такое приоритеты источников прерываний?

Что такое приоритеты источников прерываний?

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


18. Как процессор «узнает», где находится обработчик, соответствующий пришедшему запросу прерывания?

Как процессор «узнает», где находится обработчик, соответствующий пришедшему запросу прерывания?

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

 


19. В каких двух значениях используется термин «вектор прерывания»?

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...