ОС2/Фебруар 2022 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Formatiranje i latinica)
м (→‎Rešenje: Ispravljena greska u prvom delu)
 
Ред 79: Ред 79:


=== Rešenje ===
=== Rešenje ===
* Veću pouzdanost ima RAID0, a veći efektivni prostor ima RAID1.
* Veću pouzdanost ima RAID1, a veći efektivni prostor ima RAID0.
* U ovom primeru RAID0 ima 2N, a RAID1 ima N efektivnog prostora.
* U ovom primeru RAID0 ima 2N, a RAID1 ima N efektivnog prostora.



Тренутна верзија на датум 9. фебруар 2023. у 18:25

Ispit u februarskom roku 2022. godine održan je 10. februara. Postavka roka dostupna je sa stranice predmeta.

1. zadatak

Postavka

Da li se kod algoritma raspoređivanja Multi-level Feedback Queue Scheduling procesu koji je došao u red spremnih iz stanja suspenzije po pravilu smanjuje ili povećava prioritet? Zašto?

Rešenje

  • Stavlja se u viši (prioritetniji) red.
  • Zato što smo prošlom procenom precenili dužinu njegovog naleta ili smo potcenili njegovu interaktivnost. Zato stavljamo proces u red u kojem će kraće čekati sledeći nalet, ali će imati i manje vreme naleta.

2. zadatak

Postavka

Na programskom jeziku Java realizovati monitor sa dve operacije, op1 i op2, pri čemu monitor održava sledeću invarijantu: ukupan broj izvršavanja operacije op1 je uvek ne manji od broja izvršavanja operacije op2. Zanemariti prekoračenje ograničenog opsega celobrojnih brojača.

Rešenje

public class MyMonitor {
    private int count;

    public synchronized void op1() {
        this.count += 1;
        if (this.count == 1) notifyAll();
    }
    public synchronized void op2() {
        while (--this.count < 0) wait();
    }
}

3. zadatak

Postavka

U koju kategoriju međuprocesne komunikacije po pitanju imenovanja spada koncept cevovoda (pipe)? Obrazložiti. Šta je osnovna motivacija za ovakav koncept?

Rešenje

  • Indirektno, ne moramo znati tačnu indetifikaciju procesa kojem šaljemo/uzimamo podatke, već samo ime cevovoda.
  • Motivacija je rasprezanje koda što omogućava lakše održavanje i nezavisno menjanje koda.

4. zadatak

Postavka

Navesti i precizno objasniti bar dva načina sprečavanja mrtve blokade ukidanjem uslova "držanje i čekanje" (hold and wait).

Rešenje

  • Procesi ne smeju tražiti novi resurs ukoliko već imaju/traže neki drugi. Za hold and wait su potrebna bar 2 resursa što ovaj pristup onemogućava.
  • Procesi sve svoje resurse moraju tražiti istovremeno, ukoliko ne dobiju sve koje su tražili oslobađaju ih pa posle nekog vremena pokušavaju ponovo sve dok ne dobiju sve tražene resurse. Za hold and wait moramo držati neki resurs dok tražimo drugi, a ovim pristupom se to onemogućava jer se svi resursi zauzimaju istovremeno.

5. zadatak

Postavka

Dati sistem primenjuje izbegavanje mrtve blokade. Tri procesa, P1, P2 i P3, najavila su korišćenje oba resursa R1 i R2. Nacrtati graf zauzeća resursa nakon sledeće sekvence: P1 traži R1, P3 traži R2, P2 traži R1, P1 oslobađa R1. Ako više procesa čeka na isti resurs, dobiće ga najpre onaj koji ga je najranije tražio.

Skica rešenja

  • P1 najavljuje korišćenje svih resursa
  • P2 traži R1, najavljuje korišćenje R2
  • P3 koristi R2, najavljuje korišćenje R1

6. zadatak

Postavka

Kod LRU algoritma zamene stranica korišćenjem dodatnih bita referenciranja, navesti šta tačno radi operativni sistem u sledeće dve situacije:

  • periodično ažuriranje evidencije:
  • izbor žrtve za izbacivanje:

Rešenje

  • Šiftuje dodatne bite referenciranja i u njih ubacuje bit referenciranja koji ugađa hardver koji potom resetuje na 0
  • Putuje po kružnoj listi i ponavlja korak pod a dok ne naiđe na stranicu kojoj svi biti referenciranja 0

7. zadatak

Postavka

Neki sistem primenjuje sistem parnjaka (buddy) za alokaciju memorije. Stanje sistema u datom trenutku prikazano je na sledećoj slici:

  • X__XX__X_X__X___

Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a blokovi označeni sa X su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka:

Rešenje

  • X__XX__X_XXXX___ ili
  • X__XX__X_X__X_XX

8. zadatak

Postavka

Koja RAID konfiguracija ima veći efektivni prostor za podatke, RAID0 ili RAID1, i koliki je efektivni prostor za 2N jednakih diskova? A koja ima veću pouzdanost?

Rešenje

  • Veću pouzdanost ima RAID1, a veći efektivni prostor ima RAID0.
  • U ovom primeru RAID0 ima 2N, a RAID1 ima N efektivnog prostora.

9. zadatak

Postavka

Ukratko objasniti koncept modula jezgra u sistemu Linux, uključujući i motivaciju za uvođenje tog kocnepta[sic].

Rešenje

  • Jezgro Linux "dovlači" potrebne delove koda tek kada mu zatrebaju, npr. drajvere, jer ih inače ne sadrži u svom kodu.
  • Motivacija je želja da Linux može raditi i na hardverski lošim računarima.

10. zadatak

Postavka

Koji način alokacije fajlova primenjuje Linux ext fajl sistem? Ukratko ga objasniti.

Rešenje

  • Indeksni, sa najviše 3 nivoa indirekcije.
  • Nalik je alokaciji stranica za procese korišćenjem PCBa.