Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК Коблякова Д.А. от 09-КТ-2.doc
Скачиваний:
52
Добавлен:
27.03.2015
Размер:
1.07 Mб
Скачать

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

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

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

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

Осталось одно условие. Циклического ожидания можно избежать несколькими путями.

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

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

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

Очевидно, что невозможно найти порядок, который удовлетворит всех.

7.10 Заключение.

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

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

Считается, что в будущих системах тупики станут более критичным фактором, так как  системы будущего:

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

  • будет преимущественно реализовываться динамическое распределение ресурсов

  • растет тенденция рассматривать данные как ресурс, в связи с чем количество ресурсов возрастет.

Более подробно данная тема рассмотрена в [9,12,22 и др.]

Часть III. Управление памятью.

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