ОС1/Октобар 2011
1. zadatak
Postavka
Ukratko objasniti osnovni motiv uvođenja raspodele vremena (time sharing) u multiprogramiranje.
Rešenje
U zavisnosti od toga u kom hronološkom poretku su se dogodile akcije korisnika, što je potpuno proizvoljno, korisnici bi dobijali odzive nakon različitog vremena i zavisili bi od broja i aktivnosti drugih korisnika, te bi korisnici imali osećaj da smetaju jedni drugima. Mehanizmom raspodele vremena korisniku se odaje utisak da računar radi samo za njega sa dovoljno dobrim i ujednačenim vremenom odziva, iako opslužuje više korisnika istovremeno.
2. zadatak
Postavka
Na asembleru nekog zamišljenog RISC procesora sa LOAD/STORE arhitekturom napisati program koji vrši učitavanje bloka podataka sa ulaznog uređaja tehnikom programiranog ulaza korišćenjem prekida. Samostalno usvojiti potrebne detaljne pretpostavke.
Rešenje
main: LD R1, blockAddr
LD R2, count
LD R3, #0
ST [ctrl], #00..01
wait: CMP R3, #1
JNZ wait
HALT
intr: LD R0, [data]
ST [R1], R0
INC R1
DEC R2
JNZ ret
LD R3, #1
ST [ctrl], #0
ret: RTI
3. zadatak
Postavka
Navesti najmanje četiri uzroka zbog kojih proces može izgubiti procesor. Za svaki od navedenih načina navesti da li se dešava sinhrono (kao posledica operacije koju je izvršio sam proces) ili asinhrono (nezavisno od izvršavanja procesa).
Rešenje
- Eksplicitnim zahtevom za promenu konteksta - dispatch, yield - sinhrono.
- Isteklo je dodeljeno CPU vreme - time exceeded - asinhrono.
- Prekid - maskirajući ili nemaskirajući - asinhrono.
- Zbog operacije na nekoj sinhronizacionoj primitivi tj. semaforu ili događaju - sinhrono.
4. zadatak
Postavka
Korišćenjem standardnih brojačkih semafora u školskom jezgru, na jeziku C++ u potpunosti realizovati klasu za ograničeni bafer (bounded buffer).
Rešenje
Videti zadatak iz julskog roka 2011.
5. zadatak
Postavka
Dati primer delova koda dva fajla sa izvornim C/C++ kodom za koje će linker generisati grešku tipa višestrukih simbola i nedefinsanih simbola, pod pretpostavkom da su to jedina dva fajla koja se linkuju.
Rešenje
// a.c
#include <stdio.h>
int a;
extern int b;
int main(void) {
printf("%d", b);
return 0;
}
// b.c
double a;
6. zadatak
Postavka
Virtuelna memorija nekog računara organizovana je stranično. Veličina virtuelnog adresnog prostora je 2 MB, adresibilna jedinica je 16-bitna reč, a veličina stranice je 128 KB. Veličina fizičkog adresnog prostora je 32 MB. Operativni sistem učitava stranice na zahtev, tako što se stranica učitava u prvi slobodni okvir fizičke memorije kada joj se pristupi. Kada se kreira proces, ni jedna njegova stranica se ne učitava odmah, već tek kad joj se prvi put pristupi. U početnom trenutku, slobodni okviri fizičke memorije su okviri počev od 10h zaključno sa 1Fh. Neki proces generiše sledeću sekvencu virtuelnih adresa tokom svog izvršavanja (sve vrednosti su heksadecimalne):
30F00, 30F02, 30F04, 922F0, 922F2, 322F0, 322F2, 322F4, 522F0, 522F2, 402F0, 402F2
Prikazati izgled cele tabele preslikavanja stranica (PMT) za ovaj proces nakon izvršavanja ove sekvence. Za svaki ulaz u PMT prikazati indikator prisutnosti stranice u fizičkoj memoriji (0 ili 1) i broj okvira u fizičkoj memoriji u koji se stranica preslikava, ukoliko je stranica učitana; ukoliko nije, prikazati samo ovaj indikator.
Rešenje
- VAS: 2MB = 2^21B -> VA: 20b
- page = 128KB = 64K AU -> 16b
- VA: page(4) : offset(16)
7. zadatak
Postavka
Navesti tipične operacije apstrakcije blokovski orijentisanog ulazno/izlaznog uređaja sa direktnim pristupom.
Rešenje
Tipične operacije su:
int readBlock(BlockNo block, void* buffer);
int writeBlock(BlockNo block, void* buffer);
8. 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 zašto se ovo dogodilo.
Rešenje
Fajl je otvoren u režimu čitanja.
9. zadatak
Postavka
Šta znači termin „presna particija“ (raw partition)?
Rešenje
Presna particija je particija koja nije formatizovana, na njoj nije organizovan fajl sistem. Može se upotrebljavati za posebne namene, npr. za zamenu stranica.
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
- ulančana lista,
- kontinualna
Rešenje
- n
- 1