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
urediStriktna 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
urediDekerov algoritam predstavlja prvo kompletno rešenje za uzajamno isključivanje u slučaju kada dva procesa konkurišu za deljene podatke.
Pitersonov algoritam
urediPitersonov 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
urediUopš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
urediHardverska 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).