ОС1/Јун 2014

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

Zadaci na stranici predmeta.

1. zadatak

Postavka

Ukratko objasniti značenje pojmova multiprogramiranje i multiprocesiranje.

Rešenje

Videti zadatak iz januarskog roka 2014.

2. zadatak

Postavka

Korišćenjem standardnih bibliotečnih funkcija setjmp() i longjmp() implementirati funkciju void yield(jmp_buf old, jmp_buf new) koja vrši promenu konteksta procesora.

Rešenje

void yield(jmp_buf old, jmp_buf new) {
    if (setjmp(old) == 0) {
        longjmp(new, 1);
    }
}

3. zadatak

Postavka

Korišćenjem niti u školskom jezgru (klasa Thread) napisati kod koji konkurentno i rekurzivno obilazi binarno stablo tako što tekuća nit nastavlja da obilazi levo podstablo, a kreira novu nit koja će obići desno podstablo. Struktura Node {Node *left, *right} predstavlja čvor stabla

Rešenje

class MyThread : public Thread {
    public:
        MyThread(Node* root) {
            this->root = root;
            start();
        }
    protected:
        void run() {
            visit(root);
        }
    private:
        Node* root;
};

void visit(Node* root) {
    if (root->right) {
        new MyThread(root->right);
    }
    if (root->left) {
        visit(root->left);
    }
}

4. zadatak

Postavka

Korišćenjem standardnih brojačkih semafora napisati kod za kontrolu kritične sekcije koju uporedo sme da izvršava najviše N procesa.

Rešenje

Videti zadatak iz julskog roka 2013.

5. zadatak

Postavka

Šta je osnovni razlog toga (osnovni problem koji se rešava time) što linker svoj posao obavlja u dva prolaza? Precizno i kratko objasniti.

Rešenje

Videti rešenje 5. zadatka iz jula 2017. godine.

6. zadatak

Postavka

Objasniti kako se kod kontinualne alokacije memorije obezbeđuje zaštita memorijskog prostora drugih procesa od ilegalnog adresiranja jednog procesa.

Rešenje

Zaštita memorijskog prostora drugih procesa od ilegalnog adresiranja jednog procesa kod kontinualne alokacije se obezbeđuje limit registrom. U ovaj registar procesora OS upisuje vrednost prilikom promene konteksta.

7. zadatak

Postavka

U nekom sistemu sa straničnom organizacijom virtuelne memorije virtuelna i fizička adresa su 32-bitne, adresibilna jedinica je bajt, a stranica je veličine 64 KB. PMT je organizovana u dva nivoa i jedan ulaz u PMT oba nivoa zauzima po jednu 32-bitnu reč. PMT oba nivoa su iste veličine. Koliko ukupno zauzimaju PMT za proces koji je alocirao samo svoju prvu i poslednju stranicu?

Rešenje

8. zadatak

Postavka

Ukratko objasniti tehniku dvostrukog baferisanja.

Rešenje

Koristi se kod sprege uređaja ili tokova kontrole koji su jako različiti po brzini transfera ili jedinici prenosa. Uvode se 2 bafera.

U prvoj fazi bafer A je ulazni bafer, bafer za proizvođača, a bafer B je izlazni bafer, bafer za potrošača. Kada oba učesnika završe fazu punjenja tj. pražnjenja svog bafera, baferi A i B menjaju uloge.

9. zadatak

Postavka

Neki fajl sistem koristi dve vrste ključeva za fajlove, deljene i ekskluzivne, i fajlove zaključava prilikom otvaranja fajla, u zavisnosti od najavljenog načina korišćenja fajla. Procesi A, B, C i D izvršavaju sistemske pozive otvaranja i zatvaranja istog fajla u sledećem redosledu (neki proces izvršava poziv zatvaranja fajla samo ako ga je uspešno otvorio):

  1. A: open(READ)
  2. B: open(WRITE)
  3. C: open(READ)
  4. A: close
  5. C: close
  6. D: open(WRITE)

Rešenje

Operacija 2. će se izvršiti neuspešno, a ostale uspešno.

10. zadatak

Postavka

Koliko pristupa blokovima na disku treba izvršiti za pristup n-tom logičkom bloku sadržaja fajla ako je alokacija fajla

  1. indeksna, pri čemu je indeks fajla uvek u dva nivoa, a na blok sa indeksom prvog nivoa ukazuje polje u FCB,
  2. ulančana lista, pri čemu je glava liste u FCB? FCB fajla je u memoriji.

Rešenje

  1. 3
  2. n