Pređi na sadržaj

Vikigimnazijalac:Operativni sistemi/Rešenja zasnovana na aktivnom čekanju

Izvor: Викикњиге

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).