next up previous contents
Next: D.6 Deljeni spomin Up: D Komunikacija med procesi Previous: D.4 Sporocila Vsebina: contents

D.5 Semaforji

Semaforji omogocajo komunikacijo med vec procesi z izmenjavo vrednosti semaforjev. Uporabljajo se predvsem za zaklepanje in pravilno deljenje virov (resource sharing) med razlicnimi procesi.

Semaforji so pozitivne stevilcne vrednosti in omogocajo dostop do polja semaforjev s funkcijo semop. Ce je vrednost, ki jo semafor vsebuje pozitivna, potem proces lahko uporabi vire (podatke). Ob uporabi se vredost semaforja zmanjsa za ena. Ce je vrednost semaforja enaka nic, se proces zacasno ustavi (sleep), dokler ne dobi semafor vrednosti ena in s tem dovoljenje za uporabo.

Podobno kot pri posiljanju sporocil je tudi tu omejeno stevilo semaforjev. Pri uporabi je potrebno paziti na pravilno sproscanje virov (semaforjev) ob koncanju programa v vseh moznih variantah. Te omejitve vnasajo tezave pri izdelavi programa, zato se za enostavnejse programe raje uporablja zaklepanje z uporabo datotek (advisory record locking)gif, ki je enostavnejse, saj sistem skrbi za to, da se ob koncanju procesa sprosti zaklenjena datoteka. Zaklepanje datotek je pogosta praksa, kjer se kreira datoteka minimalne velikosti in zaklene proti pisanju.



Copyright © 1995 Leon Kos, Univerza v Ljubljani