Матрица запросов процессов на ресурсы
R1,1 ………. R1,m
R = Ri,j где Ri,j =1, если i – ресурс
запрашивает j - процесс
Rn,1 ……… Rn,m
На основе этих данных можно найти вариант распределения ресурсов без возникновения тупиков – то есть такую последовательность предоставления ресурсов, когда все процессы получат необходимые ресурсы - так называемое, безопасное состояние системы.
Но данные алгоритмы сложны математически и их программная реализация требует ресурсов и достаточно много, что также может привести к тупику, на практике такие методы не применяются.
Были разработаны методы, которые позволяют избежать тупиков, при распределения ресурсов и не использовать большое количество ресурсов при практической реализации метода.
1. Рассмотрим условие взаимного исключения. Если в системе нет ресурса, который будет отдан в единоличное пользование одному процессу, то тупика не возникнет.
Для таких устройств, как принтер, плоттер, компакт – диск организуется специальная структура – очередь к устройству. При запросе на печать данные записываются в специальную область памяти - буфер и специальный процесс «Очередь печати» управляет печатью. Процесс «Очередь печати» работает, как и все остальные процессы, в соответствии с квантом времени. Для ускорения работы внешних, как правило, более медленных устройств используется собственная память устройства, а работа устройства проходит в фоновом режиме.
В системах пакетной обработки данных, пакет заданий (процессов) формируется таким образом, что ресурсы запрашиваются, только когда в этом есть необходимость, и на данный ресурс претендует минимальное число процессов.
- Условие удержания и ожидания не будет выполняться в том случае, если процесс запрашивает все необходимые ресурсы до начала работы. Если все ресурсы свободны, то процесс запускается. На практике может быть реализовано, только в системах реального времени, где все процессы заранее известны. В универсальных системах практически неосуществимо, так заранее не известно какие ресурсы потребуются процессу.
- Чтобы в системе не возникало циклических ожиданий ресурсов, установлено правило, каждый процесс может владеть только одним ресурсом, если ему требуется новый ресурс, то он обязан освободить предыдущий. Освобождение ресурса выполняется ОС принудительно.
Итог. Тупиковая ситуация – потенциальная проблема любой операционной системы.
В универсальных ОС для избежания тупиков на практике применяют:
1. Очередь к устройству;
2. Принудительное освобождение ресурса ОС через некоторое время;
3. Процесс может владеть только одним ресурсов в любой момент времени
Дата добавления: 2015-08-11; просмотров: 1212;