ZOS Flashcards

1
Q

Struktura OS

A
  1. modul pro správu procesů
    • program, proces, vlákno, plánování procesů a vláken
    • kritická sekce, souběh, synchronizace (semafory, …)
    • deadlock, vyhladovění
  2. modul pro správu paměti
    • virtuální paměť: stránkování, segmentace
  3. modul pro správu I/O
  4. modul pro spr ávu souborů
  5. síťování
  6. ochrana a bezpečnost
  7. uživatelské rozhraní
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Režimy

A
  1. Jádro OS běží v tzv. privilegovaném režimu CPU
    • Všechny instrukce CPU jsou zde povoleny
  2. Aplikace v uživatelském režimu CPU
  • Některé instrukce zakázány (tzv. privilegované instrukce) např. není přímý přístup k disku, narušitel –> formátování
  • Při pokusu o vykonání privilegované instrukce = => chyba, výjimka
  • Aplikace musí požádat OS o přístup k souboru, ten rozhodne zda jej povolí

CPU ví, v jakém je režimu podle bitu ve stavovém registru CPU (0 = priv., 1 = uživ.) - CS (code segment) registr;;

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

Přerušení

A

Přerušení

Definice:
Metoda pro asynchronní obsluhu událostí, kdy procesor
přeruší vykonávání sledu instrukcí, vykoná obsluhu
přerušení a pak pokračuje v předchozí činnosti.

Rozdělení:
• HW přerušení (vnější) obsluha HW zařízení
• SW přerušení synchronní, instrukcí INT x v kódu procesu
• Vnitřní přerušení (výjimky) procesor oznamuje chyby
při vykonávání instrukcí (dělení nulou)

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

Systémové volání

A

vyvolání služby OS poskytované jádrem; aplikace volá službu sys. volání přímo (open, creat), knihovní funkcí (fopen)

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

Vektor přerušení

A

index do pole, obsahující adresu obslužné rutiny, vykonané při daném typu přerušení

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

Maskování přerušení

A

v době obsluhy přerušení lze zamaskovat méně důležitá přerušení, ale SW přerušení jsou nemaskovatelná (NMI)

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

Příchod přerušení

A

dokončí se rozpracovaná strojová instrukce, na zásobník se uloží adresa následující instrukce (CS:IP) tj. kde jsme skončili a kde budeme chtít pokračovat, z vektoru přerušení se zjistí adresa podprogramu pro obsluhu přerušení, přepnutí do priv. režimu, na zásobník se uloží hodnoty registrů, obsluha, instrukce návratu RET (IRET) a přepnutí do uživ. režimu

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

Jádro

A

OS = (jádro + systémové nástroje)

  1. monolitické (= 1 funkční celek) - LINUX
  2. mikrojádro - model klient-server (malé jádro, oddělitelné části pracují jako samostatné procesy v user space) - HURD
  3. hybridní - kombinace (Windows)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Přístup k souboru

A

pomocí ACL nebo základní unixová práva (UGO - rwx)

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

IRQ

A

signál, kterým zařízení žádá procesor o přerušení zpracovávaného procesu, IRQL - priorita přerušovacího požadavku

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

Proces

A

instance běžícího programu; adresní prostor procesu - MMU (zajišťuje soukromí), kód programu, data, zásobník; stavové informace procesu (registry - PC, SP)

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

Registry

A

obecné (EAX…), segmentové (CS, DS…), speciální (IP…)

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

Pseudoparalelní běh

A

v jednu chvíli aktivní pouze jeden proces, po určité době pozastaven a spuštěn další (1 CPU)

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

Stavy procesu

A
  1. běžící - využívá CPU
  2. připravený - pozastaven, aby mohl jiný proces pokračovat, čeká na CPU
  3. blokovaný - neschopný běhu, dokud nenastane externí událost (čeká na zdroj nebo zprávu)
  4. nový - právě vytvořený proces
  5. ukončený
  6. zombie - proces dokončí svůj kód, pořád má záznam v tabulce procesů, čekání, dokud rodič nepřečte exit status voláním wait
  7. sirotek - jeho kód stále běží, ale skončil rodičovský proces, adoptován procesem init
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Přechody stavů procesu

