Пређи на садржај

Викигимназијалац:Оперативни системи/Решења заснована на активном чекању

Извор: Викикњиге

Решења заснована на активном чекању подразумевају да процеси чекају у петљи док се не створе услови за његов улазак у критичну секцију.

Стриктна алтернација

[уреди]

Стриктна алтернација је једно од решења за заштиту критичне секције.Заснива се на коришћењу променљиве (на_реду) којом се одређује који од два процеса има предност. На почетку, предност се даје првом процесу, односно на_реду = 1.

Декеров алгоритам

[уреди]

Декеров алгоритам представља прво комплетно решење за узајамно искључивање у случају када два процеса конкуришу за дељене податке.

Питерсонов алгоритам

[уреди]

Питерсонов алгоритам је представљен 1981. године.Основна идеја овог алторитма је да када процес најави да жели да уђе у критичну секцију, уступи другом процесу предност.Ова предност важи само ако други процес жели да уђе у критичну секцију.Једина мана овог алгоритма је да је применљив само за два процеса.

Лампортов (пекарски) алгоритам

[уреди]

Уопштење Питерсоновог алгоритма за н процеса представља Лампортов алгоритам. Пошто се не може гарантовати да два процеса неће добити исти број, јер је и додела бројева критична секција, у случају да се то догоди процес са мањим индексом се опслужује први.

Хардверска решења

[уреди]

Хардверска решења за заштиту критичне секције подразумевају употребу посебних инструкција процесора. Идеја је да се направе машинске инструкције које су у стању да ураде бар две операције без могућности прекида, тј. атомично. Најчешће се за потребе заштите критичне секције користе следеће три инструкције:

  • ТАС (Test And Set),
  • ФАА (Fetch And Add) и
  • СВАП (замена).