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