A
  1. plánovač vybere nějaký proces
  2. proces je pozastaven, plánovač vybere jiný proces (např. vypršelo časové kvantum)
  3. proces se zablokuje, protože čeká na událost
  4. nastala očekávaná událost
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

PCB

A

info o procesu v tabulce procesů

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

Ukončení procesu

A
  1. proces úspěšně vykoná kód programu
  2. skončí rodičovský proces
  3. proces překročí limit nějakého zdroje
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

MMU

A

více procesů v paměti a každý má paměť pro sebe, program pracuje s virtuálními adresami a MMU je převede na fyzické adresy

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

Procesy a vlákna

A

každý proces svůj vlastní PID, PGID, UID, GID, adresový prostor a místo, kde leží (bod běhu), instrukce programu, registry, zásobník, haldu, popisovače souborů, signal actions, shared libraries, IPC, aktuální prioritu, výši priority (nice), celkovou velikost, velikost použité fyzické paměti, stav, %CPU; PID atd. uložený v PCB (včetně kontextu procesu) v tabulce procesů, ta je v RAM a je to datová struktura jádra OS

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

Vlákna

A

v procesu sdílejí adresní prostor, otevřené soubory; každé vlákno má svůj zásobník, čítač instrukcí, obsah registrů, zásobník, lokální proměnné, množinu blokovaných signálů, plánovací vlastnosti

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

Plánování procesů

A

stupeň multiprogramování = počet procesů v paměti

  1. nepreemptivní - proces skončí, nebo běžící -> blokovaný;
  2. preemptivní - navíc přechod běžící -> připravený (uplynulo časové kvantum), k odstavení procesu může dojít v nevhodný čas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Modely vláken

A

1:1 - vlákna v jádře
M:1 - vlákna jen v user space
M:N - komerční unixy (Solaris)

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

Kritická sekce

A

místo v programu, kde je prováděn přístup ke společným datům

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

Pravidla pro řešení časového souběhu

A
  1. vzájemné vyloučení - uvnitř KS vždy jen 1 proces
  2. proces mimo KS nesmí blokovat jiné procesy (bránit ve vstupu do KS)
  3. žádný proces nesmí na vstup do KS čekat nekonečně dlouho
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Aktivní čekání

A

průběžné testování proměnné ve smyčce, dokud nenabyde očekávanou hodnotu, ale plýtvá časem CPU, tak se používá, jen pokud předpokládáme krátké čekání (spin lock)

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

Spin lock s instrukcí TSL

A

instrukce, která otestuje hodnotu a nastaví paměťové místo v jedné nedělitelné operaci (Test and Set Lock)

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

Semafor

A

tvořen celočíselnou proměnnou „s“ (obsahující nezáporné celé číslo, hodnotu lze přiřadit pouze při deklaraci, 0 = sem. je zablokovaný, nenula = kolik procesů může zavolat P(), aniž by se blokly) a frontou procesů, které na něj čekají; nad semafory pouze operace P(s) a V(s) - nedělitelné operace

P - blokuje, snižuje;; V - odblokuje, zvyšuje;;

28
Q

Mutex

A

(binární semafor, vzájemné vyloučení), spin_lock bez aktivního čekání; implementace pomocí yield - dobrovolně se vzdává CPU, šetří čas

29
Q

Monitor

A

v jednu chvíli aktivní pouze jeden proces

výhody - automaticky řeší vzájemné vyloučení, větší odolnost proti chybám programátora;

tvořen podmínkami (definovány a použity pouze uvnitř bloku, nejsou proměnné v klasickém smyslu, neobsahují hodnotu, představují frontu procesů, které na danou podmínku čekají) -

