Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:


Взаимоблокировка процессов

Имеются различные способы выхода из блокировок:


  1. Снятие оператором выполняющихся процессов до тех пор, пока не исчезнет взаимоблокировка. Этот путь эффективен лишь в том случае, когда количество выполняющихся процессов не очень велико (например не более 100). При большом количестве выполняющихся процессов этот путь чаще всего не помогает преодолеть блокировку.
  2. Перезагрузка системы этот путь преодоления блокировок наиболее радикальный, но и наиболее дорогой.
  3. Рестарт системы с так называемой контрольной точки.

Контрольная точка - это полное состояние ЭВМ запомненное на внешнем носители. Для больших ЭВМ организация контрольной точки требует больших ресурсов и времени, поскольку на внешний носитель нужно будет запомнить полное состояние всех регистров ЭВМ, всей ее ОП (несколько десятков терабайт на майнфреймах), а так же полное состояние регистров и ОП каждого из устройств ЭВМ (несколько десятков тысяч устройств на майнфреймах). Несмотря на то что организация контрольной точки требует большого количества времени и ресурсов, ее регулярно проводят с различной периодичностью (раз в час) для того чтобы уменьшить неизбежные финансовые потери от рестарта ЭВМ.


Имеются два противоположных способа борьбы с взаимоблокировками:


  1. Полное игнорирование угроз возникновения взаимоблокировок.
  2. Построение такой ОС, которая просчитывает на несколько шагов вперед (подобно шахматисту) ситуацию которая может возникнуть в ЭВМ после запуска определенного процесса. Это можно сделать на основе теории графов. Такое построение ОС ведет к существенному усложнению ее структуры, однако не решает проблемы на 100%, поскольку любая сложная программа, в том числе и ОС, имеет большое количество не выявленных ошибок. В типичных ОС количество ошибок исчисляется несколькими десятков или сотнями тысяч.


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


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

Почти все ОС построены по такому принципу. На майнфреймах, при проектировании, такая структура ОС была принята , что при среднем количестве запросов на ЭВМ и большом объеме ее ресурсов возникновение блокировок было маловероятным. Затраты на написание сложной безопасной ОС представлялись проектировщиками гораздо больше чем экономические потери возникающие из-за редких возникновении взаимоблокировок. Однако с появлением вирусов и хакерских атак вероятность перегрузки ЭВМ и возникновение блокировок очень сильно возросла.

предыдущая следующая тема