- •63. Что такое «контекст программы»?
- •64. Зачем (когда) требуется сохранение или восстановление контекста?
- •66. Что такое «стековый кадр»?
- •72. Каковы недостатки способа синхронизации с использованием опроса готовности (поллинга)?
- •73. В чем состоят преимущества использования механизма прерывания для синхронизации программы с внешним событием?
- •78. Какова может быть судьба запроса, пришедшего в период, когда вход в прерывание для процессора запрещено?
- •80. Что такое приоритеты источников прерываний?
- •81. Как процессор «узнает», где находится обработчик, соответствующий пришедшему запросу прерывания?
- •82. Как «устроены» вектора прерываний в архитектуре х86?
- •83. При каких условиях допустимы вложенные прерывания?
- •84. К каким неприятным последствиям может привести необдуманное разрешение вложенных прерываний?
- •22. В чем состоит функция блока процессора, называемого Арифметико-Логическим Устройством (алу).
78. Какова может быть судьба запроса, пришедшего в период, когда вход в прерывание для процессора запрещено?
Возникшие в этот период запросы могут быть потеряны, либо могут ждать обслуживания, которое произойдет, когда прерывания будут разрешены - это зависит от устройства конкретного процессора и от свойств входов запроса прерываний. В некоторых процессорах можно программно управлять свойствами входа: запоминается или теряется запрос, который приходит в период, когда прерывания процессору запрещены. В системе команд обычно есть команды, запрещающие и разрешающие прерывание. Кроме того, внешние устройства-источники запросов позволяют программно разрешить/запретить прерывание от данного устройства (прерывания от других устройств при этом будут обрабатываться).
16. Пусть процессор находится в процедуре обработки некоего прерывания, и в этот период приходит запрос от источника с более высоким приоритетом. Произойдет ли немедленно прерывание по второму запросу, и если ответ неоднозначен, то от чего он зависит?
?????-79. Пусть процессор находится в процедуре обработки некоего прерывания, и в этот период приходит запрос от источника с более высоким приоритетом. Произойдет ли немедленно прерывание по второму запросу, и если ответ неоднозначен, то от чего он зависит?
В большинстве процессоров при входе в прерывание повторное (вложенное) прерывание автоматически запрещается. Обработчик может разрешить прерывание соответствующей командой (например в процессорах х86 это команда sti). В этом случае возможно "вложенное" прерывание, в том числе и от этого же источника, но для этого обработчик прерывания должен быть реентерабельным, т.е. допускать рекурсивный вызов.
17. Что такое приоритеты источников прерываний?
80. Что такое приоритеты источников прерываний?
Приоритет определяет в каком порядке будут обрабатываться запросы на прерывание.
18. Как процессор «узнает», где находится обработчик, соответствующий пришедшему запросу прерывания?
81. Как процессор «узнает», где находится обработчик, соответствующий пришедшему запросу прерывания?
В случае магистральной архитектуры устройство обычно передает по магистрали информацию о себе процессору. Эта информация обычно содержит условный код (номер) источника запроса, по которому процессор способен определить адрес памяти, содержащий информацию о местонахождении в памяти обработчика.
19. В каких двух значениях используется термин «вектор прерывания»?
82. Как «устроены» вектора прерываний в архитектуре х86?
Термин вектор прерывания используют в двух разных значениях: а) контекст (вектор состояния) обработчика, автоматически загружаемый при выполнении прерывания, б) участок памяти, где хранится этот контекст. Обычно для хранения контекстов обработчиков разработчики процессора выделяют в адресном пространстве специальную область векторов прерывания. Для некоторых из прерываний разработчики процессора могут предопределить положение векторов и значения адресов перехода, в то время как другие программист может задавать по своему усмотрению программно.
20. При каких условиях допустимы вложенные прерывания?