ОС1/Октобар 2014
1. zadatak
Postavka
Šta je bio osnovni motiv za uvođenje multiprogramiranja u računarske sisteme?
Rešenje
Videti zadatak iz septembarskog roka 2011.
2. zadatak
Postavka
Korišćenjem standardnih bibliotečnih operacija setjmp
i longjmp
, implementirati operaciju wait
na binarnom semaforu koji je realizovan klasom Event
poput one u školskom jezgru.
Rešenje
Event::wait() {
lock(lck);
if (val == 0) {
if (setjmp(Thread::running->context) == 0) {
blocked.put(Thread::running);
Thread::running = Scheduler::get();
longjmp(Thread::running->context, 1);
}
}
else {
val = 0;
}
unlock(lck);
}
3. zadatak
Postavka
Na jeziku C, korišćenjem sistemskog poziva fork()
za Unix, napisati program koji prihvata celobrojni argument n i koji, kada se nad njim pokrene proces, pokreće jedan proces-dete i završava se, ovaj proces-dete pokreće svoje dete, itd, tako da ukupno bude n procesa u relaciji roditelj-dete (n „generacija“).
Rešenje
int main(int argc, char* argv[]) {
if (argc < 2) {
return -1;
}
int N = atoi(argv[1]);
for (int i = 0; i < N; i++) {
if (fork() != 0) {
return 0;
}
}
return 0;
}
4. zadatak
Postavka
Korišćenjem standardnih brojačkih semafora u školskom jezgru, na jeziku C++ napisati kod za ograničeni bafer (bounded buffer).
Rešenje
Videti zadatak iz julskog roka 2011.
5. zadatak
Postavka
Koja je osnovna razlika između tehnika dinamičkog učitavanja i preklopa (overlays)?
Rešenje
Videti zadatak iz julskog roka 2011.
6. zadatak
Postavka
Ko i kada upisuje vrednosti u registar bazne adrese i registar ograničenja procesora kod kontinualne alokacije memorije? Ukratko objasniti svrhu ovih registara.
Rešenje
Kada se kreira novi proces, stavlja se u ulazni red. OS alocira memorijske zahteve u ulaznom redu i trenutno stanje memorije i bira proces za učitavanje. OS učitava izabran proces i upisuje vrednost u base i limit registar. Bazni je koristan kod realokacije procesa a limit služi za zaštitu zauzete memorije jednog procesa od drugog.
7. zadatak
Postavka
Primenom tehnike copy-on-write kod virtuelne memorije, hardver je generisao izuzetak tipa „nedozvoljen upis u adresiranu stranicu“. Precizno objasniti šta dalje radi operativni sistem.
Rešenje
Kada proces prvi put upisuje u neku deljenu stranicu hardver generiše izuzetak tipa nedozvoljen upis u adresiranu stranicu. Operativni sistem zaključuje da je upis logički dozvoljen ali je stranica deljena, stranica se tada kopira, prestaje da bude deljena.
8. zadatak
Postavka
Navesti tipične operacije apstrakcije blokovski orijentisanog izlaznog uređaja sa sekvencijalnim pristupom.
Rešenje
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
9. zadatak
Postavka
Neki proces izvršava sistemski poziv za upis u fajl koji je prethodno uspešno otvorio i sistem mu to ne dozvoljava, sa porukom da tom procesu nije dozvoljena ta operacija, iako je korisniku u čije ime se taj proces izvršava dozvoljena operacija upisa u taj fajl. Objasnite kako i zašto se ovo dogodilo.
Rešenje
Fajl je otvoren u režimu čitanja.
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
- FAT, pri čemu je cela FAT u memoriji
- kontinualna?
Rešenje
- 1
- 1