Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
33__33__33__33_ItogOS.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.55 Mб
Скачать

43) Потенциальные проблемы, возникающие при выполнении процессов, не осведомленных друг о друге

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

Необходимость взаимоисключений:

1) Процессы не должны одновременно находиться в критических областях.

2)В программе не должно быть предположений о скорости или количестве процессов.

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

4)Невозможна ситуация, в которой процесс вечно ждет попадания в критическую область.

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

  • Голодание

44) Методы взаимоисключения

  • запрещение прерываний при входе в критическую область и разрешение прерываний после выхода из критической области

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

  • использование системных функций для входа в критическую секцию (исключается непроизводительная потеря процессорного времени на циклическую проверку освобождения занятого ресурса)

  • использование семафоров

45) Условия возникновения тупиковой ситуации

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

  • условия удержания выделенных ресурсов и возможности запроса новых (Процессы, в текущий момент удерживают полученные ранее ресурсы, могут делать запросы на получение новых ресурсов)

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

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

Стратегии борьбы с взаимоблокировками:

1.Пренебрежение проблемой в целом. 2. Обнаружение и устранение взаимоблокировок (восстановление). 3. Недопущение тупиковых ситуаций с помощью аккуратного распределения ресурсов. 4. Предотвращать с помощью структурного опровержения одного из четырех условий, необходимых для взаимоблокировки

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]