Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
колок.docx
Скачиваний:
62
Добавлен:
16.03.2016
Размер:
903.61 Кб
Скачать

24)Как согласуется диспетчеризация прерываний с диспетчеризацией потоков?

Приоритет обработчика прерываний в общем случае всегда выше приоритета потока, поэтому любой запрос на прерывание всегда может прервать выполнение обычного потока. Т.к. процедуры, вызываемые по запросам прерывания обычно выполняют работу, не связанную с текущим процессом, то для них вводятся ограничения: они не имеют право использовать ресурсы процесса или от его имени запрашивать выделение дополнительных ресурсов. Ресурсы обработчиков прерываний принадлежат ОС. Диспетчеризация прерываний является важной функцией, реализованной во всех мультипрограммных ОС. В общем случае реализован двухуровневый механизм планирования работ. Верхний уровень планирования выполняется диспетчером прерываний, а остальное процессорное время распределяется диспетчером потока.

25)Как организован диспетчер системных вызовов?

Диспетчеризация сис.вызовов осуществляется с использованием векторной системы программных прерываний то есть закрепляет за каждым вызовом определённый вектор тогда в приложение возможно указать в аргументе запроса прерывания значения вектора, после чего управление будет передано искомой процедуре ОС.

26) Опишите схему организации системных вызовов с диспетчером системных вызовов.

Перед выполнением прерывания приложение некоторым образом передает ос номер системного вызова который является индексом в доп. таблице sysent, реализующие сис. вызовы кроме номера передается аргумент системного вызова. Диспетчер сис. вызовов представляет собой простую программу которая сохраняет содержимое регистров процесс. в сис.вызове, проверяет попадает ли заращиваемый номер вызова в диапазоне если да передает управление адресованной процедуре ос. Искомая процедура извлекает из сис. Вызовов вместе с кодом завершения этого вызова. диспетчер сис. вызовов восстанавливает регистры проц. помещая в определённый регистр код возврата и выполнение сис. возврата из прерывания которая восстанавливает не привилегированный режим проц.

27)Опишите особенности и различия организации синхронных и асинхронных системных вызовов.

Синхронный- блокирующий сис. вызовов переводится планировщиком ос в состояние ожидания, а после в состояние готовности, тогда при следующей активизации поток сможет воспользоваться результатом своего сис. вызова

Асинхронный-не переводит поток к состоянию ожидания результатов вызова, вместо этого поток переводится в состояние готовности пока актив. короткие ист. сис. действия но не ясно когда поток сможет воспользоваться результатом данного сис. вызова.

28)Каковы цели взаимодействия процессов и потоков?

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

29) Поясните суть и необходимость синхронизации процессов и потоков.

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

30) Когда возникают гонки при выполнении потоков?

Гонки-ситуация когда два или более потока обрабатывают разделяемые данные и конечный результат зависит от состояния скоростей.

30)Когда возникают гонки при выполнении потоков?

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