c. wait - volající bude pozastaven nad podmínkou c, pokud je některý proces připraven vstoupit do monitoru, bude mu to dovoleno;
c. signal - pokud existují procesy pozastavené nad podmínkou c, reaktivuje jeden z pozastavených procesů a bude mu dovoleno pokračovat v běhu uvnitř monitoru,, pokud nad podmínkou nespí žádný proces, nedělá nic;;

30
Q

Reakce na signal

A

Hoare - proces volající c.signal se pozastaví, vzbudí se až poté, co předchozí reaktivovaný proces opustí monitor nebo se pozastaví;

Hansen - signal smí být uveden pouze jako poslední příkaz v monitoru, po volání signal musí proces opustit monitor

31
Q

Meziprocesová komunikace

A

přes sdílenou paměť, zasíláním zpráv, signály (jen v Linuxu, speciální zpráva zaslaná jádrem OS procesu, asynchronní);;

32
Q

Sdílená paměť

A

vyžaduje umístění objektu ve sdílené paměti, někdy nevhodné (bezpečnost - globální data přístupná kterémukoliv procesu bez ohledu na semafor), někdy nemožné (procesy běží na různých strojích, komunikují spolu po síti)

33
Q

Předávání zpráv

A

send(adresát, zpráva) - neblokující,
receive(odesílatel, zpráva) - blokující;
blokující send - čeká na převzetí zprávy příjemcem, neblokující send - vrací se ihned po odeslání zprávy
blokující receive - není-li ve frontě žádná zpráva, zablokuje se
neblokující receive - není-li zpráva, vrací chybu;

34
Q

Adresování

A

skupinové (multicast) - zprávu pošleme skupině procesů, obdrží ji každý proces;

všesměrové (broadcast) - zprávu posíláme všem procesům, více nespecifikovaným příjemcům

35
Q

Délka fronty zpráv

A

nulová - žádná zpráva nemůže čekat, odesílatel se zablokuje (rendezvous);

omezená - blokování při dosažení kapacity

neomezená - odesílatel se nikdy nezablokuje

36
Q

Doručování zpráv

A

v pořadí FIFO, neztrácejí se

37
Q

Určení adresáta

A

procesy nejsou trvalé entity, proto neadresujeme proces, ale frontu zpráv (nepřímá komunikace)

38
Q

Fronta zpráv

A

mailbox - více odesílatelů a příjemců

port - omezená forma mailboxu, zprávy může vybírat pouze 1 příjemce

39
Q

Ztráta zprávy

A

řeší potvrzení o přijetí; pokud vysílač nedostane potvrzení do nějakého časového okamžiku, zprávu pošle znovu
ztráta potvrzení - zpráva dojde ok, ztratí se potvrzení - řeší číslování zpráv, duplicitní zprávy se ignorují

40
Q

Problém autentizace

A

zprávy možno šifrovat, klíč známý pouze autorizovaným uživatelům (procesům), zašifrovaná zpráva obsahuje redundanci (umožní detekovat změnu zašifrované zprávy)

41
Q

Lokální komunikace

A
  • na stejném stroji, snížení režie;

dvojí kopírování (z procesu odesílatele do fronty v jádře, z jádra do procesu příjemce);

rendezvous - eliminuje frontu zpráv, zpráva se zkopíruje z odesílatele přímo do příjemce

virtuální paměť - paměť obsahující zprávu je přemapována (z procesu odesílatele do procesu příjemce), zpráva se nekopíruje

42
Q

Struktura klient-server

A

klient požaduje vykonat práci, server práci vykoná

43
Q

RPC

A

dovolit procesům (klientům) volat procedury umístěné v jiném procesu (serveru)

44
Q

Kroky komunikace klient - server

