Operativni sistemi-teorija
Lekcija 1
1.
Koje poslove obavlja operativni sistem?
Operativni sistem
upravlja sastavnim delovima računara
(procesorom, kontrolerima i random
memorijom) i
stvara pristupačno radno okruženje za korisnika
(pretvara računar u mašinu koja
rukuje datotekama i procesima) /
upravlja fizičkim i logičkim delovima računara
/
2.
Šta obuhvata pojam datoteke?
Pojam
datoteke
obuhvata
sadržaj
i
atribute
datoteke.
(sadržaj=korisnički
podaci,
atributi=veličina/vreme nastanka)
3.
Šta se nalazi u deskriptoru datoteke?
U deskriptoru datoteke nalaze se
atributi
.
4.
Šta omoguduju datoteke?
Datoteke omoguduju
trajno čuvanje podataka
.
5.
Šta obavezno prethodi čitanju i pisanju datoteke?
Čitanju i pisanju prethodi
otvaranje datoteke
. Time se omoguduje priprema za pristup podacima
(deskriptor se prebacuje sa masovne u radnu memoriju).
6.
Šta sledi iza čitanja i pisanja datoteke?
Iza čitanja i pisanja sledi
zatvaranje datoteke
. Time se sačuvaju atributi i sadržaj (prebacuje se
deskriptor iz radne u masovnu memoriju).
7.
Šta obuhvata pojam procesa?
Pojam procesa obuhvata
aktivnost, sliku i atribute
procesa. (aktivnost=angažovanje na izvršavanju
korisničkog programa, slika=adresni prostor procesa sa naredbama izvršavanja programa, stekom i
podacima koji se obrađuju, atributi=stanje i prioritet)
8.
Šta se nalazi u deskriptoru procesa?
U deskriptoru se nalaze
atributi procesa (stanje i prioritet)
.
9.
Koja stanja procesa postoje?
Tipična stanja su
aktivan, čeka i spreman
. (aktivan=izvršava program, čeka=nisu ispunjeni preduslovi
za obradu podataka, spreman=samo zauzetost procesora onemoguduje izvršavanje programa)
10.
Kada je proces aktivan?
Proces je aktivan
kada procesor izvršava program
.
11.
Šta je kvantum?
Kada postoji više procesa istog prioriteta, bitna je raspodela procesorskog vremena između njih.
Aktivan proces prepušta procesor spremnom procesu
najvišeg prioriteta
čim istekne unapred
određen vremenski interval
koji se naziva
kvantum
.
12.
Šta se dešava nakon isticanja kvantuma?
Aktivan proces prepušta procesor spremnom procesu
najvišeg prioriteta.
13.
Po kom kriterijumu se uvek bira aktivan proces?
Od prioriteta procesa
zavisi kada de spreman da postane aktivan proces i podrazumeva se da je
aktivan uvek onaj sa najvišim prioritetom.
14.
Koji prelazi su mogudi između stanja procesa?
čeka u spreman, spreman u aktivan, aktivan u čeka, aktivan u spreman
15.
Koji prelazi nisu mogudi između stanja procesa?
spreman u čeka i čeka u aktivan
16.
Šta omoguduju procesi?
Procesi omoguduju
bolje iskorišdenje procesora i njegovu bržu reakciju
na spoljašnje događaje.
(postojanje više spremnih procesa omoguduje stalno iskorišdenje procesa, a brža reakcija
omogudena je tako što je manje prioritetan proces aktivan dok prioritetniji proces čeka neki spoljni
događaj)
17.
Šta karakteriše sekvencijalni proces?
Sekvencijalni proces karakteriše
trag
(redosled izvršavanja naredbi programa)
koji je određen u
vreme programiranja i zavisi samo od obrađivanih podataka
.
18.
Šta karakteriše konkurentni proces?
Konkurentni procesi su procesi sa
više istovremeno postojedih niti
. Niti se međusobno preplidu u
redosledu koji nije određen u vreme programiranja.
19.
Šta ima svaka nit konkurentnog procesa?
Svaka nit ima svoj
prioritet, stanje
i
stek
, pa i svoj
deskriptor
. (niti nisu potpuno samostalne,
međusobno sarađuju razmenom podataka)
20.
Koju operaciju uvodi modul za rukovanje procesorom?
Jezgro operativnog sistema (kernel) se može raščlaniti na module za rukovanje procesorom,
kontrolerima, random memorijom, datotekama i procesima. Modul za rukovanje procesorom uvodi
operaciju preključivanja
.

