FRI-OS Flashcards

1
Q

Naštej prednosti mikrojedernih OS

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Katere funkcije OS opravlja mikrojedro?

A
  • Inter-proces-communication (IPC)
  • Virtual memory
  • Sheduling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

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.

A

Skripto bi pognal z “sudo bash ./skrpta.sh”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Razloži pomen pozivnika sokrat@jama:~>

A

sokrat@jama:~>

sokrat => username
jama => ime računalnika
~(tilda) => pomeni da smo v svojem domačem(home) direktoriju

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

naloge OS

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kaj je proces? Kako je predstavljen v OS-ju, naštej stanja, v katerih je lahko proces( ustvarjen, čaka,…)

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Kaj je spooling, kaj omogoča?

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Kaj je problem kritičnih sekcij?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Kriteriji razvršanja procesov

A
  1. Izkoriščenost CPE (CPU utilization)… CPE naj bo čim bolj izkoriščen. V realnosti 40% - 90%
  2. Propustnost (troughput)… število končanih procesov v nekem času
  3. Čas obdelave (turnaround time)… čas od nastanka procesa do njegovega konca
  4. Čakalni čas (waiting time)…
  5. Odzivni čas (response time)… čas od nastanka procesa do prve izhodne operacije.
  6. Pravičnost (fairness)… vsak proces naj dobi ustrezen čas CPE
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

kaj vrne true || true && false || return 42

A

vrne 42

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

spremenljivka (znak) ki kaže na uporabniški direktorij (domaci imenik)

A

~ ali $HOME

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Opišite bistvo razvrščanja na procesorju, razvrščanja poslov in menjavanja

A
  • 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).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Razlika med razvrščevalnikom in dodeljevalnikom

A
  • razvrščevalnik izbere naslednji proces, ki dobi CPE,

- dodeljevalnik pa mu dodeli CPE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Našteje 3 signale v Linuxu, ki jih ni mogoče ignorirati.

A

SIGILL,SIGABRT,SIGBUS,SIGFPE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

napišite ukaz s katerim dodamo uporabnika

A

useradd

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

napišite ukaz ki izpiše cilj simbolične povezave

A

readlink ime_povezave

17
Q

napišite ukaz s katerim sredi cevovoda hkrati pišemo v datoteko in naprej po cevovodu

A

tee

18
Q

Kaj je kritični odsek? Definicija Problema kritičnih odsekov! Napišite strategije reševanje problema kritičnega odseka.

A
  • 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.
19
Q

Napiši natančno pot do datoteke, kjer so shranjena uporabniška gesla.

A

“/etc/shadow”

20
Q

Znak trenutnega direktorija.

A

”.”

21
Q

Razloži semafor. V rešitvah je preprost (spinlock semafor)

A

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.

22
Q

Tipi datotek v Linuxu

A
  1. navadna datoteka – /etc/passwd
  2. imenik – /bin
  3. simbolična povezava – /usr/src/linux
  4. cev – mkfifo pipa
  5. vtičnica
  6. znakovno orientirana naprava – /dev/tty
  7. bločno orientirana naprava – /dev/sda
23
Q

Naštej razlike med vtičnicami in cevmi

A

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.

24
Q

Pojasni signale v UNIXu

A

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.

25
Q

Vrste komunikacije

A
  1. Za prenos podatkov skrbi OS (tj. njegova komponenta IPC). Ta način je počasnejši.
  2. Za prenos podatkov skrbita proizvajalec in porabnik (preko skupnega pomnilnika)
26
Q

Naštej in predstavi algoritme za razvrščanje

A
  1. Prvi pride, prvi melje (FIFO) – proces, ki je prej zahteval procesor ga prvi dobi
  2. 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
  3. Razvrščanje po prioriteti – vsak proces ima prioriteto, najvišji dobi CPE
  4. 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
  5. 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
  6. 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
27
Q

Zgradbe jedra?

A
  1. Enostavna – monolitna - Jedro je veliko, opravlja veliko funkcij in je ‘neurejeno’. ranljivost, nezanesljivost, težavna razširjenost. UNIX, Apple MacOS, Windows NT.
  2. 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)
  3. 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.
28
Q

Kaj so sistemski klici

A

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

29
Q

Komponente OS

A
  • 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
30
Q

Vrste prekinitev

A
  • 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)
31
Q

IPC - medprocesna komunikacija. Vse

A
  • 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).

32
Q

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?

A

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)

33
Q

Lastnosti OS

A
  1. dodeljuje vire programom skladno s potrebami in zmožnostmi
  2. rešuje konfliktne situacije
  3. optimizira uporabo računalniških virov
  4. nadzira delo nekaterih virov
  5. nadzira izvajanje upor. programov
  6. olajšuje delo uporabniku
  7. povečuje učinkovitost računalniškega sistema
34
Q

V katerih vrstah se nahajajo procesi

A
  1. vrsta vseh procesov
  2. vrsta pripravljenih procesov
  3. vrsta procesov, ki čakajo na V/I napravo