A
  1. klient zavolá spojku klienta (reprezentující vzdálenou proceduru)
  2. spojková procedura argumenty zabalí do zprávy a pošle ji serveru
  3. spojka serveru zprávu přijme, vezme argumenty a zavolá proceduru
  4. procedura se vrátí, návratovou hodnotu pošle spojka serveru zpět klientovi
  5. spojka klienta přijme zprávu obsahující návratovou hodnotu a předá ji volajícímu;;
45
Q

RPC více procedur

A

spojka klienta ve zprávě předá kromě parametrů i číslo požadované procedury

46
Q

Bariéry

A

synchronizační mechanismus pro skupiny procesů, skládá se z fází (žádný proces nesmí do následující fáze, dokud všechny procesy nedokončily fázi předchozí), na konci každé fáze synchronizace na bariéře (volajícího pozastaví, dokud všechny procesy také nezavolají barrier), všechny procesy opustí bariéru současně

47
Q

Čtenáři-písaři

A

řešení s předností čtenářů (písaři musí čekat, až všichni čtenáři skončí);;

48
Q

Zámky v OS a DB

A

přístup procesu k souboru nebo záznamu databázi;

výhradní zámek (pro zápis) - nikdo další nesmí přistupovat

sdílený zámek (pro čtení) - mohou o něj žádat další procesy;

granularita zamykání - celý soubor vs. část souboru, tabulka vs. řádka v tabulce;;

49
Q

Plánovač

A

určí, který proces (vlákno) by měl běžet nyní

50
Q

Dispatcher

A

provede vlastní přepnutí z aktuálního běžícího procesu na nově vybraný proces

51
Q

CPU, IO burst

A

CPU burst - vykonávání kódu,

I/O burst - čekání,

CPU-vázaný proces - hodně času tráví výpočtem,

I/O-vázaný proces - hodně času tráví čekáním na I/O

52
Q

Plánování

A

nepreemptivní - každý proces dokončí svůj CPU burst;

preemptivní - (u interaktivních systémů) proces lze přerušit kdykoliv během CPU burstu a naplánovat jiný, vyžaduje speciální hardware (timer - generuje přerušení),, nejen u uživatelských procesů, ale i u jádra

53
Q

Cíle plánování

A

spravedlnost - srovnatelné procesy srovnatelně obsloužené;

balance - snaha o maximální vytížení CPU (+ RAM a periferií), páč čas CPU… je drahý,, u dávkových systémů

propustnost - maximalizovat počet úloh dokončených za jednotku čas

doba obrátky - minimalizovat čas mezi přijetím úlohy do systému a jejím dokončením

54
Q

Prioritní funkce

A

bere v úvahu čas, jak dlouho proces využíval CPU, aktuální zatížení systému, paměťové požadavky procesu, čas strávený v systému, celkovou dobu provádění úlohy, urgenci;

statická priorita - přiřazena při startu procesu;

dynamická priorita - za běhu, dle chování procesu (dlouho čekal); plánovač snižuje dynamickou prioritu běžící procesu při každém tiku časovače

55
Q

Rozhodovací pravidlo

A

malá pst stejné priority (náhodný výběr), velká pst (cyklické přidělování kvanta, chronologický výběr - FIFO)

56
Q

Plánovací algoritmy

A

FCFS (nepreemptivní FIFO) - nově příchozí úloha na konec fronty připravených a běží, dokud neskončí (když neprovádí I/O, jinak do stavu blokovaný,, až provede I/O, jde na konec fronty připravených);

SJF - nepreemptivní, nejkratší úloha jako první, ale musíme dopředu přibližně znát dobu trvání úloh

SRT - preemptivní, plánovač vždy vybere úlohu, jejíž zbývající doba běhu je nejkratší;

MLF - nepreemptivní, N prioritních úrovní, každá úroveň má svou frontu úloh, úloha vstoupí do systému do fronty s nejvyšší prioritou, na každé prioritní úrovni stanoveno max času CPU, který může úloha obdržet,, proces obsluhuje nejvyšší neprázdnou frontu; upřednostňuje I/O vázané

57
Q

