os pitanja

Upload: vladimir-lazarevic

Post on 05-Apr-2018

247 views

Category:

Documents


0 download

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