ОС1/Јул 2015 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Formatiranje)
Ред 11: Ред 11:
== 2. zadatak ==
== 2. zadatak ==
=== Postavka ===
=== Postavka ===
Na asembleru nekog zamišljenog dvoadresnog RISC procesora sa ''load/store'' arhitekturom napisati prevod sledeće rekurzivne C funkcije:  
Na asembleru nekog zamišljenog dvoadresnog RISC procesora sa ''load/store'' arhitekturom napisati prevod sledeće rekurzivne C funkcije:  
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
int f (int n) {  
int f (int n) {
   if (n<=1) return 1;  
   if (n <= 1) return 1;
   else return f(n-1)+f(n-2);  
   else return f(n - 1) + f(n - 2);
}
}
</syntaxhighlight>
</syntaxhighlight>
Ред 24: Ред 24:
== 3. zadatak ==
== 3. zadatak ==
=== Postavka ===
=== Postavka ===
Korišćenjem školskog jezgra napisati kod koji omogućava da se kreira nit sa celobrojnim parametrom ''n''. Ako je ''n'' manje ili jednako 0, ova nit samo ispisuje pozdravnu poruku i završava se. U suprotnom, ova nit će (rekurzivno) kreirati istu takvu nit, ali sa parametrom ''n-1''.
Korišćenjem školskog jezgra napisati kod koji omogućava da se kreira nit sa celobrojnim parametrom ''n''. Ako je ''n'' manje ili jednako 0, ova nit samo ispisuje pozdravnu poruku i završava se. U suprotnom, ova nit će (rekurzivno) kreirati istu takvu nit, ali sa parametrom ''n-1''.


=== Rešenje ===
=== Rešenje ===
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
class myThread : public Thread {
class MyThread : public Thread {
public:
    public:
myThread(int val) {
        MyThread(int val) {
n = val;
            n = val;
start();
            start();
}
        }
protected:
    protected:
void run() {
        void run() {
if(n <= 0) printf("Hello");
            if (n <= 0) {
else new myThread(n - 1);
                printf("Hello");
}
            } else {
private:
                new MyThread(n - 1);
int n;
            }
        }
    private:
        int n;
};
};
</syntaxhighlight>
</syntaxhighlight>
Ред 60: Ред 63:
== 6. zadatak ==
== 6. zadatak ==
=== Postavka ===
=== Postavka ===
Koja dva parametra procesa čine sastavni deo njegovog memorijskog konteksta, a koristi ih hardver pri preslikavanju adresa kod kontinualne alokacije memorije? Ukratko objasniti njihovo značenje.
Koja dva parametra procesa čine sastavni deo njegovog memorijskog konteksta, a koristi ih hardver pri preslikavanju adresa kod kontinualne alokacije memorije? Ukratko objasniti njihovo značenje.


=== Rešenje ===
=== Rešenje ===
Registri base i limit su sastavni deo konteksta procesa. OS ih učitava pri promeni konteksta. Relokatibilnost se obezbeđuje dinamičkim preslikavanjem sa base registrom. Limit registar obezbeđuje zaštitu OS-a od korisničkih procesa i procesa između sebe.
Registri ''base'' i ''limit'' su sastavni deo konteksta procesa. Operativni sistem ih učitava pri promeni konteksta. Relokatibilnost se obezbeđuje dinamičkim preslikavanjem sa base registrom. ''Limit'' registar obezbeđuje zaštitu operativnog sistema od korisničkih procesa i procesa između sebe.


== 7. zadatak ==
== 7. zadatak ==
=== Postavka ===
=== Postavka ===
Virtuelna memorija organizovana je stranično, sa straničenjem u tri nivoa. Vreme pristupa operativnoj memoriji je 50 ns, a TLB-u 10 ns. Procenat pogotka u TLB je 90%. Koliko je efektivno vreme pristupa memoriji?
Virtuelna memorija organizovana je stranično, sa straničenjem u tri nivoa. Vreme pristupa operativnoj memoriji je 50 ns, a TLB-u 10 ns. Procenat pogotka u TLB je 90%. Koliko je efektivno vreme pristupa memoriji?


=== Rešenje ===
=== Rešenje ===
<math> 0.9 \cdot (10 + 50) + 0.1 \cdot (10 + 4 \cdot 50) = 75ns </math>
<math>0.9 \cdot (10 + 50) + 0.1 \cdot (10 + 4 \cdot 50) = 75ns</math>


