OS teorija Flashcards
Kada jedan proces kreira novi proces korišćenjem fork(), šta je deljeno između
parent i child procesa?
a) stek
b) heap
c) programski kod
c)
Koja je osnovna razlika između sistemskog poziva i funkcije iz standardne C
biblioteke?
Kada se radi o sistemskom pozivu prelazi se u kernel mod, dok kod poziva funkcije
standardne biblioteke to nije slučaj.
Sta se menja u upravljačkom bloku niti prilikom zamene niti (context switch-a) i
zašto?
Menja se stanje niti, vrednosti registra opste namene, flegova, program counter-a.
Za šta služi stek u memorijskoj slici procesa?
Stek služi za čuvanje parametara pri pozivu funkcije, povratne adrese i
lokalne promenljive funkcije.
U kom slučaju se proces sa tri ULT niti brže izvršava od procesa sa tri KLT niti?
Objasniti ukratko.
Izvršava se u slučaju kada nema blokiranja niti. Kod ULT-a ukoliko dođe do
blokiranja niti, blokira se ceo proces. Međutim ukoliko nema blokiranja niti, ULT niti se izvršavaju brže jer pri promeni procesa ne zahteva privilegije kernel moda.
U čemu se cwait() operacija definisana u okviru monitora razlikuje od sem_wait()
operacije definisane nad semaforom?
Prilikom pozivanja semwait() funkcije vrši ispitivanje nad određenom promenljivom
dok prilikom korišćenja cwait() funkcije nemamo nikakva ispitivanja već ta funkcija
samo blokira proces.
cwait(a): blokira izvršenje procesa koji je pozvao ovu funkciju na
uslovnoj promenljivoj a; monitor je sada na raspolaganju za bilo koji
drugi proces.
Glavna razlika: Ako proces u monitoru izda signal i ako nijedan proces ne čeka na toj
uslovnoj promenjljivoj signal je izgubljen!!
Koje korake OS obavlja prilikom terminiranja procesa?
i) Menja se stanje procesa na exit.
ii) Prelazak u zombi stanje :)
iii) Ceka decu i procese sa kojima je povezan da se završe.
iv) Proces se briše iz memorije.
Na koje načine se prelazi iz jednog u drugi mod?
Prelazak iz korisnickog u kernel mod se vrši posredstvom sistemskih poziva.
Prelazak iz kernel u korisnicki mod: Po završetku sistemskog poziva,
upravljanje se vraća u korisnički mod.
Koji su uobičajeni resursi koje dele sve niti istog procesa?
.
Sve niti jednog procesa dele memorijski prostor tog procesa (adresni prostor),
globalne promenljive, otvorene fajlove procesa i druge resurse.
Navedite tri prednosti ULT u odnosu na KLT.
i) Mogućnost izvršavanja na različitim operativnim sistemima.
ii) Pri zameni niti nema promene moda.
iii) Raspoređivanje može biti specifično za svaku aplikaciju.
Šta sadrži upravljački blok niti? Šta se u njemu menja kada nit pozove sistemski
poziv i na koji način?
Upravljački blok niti (TCB) sadrži:
1. Pokazivač na stek
2. Kontekst niti (vrednosti registara, vrednost programskog brojača)
3. Stanje niti
4. Prioritet
5. Pokazivač na PCB…
4
Pri sistemskom pozivu može da se menja stanje niti, ukoliko je potrebno da se čeka
na U/I. Ako dođe do blokiranja niti čuva se kontekst niti u TCB.
Navesti tri konkretna događaja pri kojima aktivni proces prelazi u stanje Spreman
(Ready).
● Proces višeg prioriteta je primio semsignal koji je čekao
● Istekao je dodeljeni vremenski kvant tekućeg procesa
● Proces višeg prioriteta završio U/I operaciju
Šta čini sliku procesa u glavnoj memoriji?
Slika procesa (Process image) predstavlja skup koji čine
program, podaci, stek, i atributi procesa
(PCB) smešteni u glavnu memoriju (delom i na disku).
Navesti u kojim situacijama nastaje trap i šta izvršava OS u tom slučaju?
Trap je instrukcija koja izaziva softverski prekid. Nastaje u slučajevima kada se
desi greška ili izuzetak. Kada nastane trap OS čuva kontekst prekinutog procesa i
prelazi se na funkciju/rutinu krenela za obradu prekida.
Navesti konkretne akcije/događaje zbog kojih planer (raspoređivač) procesa aktivni
proces neće prebaciti u stanje spreman (Ready).
- Čeka na U/I (Blokiran)
- Proces se završio (Exit)
- Proces roditelj ubija proces dete (Terminated)
Zašto se sistemski poziv ne startuje kao i bilo koja funkcija iz standardne biblioteke?
Zato što je za izvršenje sistemskog poziva neophodan prelazak u kernel mod, dok se
bibliotečke funkcije izvršavaju u user modu.
Zašto OS primenjuje “nasilno” prekidanje aktivnog procesa (preemption) i u kojim
slučajevima se to javlja? 3
“Nasilno” prekidanje odnosno preemption se dešava kada se pojavi spreman
proces većeg prioriteta u odnosu na trenutno aktivan proces.
Nasilno prekidanje se javlja u slučaju da je primenjen neki od algoritama za
jednoprocesno planiranje koji imaju mod odluke sa prekidanjem. Primeri takvih
algoritama su: Round Robin, SRT(shortest remaining time). Način na koji se vrši
prekidanje zavisi od algoritma, kod SRT se bira proces sa najkraćim preostalim
vremenom za izvršenje, dok se za RR bira proces koji je najduže čekao na izvršenje.
Kojim procesima/nitima savremeni OS (Windows, MacOS, Linux..) daju prednosti pri
raspoređivanju, orijentisanim na CPU ili na U/I i na koji način?
Prednost imaju U/I orijentisani procesi. Koristi se Multilevel Feedback. Procesi se
organizuju u više redova, svaki put kada se proces izabere na izvršenje on se
pomera u red nižeg prioriteta. U/I procesi ostaju u redu najvišeg prioriteta. CPU uvek
proverava prvo red najvišeg prioriteta, ako u njemu nema procesa za izvršenje uzima
iz reda nižeg prioriteta i tako redom…
Da li je stek deo kontrolnog bloka niti TCB i zašto da/ne?
Stek nije deo kontrolnog bloka niti. TCB sadrži samo pokazivač steka. Svaka nit
ima svoj stek izvršenja. Proces nema stek ako postoje niti. (slika iz knjige)
Operativni sistem implementira segmentaciju sa straničenjem i virtuelni adresni
prostor procesa od maksimalno 256 segmenata, svaki segment ima maksimalno
2^14 stranica 4KB, smešta se u fizičku memoriju od 2^21 straničnih okvira. Koji je
format virtuelne adrese i koliki je maksimalni adresni prostor procesa u bajtovima?
Navesti i kratko obrazložiti.
a) Koliko stavki ima u tabeli segmenata za svaki proces?
b) Koliko bajtova je u okviru?
c) Koliko bitova u virtuelnoj adresi određuje segment, a koliko stranicu?
d) Koliko stavki je u tabeli stranica?
e) Koliko bitova je u svakoj stavci tabele stranica?
Format virtuelne adrese:
(stranica = pomeraj)
Maksimalni adresni prostor je 2^(8 + 14 + 12) = 2^34 = 16GB
256 segmenata
1 segment = 2^14 stranica od po 4KB
a) Koliko stavki ima u tabeli segmenata za svaki proces?
2^8
b) Koliko bajtova je u okviru?
Velicina okvira je uvek jednaka velicini stranice i to je 4KB.
c) Koliko bitova u virtuelnoj adresi određuje segment, a koliko stranicu?
Za segment treba 8. Za odredjivanje stranice 14, a za pomeraj 12.
d) Koliko stavki je u tabeli stranica?
2^14
e) Koliko bitova je u svakoj stavci tabele stranica?
21 + 3(V, M, R, i mozda ima jos neki)
21 jer pise da je fizičku memoriju od 2^21 straničnih okvira
Operativni sistem implementira segmentaciju sa stranicenjem i virtuelni adresni
prostor procesa od maksimalno 128 segmenata, svaki segment ima maksimalno
2^12 stranica od 2KB. Koji je format virtuelne adrese i koliki je maksimalni adresi
prostor procesa u bajtovima.
Format virtuelne adrese:
Maksimalni adresni prostor je 2^(7 + 12 + 11) = 1 GB
Zamislite jednostavan sistem stranicenja sa sledecim parametrima : 2^32 B fizicke
memorije, velicina stranice od 2^10 B, 2^16 stranica logickog adresnog prostora.
Navesti i obrazloziti ukratko.
a) Koliko bitova je u logickoj adresi?
b) Koliko bajtova je u okviru?
c) Koliko bitova u fizickoj adresi odredjuje okvir?
d) Koliko stavki je u tabeli stranica?
e) Koliko bitova je u svakoj stavci tabele stranica?
a) Koliko bitova je u logickoj adresi?
10 + 16 = 26
b) Koliko bajtova je u okviru?
Velicina okvira jednaka je velicini stranice i to je 1KB (2^10).
c) Koliko bitova u fizickoj adresi odredjuje okvir?
32 - 10 = 22 bita odredjuje.
d) Koliko stavki je u tabeli stranica?
2^16 stavki.
e) Koliko bitova je u svakoj stavci tabele stranica?
Za svaki okvir 22 bita + 3 bita = 25 bita.