ОС1/Фебруар 2012

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

Zadaci na stranici predmeta.

1. zadatak

Postavka

Na asembleru nekog dvoadresnog RISC procesora sa LOAD/STORE arhitekturom napisati prevod sledeće funkcije:

int log (int n) {
  if (n<2) return 0;
  else return 1+log(n/2);
}

Rešenje

log:	LD R1, #n[SP]
		CMP R1, #2
		JGE else
		LD R0, #0
		RTS
else:	LD R0, #1
		ASL R1, R0
		PUSH R1
		CALL log
		POP R1
		ADD R0, R1
		RTS

2. zadatak

Postavka

Na koji način se u programu koga izvršava procesor može znati da je DMA završio operaciju koja mu je zadata?

Rešenje

1. Ispitivanjem indikatora u statusnom registru DMA kontrolera.

2. Kada DMA kontroler završi sa radom, generiše prekid.

3. zadatak

Postavka

Navesti najmanje tri slučaja (uzroka) u kojima tekući proces gubi procesor.

Rešenje

1. Eksplicitnim zahtevom za promenu konteksta - dispatch, yield - sinhrono.

2. Isteklo je dodeljeno CPU vreme - time exceeded - asinhrono.

3. Prekid - maskirajući ili nemaskirajući - asinhrono.

4. Zbog operacije na nekoj sinhronizacionoj primitivi tj. semaforu ili događaju - sinhrono.

4. zadatak

Postavka

Proces P treba da sačeka da sva tri procesa X, Y i Z ispune neki svoj uslov, u bilo kom redosledu. Napisati deo koda procesa P i bilo kog od druga tri procesa, uz potrebne deklaracije, koji obezbeđuju ovu uslovnu sinhronizaciju pomoću jednog standardnog brojačkog semafora.

Rešenje

var sem : Semaphore := 0, semX, semY, semZ : Semaphore := 1;

process P
	begin
		...
		wait(sem);
		wait(sem);
		wait(sem);
		...
		signal(semX);
		signal(semY);
		signal(semZ);
	end
end P;

process X 		// ali isto i Y i Z
	begin
		wait(semX);
		...
		signal(sem);
		...
	end
end X;

8. zadatak

Postavka

Ukratko objasniti princip dvostrukog baferisanja kod ulazno-izlaznih operacija.

Rešenje

U jedan bafer proizvođač upisuje podatke a iz drugog potrošač izvlači podatke. Kada oba učesnika završe fazu - punjenje odnosno pražnjenje, baferi zamenjuju uloge.

9. zadatak

Postavka

Da li je veličina fajla ograničena ako je način alokacije blokova za fajlove na disku:

1) ulančani

2) indeksirani

Rešenje

1) ne

2) da

10. zadatak

Postavka

Neki fajl sistem koristi indeksirani pristup alokaciji blokova za fajlove na disku, sa kombinovanom tehnikom indeksiranja u jednom, dva i tri nivoa, kao kod UNIX inode strukture. Pretpostavljajući da disk ima uniformno srednje vreme pristupa do bilo kog bloka na disku, da li je vreme pristupa do različitih delova veoma velikih fajlova jednako? Ako jeste, precizno objasniti zašto jeste, a ako nije, objasniti kako se i zašto razlikuje.

Rešenje

Nije. Vreme pristupa za blokove bliže kraju velikog fajla je veće nego na početni deo fajla jer se mora prolaziti kroz višestruke indekse.