== 8. zadatak ==
== 8. zadatak ==
Ред 77: Ред 80:


=== Rešenje ===
=== Rešenje ===
#čitanje tekućeg datuma i vremena
# Čitanje tekućeg datuma i vremena
#vreme proteklo između 2 događaja
# Vreme proteklo između 2 događaja
#pokreni datu operaciju u zadato vreme
# Pokretanje datu operaciju u zadato vreme


== 9. zadatak ==
== 9. zadatak ==
Ред 85: Ред 88:
Izvod iz jednog uputstva za Unix fajl sistem i dodelu prava pristupa fajlu iz komandne linije:  
Izvod iz jednog uputstva za Unix fajl sistem i dodelu prava pristupa fajlu iz komandne linije:  


''To change the mode of a file, use the chmod command. The general form is chmod X@Y file1 file2 ... where: X is any combination of the letters 'u' (for owner), 'g' (for group), 'o' (for others), 'a' (for all; that is, for 'ugo'); @ is either '+' to add permissions, '-' to remove permissions, or '=' to assign permissions absolutely; and Y is any combination of 'r', 'w', 'x'. ''
''To change the mode of a file, use the chmod command. The general form is chmod X@Y file1 file2 ... where: X is any combination of the letters 'u' (for owner), 'g' (for group), 'o' (for others), 'a' (for all; that is, for 'ugo'); @ is either '+' to add permissions, '-' to remove permissions, or '=' to assign permissions absolutely; and Y is any combination of 'r', 'w', 'x'. ''


Na primer, komanda <code>chmod u=rx file</code> daje vlasniku prava <code>rx</code>, ali ne i pravo <code>w</code>.  
Na primer, komanda <code>chmod u=rx file</code> daje vlasniku prava <code>rx</code>, ali ne i pravo <code>w</code>.  


Napisati komande koje za dati fajl postavljaju prava na sledeći način:
Napisati komande koje za dati fajl postavljaju prava na sledeći način:


=== Rešenje ===
=== Rešenje ===
#grupi i ostalima dodaju prava na rw, ali ne i na x: <code> chmod go+rw file</code>
# Grupi i ostalima dodaju prava na rw, ali ne i na x: <code>chmod go+rw file</code>
#svima oduzimaju pravo na upis: <code> chmod a-w file</code>
# Svima oduzimaju pravo na upis: <code>chmod a-w file</code>


== 10. zadatak ==
== 10. zadatak ==
=== Postavka ===
=== Postavka ===
Neki fajl sistem podržava kombinovano indeksiran pristup alokaciji fajlova, pri čemu FCB sadrži 512 ulaza sa direktnim indeksom (sadrže brojeve blokova za podatke). Ako sadržaj fajla preraste veličinu koju podržava ovaj indeks nultog nivoa, za blokove preko te veličine postoji indeks prvog nivoa sa 512 ulaza u FCB; svaki od tih ulaza sadrži pokazivač na indeks drugog nivoa u kome je po 512 ulaza sa pokazivačima na blokove sa sadržajem. Koliki je maksimalni kapacitet fajla u blokovima? (Odgovor dati kao izraz.)  
Neki fajl sistem podržava kombinovano indeksiran pristup alokaciji fajlova, pri čemu FCB sadrži 512 ulaza sa direktnim indeksom (sadrže brojeve blokova za podatke). Ako sadržaj fajla preraste veličinu koju podržava ovaj indeks nultog nivoa, za blokove preko te veličine postoji indeks prvog nivoa sa 512 ulaza u FCB; svaki od tih ulaza sadrži pokazivač na indeks drugog nivoa u kome je po 512 ulaza sa pokazivačima na blokove sa sadržajem. Koliki je maksimalni kapacitet fajla u blokovima? (Odgovor dati kao izraz.)  


=== Rešenje ===
=== Rešenje ===
<math> (512 + 512 \cdot 512) \cdot blockSize </math>
<math>(512 + 512 \cdot 512) \cdot blockSize</math>


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

Верзија на датум 19. јул 2022. у 00:00

Zadaci na stranici predmeta.

1. zadatak

Postavka

Šta je multiprocesorski, a šta distribuirani računarski sistem?

Rešenje

