OPERACIJSKI SUSTAVI - 2. KOLOKVIJ 25.1.2002.

1. Prepostavimo da imamo dvije skupine ljudi A i B. Za uspješno izvršavanje odredenih poslova trebaju sudjelovati osobe iz obje grupe i to na sljedeći način. Proizvoljna osoba (nazovimo ga kordinator akcije) prvo bira neku osobu iz skupine A. Nakon što bude odabrana osoba iz skupine A, ona bira odgovarajuću osobu iz skupine B (način odabira nije bitan). Odabrana osoba iz skupine A i skupine B, zajedno sa kordinatorom rješavaju problem. Po završetku posla, ovaj postupak se ponavlja s nekim drugim osobama. Svaka osoba neka predstavlja neki proces, koji ispisuje poruke da se kreirao, zatim da obavlja posao, te da je završio rad. Pomoću semafora riješite problem sinkronizacije ovih procesa, ako je poznato da u svakom trenutku na sustavu može postojati samo jedan kordinator akcije uz sljedeće uvjete:

a) kordinator akcije je uvijek isti

b) po završetku posla kordinator se može promijeniti.

2. Nabrojite i objasnite strategije zamjene stranica.

3. Napišite program koji kreira dva procesa, koja rade sljedeće:

Prvi proces čita sa standardnog ulaza cijele brojeve i upisuje ih u zajedničku memoriju. Proces prestaje raditi kad se unese negativni broj ili ako se popuni prethodno alocirani zajednički segment memorije. Na kraju završetka rada proces u zajednički segment upiše broj -1 kao znak za kraj. Drugi proces istovremeno čita iz zajedničkog segmenta te ispisuje u neku datoteku unešene brojeve. Na kraju rada ovih dvaju procesa glavni program mora ispisati sve unešene brojeve na standardni izlaz. Uputa : (Prilikom upisivanje svakog broja u zajedniči segment, povećati vrijednost još jedne zajedničke varijable za 1, na osnovu čije promjene će drugi proces znati da treba ispisati unešeni broj)

4. Objasnite koncepciju monitora (zbog čega su potrebni, način izgradnje...)

5. Pomoću semafora ostvariti sinkronizaciju sedam procesa prema zadanom grafu (na primjer, Z3 smije početi tek kada završe Z1 i Z2). Zadatak koji obavlja svaki od procesa dan je pseudokodom:

proces Z(i) /* i = [1..7] */
    za j = 1 do 20-i radi
        ispisi (i, j)
kraj.

Boris Milašinović

Rezultati: 28.1.2002. u 11:45