Викигимназијалац:Оперативни системи/Решења заснована на активном чекању
Решења заснована на активном чекању подразумевају да процеси чекају у петљи док се не створе услови за његов улазак у критичну секцију.
Стриктна алтернација
[уреди]Стриктна алтернација је једно од решења за заштиту критичне секције.Заснива се на коришћењу променљиве (на_реду) којом се одређује који од два процеса има предност. На почетку, предност се даје првом процесу, односно на_реду = 1.
Декеров алгоритам
[уреди]Декеров алгоритам представља прво комплетно решење за узајамно искључивање у случају када два процеса конкуришу за дељене податке.
Питерсонов алгоритам
[уреди]Питерсонов алгоритам је представљен 1981. године.Основна идеја овог алторитма је да када процес најави да жели да уђе у критичну секцију, уступи другом процесу предност.Ова предност важи само ако други процес жели да уђе у критичну секцију.Једина мана овог алгоритма је да је применљив само за два процеса.
Лампортов (пекарски) алгоритам
[уреди]Уопштење Питерсоновог алгоритма за н процеса представља Лампортов алгоритам. Пошто се не може гарантовати да два процеса неће добити исти број, јер је и додела бројева критична секција, у случају да се то догоди процес са мањим индексом се опслужује први.
Хардверска решења
[уреди]Хардверска решења за заштиту критичне секције подразумевају употребу посебних инструкција процесора. Идеја је да се направе машинске инструкције које су у стању да ураде бар две операције без могућности прекида, тј. атомично. Најчешће се за потребе заштите критичне секције користе следеће три инструкције:
- ТАС (Test And Set),
- ФАА (Fetch And Add) и
- СВАП (замена).