Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
СобытияСобытия обычно просто оповещают об окончании какой-либо операции, они также являются объектами ядра. События могут быть мануальными (manual) и единичными (single). Мануальное событие (manual event) - это не просто общий флаг для нескольких потоков. Оно выполняет несколько более сложные функции. Любой поток может установить это событие или сбросить (очистить) его. Если событие установлено, оно останется в этом состоянии сколь угодно долгое время, вне зависимости от того, сколько потоков ожидают установки этого события. Когда все потоки, ожидающие этого события, получат сообщение о том, что событие произошло, оно автоматически сбросится. Если требуется, чтобы к событию смогли обратиться потоки других процессов, нужно присвоить этому событию уникальное имя. Если событие больше не нужно, программа должна обратиться к вызову CloseHandle() для того, чтобы уменьшить его счётчик пользователей. Если счетчик будет равен нулю, объект событие удалится системой. Тупики Одна из важных задач операционной системы – распределение ресурсов компьютера между процессами. С данной задачей тесно связано понятие тупика (deadlock). и близкая к ним проблема бесконечного откладывания - важные факторы, которые должны учитывать разработчики ОС. Tупик (deadlock) - это такая ситуация в системе, когда процесс ожидает некоторого события, которое никогда не произойдет. Системная тупиковая ситуация, или “зависание” системы - это ситуация, когда один или более процессов оказываются в состоянии тупика. Тупик (deadlock) – множество заблокированных процессов, каждый из которых владеет некоторым ресурсом и ожидает ресурса, которым владеет какой-либо другой процесс из этого множества. Рассмотрим простой пример тупика при распределении ресурсов. В ОС тупики в большинстве случаев возникают при конкуренции процессов за выделение ресурсов последовательного доступа, которые в каждый момент времени отводятся только одному пользователю. На графе распределения ресурсов показана тупиковая ситуация, в которой каждый процесс удерживает ресурс, запрашиваемый другим процессом, причем ни один из процессов не хочет освободить принадлежащий ему ресурс. Рис. 5 Граф распределения ресурсов Такое состояние кругового ожидания характерно для систем в тупиковом состоянии. Близкая к проблеме возникновения тупиков - проблема бесконечного откладывания, когда предоставление запрашиваемого ресурса некоторому процессу будет откладываться на неопределенный срок, в то время, как система будет уделять внимание другим процессам. Напомним, что при разработке ОС необходимо предусматривать справедливое, а также эффективное управление процессами, находящимися в состоянии ожидания. В некоторых системах бесконечное откладывание предотвращается благодаря тому, что приоритет процесса увеличивается по мере того, как он ожидает выделения нужного ему ресурса. Это называется старением процесса. Четыре необходимых условия возникновения тупика Коффман, Элфик и Шошани сформулировали следующие четыре необходимых условия наличия тупика: • Условие взаимоисключения - процессы требуют предоставления им права монопольного управления ресурсами, которые им выделяются (только один процесс в каждый момент времени может получить доступ к ресурсу); • Условие удержания и ожидания ресурсов - процессы удерживают за собой ресурсы, уже выделенные им, ожидая в то же время выделения дополнительных ресурсов; • Условие неперераспределяемости - ресурсы нельзя отобрать у процессов, удерживающих их, пока эти ресурсы не будут использованы для завершения работы (процесс может освободить ресурс только добровольно, когда завершит свою работу); • Условие кругового или циклического ожидания - существует кольцевая цепь процессов, в которой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу цепи (существует множество {P0, P1, … P0}, такое, что P0 ожидает ресурса, которым обладает P1; P1 ожидает ресурса, которым обладает P2 … Pn ожидает ресурса, которым обладает P0).
Дата добавления: 2014-03-11; просмотров: 298; Нарушение авторских прав Мы поможем в написании ваших работ! |