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

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(Добар линк до задатака на страници)
м (Formatiranje i latinica)
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
[http://os.etf.rs/OS2/rokovi/2022/februar/Feb%202022.pdf Zadaci na stranici predmeta.]
'''Ispit u februarskom roku 2022. godine''' održan je 10. februara. Postavka roka dostupna je sa [http://os.etf.rs/OS2/rokovi/2022/februar/Feb%202022.pdf stranice predmeta.]


== 1. zadatak ==
== 1. zadatak ==
=== Postavka ===
=== Postavka ===
Da li se kod algoritma raspoređivanja Multi-level Feedback Queue Scheduling procesu koji
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?  
je došao u red spremnih iz stanja suspenzije po pravilu smanjuje ili povećava prioritet? Zašto?  
 
=== Rešenje ===
=== 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 ==
== 2. zadatak ==
=== Postavka ===
=== Postavka ===
Na programskom jeziku Java realizovati monitor sa dve operacije, op1 i op2, pri čemu
Na programskom jeziku Java realizovati monitor sa dve operacije, <code>op1</code> i <code>op2</code>, pri čemu monitor održava sledeću invarijantu: ukupan broj izvršavanja operacije <code>op1</code> je uvek ne manji od broja izvršavanja operacije <code>op2</code>. Zanemariti prekoračenje ograničenog opsega celobrojnih brojača.  
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 ===
=== Rešenje ===
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
public class MyMonitor {
    private int count;


public class MyMonitor{
    public synchronized void op1() {
  private int count;
        this.count += 1;
 
        if (this.count == 1) notifyAll();
  public synchronized void op1(){
    }
      this.count+=1;
    public synchronized void op2() {
      if(this.count == 1) notifyAll()
        while (--this.count < 0) wait();
  }
    }
  public synchronized void op2(){
      while(--this.count <0)wait()
  }
}
}
</syntaxhighlight>
</syntaxhighlight>


== 3. zadatak ==
== 3. zadatak ==
=== Postavka ===
=== Postavka ===
U koju kategoriju međuprocesne komunikacije po pitanju imenovanja spada koncept
U koju kategoriju međuprocesne komunikacije po pitanju imenovanja spada koncept cevovoda (''pipe'')? Obrazložiti. Šta je osnovna motivacija za ovakav koncept?
cevovoda (pipe)? Obrazložiti. Šta je osnovna motivacija za ovakav koncept?  
 
=== Rešenje ===
=== 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 ==
== 4. zadatak ==
=== Postavka ===
=== Postavka ===
Navesti i precizno objasniti bar dva načina sprečavanja mrtve blokade ukidanjem uslova
Navesti i precizno objasniti bar dva načina sprečavanja mrtve blokade ukidanjem uslova "držanje i čekanje" (''hold and wait'').  
„držanje i čekanje“ (hold and wait).  
 
=== Rešenje ===
=== Rešenje ===
* Процеси не смеју тражити нови ресурс уколико већ имају/треже неки други. За hold&wait су потребна бар 2 ресурса што овај приступ онемогућава.
* 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.
* Процеси све своје ресурсе морају тражити истовремено, уколико не добију све све које заузели ослобађају па после неког времена покушавају поново све док не добију све тражене ресурсе. За hold&wait морамо држати неки ресурс док тражимо други, а овим приступом се то онемогућава јер се сви ресурси заузимају истовремено
* 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 ==
== 5. zadatak ==
=== Postavka ===
=== Postavka ===
Dati sistem primenjuje izbegavanje mrtve blokade. Tri procesa, P1, P2 i P3, najavila su
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.
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 ===
=== Skica rešenja ===
* П1 најављује коришћење свих ресурса
* P1 najavljuje korišćenje svih resursa
* П2 тражи Р1, најављује корићење Р2
* P2 traži R1, najavljuje korišćenje R2
* П3 користи Р2, најављује коришћење Р1
* P3 koristi R2, najavljuje korišćenje R1
 
== 6. zadatak ==
== 6. zadatak ==
=== Postavka ===
=== Postavka ===
Kod LRU algoritma zamene stranica korišćenjem dodatnih bita referenciranja, navesti šta
Kod LRU algoritma zamene stranica korišćenjem dodatnih bita referenciranja, navesti šta tačno radi operativni sistem u sledeće dve situacije:  
tačno radi operativni sistem u sledeće dve situacije:  
* periodično ažuriranje evidencije:  
* periodično ažuriranje evidencije:  
* izbor žrtve za izbacivanje:
* izbor žrtve za izbacivanje:
=== Rešenje ===
=== Rešenje ===
* Шифтује додатне бите референцирања и у њих убацује бит референцирања који угађа хардвер који потом ресетује на 0
* Šiftuje dodatne bite referenciranja i u njih ubacuje bit referenciranja koji ugađa hardver koji potom resetuje na 0
* Путује по кружној листи и понавља корак под а док не наиђе на страницу којој сви бити референцирања 0
* Putuje po kružnoj listi i ponavlja korak pod a dok ne naiđe na stranicu kojoj svi biti referenciranja 0


== 7. zadatak ==
== 7. zadatak ==
=== Postavka ===
=== Postavka ===
Neki sistem primenjuje sistem parnjaka (buddy) za alokaciju memorije. Stanje sistema u
Neki sistem primenjuje sistem parnjaka (''buddy'') za alokaciju memorije. Stanje sistema u datom trenutku prikazano je na sledećoj slici:  
datom trenutku prikazano je na sledećoj slici:  
* X__XX__X_X__X___
* X__XX__X_X__X___
Svako polje predstavlja jedan elementarni blok (najmanju jedinicu alokacije), a blokovi označeni sa
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:  
X su zauzeti. Prikazati stanje nakon zahteva za alokaciju segmenta veličine dva bloka:  
 
=== Rešenje ===
=== Rešenje ===
* X__XX__X_XXXX___ или X__XX__X_X__X_XX
* X__XX__X_XXXX___ ili
* X__XX__X_X__X_XX


== 8. zadatak ==
== 8. zadatak ==
=== Postavka ===
=== Postavka ===
Koja RAID konfiguracija ima veći efektivni prostor za podatke, RAID0 ili RAID1, i koliki
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?  
je efektivni prostor za 2N jednakih diskova? A koja ima veću pouzdanost?  
 
=== Rešenje ===
=== Rešenje ===
* Већу поузданост има RAID0,а већи ефективни простор има RAID1
* Veću pouzdanost ima RAID0, a veći efektivni prostor ima RAID1.
* У овом примеру RAID0 има 2N, a RAID1 има N ефективног простора
* U ovom primeru RAID0 ima 2N, a RAID1 ima N efektivnog prostora.


== 9. zadatak ==
== 9. zadatak ==
=== Postavka ===
=== Postavka ===
Ukratko objasniti koncept modula jezgra u sistemu Linux, uključujući i motivaciju za
Ukratko objasniti koncept modula jezgra u sistemu ''Linux'', uključujući i motivaciju za uvođenje tog kocnepta<sup>[sic]</sup>.
uvođenje tog kocnepta.
 
=== Rešenje ===
=== 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 ==
== 10. zadatak ==
=== Postavka ===
=== Postavka ===
Koji način alokacije fajlova primenjuje Linux ext fajl sistem? Ukratko ga objasniti.  
Koji način alokacije fajlova primenjuje ''Linux'' ext fajl sistem? Ukratko ga objasniti.  
 
=== Rešenje ===
=== Rešenje ===
* Индексни, са највише 3 нивоа индирекције.  
* Indeksni, sa najviše 3 nivoa indirekcije.
* Налик је алокацији страница за процесе коришћењем PCBa.
* Nalik je alokaciji stranica za procese korišćenjem PCBa.


[[Категорија:Рокови]]
[[Категорија:Рокови]]
[[Категорија:ОС2]]
[[Категорија:ОС2]]

Верзија на датум 9. фебруар 2023. у 00:52

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 RAID0, a veći efektivni prostor ima RAID1.
  • 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.