Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль1.doc
Скачиваний:
20
Добавлен:
25.08.2019
Размер:
276.48 Кб
Скачать

Основные направления решения проблемы тупиков

  1. Предотвращение.

  2. Обход.

  3. Обнаружение (дает возможность устранить тупик)

  4. Восстановление после тупика (для завершения процессов, попавших в тупик и освобождения занятых ими ресурсов).

Предотвращение тупиков

Нужно не допускать наличия необходимых условий возникновения тупика.

Для предотвращения тупика предлагается следующая стратегия:

  1. Ни один процесс не начинается пока не получит все необходимые ресурсы.

  2. Не получив дополнительных ресурсов, процесс освобождает занятые, а потом запрашивает всё сразу.

  3. Если процессу выделены ресурсы одного типа, то он может запрашивать ресурсы только другого типа.

Недостатки такой стратегии:

  1. Повышается вероятность бесконечного откладывания.

  2. Теряются результаты работы процесса при освобождении ресурсов.

  3. Чрезмерное усложнение программ.

Обнаружение тупика

Это установка факта тупиковой ситуации и определение процессов и ресурсов, вовлеченных в тупик, что требует дополнительных временных и ресурсных затрат.

Восстановление после тупика

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

При этом несколько процессов полностью потеряют наработанную информацию.

Сложность восстановления системы вследствие следующих фактов:

  1. Первое время не очевидно, что система в тупике.

  2. В большинстве ОС нет эффективных средств для останова и вывода процесса из системы. Тем более, что некоторые из них должны работать непрерывно.

  3. Применение таких средств требует значительных временных затрат пользователя.

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

Большинство ОС потенциально страдают от взаимоблокировок, которые даже не обнаруживаются, не говоря уже об автоматическом выходе из тупика. Тем не менее, часть очевидных взаимных блокировок ОС стараются предотвратить, т.е. программные модули стараются писать так, чтобы тупик не мог возникнуть. При его возникновении и обнаружении используют различные методы выхода из тупика.

Методы выхода из тупика:

  1. Принудительная выгрузка ресурса. Принудительно отбирают ресурс у его владельца и отдают другому процессу.

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

  3. Восстановление через откат. Если есть большая вероятность взаимной блокировки, процессы создают контрольные точки – в определенные моменты записывают состояние процесса в файл, чтобы его можно было восстановить с этой точки. В случае возникновения тупика процесс запускается вновь с ближайшей контрольной точки.

Организация мультизадачности ос

Эффективное использование ресурсов компьютера достигается за счет применения в ОС мультизадачности (multitasking).

Мультизадачность – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. При этом программы используют совместно не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода.

Рассмотрим 3 способа организации мультизадачности:

  1. Опрос.

  2. Исключения.

  3. Прерывания.