ОС1/Јун 2014

Извор: SI Wiki
< ОС1
Датум измене: 20. септембар 2021. у 11:58; аутор: Ivan Pešić (разговор | доприноси) (јун 2014)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

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

Osnovni problem je kako povezati prevedene objektne fajlove u jedinstveni izvršivi fajl i rešiti obraćanje promenljivoj ili funkciji u drugom fajlu. Linker ne zna apsolutnu poziciju simbola unutar fajla dok ne spoji sve fajlove pa tek onda može da razrešava.

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

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

8. zadatak

Postavka

Ukratko objasniti tehniku dvostrukog baferisanja.

Rešenje

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

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

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

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

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.