29.
Koje operacije uvodi modul za rukovanje procesima?
Modul za upravljanje procesima uvodi
operacije stvaranja i uništavanja
(stvara se ili uništava proces
ili nit).
30.
Koje operacije poziva modul za upravljanje procesima?
Modul za upravljanje procesima poziva
operaciju čitanja
radi preuzimanja sadržaja datoteka
potrebnih za stvaranje slike procesa. Takođe poziva
operacije zauzimanja i oslobađanja
jer mu je za
stvaranje slike procesa neophodna radna memorija.
31.
Koje module sadrži slojeviti operativni sistem?
Od vrha hijerarhije:
modul za rukovanje procesima, modul za rukovanje datotekama, modul za
rukovanje random memorijom, modul za rukovanje kontrolerima, modul za rukovanje
procesorom.
Pravilo: Iz svakog sloja se pozivaju samo operacije uvedene u nižim slojevima.
Monolitni operativni sistemi - bez hijerarhijske strukture.
32.
Šta omoguduju sistemski pozivi?
Sistemski pozivi omoguduju
prelazak iz korisničkog u sistemski prostor
radi poziva operacija
operativnog sistema.
33.
Koje adresne prostore podržava operativni sistem?
Logički
(virtuelne adrese) i
fizički
(adrese memorije) adresni prostor.
34.
Šta karakteriše interpreter komandnog jezika?
IKJ (shell) je proces iz korisničkog sloja koji
preuzima i interpretira komande komandnog jezika
koje
precizno opisuju rukovanje procesima i datotekama čime
lišavaju korisnika potrebe za poznavanjem
mehanizama
unutar operativnog sistema. IKJ posreduje između operativnog sistema i korisnika.
35.
Koji nivoi korišdenja operativnog sistema postoje?
IKJ koristi operativni sistem na
programskom nivou-povlašdeni
(poziva sistemske operacije), a
korisnik na
korisničkom nivou-interaktivni
.
Lekcija 2
1.
Šta je preplitanje?
Mešanje izvršavanja naredbi raznih niti, odnosno niti i obrađivača prekida
se naziva preplitanje.
2.
Da li preplitanje ima slučajan karakter?
Preplitanje ima slučajan karakter
, jer nije u napred poznato posle koje naredbe de se desiti prekid i
eventualno preključivanje. To nije mogude odrediti čak ni za prekide pravilnog perioda (prekide
sata).
3.
Šta izaziva pojavu preplitanja?
Činjenica da
nije u napred poznato posle koje naredbe de se desiti prekid i eventualno
preključivanje
.
(Procesor izvršava jednu nit, desi se prekid koji izazove preključivanje i procesor u
nastavku izvršava drugu nit.)
4.
Da li preplitanje može uticati na rezultat izvršavanja programa?
Pod uticajem preplitanja
rezultati mogu biti stohastični
, odnosno mogu da se menjaju od
izvršavanja do izvršavanja.
5.
Šta su deljene promenljive?
To su
promenljive kojima pristupaju niti i obrade prekida ili razne niti
, te se može redi da ih
međusobno dele. (Klase za rukovanje deljenim promenljivama su deljene klase).
6.
Šta je preduslov očuvanja konzistentnosti deljenih promenljivih?
Da se rukovanje deljenim promenljivama obavlja sekvencijalno
. (Novo izvršavanje bilo koje od
operacija deljene promenljive može početi tek nakon završetka prethodno započetog izvršavanja
neke od operacija deljene promenljive, tako svako od izvršavanja ostavlja i zatiče deljene
promenljive u konzistentnom/predviđenom stanju). Ovo ne važi kod štetnih preplitanja. Da bi se
sprečila štetna preplitanja mora se obezbediti međusobna isključivost.
7.
Šta su kritične sekcije?
Tela operacija deljenih klasa ili delovi ovih tela čije izvršavanje je kritično za konzistentnost
deljenih promenljivih.
8.
Šta je sinhronizacija?
Proces vremenskog usklađivanja izvršavanja kritičnih sekcija
je sinhronizacija, time se postiže
njihova medjusobna isključivost.

17.
Šta uvode poželjne osobine konkurentnih programa?
Svaka od poželjnih osobina uvodi
ili tvrdnju isključivanja nepoželjnog ili tvrdnju uključivanja
poželjnog
(safety i liveness property). Primeri safety property: u izvršavanjima ne nastaju pogrešni
rezultati, u izvršavanjima nema narušavanja međusobne isključivosti kritičnih sekcija. Primeri
liveness property: izvršavanje ima kraj, dese se svi zatraženi ulasci u kritične sekcije u toku
izvršavanja programa.
18.
Po čemu se konkurentno programiranje razlikuje od sekvencijalnog?
(Zbog slučajne prirode preplitanja, tačan rezultat dobijen u jednom ili više izvršavanja ne isključuje
mogudnost postojanja izvršavanja koja za iste ulazne podatke daju netačan rezultat – to nije način
provere ispravnosti konkurentnog programa.)
Razlikuju se po rukovanju nitima i deljenim
promenljivama.
19.
Koje prednosti ima konkurentna biblioteka u odnosu na konkurentni programski jezik?
Kod nastanka konkurentnog programskog jezika neizbežne su
aktivnosti vezane za definisanje
sintakse i semantike programskog jezika i aktivnosti vezane za zahvate na kompajleru
. Te
aktivnosti
se izbegavaju zasnivanjem konkurentnog programiranja na korišdenju konkurentne
biblioteke
. Prednost korišdenja biblioteke je što
omoguduje korišdenje postojedeg poznatog
programskog jezika
.
20.
Kako se opisuju niti?
Rukovanje nitima opisuje klasa
thread
. Njen konstruktor kreira nit.
Kao argumet poziva
konstruktora se navodi adresa funkcije koja opisuje nit
. Šta nit treba da radi napisano je u telu
funkcije, a kraj niti je predviđen kada se završi telo te funkcije.
21.
Kako se kreiraju niti?
Rukovanje nitima opisuje
klasa
thread
. Njen konstruktor kreira nit
. Operacija
join()
klase
thread
zaustavlja aktivnost svog pozivaoca dok se ne završi aktivnost niti na koju se operacija odnosi.
Operacija
detach( )
saopštava da regularan kraj niti na koju se operacija odnosi može da nastupi kao
posledica kraja aktivnosti procesa kome ta nit pripada.
22.
Kada se zauzima propusnica deljene promenljive?
Pre obavljanja operacija (izlaznih i ulaznih) nad deljenom promenljivom (
pre ulaska u kritičnu
sekciju
).
23.
Kada se oslobađa propusnica deljene promenljive?
Nakon završetka obavljanja operacija nad deljenom promenljivom (
po izlasku iz kritične sekcije
).
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti