Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС 2 модуль все части ПЕЧАТАТЬ.docx
Скачиваний:
88
Добавлен:
18.12.2018
Размер:
328.96 Кб
Скачать
  1. Ч4_Опишите идеи и средства выявления и устранения тупиков.

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

Если же тупиковая ситуация все же возникла, не обязательно снимать с решения все задачи или заблокированные потоки. Достаточно начать снимать некоторые из них, освобождая ожидаемые ресурсы. Можно вернуть некоторые потоки в область подкачки. Можно совершить откат некоторых потоков до так называемой контрольной точки

  1. Ч4_Поясните сложность синхронизации потоков разных процессов.

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

  1. Ч4_Какие методы используются в ос для разделения синхронизирующих объектов?

Некоторые ОС возвращают указатель на объект (Метод 1). Этот указатель может быть доступен всем родственным процессам, наследующим характеристики общего родительского процесса. В других ОС процессы в запросах на создание объектов синхронизации указывают имена, которые должны быть им присвоены (Метод 2). Далее эти имена используются разными процессами для манипуляций объектами синхронизации, и работа с ними подобна работе с файлами. Их можно создавать, открывать, уничтожать.

Кроме того, для синхронизации могут быть использованы обычные объекты ОС: файлы, процессы, потоки (Метод 3). Все они могут находиться в двух состояниях: сигнальном (оповещающем) и несигнальном (свободном).

  1. Ч4_Какие обычные объекты ос могут использоваться как синхронизирующие и какие события переводят их в сигнальное состояние?

Кроме того, для синхронизации могут быть использованы обычные объекты ОС: файлы, процессы, потоки (Метод 3). Все они могут находиться в двух состояниях: сигнальном (оповещающем) и несигнальном (свободном). Смысл сигнального состояния зависит от типа объекта. Например, поток переходит в сигнальное состояние, когда он завершается, процесс - когда завершаются все его потоки, файл - когда завершается операция его ввода-вывода, остальные объекты - в результате выполнения специальных системных вызовов. Тогда приостановка и активизация потоков осуществляется в зависимости от состояния синхронизирующих объектов ОС.

  1. Ч4_в чем состоит суть сигнального состояния синхронизирующего объекта ос?

Смысл сигнального состояния зависит от типа объекта. Например, поток переходит в сигнальное состояние, когда он завершается, процесс – когда завершаются все его потоки, файл – когда завершается операция его ввода-вывода, остальные объекты – в результате выполнения специальных системных вызовов. Тогда приостановка и активизация потоков осуществляется в зависимости от состояния синхронизирующих объектов ОС.