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

15. Методы борьбы с тупиками: Нарушение условий возникновения тупиков.

Тупик – это ситуация, в которой находится процесс, ожидающий событие, которое никогда не произойдет(deadlock).

Тупики возникают вследствие :

  1. Ошибок программирования (отсутствия семафора).

  2. Занятости ресурсов, которые необходимы процессам. Ресурсы бывают разделяемыми и выделяемыми(монопольного владения). Тупики могут возникнуть с одними и с другими, но обычно с ресурсами монопольного владения.

1. Нарушение условия взаимоисключения. Необходимо сделать монопольные ресурсы разделяемые например используя spooling.

2. Нарушение условия ожидания.

Двухфазный захват ресурсов.

Первая фаза: запрос всех необходимых ресурсов сразу.

Вторая фаза: если все ресурсы свободны, то их захват. Если хоты бы один занят, то ожидание.

3. Нарушение условия неперераспределяемости.

Некоторые ресурсы могут безболезненно быть отобраны у одних процессов и выделены другим.

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

4. Нарушение условия кругового ожидания.

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

16. Методы борьбы с тупиками: Обнаружение тупиков.

Тупик – это ситуация, в которой находится процесс, ожидающий событие, которое никогда не произойдет(deadlock).

Тупики возникают вследствие :

  1. Ошибок программирования (отсутствия семафора).

  2. Занятости ресурсов, которые необходимы процессам. Ресурсы бывают разделяемыми и выделяемыми(монопольного владения). Тупики могут возникнуть с одними и с другими, но обычно с ресурсами монопольного владения.

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

17. Методы борьбы с тупиками: Восстановление после тупиков.

Тупик – это ситуация, в которой находится процесс, ожидающий событие, которое никогда не произойдет(deadlock).

Тупики возникают вследствие :

  1. Ошибок программирования (отсутствия семафора).

  2. Занятости ресурсов, которые необходимы процессам. Ресурсы бывают разделяемыми и выделяемыми(монопольного владения). Тупики могут возникнуть с одними и с другими, но обычно с ресурсами монопольного владения.

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

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