ОС1/Јун 2011
1. zadatak
Postavka
Dati kratke definicije multiprocesorskog sistema i distribuiranog sistema.
Rešenje
Videti prvi zadatak iz julskog roka 2012. godine.
2. zadatak
Postavka
Koji je razlog deobe procesorskog vremena (time sharing) kod interaktivnih sistema?
Rešenje
Ravnomerniji odziv na akcije više korisnika nego bez deobe vremena.
3. zadatak
Postavka
Zašto je stek deo konteksta izvršavanja programa?
Rešenje
Stek predstavlja deo konteksta izvršavanja programa zato što se prilikom poziva bilo kog potprograma u programu na steku pamti mesto odakle je potprogram pozvan kako bi se po povratku moglo nastaviti odakle se stalo.
4. zadatak
Postavka
Napisati deo koda koji obezbeđuje kritičnu sekciju pomoću brojačkih semafora, uz dozvolu konkurentnog izvršavanja kritične sekcije do N uporednih procesa.
Rešenje
var mutex : Semaphore := N;
process P
begin
loop
wait(mutex);
<critical section>
signal(mutex);
<non-critical section>
end
end
5. zadatak
Postavka
Korišćenjem sistemskih poziva fork()
i execlp()
napisati C program koji kreira proces nad programom u fajlu čije je ime zadato argumentom komandne linije.
Rešenje
int main(int argc, char* argv[]) {
if (argc < 2) {
return -1;
}
pid_t pid = fork();
if (pid < 0) {
return -2;
} else if (pid == 0) {
execlp(argv[1]);
} else {
wait(0);
}
return 0;
}
6. zadatak
Postavka
Memorija nekog računara organizovana je stranično, sa stranicom veličine 4KB. Adresibilna jedinica je bajt, a virtuelna adresa je 32-bitna. Fizička adresa je veličine 32 bita. Ako je PMT organizovana u dva nivoa, s tim da su veličine polja za broj ulaza u tabele oba nivoa isti, kolika je veličina (u bajtovima) PMT prvog nivoa?
Rešenje
- VA(32): 10, 10, 12
- Ulaz je veličine 32b tj. 4B
7. zadatak
Postavka
Da li linker prilikom povezivanja sa ciljem dobijanja izvršnog programa (.exe) pravi razliku između fajlova tipa .obj i tipa .lib?
Rešenje
Linker ne pravi razliku između .obj i .lib fajlova prilikom povezivanja. Razlika je jedino što je .obj fajl nastao prevođenjem jednog fajla dok je lib fajl nastao povezivanjem više objektnih, moguće i više drugih fajlova.
8. zadatak
Postavka
Kojom tehnikom se znakovno orijentisani ulazni uređaj može učiniti logički (virtuelno) blokovski orijentisanim?
Rešenje
Tehnikom baferisanja.
9. zadatak
Postavka
Neki proces izvršava redom sledeće sistemske pozive. Pod pretpostavkom da korisnik u čije ime se izvršava ovaj proces ima pravo pristupa do oba fajla i na čitanje i na upis, i da oba poziva za otvaranje fajlova uspevaju, navesti koji od preostalih poziva će biti uspešan, a koji neuspešan (upisati na liniji pored poziva).
FHANDLE f1 = fopen("x.doc", read);
FHANDLE f2 = fopen("y.doc", read | write);
fread(f1, buffer1, n1);
fwrite(f1, buffer2, n2);
fread(f2, buffer1, n1);
fwrite(f2, buffer2, n2);
Rešenje
- uspešan
- neuspešan
- uspešan
- uspešan
10. zadatak
Postavka
Korišćenjem podataka iz koje tabele otvorenih fajlova sistem proverava pravo pristupa za pozive iz prethodnog zadatka (fread
i fwrite
), u globalnoj tabeli ili u tabeli koja je deo konteksta datog procesa?
Rešenje
U tabeli koja je kontekst datog procesa.