OPERACIJSKI SUSTAVI 16.6.2003.

Studenti koji su slušali kolegij u tekućoj školskoj godini rješavaju zadatak br 2. te još (tri) zadatka po izboru.

1. Navedite što donji program ispisuje, ukratko objasnite razloge takvog ispisa te nacrtajte stablo koje prikazuje hijerarhiju pokrenutih procesa:

for (i=0; i<2; i++){
    pid = fork();
    printf("P: %d\n", i);
}
if (pid==0){
    for (i=0; i<2; i++){
        pid = fork();
        printf("Q: %d\n", i);
    }
}
printf("KRAJ!");

2. Zbog radova promet na mostu se odvija posebnom regulacijom. Potrebno je napisati algoritam za kontrolu prometa koji će poštovati sljedeća pravila:

a) na mostu se ne smiju u istom trenutku naći dva automobila koji idu u suprotnim smjerovima.

b) na mostu može biti više automobila koji idu u istom smjeru.

c) moguće je da se automobili koji idu u istom smjeru medusobno pretječu.

d) onemogućiti pojavu da kontinuirani protok automobila s jedne strane uzrokuje beskonačno čekanje s druge strane.

3. Neka je veličina stranice 4KB i neka matrica A[1 … 512, 1 … 512] sadrži cijele brojeve veličine 4 byte-a. Ako sustav ima samo jedan okvir na raspolaganju za donje odsječke, koliko promašaja će izazvati izvodenja sljedećih programskih odsječaka:

a) za j:=1 do 512 ciniti
   | za i:=1 do 512 ciniti
   |  |  A[i,j]:=0;
b) za i:=1 do 512 ciniti
   | za j:=1 do 512 ciniti
   |  |  A[i,j]:=0;

4. Objasnite princip monitora.

5. Što je fragmentacija spremnika i kako nastaje?

Boris Milašinović

Rezultati: ponedjeljak 23.6.2003. u 17h