FRI-OS Flashcards
Naštej prednosti mikrojedernih OS
- Manjša velikost
- Manj kode a je ta bolj kompleksna (lažje za audit)
- Vse razen najbolj nujnih “service” se nahajajo v user-space
- Večja varnost, ker se več operacij naredi v uporabniškem načinu
- Zanesljivost/robustnost, saj crash enega servica ne crasha tudi jedra
Katere funkcije OS opravlja mikrojedro?
- Inter-proces-communication (IPC)
- Virtual memory
- Sheduling
Ko uporabnik sef poskusa zagnati “./skripta.sh” mu vrne nazaj Permission denied. Uporabnik sef ima sudo. Kako bi pognal skripto?
“ls -l” vrne:
-rw-r–r– 1 root root … itd.
Skripto bi pognal z “sudo bash ./skrpta.sh”
Razloži pomen pozivnika sokrat@jama:~>
sokrat@jama:~>
sokrat => username
jama => ime računalnika
~(tilda) => pomeni da smo v svojem domačem(home) direktoriju
naloge OS
- upravljanje s gl. pomnilnikom
- upravljanje z zunanjim pomnilnikom
- upravljanje z datotečnim sistemom
- varnost, začita
- delo v omrežju
- interpreter uporabniških ukazov
- upravljanje s procesi
- upravljanje v/i sistema
Kaj je proces? Kako je predstavljen v OS-ju, naštej stanja, v katerih je lahko proces( ustvarjen, čaka,…)
Proces je program v izvajanju. Je ustvarjen, teče in nato uničen. Za svoje delovanje potrebuje vire (CPE, pomnilnik, V/I, datoteke, čas, …). Nekatere vire dobi ob nastanku, druge kasneje. Z okolico si lahko izmenjuje podatke. Hkrati lahko obstaja več procesov. Lahko so neodvisni, lahko pa se usklajujejo, komunicirajo. Običajno tekmujejo za omejene vire. Proces sam lahko ustvari nove procese. Program je pasivna entiteta - vsebina neke datoteke. Proces poleg programa zajem a tudi trenutno stanje nekaterih drugih entitet, ki se spreminjajo med izvajanjem programa.
Proces je lahko v:
- Created (ustvarjen)
Proces je ustvarjen
- Ready or waiting (pripravljen)
proces je naložen v delovni pomnilnik. A se ne izvaja na CPU. Čaka na dodelitev cpu - Running (teče)
Proces je naložen v delovni trenutek in se izvaja na CPU - Blocked (čaka)
Proces je blocked, ko čaka na zunanjo spremembo. Npr. disk - Terminated (končan)
Je proces, ki se je končal, a se še vedno nahaja v tabeli procesov. Izbris procesa se zgodi, ko starš prebere kliče sistemski klic wait() in prebere izhodni status
Kaj je spooling, kaj omogoča?
Spooling (Simultaneous Peripheral Operation On Line) je način nalaganja poslov.
Pojavil se je skupaj z magnetnim diskom, ki služi kot vmesnik za hranjenje poslov (buffer) in za začasno hranjenje rezultatov opravljenih poslov.
Potek:
- Če je vhodna naprava pripravljena, procesor prekine s trenutnim delom in prebere vhodni podatek na disk.
- Vsak posel ima svoj prostor na disku.
- Ko je posel na vrsti za obdelavo, procesor vse o njem prebere z diska.
- Izhodne podatke posla procesor izpisuje na disk.
- Ko so pripravljeni rezultati posla in izhodna naprava, procesor prekine s trenutnim delom in rezultate prepiše z diska na izhodno napravo.
Prednosti:
- boljša izkoriščenost procesorja.
Slabosti:
- tak procesor je težko maksimalno izkoristiti,
- ni interaktivnosti,
- uporabnik dolgo čaka (velik obračalni čas).
Dobro za lastnike, slabo za uporabnike.
Spooling omogoča multiprogramiranje, saj je na disku lahko shranjenih več poslov naenkrat, pripravljenih za izvajanje.
Disk nudi hiter dostop do naslednjega posla.
Kaj je problem kritičnih sekcij?
Je poblem zagotovljanja sočasnega izvajanje procesov (katerih vsak ima svojo kritično sekcijo), da bodo izpolnjene naslednje zahteve:
- vzajemno izključevanje proceov (sočasno naj se izvaja le ena kritična sekcija),
- omejeno čakanje procesov,
- omejeni vpliv na izbor naslednjega procesa, ki bo izvajal kritično sekcijo,
- neodvisnost rešitve od števila procesov, ki imajo kritično sekcijo in od tehnoloških značilnosti.
3 načini kako se rešuje: algoritmi, posebni ukazi, semaforji
Kriteriji razvršanja procesov
- Izkoriščenost CPE (CPU utilization)… CPE naj bo čim bolj izkoriščen. V realnosti 40% - 90%
- Propustnost (troughput)… število končanih procesov v nekem času
- Čas obdelave (turnaround time)… čas od nastanka procesa do njegovega konca
- Čakalni čas (waiting time)…
- Odzivni čas (response time)… čas od nastanka procesa do prve izhodne operacije.
- Pravičnost (fairness)… vsak proces naj dobi ustrezen čas CPE
kaj vrne true || true && false || return 42
vrne 42
spremenljivka (znak) ki kaže na uporabniški direktorij (domaci imenik)
~ ali $HOME
Opišite bistvo razvrščanja na procesorju, razvrščanja poslov in menjavanja
- Razvrščanje na procesorju je dejansko urejanje vrstnega reda procesov z različnimi algoritmi(prioriteta,najkrajši nemoteni tek,z zagotovilom, loterija, round robin) (kratkoročno – teče, pripravljen).
- Razvrščanje poslov je uporaba razvrščevalnika za določanje naslednjega procesa (dolgoročno – disk, nov)
- Menjavanje je zamenjava procesa na zunanjem pomnilniku in procesa na glavnem pomnilniku (srednjeročno – disk, pripravljen in obratno).
Razlika med razvrščevalnikom in dodeljevalnikom
- razvrščevalnik izbere naslednji proces, ki dobi CPE,
- dodeljevalnik pa mu dodeli CPE.
Našteje 3 signale v Linuxu, ki jih ni mogoče ignorirati.
SIGILL,SIGABRT,SIGBUS,SIGFPE
napišite ukaz s katerim dodamo uporabnika
useradd
napišite ukaz ki izpiše cilj simbolične povezave
readlink ime_povezave
napišite ukaz s katerim sredi cevovoda hkrati pišemo v datoteko in naprej po cevovodu
tee
Kaj je kritični odsek? Definicija Problema kritičnih odsekov! Napišite strategije reševanje problema kritičnega odseka.
- Kritični odsek je del procesa, katerega se naj ne bi prekinjalo oz. je del pri katerem shranjuje podatke oz. jemlje podatke iz virov, katere uporabljajo tudi drugi procesi.
- Problem kritičnih odsekov je kako omogočiti sočasno delovanje procesov tako, da ne bi povzročali problemov ostalim procesom (s spreminjanjem podatkov, s katerimi so upravljali preden jim je bil odvzet CPE).
- To se rešuje z specializiranimi ukazi, raznimi algoritmi ter semaforji.
Napiši natančno pot do datoteke, kjer so shranjena uporabniška gesla.
“/etc/shadow”
Znak trenutnega direktorija.
”.”
Razloži semafor. V rešitvah je preprost (spinlock semafor)
Semafor je orodje za časovno usklajevanje procesov. Je celoštevilska spremenljivka S, nad katero se izvajajo operacije inicializacija.
wait(S) :
while S ≤ 0 do { no_op; }
S := S-1;
signal(S):
S := S+1 //atomarno – ne more biti prekinjen
Po navadi sta ti dve operaciji realizirani na OS.
Tipi datotek v Linuxu
- navadna datoteka – /etc/passwd
- imenik – /bin
- simbolična povezava – /usr/src/linux
- cev – mkfifo pipa
- vtičnica
- znakovno orientirana naprava – /dev/tty
- bločno orientirana naprava – /dev/sda
Naštej razlike med vtičnicami in cevmi
Cevi so enosmerni kanali – za komunikacijo sta potrebni dve, na vtičnice pa se priklopijo dvosmerni kanali. Cevi (razen FIFO, t.j. poimenovane cevi) lahko obstajajo le med dvema procesoma v sorodstvu (otrok-otrok, roditelj-otrok), za vtičnice pa ta relacija ni potrebna.
Pojasni signale v UNIXu
Signal je programska prekinitev s strani sistema, drugega programa ali samega sebe. Signal je možno poslati, prestreči, prezreti ali obravnavati. Nosijo malo informacije – predvsem za javljanje nenavadnih okoliščin ali napak.
Vrste komunikacije
- Za prenos podatkov skrbi OS (tj. njegova komponenta IPC). Ta način je počasnejši.
- Za prenos podatkov skrbita proizvajalec in porabnik (preko skupnega pomnilnika)
Naštej in predstavi algoritme za razvrščanje
- Prvi pride, prvi melje (FIFO) – proces, ki je prej zahteval procesor ga prvi dobi
- Krožno razvrščanje (round robin) – vrsta pripravljenih procesov je krožni seznam in proces, ki pride na vrsto dobi nek časovno rezino. Ko ta poteče ali pa se proces ustavi, se proces postavi na konec vrste
- Razvrščanje po prioriteti – vsak proces ima prioriteto, najvišji dobi CPE
- Najkrajši nemoteni čas (SJF - Shortest Job First) – CPE se dodeli procesu, ki bo najmanj časa nemoteno tekel. Napovedujemo tako, da predpostavimo, da bo naslednji nemoteni tek trajal podobno časa, kot trenutni
- Najkrajši nemoteni tek + prekinjanje (SRTF - Shortest Remaining Time First) - enak SJF, le da se lahko tekoči proces prekine, če drug pripravljen proces obljublja krajši nemoten tek od preostanka tekočega nemotenega teka
- Z zagotovilom - s pomočjo formule izračuna kvocient k in proces, ki ima najmanjši k dobi CPE. Če vpeljemo še prekinjanje, se k tekom časa povečuje, in ko presega
Zgradbe jedra?
- Enostavna – monolitna - Jedro je veliko, opravlja veliko funkcij in je ‘neurejeno’. ranljivost, nezanesljivost, težavna razširjenost. UNIX, Apple MacOS, Windows NT.
- Razslojena - spodnji sloj je strojna oprema, vsak višji sloj pa temelji le na nižjih slojih. Skrivanje podrobnosti, prinaša red., manjša učinkovitost zaradi režije pri prenašanju. THE (6 slojev), Venus (7)
- Mikrojedro - ohrani le bistvene komponente. Jedro je majhno, razširljivo, obvladljivo, prenosljivo. Celoten sistem pa enostavno razširljiv, zanesljiv, varen. Npr. če eden od servisov ‘izpade’, to ne prizadene celotnega sistema.
Kaj so sistemski klici
Z njegovo pomočjo programer zaprosi OS, da ta v njegovem imenu izvede neko (zanj prepovedano) priviligirano akcijo. Nekateri višji programski jeziki pa te klice (read, load, store, create, open, execute …) vseeno omogočajo.
V grobem jih razbrstimo v skupine : upravljanje procesov, upravljanje datotek, upravljanje naprav, vzdrževanje in dostavo informacij, komunikacijo
Komponente OS
- Upravljanje procesov - Ustvarjanje, uničenje, odložitev procesa, njegovo ponovno obuditev, usklajevanje med procesi, komunikacija med procesi , reševanje iz zastojev (mrtvih zank) , in še kaj.
- Upravljanje glavnega pomnilnika - Nadzor – dodeljevanje in odvzemanje
- Upravljanje datotek - Ustvarjanje in brisanje, premeščanje, kopiranje, stik, sprehajanje po dir., preslikavanje m ed datoteko in resničnim zunanjim pomnilnikom, skladiščenje (backup), t.j. varnostno shranjevanje.
- Upravljanje V/I sistema - Vsplošen vmesnik za kom unikacijo z golilniki, vsebovati gonilnike za posamezne V/I naprave, upravljati z vmesnimi pomnilniki (buffer), predpomnilniki (cache), spoolingom in še kaj.
- Zaščita in varnost - Nadzorovanje dostopa procesov do posameznih virov in zaščita pred okolico.
- Delo v omrežju
- Interpretacija uporabnikovih ukazov
Vrste prekinitev
- Strojna, sproži strojna oprema: Npr. naprava pošlje po vodilu prekinitveno zahtevo in z njo prekine tekoče delo na CPE, konec V/I operacije, neveljaven poseg v pomnilnik.
- Programska, če jo sproži tekoči program: Npr. sistemski klic, s katerim tekoči program zahteva pomoč OS, past (trap), ker je CPE zaznala izjemno situacijo (deljenje z 0)
IPC - medprocesna komunikacija. Vse
- Neposredna komunikacija: procesi se pri komuniciranju ekslicitno imenujejo (navedejo):
- Simetrična: pošiljatelj in prejemnik drug drugega eksplicitno imenujeta
- Asimetrična: samo pošiljatelj eksplicitno navede prejemnika
send(Q,m) …pošlji procesu Q sporočilo m
receive (x,m) …prejmi od kogarkoli sporočilo m in potem vrni njegovo ime v spremenljivko v x
- Posredna komunikacija: procesi imenujejo vmesni medij – nabiralnik. Nabiralnikov je lahko več, vsak ima enolični naslov. Pošiljatelj sporočilo vstavi v nek nabiralnik, od koder ga vzame prejemnik.
- Nabiralnik je del procesa P, ki ga je ustvaril. Bere samo P.
- Nabiralnik je del OS. Berejo isti katerim P podeli lastništvo. Nevarnost! (tekma za sporočilo, garbage collection)
send(N, m) …vrzi v nabiralnik N sporočilo m
receive (N,m) …vzem i iz nabiralnika N sporočilo m
Sinhrono in asinhrono komuniciranje, brez kopičenja, z omejenim kopičenjem, z neomejenim kopičenjem.
Prenašanje kopij sporočila ali reference (pomnilniške naslove).
Naštej sistemske klice za UNIX, ki so potrebni za vzpostavitev skupnega pomnilnika in za vsakega opiši kaj stori.
Kako podatke pišemo in beremo?
int id_shm;
id_shm = shmget(IME, VELIKOST, MODE) - poišče ali ustvari skupni pomnilnik
char *shm_pointer;
shm_pointer = shmat(ID_SHM) - attach to shared memory
shmdt(ID_SHM) - detach from memory
shmctl(ID_SHM, IPC_RMID, NULL) - IPC_RMID vniči skupni spomin, ko se zadnji detacha
strcpy(shm_pointer, “napiši ta podatek”);
printf(“%s”, shm_pointer)
Lastnosti OS
- dodeljuje vire programom skladno s potrebami in zmožnostmi
- rešuje konfliktne situacije
- optimizira uporabo računalniških virov
- nadzira delo nekaterih virov
- nadzira izvajanje upor. programov
- olajšuje delo uporabniku
- povečuje učinkovitost računalniškega sistema
V katerih vrstah se nahajajo procesi
- vrsta vseh procesov
- vrsta pripravljenih procesov
- vrsta procesov, ki čakajo na V/I napravo