OS1/Jun 2014
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 junskog 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):
- A: open(READ)
- B: open(WRITE)
- C: open(READ)
- A: close
- C: close
- 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
- indeksna, pri čemu je indeks fajla uvek u dva nivoa, a na blok sa indeksom prvog nivoa ukazuje polje u FCB,
- ulančana lista, pri čemu je glava liste u FCB? FCB fajla je u memoriji.
Rešenje
- 3
- n