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

Распределение ресурсов

При выполнении произвольного задания требуемые объемы памяти, внешние периферийные устройства, выбор ОС, как правило без участия пользователя. Т.е. одна из задач ОС постоянный выбор и перераспределение требуемых для работы ресурсов. В процессе распределения могут возникнуть ситуации, когда адресное пространство или ВУ должны перераспределять адреса. Как правило, сохраняться в стеке, куда автоматически заносятся при каждом выходе из подпрограммы. Однако еще в процессе работы вычисления возможны обращения к подпрограммам, в которых также задействован стек. При работе со стеком число записей и чтение содержимого стека симметричны. Но может оказаться, что в какой-то подпрограмме имеется выход по критерию как через модификацию стека так и без него. В результате число обращений в тек становиться не симметричным и программы работают не верно. Но ОС должна отслеживать подобные ситуации. Кроме того, наиболее опасная ситуация - считается взаимная блокировка процессов, когда при выполнении подпрограммы необходимо бывает воспользоваться данными другой подпрограммы, а обращение к ней не возможно. Вызов другой программы не получается, следовательно - зависаем. ОС должна такие возможности и при их появлении «выходить» из ситуации. Для того, чтобы исключить эти ситуацию возможны три стратегии: 1) предотвращение ситуации. 2) обход. 3) распознавание и последующее восстановление.

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

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

Распознавание – процедура распознавания предусматривает контроль списка тех ресурсов, которые нужны каждому процессу. И следовательно если процесс блокируется - опознается тупиковая ситуация. Как только она опозналась необходимо восстановить информацию путем перезапуска одного или двух процессов. Иногда перезапуск выполняется не сначала, а с какой-то контрольной точки. Процессы находящиеся в мертвом блоке прекращаются по одному. Вследствие этой ситуации – потеря времени. Чаще эта ситуация приводит к системным прерываниям и сообщениям пользователю о возникновении блокирования. Распределение ресурсов (памяти, адресов) – динамическая процедура и решение этой процедуры требует определенных программных затрат.