Videti zadatak iz junskog roka 2011.

2. zadatak

Postavka

Na asembleru nekog zamišljenog dvoadresnog RISC procesora sa load/store arhitekturom napisati prevod sledeće rekurzivne C funkcije:

int f (int n) {
  if (n <= 1) return 1;
  else return f(n - 1) + f(n - 2);
}

Rešenje

Videti zadatak iz julskog roka 2014.

3. zadatak

Postavka

Korišćenjem školskog jezgra napisati kod koji omogućava da se kreira nit sa celobrojnim parametrom n. Ako je n manje ili jednako 0, ova nit samo ispisuje pozdravnu poruku i završava se. U suprotnom, ova nit će (rekurzivno) kreirati istu takvu nit, ali sa parametrom n-1.

Rešenje

class MyThread : public Thread {
    public:
        MyThread(int val) {
            n = val;
            start();
        }
    protected:
        void run() {
            if (n <= 0) {
                printf("Hello");
            } else {
                new MyThread(n - 1);
            }
        }
    private:
        int n;
};

4. zadatak

Postavka

Navesti koja su to dva osnovna modela (paradigme) međuprocesne komunikacije.

Rešenje

Deljena promenljiva/objekat/podatak i razmena poruka.

5. zadatak

Postavka

Navesti bar jednu razliku u načinu funkcionisanja linkera kada kao svoj rezultat pravi .exe i kada pravi .lib.

Rešenje

Kada pravi .exe fajl linker mora da završi posao bez nerazrešenih simbola, a .lib može da ima simbole koje uvozi.

6. zadatak

Postavka

Koja dva parametra procesa čine sastavni deo njegovog memorijskog konteksta, a koristi ih hardver pri preslikavanju adresa kod kontinualne alokacije memorije? Ukratko objasniti njihovo značenje.

Rešenje

Registri base i limit su sastavni deo konteksta procesa. Operativni sistem ih učitava pri promeni konteksta. Relokatibilnost se obezbeđuje dinamičkim preslikavanjem sa base registrom. Limit registar obezbeđuje zaštitu operativnog sistema od korisničkih procesa i procesa između sebe.

7. zadatak

Postavka

Virtuelna memorija organizovana je stranično, sa straničenjem u tri nivoa. Vreme pristupa operativnoj memoriji je 50 ns, a TLB-u 10 ns. Procenat pogotka u TLB je 90%. Koliko je efektivno vreme pristupa memoriji?

Rešenje

8. zadatak

Postavka

Navesti bar tri vrste usluga vezanih za realno vreme koje uobičajeno nude operativni sistemi.

Rešenje

  1. Čitanje tekućeg datuma i vremena
  2. Vreme proteklo između 2 događaja
  3. Pokretanje datu operaciju u zadato vreme

9. zadatak

Postavka

Izvod iz jednog uputstva za Unix fajl sistem i dodelu prava pristupa fajlu iz komandne linije:

To change the mode of a file, use the chmod command. The general form is chmod X@Y file1 file2 ... where: X is any combination of the letters 'u' (for owner), 'g' (for group), 'o' (for others), 'a' (for all; that is, for 'ugo'); @ is either '+' to add permissions, '-' to remove permissions, or '=' to assign permissions absolutely; and Y is any combination of 'r', 'w', 'x'.

Na primer, komanda chmod u=rx file daje vlasniku prava rx, ali ne i pravo w.

Napisati komande koje za dati fajl postavljaju prava na sledeći način:

Rešenje

  1. Grupi i ostalima dodaju prava na rw, ali ne i na x: chmod go+rw file
  2. Svima oduzimaju pravo na upis: chmod a-w file

10. zadatak

Postavka

Neki fajl sistem podržava kombinovano indeksiran pristup alokaciji fajlova, pri čemu FCB sadrži 512 ulaza sa direktnim indeksom (sadrže brojeve blokova za podatke). Ako sadržaj fajla preraste veličinu koju podržava ovaj indeks nultog nivoa, za blokove preko te veličine postoji indeks prvog nivoa sa 512 ulaza u FCB; svaki od tih ulaza sadrži pokazivač na indeks drugog nivoa u kome je po 512 ulaza sa pokazivačima na blokove sa sadržajem. Koliki je maksimalni kapacitet fajla u blokovima? (Odgovor dati kao izraz.)

Rešenje