Читайте также:
|
|
Здесь при любом системном вызове приложение выполняет программное прерывание (INT) с определенным и единственным номером вектора. Перед выполнением программного прерывания приложение некоторым образом передает ОС номер системного вызова (например, 22h), который является индексом в дополнительной таблице sysent адресов процедур ОС, реализующих системные вызовы. Кроме номера передаются аргументы системного вызова.
Диспетчер системных вызовов обычно представляет собой простую программу, которая сохраняет содержимое регистров процессора в системном стеке, проверяет, попадает ли запрошенный номер вызова в поддерживаемый ОС диапазон (в таблицу sysent адресов системных вызовов) и передает управление адресованной процедуре ОС. Искомая процедура обработки системного вызова извлекает из системного стека аргументы и выполняет заданное действие.
После завершения обработки системного вызова управление возвращается диспетчеру системных вызовов вместе с кодом завершения этого вызова. Диспетчер системных вызовов восстанавливает регистры процессора, помещает в определенный регистр код возврата и выполняет инструкцию возврата из прерывания, которая восстанавливает непривилегированный режим работы процессора.
27. Ч4_Опишите особенности и различия организации синхронных и асинхронных системных вызовов.
ОС может выполнять системные вызовы в синхронном или асинхронном режиме. Поток (процесс), сделавший синхронный (блокирующий) системный вызов, переводится планировщиком ОС в состояние ожидания, а после завершения обработки вызова – в состояние готовности. Тогда при следующей активизации этот поток уже сможет воспользоваться результатами своего системного вызова. Асинхронный системный вызов не приводит к переходу потока в состояние ожидания результатов вызова. Вместо этого поток переводится в состояние готовности, пока активизируются короткие начальные системные действия, но неясно, когда поток сможет воспользоваться результатами данного системного вызова.
28. Ч4_Каковы цели взаимодействия процессов и потоков?
В мультипрограммной ОС процессы (потоки) также могут и взаимодействовать друг с другом, причем с такими двумя целями как обмен данными и взаимная синхронизация исполнения. Организация этого взаимодействия осложняется тем, что оно происходит в условиях разделения (совместного использования) взаимодействующими процессами и потоками аппаратных и информационных ресурсов ВС. Синхронизация необходима для исключения дефектов (гонок и тупиков) при обмене данными между потоками, разделении данных, при доступе к процессору и к УВВ. Во многих ОС подобные средства называют средствами межпроцессного взаимодействия
Дата добавления: 2015-12-08; просмотров: 114 | Нарушение авторских прав