ОС1/Септембар 2013

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

Zadaci na stranici predmeta.

1. zadatak

Postavka

Šta je bio osnovni motiv uvođenja multiprogramiranja u do tada paketne računarske sisteme?

Rešenje

Ovo pitanje pojavilo se na septembarskom roku 2011. godine kao 1. pitanje.

2. zadatak

Postavka

Korišćenjem standardnih bibliotečnih funkcija setjmp() i longjmp(), realizovati operaciju

void yield(jmp_buf old, jmp_buf new);

koja čuva kontekst niti čiji je jmp_buf dat kao prvi argument, oduzima joj procesor i restaurira kontekst niti čiji je jmp_buf dat kao drugi argument, kojoj predaje procesor.

Rešenje

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

3. zadatak

Postavka

Korišćenjem sistemskih poziva fork() i execlp() napisati program run koji, kada se pokrene kao proces, kreira procese-decu nad svim programima koji se nalaze u fajlovima čija su imena data argumentima programa run (npr. run p1.exe p2.exe p3.exe).

Rešenje

int main(int argc, char* argv[]) {
	for(int i = 1; i < argc; i++) {
		int pid = fork();
		if(pid == 0) {
			execlp(argv[i]);
			return -1;
		}
		else if(pid < 0)
			return -2;
	}
	return 0;
}

4. zadatak

Postavka

Korišćenjem standardnih brojačkih semafora, napisati kod za inicijalizaciju i potrebnu sinhronizaciju između dva procesa koji u svoje kritične sekcije treba da ulaze strogo naizmeničn

Rešenje

var semA : Semaphore := 1;
	semB : Semaphore := 0;

process A:
	begin
		loop
			wait(semA);
			<critical>
			signal(semB);
			<non-critical>
	end
end A;

process B:
	begin
		loop
			wait(semB);
			<critical>
			signal(semA);
			<non-critical>
	end
end B;

5. zadatak

Postavka

Koju uslugu operativni sistem treba da obezbedi procesima da bi oni koristili preklope (overlays)?

Rešenje

Preklopi ne zahtevaju podršku OS-a. Sve obavlja prevodilac i generisani kod. OS samo obezbeđuje usluge za alokaciju dela virtuelnog adresnog prostora.

6. zadatak

Postavka

Ako je učestanost pogotka u TLB 90%, a vreme pristupa TLB iznosi 20% od vremena pristupa fizičkoj memoriji, koliko (procentualno) je duže efektivno vreme pristupa virtuelnoj memoriji u odnosu na pristup fizičkoj memoriji kod straničenja u dva nivoa?

Rešenje

0.9 * ( 0.2t_ram + t_ram) + 0.1 * ( 0.2t_ram + 3t_ram) = 1.49 t_ram

Odnos: 49%

7. zadatak

Postavka

Šta je svrha tehnike copy-on-write kod stranične organizacije virtuelne memorije?

Rešenje

Služi sa uštedu memorije koja bi se bespotrebno trošila sve dok jedan od procesa ne zatraži promenu te stranice kada se alocira nova stranica i kopira se sadržaj. Ukoliko više procesa dele istu stranicu, samo će onaj koji je napravio izmenu dobiti novu stranicu dok će ostali nastaviti da dele istu stranicu.


8. zadatak

Postavka

Koja je razlika između sinhronog i asinhronog slanja podataka na izlazni uređaj?

Rešenje

Sinhronim slanjem podataka proces zadaje operaciju i po potrebi se suspenduje i nastavlja tek kada se zahtevana operacija završi. Kod asinhronog poziva pozivajući proces samo zadaje operaciju i nastavlja izvršavanje.

9. zadatak

Postavka

U nekom fajl sistemu u sistemskom pozivu za otvaranje fajla proces navodi da li će fajl samo čitati ili ga i na bilo koji način menjati. U zavisnosti od toga, taj sistemski poziv zaključava fajl sa jednim od dve vrste ključa. Ako se fajl otvara samo za čitanje, fajl se zaključava deljenim ključem; ako se fajl otvara za izmenu, zaključava se ekskluzivnim ključem. Ukoliko poziv ne može da se izvrši zbog toga što ključ ne može da se dobije, poziv se otkazuje bez izmena u fajl sistemu i vraća se greška.

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

Uspešno: 1, 2, 4, 5, 6

Neuspešno: 3

10. zadatak

Postavka

Šta je najveći nedostatak organizacije fajl sistema pomoću FAT?

Rešenje

Veoma velika osetljivost na otkaze. Bilo kakvo oštećenje u FAT uzrokuje štetu. Moguće je uništiti ceo fajlsistem.