Взаимоисключения (mutex, мьютекс) — одноместный семафор. Цель – защита от гонок. Объект синхронизации, который устанавливается в особое сигнальное состояние, когда не занят каким-либо потоком. Только один поток владеет этим объектом в любой момент времени, отсюда и название таких объектов (от английского mutually exclusive access — взаимно исключающий доступ) — одновременный доступ к общему ресурсу исключается. После всех необходимых действий мьютекс освобождается, предоставляя другим потокам доступ к общему ресурсу. Объект может поддерживать рекурсивный захват второй раз тем же потоком, увеличивая счетчик, не блокируя поток, и требуя потом многократного освобождения. Такова, например, критическая секция в Win32. Тем не менее есть и такие реализации, которые не поддерживают такое и приводят к взаимной блокировке потока при попытке рекурсивного захвата. Это FAST_MUTEX в ядре Windows.
Билет 6.
В1: Система прерываний в МК51. Регистры IE, IP. Источники и вектора прерываний.
Архитектура МК51 реализует двухуровневую приоритетную систему прерываний с 5-ю источниками запросов, имеющими фиксированные векторы прерываний
Управление режимами выполняет регистр TCON (88H)
TCON.0 – IT0 - IT0=1 – прерывание осуществляется по переходу из 1 в 0 на входе INT0
TCON.2 – IT1 - IT1=1 – прерывание осуществляется по переходу из 1 в 0 на входе INT1
TCON.1 – IE0 – флаг прерывания от внешнего источника INT0
TCON.3 – IE1 – флаг прерывания от внешнего источника INT1
В случае работы по переходу сбрасываются при входе вобработчик прерывания
В случае работы по уровню отслеживают состояние сигналов на линиях INT0 и INT1
Управление режимами выполняют также регистры
IE – регистр разрешения прерываний (установка в «1»)
IE.0 – EX0 – Маска INT0
IE.1 – ET0 – Маска TF0 (таймер 0)
IE.2 – EX1 – Маска INT1
IE.3 – ET1 – Маска TF1 (таймер 1)
IE.4 – ES – Маска TI+RI