- •1) Что понимают под архитектурой, структурой и составом ос?
- •2) Каков типовой состав ос?
- •3) Представьте классическую архитектуру ос (на основе ядра), поясните состав и функции ядра и вспомогательных модулей ос.
- •4) Какие режимы, обеспечивающие привилегии ос, должна поддерживать аппаратура компьютера?
- •5) Какая задержка переключений процессора характерна для классической архитектуры ос?
- •6) Изобразите многослойную структуру ос и поясните ее основные особенности.
- •7) Какие действия выполняет ос при порождении процесса?
- •8) Что такое «описатель (дескриптор) процесса»?
- •9) Что такое «описатель (дескриптор) потока»?
- •10) Поясните суть и основные типы планирования потоков.
- •11) Чем динамическое планирование потоков отличается от статического?
- •12) Поясните суть и порядок диспетчеризации потоков.
- •13) Как организуются и переупорядочиваются очереди потоков?
- •14) Чем различаются вытесняющие и невытесняющие алгоритмы планирования?
- •15) Поясните особенности алгоритмов планирования, основанных на квантовании.
- •16) Что такое «приоритет потока» и каким он бывает?
- •17) Чем динамические приоритеты потоков отличаются от статических?
- •18) Опишите схему назначения приоритетов в ос Windows nt.
- •19) Опишите смешанный алгоритм планирования в ос Windows nt.
- •20)Перечислите события, требующие перераспределения процессорного времени и поясните действия планировщика ос в каждом случае.
- •21) Опишите моменты перепланировки в среде ос рв.
- •22)Как осуществляются диспетчеризация и учёт приоритетов прерываний в ос?
- •23) Как работает диспетчер прерываний?
- •24)Как согласуется диспетчеризация прерываний с диспетчеризацией потоков?
- •25)Как организован диспетчер системных вызовов?
- •26) Опишите схему организации системных вызовов с диспетчером системных вызовов.
- •27)Опишите особенности и различия организации синхронных и асинхронных системных вызовов.
- •31)Что такое «критическая секция», «критические данные», «взаимное исключение» потоков.
- •32)Поясните суть использования блокирующих переменных.
- •33)Поясните суть использования семафоров.
- •34)Опишите пример использования семафоров при работе с буферным пулом записи/чтения.
- •36)Чем тупики отличаются от очередей?
- •37)Опишите идеи и средства выявления и устранения тупиков.
- •38)Поясните сложность синхронизации потоков разных процессов.
- •39)Какие методы используются в ос для разделения синхронизирующих объектов?
- •40)Какие обычные объекты ос могут использоваться как синхронизирующие и какие события переводят их в сигнальное состояние?
24)Как согласуется диспетчеризация прерываний с диспетчеризацией потоков?
Приоритет обработчика прерываний в общем случае всегда выше приоритета потока, поэтому любой запрос на прерывание всегда может прервать выполнение обычного потока. Т.к. процедуры, вызываемые по запросам прерывания обычно выполняют работу, не связанную с текущим процессом, то для них вводятся ограничения: они не имеют право использовать ресурсы процесса или от его имени запрашивать выделение дополнительных ресурсов. Ресурсы обработчиков прерываний принадлежат ОС. Диспетчеризация прерываний является важной функцией, реализованной во всех мультипрограммных ОС. В общем случае реализован двухуровневый механизм планирования работ. Верхний уровень планирования выполняется диспетчером прерываний, а остальное процессорное время распределяется диспетчером потока.
25)Как организован диспетчер системных вызовов?
Диспетчеризация сис.вызовов осуществляется с использованием векторной системы программных прерываний то есть закрепляет за каждым вызовом определённый вектор тогда в приложение возможно указать в аргументе запроса прерывания значения вектора, после чего управление будет передано искомой процедуре ОС.
26) Опишите схему организации системных вызовов с диспетчером системных вызовов.
Перед выполнением прерывания приложение некоторым образом передает ос номер системного вызова который является индексом в доп. таблице sysent, реализующие сис. вызовы кроме номера передается аргумент системного вызова. Диспетчер сис. вызовов представляет собой простую программу которая сохраняет содержимое регистров процесс. в сис.вызове, проверяет попадает ли заращиваемый номер вызова в диапазоне если да передает управление адресованной процедуре ос. Искомая процедура извлекает из сис. Вызовов вместе с кодом завершения этого вызова. диспетчер сис. вызовов восстанавливает регистры проц. помещая в определённый регистр код возврата и выполнение сис. возврата из прерывания которая восстанавливает не привилегированный режим проц.
27)Опишите особенности и различия организации синхронных и асинхронных системных вызовов.
Синхронный- блокирующий сис. вызовов переводится планировщиком ос в состояние ожидания, а после в состояние готовности, тогда при следующей активизации поток сможет воспользоваться результатом своего сис. вызова
Асинхронный-не переводит поток к состоянию ожидания результатов вызова, вместо этого поток переводится в состояние готовности пока актив. короткие ист. сис. действия но не ясно когда поток сможет воспользоваться результатом данного сис. вызова.
28)Каковы цели взаимодействия процессов и потоков?
В мультипроцессорных ос процессы и потоки взаимодействуют друг с другом с целью обмена данными и взаимной синхронизацией исполнения.организация этого взаимодействия осложняется тем что она происходит в условиях разделения взаимодействующими процесссами и потоками аппаратных и инф. Ресурсов. Синхронизация необходима для исключения эффектов(гонок,тупиков)
29) Поясните суть и необходимость синхронизации процессов и потоков.
Любое взаимодействие процессов или потоков связано с их синхронизацией которая заключается В согласовании их скоростей путем приостановки отдельных потоков до наступления некоторого события с последующей активизацией при наступлении этого события. Также синхронизация необходима при совместном использовании аппаратных ресурсов ил же к внешнему по отношению к ЭВМ событию.
30) Когда возникают гонки при выполнении потоков?
Гонки-ситуация когда два или более потока обрабатывают разделяемые данные и конечный результат зависит от состояния скоростей.
30)Когда возникают гонки при выполнении потоков?
Гонки возникают, когда несколько потоков многопоточного приложения пытаются одновременно получить доступ к данным и при этом хотя бы одному потоку нужно выполнить запись. Гонки могут давать непредсказуемые результаты, и зачастую их сложно выявить. Иногда последствия проявляются только через большой промежуток времени и в совсем другой части приложения. Кроме того, ошибки такого рода невероятно трудно воспроизвести. Для предотвращения гонок используется синхронизация, позволяющая правильно упорядочить операции, выполняемые разными потоками..