Vikigimnazijalac:Operativni sistemi/Rešenja zasnovana na aktivnom čekanju
Rešenja zasnovana na aktivnom čekanju podrazumevaju da procesi čekaju u petlji dok se ne stvore uslovi za njegov ulazak u kritičnu sekciju.
Striktna alternacija
[uredi]Striktna alternacija je jedno od rešenja za zaštitu kritične sekcije.Zasniva se na korišćenju promenljive (na_redu) kojom se određuje koji od dva procesa ima prednost. Na početku, prednost se daje prvom procesu, odnosno na_redu = 1.
Dekerov algoritam
[uredi]Dekerov algoritam predstavlja prvo kompletno rešenje za uzajamno isključivanje u slučaju kada dva procesa konkurišu za deljene podatke.
Pitersonov algoritam
[uredi]Pitersonov algoritam je predstavljen 1981. godine.Osnovna ideja ovog altoritma je da kada proces najavi da želi da uđe u kritičnu sekciju, ustupi drugom procesu prednost.Ova prednost važi samo ako drugi proces želi da uđe u kritičnu sekciju.Jedina mana ovog algoritma je da je primenljiv samo za dva procesa.
Lamportov (pekarski) algoritam
[uredi]Uopštenje Pitersonovog algoritma za n procesa predstavlja Lamportov algoritam. Pošto se ne može garantovati da dva procesa neće dobiti isti broj, jer je i dodela brojeva kritična sekcija, u slučaju da se to dogodi proces sa manjim indeksom se opslužuje prvi.
Hardverska rešenja
[uredi]Hardverska rešenja za zaštitu kritične sekcije podrazumevaju upotrebu posebnih instrukcija procesora. Ideja je da se naprave mašinske instrukcije koje su u stanju da urade bar dve operacije bez mogućnosti prekida, tj. atomično. Najčešće se za potrebe zaštite kritične sekcije koriste sledeće tri instrukcije:
- TAS (Test And Set),
- FAA (Fetch And Add) i
- SVAP (zamena).