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

Задача №3.

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

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

Правила формирования матриц и :

Первый столбец матрицы соответствует значениям вашего варианта. Второй столбец соответствует значениям следующего варианта. Третий столбец соответствует значениям варианта с порядковым номером на 2 больше вашего.

Первый столбец матрицы R соответствует значениям варианта с порядковым номером на 3 больше вашего. Второй столбец соответствует значениям варианта с порядковым номером на 4 больше вашего. Третий столбец соответствует значениям варианта с порядковым номером на 5 больше вашего.

Исходные данные:

Решение.

Для получения минимального количества свободных ресурсов, которых должно хватить для выхода системы из состояния взаимоблокировки, возьмём минимальное количество ресурсов:

Если ОС позволит выполнить процесс 3, дав ему все необходимые ресурсы из вектора , то по окончании его он освободит все используемые им ресурсы.

Далее следует предоставить свободные ресурсы процессу 4:

Затем при последовательном выполнении процессов в любом порядке (например: процесс 5, процесс 1, процесс 2) ОС может выйти из состояния взаимоблокировки.

Вектор существующих ресурсов в таком случае будет равен:

Задача №4.

Для той же системы (задача 3) возможны 5 вариантов векторов доступных ресурсов: . Для каждого значения вектора A запишите порядок предоставления требуемых ресурсов процессам, согласно которому система имеет выход из тупиковой ситуации. Используйте «алгоритм банкира» Дейкстры. Для каждого случая рассчитайте значения вектора существующих ресурсов в системе.

Правила формирования векторов :

Первый элемент векторов соответствует значениям , где — значения вашего варианта таблицы заданий. Второй элемент векторов соответствует значениям следующего варианта. Третий элемент векторов соответствует значениям варианта с порядковым номером на 2 больше вашего.

Исходные данные:

Решение.

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

Задача №5.

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

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

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

Выделите все взаимоблокировки, выпишите последовательности из имен процессов и номеров устройств, находящихся одновременно в состоянии взаимоблокировки. Отдельно выпишите имена процессов, не находящихся в состоянии взаимоблокировок.

Какой из процессов нужно завершить принудительно, чтобы остальные смогли выйти из тупика?

Возможно, ли перегруппировать ресурсы так, чтобы избежать взаимоблокировки?

В какой последовательности должны завершаться процессы, не находящиеся в тупике, чтобы все процессы вышли из заблокированного состояния и продолжили работу?

Исходные данные:

Решение.

Имеются 2 взаимоблокировки:

Если процесс принудительно завершить, то взаимоблокировки устранятся. Чтобы избежать взаимоблокировок, необходимо иметь граф:

Для успешного завершения всех процессов необходима строгая последовательность некоторых процессов: , а именно: запускается после , а после завершения выполнения , но выполняется строго после .