Операционные системы. Управление ресурсами



         

Взаимное исключение через общие переменные - часть 8


Если наш процесс отказался от своего права в строке 8, то как же это право может к нему вернуться? Право нашего процесса может быть восстановлено конкурентом, когда последний тоже войдет в функцию csBegin своего кода и выполнит строку 8. При выходе из критической секции процесс просто снимает свой интерес, и тогда его конкурент, возможно, ожидающий в строке 8, получает возможность выхода из цикла строки 9 по первой части условия.

Общие положительные свойства алгоритмов, основывающихся на неальтернативных переключателях (Деккера и Питерсона), следующие:

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

Но:

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




Содержание  Назад  Вперед