Jump to content

Голод (информатика)

(Перенаправлено с «Голодный процесс »)

В информатике необходимых нехватка ресурсов — это проблема, возникающая при параллельных вычислениях , когда процессу постоянно отказывают в ресурсах, для выполнения его работы. [ 1 ] Недостаточность может быть вызвана ошибками в планировании или алгоритме взаимного исключения , но также может быть вызвана утечкой ресурсов и может быть преднамеренно вызвана посредством атаки типа «отказ в обслуживании», такой как вилочная бомба .

Когда голодание невозможно в параллельном алгоритме , этот алгоритм называется голоданием без . блокировки [ 2 ] или говорят, что имеется конечный обход . [ 3 ] Это свойство является примером жизнеспособности и одним из двух требований для любого алгоритма взаимного исключения; другое - правильность . Название «конечный обход» означает, что любой процесс (параллельная часть) алгоритма обходится не более конечного числа раз, прежде чем ему будет разрешен доступ к общему ресурсу . [ 3 ]

Планирование

[ редактировать ]

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

Многие планировщики операционных систем используют концепцию приоритета процесса. Процесс A с высоким приоритетом будет выполняться раньше процесса B с низким приоритетом. Если процесс с высоким приоритетом (процесс A) блокируется и никогда не завершается, процесс с низким приоритетом (B) (в некоторых системах) никогда не будет запланирован — он будет испытывать голодание. Если существует процесс X с еще более высоким приоритетом, который зависит от результата процесса B, то процесс X может никогда не завершиться, даже если это самый важный процесс в системе. Это состояние называется инверсией приоритетов . Современные алгоритмы планирования обычно содержат код, гарантирующий, что все процессы получат минимальное количество каждого важного ресурса (чаще всего процессорного времени), чтобы предотвратить голодание любого процесса.

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

Недостаточность обычно вызывается взаимоблокировкой , поскольку она приводит к зависанию процесса. Два или более процесса заходят в тупик, когда каждый из них ничего не делает, ожидая ресурса, занятого другой программой в том же наборе. С другой стороны, процесс находится в состоянии голодания, когда он ожидает ресурса, который постоянно передается другим процессам. Свобода от голодания является более сильной гарантией, чем отсутствие тупиковой ситуации: алгоритм взаимного исключения, который должен разрешить один из двух процессов в критическую секцию и выбирает один произвольно, свободен от тупиковых ситуаций, но не свободен от голодания. [ 3 ]

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

См. также

[ редактировать ]
  1. ^ Таненбаум, Эндрю (2001). Современные операционные системы . Прентис Холл. стр. 184–185 . ISBN  0-13-092641-8 .
  2. ^ Херлихи, Морис ; Шавит, Нир (2012). Искусство многопроцессорного программирования . Эльзевир. п. 24. ISBN  9780123977953 .
  3. ^ Jump up to: а б с Рейналь, Мишель (2012). Параллельное программирование: алгоритмы, принципы и основы . Springer Science & Business Media. стр. 10–11. ISBN  978-3642320279 .
  4. ^ Гэлвин, Питер (2010). Концепции операционной системы . Wiley, индийское издание. п. 193. ИСБН  978-81-265-2051-0 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 082e18958d0f20e499555bdc177868df__1679899020
URL1:https://arc.ask3.ru/arc/aa/08/df/082e18958d0f20e499555bdc177868df.html
Заголовок, (Title) документа по адресу, URL1:
Starvation (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)