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.