UL/FRI/UNI-RI/OS1/Kolokviji/2010-11-22
Iz E-študij, proste zakladnice študentskega znanja
|
Kolokvij z dne 22.11.2010
Čas pisanja: 60 minut.
|
1. naloga
Naš prijatelj Peter Zmeda je ocenil, da je doslej nabral toliko znanja in je skrajni čas, da ga deli z ostalimi. Tako se je odločil zaiti v učiteljske vode. Prvi predmet, ki ga poučuje so, seveda, operacijski sistemi. Celoletno izvedbo predmeta si je zamislil tako, da se bodo študentje združili v skupine in vsaka skupina bo izdelala del operacijskega sistema Petrix. Osnovo bo seveda pripravil Peter.
VPRAŠANJA:
- 1. Za kakšno strukturo jedra naj se odloči Peter - za monolitno jedro ali za mikro-jedro. Utemeljite svoj odgovor še posebej ob misli, da so študenti še precej nevešči.
- 2. Izvedbo sistemskega klica izpisBesedila(txt), ki izpiše besedilo txt na zaslon konzole, je naloga ene od skupin. Katere vse dele operacijskega sistema bodo morali pripraviti? Obrazložite odgovor na primeru jedra, kot ste ga predvideli v prvem vprašanju.
- 3. Na predavanjih smo spoznali pojem (mehanizem) JIT (just in time). Kaj pravzparav to pomeni in kje se uporablja? Skicirajte izvedbo mehanizma in ob tem evidentirajte vsaj tri funkcionalnosti, ki jih mora nuditi operacijski sistem (ali sistem jezika), za uspešno izvedbo. Utemeljite odgovor.
- 4. Recimo, da naš procesor nima dveh načinov delovanja - priviligiranega in navadnega. Kako lahko uporabimo naš procesor za večprocesne sistem? Utemeljite odgovor.
Tu je prostor za rešitev
2. naloga
Procesi in nitke.
VPRAŠANJA:
- 1. Procesi so v različnih stanjih. Naštejte vsaj pet stanj in za tri opišite, kako pride proces v njih (kdo ali kaj povzroči, da preidejo vanje).
- 2. Recimo, da imamo proces stars z id-jem 2010, ki ima za otroka proces otrok z id-jem 2011. Za tvorjenje procesov imamo na voljo dva sistemska klica - fork in exec. V čem je razlika med njima? Kako je s staršem v vsakem od sistemskih klicov, ko ga izvede proces otrok.
- 3. Kot eno od nalog, ki jo je Peter pripravil za svoje študente, je priprava okolja za delo z nitkami (tvorjenje, uničevanje, zaganjanje, prekinjevanje itd.). Edina zahteva je, da okolje lahko naloži in uporabi vsak uporabnik brez dodatnih pravic na ciljnem sistemu. Peter je pripravil API, ki ga morajo študentje implementirati in pripraviti knjižnico. Komentirajte možno izvedbo v primerjavi s sistemsko knjižnico, ki nudi nitke kot so POSIX standardne pthread nitke.
Tu je prostor za rešitev
3. naloga
Usklajevalni mehanizmi, medprocesna komunikacija.
VPRAŠANJA:
- 1. Recimo, da imamo dva procesa, ki bi želela sodelovati. Proces A je na računalniku prvi.racunalnik.org, medtem ko je proces B na računalniku drugi.racunalnik.org. Kateri mehanizem (konstrukt) naj uporabita procesa za sodelovanje? Utemeljite odgovor.
- 2. Poleg procesov poznamo še nitke. Recimo, da sta sedaj A in B dve nitki v istem procesu in bi prav tako radi sodelovali. Predlagajte tokratno rešitev in jo utemeljite. NAMIG: Možnih je več rešitev, ki so ob ustrezni utemeljitvi v času načrtovanja vse lahko pravilne.
- 3. Pri monitorju smo spoznali tri osnovne metode (operacije): call, wait in signal (notify). Napišite psevdokodo za implementacijo metode signal in jo komentirajte. Ali je možnih več rešitev? če da, kako se razlikujejo?
Tu je prostor za rešitev
4. naloga
Transakcije, smrtni objem.
Imamo štiri vire A, B, C in D ter pet procesov P0, P1, P2, P3 in P4. Največje količine virov, ki jih posamezni procesi bodo zahtevali, so podani v en. 1.
A B C D P0 0 0 1 2 P1 1 7 5 0 P2 2 2 1 6 P3 0 1 5 2 P4 0 2 5 6
V nekem trenutku so posamezni procesi že pridobili količine virov podanih v en. 2,
A B C D P0 0 0 1 2 P1 1 0 0 0 P2 1 2 1 4 P3 0 1 3 2 P4 0 1 1 4
medtem ko je število prostih virov še A = 2, B = 2, C = 1 in nobenega D.
VPRAšANJA:
- 1. Kolikšno je skupno število posameznih virov v sistemu? Prikažite izračun.
- 2. V tem trenutku poženemo bančniški algoritem nad zgornjimi podatki. Iz odgovora ugotovite, ali je algoritem pognan zaradi zaznave varnega oziroma ne-varnega stanja ali zaradi zagotavljanja ohranjanja varnega stanja. Utemeljite odgovor.
- 3. Dodatno: Ali bi se vaš odgovor spremenil, če bi povečali število prostih kopij enega od virov za ena? Utemeljite odgovor.
- 4. Smrtni objem je posebno stanje procesa ali sistema? Utemeljite odgovor (poskusite odgovoriti na vprašanje, zakaj je to stanje procesa in ne sistema oziroma obratno). Kateri pogoji morajo biti izpolnjeni, da pride do smrtnega objema?
- 5. Kdaj je stanje procesa ali sistema (ali gre za prvo ali za drugo je odgovor na prvo vprašanje) varno, če imamo samo po eno kopijo vsakega vira? Utemeljite odgovor.
Tu je prostor za rešitev