Plánování procesů v interaktivních systémech

A

proces nesmí běžet příliš dlouho, každý proces je jedinečný a nepředvídatelný;

Round Robin - každému procesu přiřazeno časové kvantum, po které může běžet,, pokud proces nevyužije celé časové kvantum, nebo se zablokuje před uplynutím kvanta (dobrovolně se vzdá CPU), nebo vyprší časové kvantum (odebrán CPU nedobrovolně, přejde do stavu připravený), naplánuje se další proces

58
Q

Časové kvantum

A

nemusí být konstantní;

krátké - snižuje efektivitu (velká režie s přeplánováním),

dlouhé - zhoršuje dobu odpovědi na interaktivní požadavky

59
Q

Dynamická priorita

A

1/f (f = velikost části kvanta, kterou proces naposledy použil), zvýhodní I/O vázané

60
Q

Spravedlivé sdílení

A

přidělovat čas každému uživateli (vláknu) proporcionálně, bez ohledu na to, kolik má procesů (N uživatelů, každý dostane 1/N času)

61
Q

Loterie

A

procesy obdrží tickety (losy), plánovač vybere náhodně 1 tiket, vítězný proces obdrží cenu - 1 kvantum času CPU, důležitější procesy - více tiketů, aby se zvýšila šance na výhru; výhody - spolupracující procesy si mohou předávat losy, rozdělení času mezi procesy v určitém poměru

62
Q

Afinita

A

určení jader CPU, na kterých může proces běžet

hard afinity - seznam jader

soft afinity - vlákno přednostně plánováno na procesor, kde běželo naposledy

63
Q

Zdroje

A

žádost, použití, uvolnění

64
Q

Podmínky vzniku uvíznutí

A

musí být splněny všechny 4 podmínky:

  1. vzájemné vyloučení - každý zdroj je buď dostupný, nebo přiřazen právě 1 procesu (spooling - soutěžení o tiskárnu);
  2. hold and wait - proces držící přiřazené zdroje může požadovat další;
  3. nemožnost odejmutí - přiřazené zdroje nemohou být procesu násilně odejmuty (musí je sám uvolnit);
  4. cyklické čekání - cyklický řetězec procesů, kde každý čeká na zdroj držený dalším členem;
65
Q

Uvíznutí

A

cyklus v grafu je nutnou a postačující podmínkou pro vznik uvíznutí; pokud by procesy žádaly o zdroje ve stejném pořadí, uvíznutí nenastane

66
Q

Vypořádání se s uvíznutím

A
  1. ignorace - předstíráme, že problém neexistuje (pštrosí algoritmus), vysoká cena za eliminaci uvíznutí; u uživatelských procesů uvíznutí neřešíme, ale snažíme se, aby k uvíznutí nedošlo v jádře OS;
  2. detekce a zotavení - systém se nesnaží zabránit vzniku uvíznutí, jen ho detekuje a pokud nastane, provede akci pro zotavení; zotavení pomocí preempce - vlastníkovi dočasně odebrat zdroj; zotavení pomocí zrušení změn (checkpointing) - zápis stavu procesů do souboru, aby proces mohl být v případě potřeby vrácen do uloženého stavu; zrušení procesu - nejhorší způsob;
  3. dynamické zabránění - většinou procesy žádají o zdroje po jednom; je třeba rozhodnout, zda je přiřazení zdroje bezpečné, pokud ne, pozastaví se žádající proces; stav je bezpečný, pokud existuje min. 1 posloupnost, ve které mohou procesy doběhnout bez uvíznutí (ale i když není bezpečný, uvíznutí nastat nemusí) - bankéřův algoritmus (v praxi nepoužitelný);
  4. prevence uvíznutí - 4 Coffmanovy podmínky;;
67
Q

Vyhladovění

A

procesy požadují zdroje, ale proces zdroj nikdy nemusí obdržet (filosofové zvedají a pokládají vidličku, SJF) - řešení: FIFO