Klijent-server model (client-server model)

U ovom modelu, procese delimo na dve vrste:

  • klijent procesi (client process), predstavljaju procese korisnika,
  • server procesi (server process) koji su zaduženi za obradu klijentskih procesa.

I klijentskii i serverski procesi rade u korisničkom režimu rada.
Kernel OS-a je zadužen za komunikaciju između klijentskih i serverskih procesa.
Server procesi su delovi OS-a i grupisani su prema tome koje funkcije obavljaju:

  • proces serveri (zaduženi za procese),
  • fajl serveri (zaduženi za fajl sistem),
  • serveri memorije itd.

Svi serveri rade u korisničkom režimu, pa nemaju direktan pristup hardveru.

Prednosti ovog modela:

  • OS je razbijen na manje delove (servere) koji se mogu održavati nezavisno
  • ako dođe do greške u nekom serveru, ne mora pasti i ceo sistem
  • pogodan je za pravljenje distribuiranog sistema: različiti serveri mogu se izvršavati na različitim računarima (koji su naravno povezani), kada neki klijent proces pošalje neku poruku nekom serverskom procesu, ne treba da vodi računa o tome, kako će stići poruka do servera, to je zadatak kernela. Isto tako, kernel će znati kako da vrati odgovor.

Postoji još jedna stvar kod ovog modela, o čemu treba voditi računa: neke funkcije OS-a ne mogu se ili se teško mogu realizovati u korisničkom režimu rada.
Imamo dve mogućnosti da rešimo ovaj problem:

  • imamo neke kritične server procese koji se izvršavaju u sistemskom režimu rada i imaju direktan pristup hardveru, ali sa ostalim procesima komuniciraju kao što se to radi u ovom modelu.
  • neke kritične mehanizme ugrađujemo u sam kernel, a pravimo server u korisničkom režimu koji sadrži samo interfejs tih operacija.
klijentski proces 1 klijentski proces 2 server procesa fajl server ……… server memorije
KERNEL
Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.