ОС2/Јануар 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Zadaci na stranici predmeta.

1. zadatak

Postavka

Navesti osnovni problem FCFS algoritma raspoređivanja procesa i objasniti taj problem na primeru. Navesti i ukratko objasniti i drugi problem ovog algoritma.

Rešenje

  • Osnovni problem je dugo prosečno vreme čekanja za dolazak na red.
  • Drugi problem je tzv. konvoj efekat gde grupa I/O-bound procesa (koji se često blokiraju) čeka na CPU-bound proces (koji dugo zauzima proces) završi i tako u krug idu za njim kao konvoj što čini posledicu slabijeg iskorišćenja procesora.

2. zadatak

Postavka

Korišćenjem klasičnih uslovnih promenljivih realizovati monitor sa dve operacije, x i y, pri čemu monitor održava sledeću invarijantu: ukupan broj izvršavanja operacije x je uvek ne manji od broja izvršavanja operacije y. Zanemariti prekoračenje ograničenog opsega celobrojnih brojača.

Rešenje

monitor xy;
export x, y;

var 
    count : int;
    canY : cond;
    
procedure x();
begin
    count := count + 1;
    if (count >= 0) then
    begin
        signal(canY);
    end;
end;

procedure y();
begin
   while (count == 0) then
   begin
       wait(canY);
   end;
   count := count - 1;
end;

begin
    count := 0;
end;

3. zadatak

Postavka

Objasniti zašto je nemoguće u potpunosti garantovati semantiku tačno jednog poziva kod RPC u distribuiranom okruženju u opštem slučaju.

Rešenje

Neophodno je uspostaviti otpornost na izgubljene ili duplicirane poruke što nije trivijalno. Otpornost na izgubljene poruke se može implementirati porukama potvrde prijema, ali i one mogu da se izgube; ili vremenskom kontrolom, koja može da istekne pa se onda opet mora slati zahtev.

4. zadatak

Postavka

Nacrtati graf zauzeća resursa za dati sistem koji izbegava mrtvu blokadu posle sledeće sekvence: P1-request(R1), P3-request(R3), P2-request(R2). Sva tri procesa su najavila korišćenje sva tri resursa.

Rešenje

P1 će zauzeti R1. Zbog izbegavanja mrtve blokade, P3 neće smeti da uzme R3 (stvara se petlja) dok P1 ne oslobodi R1.

Graf potražnje uz 4. zadatak

5. zadatak

Postavka

Ukratko objasniti algoritam časovnika za zamenu stranica.

Rešenje

  • Osnova je FIFO kružna lista. Svaka stranica ima bit koji označava da li je bilo pristupa njoj - bit referenciranja.
  • Postoji pokazivač (kazaljka časovnika) koji pokazuje na stranicu koju treba izbaciti.
  • Ukoliko stranica ima bit referenciranja postavljen na 0, ona se izbacuje.
  • Ukoliko je taj bit 1, postavlja se na 0 (time se daje "druga šansa") i prelazi se na sledeću stranicu u redu.
  • Svodi se na FIFO ako su svi biti referenciranja 1.

6. zadatak

Postavka

Šta je keš (cache), a šta ploča (slab) kod algoritma za alokaciju memorije pločama? Precizno objasniti.

Rešenje

  • Keš se sastoji od jedne ili više ploča. Služi da smesti sve instance nekog tipa objekta.
  • Ploča je niz fizički susednih stranica. Polja u ploči su veličine tipa koji njen keš čuva. Broj polja zavisi od veličine objekta.

7. zadatak

Postavka

Neki RAID6 sistem označen je na sledeći način: (12 + 3) x 2 TB. Koliki je efektivan kapacitet za podatke ovog sistema?

Rešenje

2 x 12 = 24 TB.

8. zadatak

Postavka

Šta je CLR u .Net okruženju?

Rešenje

Common Language Runtime (CLR) je komponenta virtuelne mašine koja pokreće .NET programe.

9. zadatak

Postavka

Pod kojom licencom se distribuira Linux kernel?

Rešenje

GPL - GNU General Public License.

10. zadatak

Postavka

Navesti najmanje dve standardne C biblioteke ugrađene u sistem Android i kratko navesti čemu one služe.

Rešenje

  • SQLite - implementacija relacione baze podataka
  • OpenGL - biblioteka za renderovanje 2D i 3D grafike