Студопедия

Главная страница Случайная лекция

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика






Следует ли отказываться от вызова CreateProcess, чтобы решить эту проблему?

Читайте также:
  1. Bona fides поп patitur, ut bis idem exigatur (D. 50.17.57). - добрая совесть не терпит, чтобы одно и то же взыскивалось дважды.
  2. D. 17.1.22.11). - Maндатарий может отказаться от договора так, чтобы за мандан­том осталось ненарушенным право с удобством устроить то же дело лично или через другого мандатария.
  3. D. 20.1.1). - Завещание есть правомерное выражение воли, сделанное торжественно для того, чтобы оно действовало после нашей смерти.
  4. Quidquid ex vendito dare facere oportet promittis? Promitto. - Обещаешь ли все, что следует дать и сделать в силу проданного тебе? Обещаю.
  5. Во влагалище делается разворот руки, чтобы ось совпала с осью крестцовой впадины и матки.
  6. Вставка слайдов. Для того чтобы добавить слайд в презентацию, нужно сделать следующее.
  7. Выравнивание объектов. При создании презентации важно, чтобы объекты были выровнены. Слайд с выровненными объектами выглядит значительно лучше, чем слайд без выравнивания.
  8. Закрыть помещение после обработки так, чтобы не было связи с другим помещением, и проветрить в течение 3-х суток
  9. Как правильно одеться, чтобы не стать жертвой клеща
  10. Как следует из самого определения пожара – основной процесс, протекающий на пожаре, это горение.

 

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

Способы предотвращения тупиков

 

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

 

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

Способы предотвращения тупиков путем тщательного распределения ресурсов. Алгоритм банкира

 

Можно избежать взаимоблокировки, если распределять ресурсы, придерживаясь определенных правил. Среди такого рода алгоритмов наиболее известен алгоритм банкира, предложенный Дейкстрой, который базируется на так называемых безопасных или надежных состояниях (safe state). Безопасное состояние – это такое состояние, для которого имеется по крайней мере одна последовательность событий, которая не приведет к взаимоблокировке. Модель алгоритма основана на действиях банкира, который, имея в наличии капитал, выдает кредиты.

 

Суть алгоритма состоит в следующем.

Предположим, что у системы в наличии n устройств, например лент.

ОС принимает запрос от пользовательского процесса, если его максимальная потребность не превышает n.

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

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

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

 

Рассмотрим пример надежного состояния для системы с 3 пользователями и 11 устройствами, где 9 устройств задействовано, а 2 имеется в резерве. Пусть текущая ситуация такова:

 

 

Рис. 7.2. Пример надежного состояния для системы с 3 пользователями и 11 устройствами.

 

 

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

 

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

 

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



Число пользователей и число ресурсов фиксировано.

Число работающих пользователей должно оставаться постоянным.

Алгоритм требует, чтобы клиенты гарантированно возвращали ресурсы.

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

 

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

Предотвращение тупиков за счет нарушения условий возникновения тупиков

 

В отсутствие информации о будущих запросах единственный способ избежать взаимоблокировки – добиться невыполнения хотя бы одного из условий раздела "Условия возникновения тупиков".

 


<== предыдущая страница | следующая страница ==>
Условия возникновения тупиков | Нарушение условия ожидания дополнительных ресурсов

Дата добавления: 2014-02-26; просмотров: 93; Нарушение авторских прав


lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.