os pitanja
Embed Size (px)
TRANSCRIPT
-
7/31/2019 OS Pitanja
1/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
1 UVOD
1. Koje poslove obavlja operativni sistem? S jedne strane, on upravlja sastavni delovima raunara, kao to su procesi, kontroleri i
radna memorija, sa ciljem da oni budu to celishodnije upotrebljeni. S druge strane,operativni sistem stvara za krajnjeg korisnika raunara pristupano radno okruenje,tako to pretvara raunar od maine koja rukuje bitima, bajtima i blokovima u mainukoja rukuje datotekama i procesima.
2. ta obuhvata pojam datoteke? Pojam datoteke obuhvata sadraj i atribute datoteke. Sadraj datoteke predstavljaju
korisniki podaci. U atribute datoteke spada, na primer, veliina datoteke ili vremenjenog nastanka. Atributi datoteke se uvaju u deskriptoru datoteke.
3. ta se nalazi u deskriptoru datoteke? Atributi datoteke se uvaju u deskriptoru datoteke.
4. ta omoguuju datoteke? Datoteke su namenjene za trajno uvanje podataka.
Pristup ovim podacima se svodi na itanje i pisanje sadraja datoteka. Pre itanjaili pisanja sadtaja datoteke, potrebno je omoguiti pristup podacima iz datoteke.Zato itanju i pisanju sadraja datoteke obavezno prethodi njeno otvaranje, radi
pripreme zahtevanog pristupa podacima. Iza itanja i pisanja sadraja datotekeobavezno sledi njeno zatvaranje. Time se sauvaju atributi i sadraj datoteke i
ujedno onemogui pristupanje njenim podacima do njenog novog otvaranja.5. ta obavezno prethodi itanju i pisanju datoteke?
Zato itanju i pisanju sadraja datoteke obavezno prethodi njeno otvaranje, radipripreme zahtevanog pristupa podacima.
6. ta sledi iza itanja i pisanja datoteke? Iza itanja i pisanja sadraja datoteke obavezno sledi njeno zatvaranje.
7. ta obuhvata pojam procesa? Pojam procesa obuhvata aktivnost, sliku i atribute procesa.
Aktinost procesa odgovara angaovanjau procesa na izvravanju korisnikogprograma. Slika procesa obuhvata adresni prostor procesa sa naredbamaizvravanog programa, stekom i podacima koji se obrauju u toku izvravanog
programa. U atribute procesa spadaju, na primer, stanje procesa i njegovi prioriteti.
8. ta se nalazi u deskriptoru procesa? Atributi procesa se uvaju u deskriptoru procesa.
9. Koja stanja procesa postoje?
1/21
-
7/31/2019 OS Pitanja
2/21
-
7/31/2019 OS Pitanja
3/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
aktivnog procesa na spreman proces kada aktivan proces treba da pree u stanje'eka'. Na taj nain procesor ostaje iskorien dok god ima spremnih procesa.
17. ta karakterie sekvencijalni proces?
Aktivnost procesa karakterie redosled u kome se izvravaju naredbe programa. Ovajredosled se naziva trag (trace) procesa. Proces je sekvencijalan ako je njegov tragodreen u vreme programiranja, odnosno ako zavisi samo od obraivanih podataka.Trag sekvencijalnog procesa moe da se prikae kao nit (thread) koja povezujeizvravane naredbe u redosledu njihovog izvravanja. Nit sekvencijalnog procesanasleuje njegove atribute, znai njegovo stanje i njegov prioritet.
18. ta karakterie konkurentni proces? Procesi sa vie istovremeno (concurrently) postojeih niti se nazivaju konkurentni
procesi. Oni odgovaraju izvravanju konkurentnih programa.(Vie niti procesa) Svaka nit procesa ima svoj prioritet, svoje stanje, svoj stek, pa i
svoj deskriptor. Za niti istog procesa se podrazumeva da nisu potpuno nezavisne,odnosno da sarauju razmenom podataka.
19. ta ima svaka nit konkurentnog procesa? ??? Svaka nit procesa ima svoj prioritet, svoje stanje, svoj stek, pa i svoj deskriptor.
20. Koju operaciju uvodi modul za rukovanje procesorom? Modul za rukovanje procesorom ostvaruje svoj zadatak tako to uvodi operaciju
prekljuivanja.
21. Po emu se razlikuje prekljuivanje izmeu niti istog procesa i prekljuivanja izmeu nitiraznih procesa? Sa stanovita modula za rukovanje procesorom kljuna razlika izmeu niti koje
pripadaju istom procesu i niti koje pripadaju raznim procesima je da su prve niti uadresnom prostoru istog procesa(da bi mogle da sarauju), dok su druge niti uadresnim prostorima raznih procesa. Zato, u toku prekljuivanja procesora izmei nitiistog procesa ne dolazi do izmene adresnog prostora procesa, pa je ovakvo
prekljuivanje bre(krae) nego prekljuivanje procesora izmeu niti raznih procesa.
22. Koje operacije uvodi uvodi modul za rukovanje kontrolerima? Modul za rukovanje kontrolerima ostvaruje svoj zadatak tako to njegovi drajveri
uvode (drajverske) operacije ulaza i izalaza.
23. ta karakterie drajvere? Poto upravljanje ulazno-izlaznim ureajima zavisi od vrste ureaja, modul za
rukovanje kontrolerima se sastoji od niza komponenti, nazvanih drajveri. Savki oddrajvera je specijalizovan za jednu vrstu kontrolera, opsluuje jednu klasu ulazno-izlaznih ureaja i ima zadatak da konkretan ulazno-izlazni ureaj predstavi uapstraktnom obliku sa jednoobraznim i pravilnim nainom korenja.
24. Koje operacije uvodi modul za rukovanje radnom memorijom?
3/21
-
7/31/2019 OS Pitanja
4/21
-
7/31/2019 OS Pitanja
5/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
Mehanizam sistemskog poziva omoguuje prelazak iz korisnikog prostora usistemski prostor radi poziva operacije operativnog sistema.
33. Koje adresne prostore podrava operativni sistem?
????1. korisniki prostor(user space)2. sistemski prostor(kernel space)
34. ta karakterie interpreter komandnog jezika? Za preuzimanje i interpretiranje komandi komandnog jezika zaduen je poseban
proces iz korisnikog sloja, koji se naziva interpreter komandnog jezika (shell).Interpreter komandnog jezika posreduje izmeu korisnika i operativnog sistema. Uopstem sluaju u posredovanju obino uestvuju i procesi koje stvara interpreterkomandnog jezika, da bi im prepustio izvravanje pojedinih od poznatih komandi.
Interpreter komandnog jezika koristi operativni sistem na programskom nivou, jer u
toku svog rada poziva sistemske operacije.35. Koji nivoi korienja operativnog sistema postoje?
programski nivo
interaktivni nivo
2 KONKURETNO PROGRAMIRANJE
5/21
-
7/31/2019 OS Pitanja
6/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
1. ta je preplitanje? Ako obrada prekida izazove prekljuivanje, u nastavku svog rada procesor izvri
naredbe potprograma prekljuivanja i zatim produi sa izvravanjem naredbi druge
niti. Ovakvo meanje izvravanja naredbi raznih niti, odnosno niti i obraivaa prekidase naziva preplitanje (interleaving).
2. Da li preplitanje ima sluajan karakter? Preplitanje niti, odnosno preplitanje niti i obrada prekida imaju sluajan karakter, jer
unapred nije poznato posle izvravanja koje naredbe e se desiti prekid i eventualnoprekljuivanje.
3. ta izaziva pojavu preplitanja? ???
4. Da li preplitanje moe uticati na rezultat izvravanja programa? Pod uticajem preplitanja rezultati izvravanja konkurentnih programa mogu da budu
stohastini, odnosno mogu da se menjaju od izvravanja do izvravanja.
5. ta su deljene promenljive? Poto promenljivoj position(Primer 2.1) pristupaju niti i obrade prekida, moe se rei
da niti i obrade prekida meusobno dele ovu promenljivu. Slino, promenljivim list ibuffer pristupaju razne niti, pa se moe rei da one meusobno dele ove promenljive.Zato se ovakve promeljive nazivaju deljene (shared) promenljive, a klase, kojeopisuju rukovanje deljenim promenljivim, se nazivaju deljene klase.
6. ta je preduslov ouvanja konzistentnosti deljenih promenljivih? Deljene klase (iz primera 2.1, 2.2, 2.3) su napravljene pod pretpostavkom da se
rukovanje deljenim promenljivim obavljaju sekvencijalno, odnosno da se operacijedeljenih promenljivih izvravaju strogo jedna za drugom. To znai da novo izvravanje
bilo koje od operacije deljene promenljive moe poeti tek nakon zavretka prethodnozapoetog izvravanja neke od njenih operacija. Na taj nain se svako od ovihizvravanja ostavlja i zatie deljene promenljive u konzistentnom (predvienom)stanju. Problem tetnih preplitanja ne postoji, ako se obezbedi meusobna iskljuivost
(mutual exclusion).
7. ta su kritine sekcije? Tela operacija deljenih klasa ili delovi ovih tela, ije izvravanje je kritino za
konzistentnost deljenih promenljivih, se nazivaju kritine sekcije (critical section).
8. ta je sinhronizacija? Meusobna iskljuivost kritinih sekcija se ostvaruje vremenskim usklaivanjem
njihovih izvravanja. Sprovoenje ovakvog usklaivanja se naziva sinhronizacija(synchronization).
9. Koje vrste sinhronizacije postoje?
6/21
-
7/31/2019 OS Pitanja
7/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
??? Sinhronizacija zaduena za ostvarivanje meusobne iskljuivosti Uslovna sinhronizacija (condition synchronization)
10. ta je atomski region? Ako se onemogue prekidi u kritinim sekcijama odgovarajue deljene promenljive,
tada u toku izvravanja ovih kritinih sekcija nisu mogue ni obrade prekida. Zbogneprekidnosti izvravanja (nedeljivosti), ovakvim kritinim sekcijama pristaje imeatomski regioni.
11. ta suava primenu atomskih regiona? Poto onemoguenje prekida u atomskim regionima odlae obradu novih prekida i
usporava reakciju procesora na vanjske dogaaje, vano je da izvravanja atomskihregiona budu to kraa. Ovakav zahtev suava primenljivost onemoguenja prekidakao sredstava za osiguranje meusobne iskljuivosti kritinih sekcija.
12. emu slui propusnica? Propusnica slui za regulisanje ulaska niti u kritinu sekciju.
13. ta se deava sa niti koja je zatrai, a ne dobije propusnicu? Niti koje ne dobiju propusnicu zaustavljaju svoju aktivnost i prelaze u stanje 'eka'.
Svaka od njih ostaje u tom stanju do eventualnog dobijanja traene propusnice. To sedesi tek poto nit, koja pristupa deljenoj promenljivoj, napusti njenu kritinu sekciju ivrati propusnicu deljene promenljive. Nit, koja tada dobije propusnicu, odmah prelaziiz stanja 'eka' u stanje 'spremna', ali u kritinu sekciju ulazi tek kada postane aktivna
(odnosno, kada se procesor prekljui na nju).
14. ta se deava kada nit vrati propusnicu? Nit, koja tada dobije propusnicu, odmah prelazi iz stanja 'eka' u stanje 'spremna', ali u
kritinu sekciju ulazi tek kada postane aktivna (odnosno, kada se procesor prekljui nanju).
15. Kako se titi konzistentnost propusnica? Za zatitu konzistentnost propusnica obino se koriste atomski regioni, jer su
rukovanja propusnicama kratkotrajna.
16. ta je iskljuivi region? Po nainu ostvarenja meusobne iskljuivosti, atomski regioni se razlikuju od onih
kritinih sekcija koje meusobnu iskljuivost ostvaruju korienjem propusnica. Zatoove druge sekcije treba drugaije nazvati, na primer, iskljuivi regioni.
17. ta uvode poeljne osobine konkurentnih programa? Poeljne osobine konkuretnog programa pripisuju njegovim izvravanjima tvrdnje
koje vae za sva izvravanja konkuretnog programa. Svaka od poeljnih osobina uvodiili tvrdnju iskljuivanja nepoeljnog (safety property) ili tvrdnju ukljuivanjapoeljnog (liveness property).
18. Po emu se konkurentno programiranje razlikuje od sekvencijalnog?
7/21
-
7/31/2019 OS Pitanja
8/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
Konkuretno programiranje se razlikuje od sekvencijalnog po rukovanju nitima ideljenim promenljivima.
19. Koje prednosti ima konkurentna biblioteka u odnosu na konkurentni programski jezik?
Korienjem konkuretnih biblioteka izbegavaju se aktivnosti vezane za: definisanje sintakse i semantike programskog jezika zahvate na kompajleru
Njena dodatna prednost je t omoguuje da se za konkurentno programiranje koristive postojei, znai poznat programski jezik.
20. Kako se opisuju niti? Rukovanje nitima omoguuje klasa thread.Njen konstruktor je zaduen za kreiranje
(stvaranje i pokretanje) niti. Kao argument poziva ovog konstruktora navodi se adresafunkcije koja opisuje nit (njenu aktivnost).
21. Kako se kreiraju niti? ??? Primer kreiranje niti example kojeg opisuje funkcija thread_example:
thread example(thread_example);
22. Kada se zauzima propusnica deljene promenljive? Na poetku kritine sekcije
Zasnivanje meusobne iskljuivosti na klasi mutexpodrazumeva pozivanje njeneoperacije lock() na poetku kritine sekcije i pozivanje njene operacije unlock()
na kraju kritine sekcije. Isti efekat se moe ostvariti, ako se koristi templejt klasaunique_lock, jer njen konstruktor poziva operaciju lock(), a destruktor operacijuunlock().
23. Kada se oslobaa propusnica deljene promenljive? Na kraju kritine sekcije.
24. Kakvu ulogu ima klasa mutex? Klasa mutex omoguuje realizaciju meusobne iskljuivnosti kritinih sekcija
zasnovane na upotrebi propusnice.
25. Kakve operacije sadri klasa mutex? ??? lock()
unlock()
26. Kakvu ulogu ima klasa unique_lock? ???
27. Kakve operacije sadri klasa unique_lock? ???
28. Kakvu ulogu ima klasa condition_variable?
8/21
-
7/31/2019 OS Pitanja
9/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
Ulazak u iskljuivi region nije mogu, ako je propusnica zauzeta. U tom sluajuaktivnost niti se zaustavlja. Isto se deava i tokom aktivnosti niti u iskljuivomregionu, ako se ustanovi da traeni uslov, neophodan za njenu aktivnost, nije ispunjen.Kada taj uslov ispuni druga nit, ona objavi ispunjenje traenog uslova i time omogui
nastavak aktivnosti prve niti. Za ostvarivanje ovakve uslovne sinhronizacije zaduenaje klasa condition_variable.
29. Kakve operacije sadri klasa condition_variable? Klasa condition_variable nudi operacije:
wait()
notify_one()
notify_all()
30. U pozivu koje od operacija klase condition_variablese vraa propusnica? wait()
31. Koje vrste razmene poruka postoje? asinhrona razmena poruka sinhrona razmena poruka
32. U emu se razlikuje sihrona i asinhrona razmena poruka? ??? (Asinhrona) Aktivnost poiljaoca se zaustavlja pri slanju poruka samo kada je
komunikacioni kanal pun, dok se aktivnost primaoca zaustavlja pri prijemu porukasamo kada je ovaj kanal prazan.
(Sinhrona) Uvek se zaustavlja aktivnosti niti koja prva zapone razmenu poruka, bezobzira da li se radi o poiljaocu ili primaocu.
33. ta omoguuje funkcija sleep_for()? Uspavljivanje niti omoguuje funkcija sleep_for().
34. Po kojim ciljevima se konkurentno programiranje razlikuje od sekvencijalnog programiranja? Opisivanje obrade podataka je jedini cilj sekvencijalnog, a osnovni cilj konkurentnog
programiranja. Bolje iskorienje raunara i njegovo vre sprezanje sa okolinom sudotatni ciljevi konkuretnog programiranja, po kojima se ono i razlikuje odsekvencijalnog programiranja.
35. Zato operacija condition_variable::wait()predstavlja prikriveni kraj iskluivog regiona? Jer operacija wait() vraa propusnicu i izaziva prekljuivanje na novu nit.
36. ta je mrtva petlja? Upotrebljivosti konkuretnih program ugroava i pojava meuzavisnosti niti, poznata
pod nazivom mrtva petlja (deadlock). Ona dovodi do trajnog zaustavljanja aktivnostiniti, ato ima za posledicu da izvravanje konkuretnog programa nema kraja.
3 SINHRONIZACIJA POMOU SEMAFORA
1. ta karakterie semafor?
9/21
-
7/31/2019 OS Pitanja
10/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
??? Stanje semafora, zaustavljanje aktivnosti niti, nastavljanje aktivnosti niti.
2. Koje operacije su vezane za semafor?
stop() resume()
3. Kako semafor obezbeuje sinhronizaciju meusobne iskljuivosti? Sinhronizacija niti koju omoguuje semafor se zasniva na zaustavljanju aktivnosti niti,
kao i na omoguavanju nastavljanja njihove aktivnosti. Ulazak niti u kritinu sekcijuzavisi od stanja semafora. Kada stanje semafora dozvoli ulazak niti u kritinu sekciju,
pri ulasku se semafor prevodi u stanje koje onemoguuje ulazak druge niti u krtitinusekciju. Ako se takva nit pojavi, njena aktivnost se zaustavlja pred kritinom sekcijom.Pri izlasku niti iz kritine sekcije semafor se prevodi u stanje koje dozvoljava noviulazak u kritinu sekciju i ujedno omoguuje nastavak aktivnosti niti koja najdueeka na ulazak u kritinu sekciju (ako takva nit postoj).
Operacija stop() se poziva na poetku kritine sekcije, radi provere da li je moguulazak u kritinu sekciju. U okviru ove provere, stanje semafora se menja da bi seonemoguio novi ulazak u kritinu sekciju. Ako ulazak u kritinu sekciju nijemogu (ako stanje semafora nije vee od nula), aktivnost niti pozivaoca oveoperacije se zaustavlja. Operacija resume() se poziva na kraju kritine sekcije, radiizmene stanja semafora i omoguavanja da u kritinu sekciju ue jedna od nitikoje ekaju pred kritinom sekcijom (ako takve niti postoje).
4. Kako se obino implementira semafor? ??? Semafori se obino implementiraju u okviru operativnog sistema i tada se njihova
implementacija obino zasniva na (kratkotrajnom) onemoguenju prekida.
5. U emu se semafori razlikuju od iskljuivih regiona? Iskljuivi regioni su prilagoeni objektno orijentisanom programiranju, dok su
semafori prilagoeni procedurnom programiranju.
6. Koji semafori postoje? binarni semafori
raspodeljeni binarni semafori
generalni semafori
7. ta karakterie binarni semafor? Semafor ije stanje ne moe prei vrednost 1 se zove binarni semafor (binary
semaphore)
8. ta karakterie raspodeljeni binarni semafor? Posebnu vrstu binarnog semafora predstavlja raspodeljeni binarni semafor (split
binary semaphore). On se realizuje pomou vie binarni semafora, za koje vai
10/21
-
7/31/2019 OS Pitanja
11/21
-
7/31/2019 OS Pitanja
12/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
Izvedba CppTss-a obuhvata ulazno-izlazne module, izvrioca (kernel) i virtuelnumainu.
2. Koja klasa omoguuje stvaranje atomskih regiona?
Stvaranje atomski regiona omoguuje klasaAtomic_region.
3. Koju klasu nasleuju klase koje opisuju ponaanje drajvera? KlasuDrivernasleuju klase koje opisuju ponaanje darjvera.
4. ta omoguuje operacija start_interrupt_handling() klaseDriver? Operacija start_interrupt_handling() klase Driver omoguuje smetanje adrese
obraivaa prekida u tabelu prekida. Prvi argument poziva ove operacije predstavljabroj vektora prekida, a drugi adresi obraivaa prekida.
5. Koje operacije sadri klasaEvent? expect()
signal()
6. ta omoguuje operacija expect() klaseEvent? Operacija expect() klase Eventomoguuje zaustavljanje aktivnosti niti, koja pozove
ovu operaciju, dok se ne desi vanjski dogaaj koga reprezentuje objekat klaseEvent. Tome prethode prevoenje ove niti u stanje 'eka' i prekljuivanje procesora na
spemnu nit. Predvieno je da se operacija expect() poziva samo iz atomskogregiona.
7. ta omoguuje operacija signal() klaseEvent? Operacija signal() klase Event omoguuje objavu deavanja nekog vanjskog
dogaaja, radi nastavka aktivnosti niti koja (najdue) oekuje deavanje dotinogdogaaja. Operaciju signal() ima smisla pozivati samo iz obraivaa prekida, jer jedino oni
opisuju reakciju na deavanje vanjskih dogaaja. Izvravanje operacije signal()prevodi nit, koja je doekala devanje vanjskog dogaaja, u stanje 'spremna'.Podrazumeva se da se operacije signal() poziva samo jednom i to na kraju obrade
prekida.
5 ULAZNO-IZLAZNI MODULI CppTss-a
1. Na koje drajvere se oslanjaju ulazno-izlazni moduli CppTss-a?
12/21
-
7/31/2019 OS Pitanja
13/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
U ulazno-izlazne module CppTss-a spadaju znakovni i blokovski ulazno-izlaznimoduli. Znakovni ulazni-izlazni moul se oslanja na drajver ekrana i drajver tastature.Blokovski ulazno-izlazni modul se oslanja na drajver diska.
2. ta se deava u obradi prekida ekrana? ??? Obrada prekida objavljuje da je prikaz prethodnog znaka zavren (registar stanja se
smeta konstantaDISPLAY_READY).
3. Do ega dovodi pokuaj niti da prikae novi znak dok kontroler ekrana prikazuje prethodnihznak?
Pokuaj niti da prikae znak, dok je u registru stanja konstanta DISPLAY_BUSY(dokkontroler ekrana prikazuje prethodni znak), zaustavlja aktivnost niti. Nastavakaktivnosti niti usledi nakon obrade prekida ekrana, koja objavljuje da je prikaz
prethodnog znak zavren.
4. ta se deava u obradi prekida tastature? Podrazumeva se da pritisak dirke na tastaturi (1) dovede do smetanja koda
odgovarajueg znaka u registar podataka i (2) izazove prekid tastature. Pomenuti kodznakase preuzima iz registra podataka u obradi prekida tastature i smeta u cirkularni
bafer, ako on nije pun.
5. Do ega dovodi pokuaj niti da preuzme znak kada je cirkularni bafer drajvera tastatureprazan?
Pokuaj niti da preuzme znak, kada je cirkularni bafer prazan, zaustavlja njenu
aktivnost. Nastavak aktivnosti niti usledi nakon obrade prekida tastature.
6. ta se desi kada se napuni cirkularni bafer drajvera tastature? ??? Ignorie se pritisnuti znak. Vrednost promenljive count e biti jednako vrednosti
konstante KEYBOARD_BUFFER_SIZE tako da e se izvriti samo pressed.signal() .
Void Keyboard_driver::interrupt_handler(){if(count
-
7/31/2019 OS Pitanja
14/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
9. ta rade operacije klase Terminal_outza prikaz brojeva? ??? Koriste operaciju string_put() za prikaz niza znakova (odnosno vre konverziju datog
broja u odgovarajui niz znakova).
10. ta rade operacije klase Terminal_in za preuzimanje brojeva? ??? Koriste operaciju string_get() za preuzimanje nizova znakova koji odgovaraju raznim
tipovima pdataka. One zatim konvertuju te znakove u odgovaraju tip podataka.
11. ta zakljuava operacija Terminal_in::string_get() ? ??? Zakljuava tastaturu i ekran.
12. ta otkljuava operacija Terminal_in::string_get() ? ??? Ekran i tastaturu.
13. ta zakljuava operacija Terminal_out::string_put() ? Zakljuava ekran.
14. ta otkljuava operacija Terminal_out::string_put() ? ??? Ekran
15. ta obuhvata primitivno editiranje koje podrava klasa Terminal_in ? ??? edit()
Ispis promena prilikom pritiska za: CHAR_ESC se ispisuje '^' CHAR_LF se promenljivojpressed_enterse dodeljuje vrednost true CHAR_BS1 i CHAR_BS2 se vrsi brisanje znaka sa ekrana.
16. ta se desi u obradi prekida diska? ???
17. Operacije koje klase ulazno-izlaznih modula CppTss-a vraaju poruku greke? ???
6 CppTss IZVRILAC
1. Koje izuzetke podrava klasa Failure? Klasa Failure omoguava rukovanje izuzecima (grekama) nastalim u toku izvrava-
14/21
-
7/31/2019 OS Pitanja
15/21
-
7/31/2019 OS Pitanja
16/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
Klasa Descriptor nasleuje klasu List_link, da bi bilo mogue deskriptore nitiuvezivati u liste. Polje stack_top klaseDescriptorsadri pokaziva (adresu) vrhasteka niti. Prioritet niti je sadran u polju priority ove klase. Polje last klase
Descriptor sadri adresu poslednje dobijene propusnice. Polje tag ove klase je
namenjeno za smetanje priveska deskriptora niti.
7. Koju klasu nasleuje klasaDeskriptor? KlasaDescriptornasleuje klasuList_link.
8. ta karakterie nultu nit? Na najmanje znaajnoj pozicijiReady::priority_bits je bit nulte liste spremnih nit, sa
prioritetom 0. U njoj se nalazi posbena nulta nit, sa prioritetom 0. Ona angaujeprocesora kada nema drugih spremnih niti. Kada je nulta nit u stanju 'spremna', tada jenjen deskriptor uvezan u nultu listu spremnih niti. Nulta nit moe biti jo samo ustanju 'aktivna'. Ona u to satnje prelazi kada ne postoji neka druga nit koja moe da
zaposli procesor.
9. ta karakterie klasuReady_list? ??? Rukovanje spremnim nitima Brzo pronalaenje najprioritetnije niti meu spremnim nitima Uvek aktivna najprioritetnija nit Svakom od prioriteta niti se dodeljuje posebna lista spremnih niti i podrazumeva se da
se deskriptor spremne niti uvek uvezuje na kraj lista spremnih niti koja odgovaraprioritetu dotine niti
Deskriptor spremne niti uvek izvezuje sa poetka odabrane liste spremnih niti
10. Koje operacije omoguuju rukovanje multi-listom? Rukovanje multi-listom obuhvata:
1. dobijanje prioriteta najprioritetnije neprazne liste spremnih niti:Ready::highest(),
2. uvezivanje deskriptora niti na kraj odgovarajue liste spremnih niti:Ready::insert(),
3. izvezivanje deskriptora niti sa poetka najprioritetnije neprazne liste spremnihniti:Ready::extract(),
4. poreenje prioriteta najprioritetnije neprazne liste spremnih niti sa prioritetom
zadane niti:Ready::higher_than().
11. Koju klasu nasleuje klasaKernel? KlasaKernelnasleuje klasuDescriptor.
12. ta reprezentuje jedini objekat klaseKernel? Jedini objekat klaseKernelrepezentuje deskriptormain() niti.
13. ta omoguuje klasaKernel?
KlasaKernelomoguuje rukovanje procesorom.
16/21
-
7/31/2019 OS Pitanja
17/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
14. Kada dolazi do rasporeivanja u okviru klaseKernel? Do rasporeivanja dolazi:
1. kada se pojavi spremna nit sa viim prioritetom od aktivne niti i
2. na kraju kvantuma.
Pomenuta dva sluaja rasporeivanja su podrana, respektivno,sledeim operacijama klaseKernel:
1. schedule() i2. periodic_schedule().
15. Koju klasu nasleuje klasa mutex? Klasa mutexnasleuje klasuPermit.
16. ta omoguuje klasaDriver? KlasaDriveromoguuje smetanje adrese obraivaa prekida u tabelu prekida:
Driver::start_interrupt_handling().
17. ta registruje Timer_driver::interrupt_handler()? ??? Kada broj otkucaja, preostalih do isticanja kvantuma aktivne niti, padne na nulu,
potrebno je pokrenuti periodini rasporeivanje. Kada broj otkucaja, preostalih do buenja uspavane niti, padne na nulu, potrebno je
probuditi sve niti za koje je nastupio trenutak buenja.
18. ta omoguuje Timer_driver::interrupt_handler() ? ???
19. ta karakterie odseke slobodne radne memorije? Uvezuju se u jednosmernu listu (ureenu u rastuem redosledu njihovih poetnih
adresa), Poetak svakog odseka sadri svoju veliinu i pokaziva narednog odseka.
20. U kom redosledu su uvezani odseci slobodne radne memorije u listu? Rastuem redosledu njihovih poetnih adresa.
21. Koju klasu nasleuje klasaMemory_fragment? Klasa Memory_fragmentnasleuje klasu mutex.
22. ta vai za konzistentnost operacijaMemory_fragment::take() iMemory_fragment::free()? Da bi se obezbedila konzistentnost treba omoguiti zakljuavanje i otkljuavanje
njenog jedinog objekta memory. Da bi se njihova namena ostvarila, neophodno je da ove operacije pozivaju
globalni operatori new() i delete(). Ali, tada razne niti mogu da pozivaju operacije
17/21
-
7/31/2019 OS Pitanja
18/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
klase Memory_fragmentposredstvom prethodna dva operatora i da tako ugrozekonzistentnost njenog jedinog objekta. Da bi se to sperilo, ova klasa nasleujeklasu mutex i tako omoguuje zakljuavanje i otkljuavanje njenog jedinogobjekta memory.
23. Gde se sve titi konzistentnost zakljuavanjem i otkljuavanjem jedinog objekta klaseMemory_fragment?
U globalni operatorima new() i delete().
24. Koje operacije sadri klasa thread? join() (void) detach() (void) destroy() (friend void) undetached_threads() (friend bool)
25. ta koristi klasa threadza ostvarenje konzistentnosti? Meusobnu iskljuivost svojih operacija.
26. ta karakterie deskriptore uspavanih niti? Uvezuju se u delta listu u hronolokom redosledu buenja niti, Svakom od deskriptora je dodeljen privezak koji pokazuje relativno vreme buenja u
odnosu na prethodnika u listi.
27. Ko budi uspavane niti? Operaciju awake() klaseDelta poziva sistemska nit Wake_up_daemon. Vreme njenog
buenja je uvek jednako najranijem vremenu buenja korisnikih niti. Nakon buenja,sistemska nit budi sve korisnike niti sa poetka delta liste, za koje je nastupiotrenutak buenja.
7 VIRTUELNA MAINA CppTss-a
1. Koji zadatak ima virtuelna maina CppTss-a? Razvojna verzija 4.2.2 konkurentne biblioteke CppTss sadri virtuelnu mainu koja za
potrebe ostatka ove biblioteke:1. emulira mehanizam prekida,2. emulira kontrolere tastature, ekrana i diska,
18/21
-
7/31/2019 OS Pitanja
19/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
3. podrava okonanje izvravanja konkurentnog programa,4. podrava rukovanje pojedinim bitima memorijskih lokacija,5. pdrava rukovanje numerikim koprocesorom (Numeric Processor Extension
NPX) i
6. podrava rukovanje stekom.
2. ta omoguuje emulacija hardvera biblioteci CppTss? Zahvaljujui emulaciji hardvera konkurentni program ne pristupa stvarnom, nego
emuliranom hardveru, pa se izvrava kao obian (neprivilegovan) Linux proces. Zato,u sluaju greaka, on ne moe ugroziti funkcionisanje operativnog sistema u okvirukoga se izvrava.
3. Na emu se zasniva emulacija mehanizma prekida? Emulacija mehanizma prekida zasniva se na:
1. uvoenju (emulirane) tabele prekida,
2. uvoenju (emuliranog) bita prekida i3. obezbeenju nezavisnosti (asinhornosti) izmeu prekida i izvravanja konku-
rentnog programa.
4. ta vai za mehanizamLinux signala? Nezavisnost (emuliranih) prekida od izvravanja konkuretnog programa se zasniva na
mehanizmu signala Linux-a. Ovaj mehanizam omoguuje da se na pojavu signala reaguje izvravanjem
odabrane funkcije (user level exception handling). Signali su unapred definisani, a svaki od njih je pridruen jednoj vrsti dogaaja.
Kada se takav dogaaj desi, mehanizam signala zaustavi izvravanje programa,radi pokretanja odgovarajueg obraivaa signala. Nakon obrade dotinog signala mogu je nastavak zaustavljenog izvravanja
programa.
5. ta omoguuje klasaLinux_signal? ??? KlasaLinux_signalopisuje reakciju na Linux signale.
6. ta omoguuje klasaLinux_timer? ??? KlasaLinux_timerodreuje uestanost deavanja signalaSIGVTALRM.
7. ta podrava klasaInterrupt? ??? KlasaInterrupt:
1. uvodi (emuliranu) tabelu prekida (sadranu u nizu vector),2. omoguuje registrovanje odlaganja obrade (emuliranog) prekida (polje
pending) i
3. regulie redosled pozivanja obraivaa pojedinih (emuliranih) prekida (polja
19/21
-
7/31/2019 OS Pitanja
20/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
controller_turn i timer_turn).
8. Koja funkcija pokree odloenu obradu (emuliranih) prekida? ???
9. ta omoguuje klasaKeyboard_controller? Klasa Keyboard_controller opisuje kontroler tastature. (Emulaciju kontrolera
tastature)
10. ta omoguuje klasaDisplay_controller? KlasaDisplay_controlleropisuje kontroler ekrana. (Emulaciju kontrolera ekrana)
11. ta omoguuje klasaDisk_controller? Klasa Disk_controller opisuje ponaanje kontrolera diska. (Emulaciju kontrolera
diska)
12. ta omoguuje klasaLinux_terminal? Klase Keyboard_controller i Display_controller koriste tastaturu i ekran Linux
terminala (to im omoguuje klasa Linux_terminal) . Za potrebe emulacije neophodnoje iskljuiti eho (echo) Linux terminala, prevesti Linux terminal u reim rada bezlinijskog edititanja (raw mode) i obezbediti da poziv itanja znaka sa terminala budeneblokirajui.
13. Koja klasa omoguuje prevoenje Linux terminal u reim rada bez linijskog editiranja? Linux_terminal
14. Koja klasa omoguuje iskljuivanje eha Linux terminala? Linux_terminal
15. Koja klasa obezbeuje da itanje znakova sa Linux terminala bude neblokirajue? Linux_terminal
16. Kojim Linux sistemskim pozivom se okonava izavravanje konkurentnog programa? Izvravanje konkurentnog programa se okonava sistemskim pozivom exit().
17. ta omoguuje rukovanje pojedinim bitima memorijskih lokacija? ??? Korienje asemblerskih naredbi za dobijanje indeksa najznaajnijeg postavljenjog
bita u rei.
18. ta omoguuje rukovanje numerikim koprocesorom? ???
19. ta omoguuje rukovanje stekom? ???
20. ta obuhvata kontekst niti?
20/21
-
7/31/2019 OS Pitanja
21/21
OPERATIVNI SISTEMI PITANJA I ODGOVORI
???
21/21