IOS Semestrálka Flashcards

1
Q

Problematika přepisu dat u SSD

A

● Nutnost načíst blok do vyrovnávací paměti, změnit, na disku vymazat, zapsat zpět a to celý, byť se mění jen 1 stránka
● Řešení (lépe řečeno minimalizace problému):
○ Použití více stránek, než je oficiální kapacita
○ Příkaz TRIM - umožňuje souborovému systému sdělit SSD, které stránky nejsou používány a lze je opět považovat za prázdné
○ Samostatné uvolňování stránek v rámci SSD

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

Plánování přístupu na disk

A

● Příchozí I/O požadavky jsou ukládány do vyrovnávací paměti a jejich pořadí je měněno s cílem minimalizovat režie diskových operací
● Výtahový algoritmus: pohybuje hlavičkami od středu k okraji ploten a zpět, požadavky na I/O vyřizuje v pořadí odpovídajícím pohybu hlaviček

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

Plánování přístupu na disk - heuristiky

A
○ Circular SCAN
○ LOOK, C-LOOK(NOOP,...)
○ sdružování operací
○ vyvažování operací různých procesů
○ priority operací
○ odkládání operací
○ časové limity operací
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

CFS (Completely Fair Scheduler)

A

● explicitně se snaží poskytnout procesům odpovídající % strojového času
● u procesů sleduje spotřebovaný čas (jejich strávený procesorový čas)
● vede si minimální spotřebovaný čas, pro nově připravené procesy
● procesy udržuje ve vyhledávací stromové struktuře, podle jejich spotřebovaného procesorového času
● vybírá proces s nejmenším spotřebovaným časem
● délka přidělovaného kvanta je ovlivněna prioritou
● podporuje skupinové plánování - rozděluje čas spravedlivě pro procesy spuštěné z jiných terminálů

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

Akce OS při operaci close()

A

● kontrola platnosti fd
● uvolní položku v tabulce desktriptorů, sníží počítadlo odkazů v tabulce otevřených souborů
● pokud je počitadlo odkazů nulové, uvolní položku, sníží počet odkazů ve v-uzlu
● pokud je počitadlo odkazů nulové, i-uzel se z v-uzlu okopíruje do VP (virtuální paměť) a uvolní
● vrací 0, nebo při chybě -1

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

Účel a princip dvou-úrovňové obsluhy přerušení

A

● minimalizace délky zákazu přerušení
● 1. úroveň:
○ zajišťuje minimální obsluhu HW, plánování běhu 2 úrovně
○ může být vyloučeno/zamaskováno přerušení
● 2. úroveň:
○ postupně dokončuje obsluhu zaznamenaných přerušení
○ nemusí zakazovat přerušení - vzájemné vyloučení se dá řešit běžnými synchronizačními prostředky

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

Akce při výpadku str.

A

● kontrola, zda se proces neodkazuje mimo přidělený adresový prostor
● alokace rámce: použijeme volný rámec, pokud nějaký je
○ pokud není vybereme vhodnou stránku s přiděleným rámcem (victim page)
○ tu odložíme na swap (je-li to nutné: příznak modifikace v tabulce stránek)
○ použijeme uvolněný rámec
● inicializace stránky po alokaci je závislá na předchozím stavu stránky
➔ první odkaz na stránku:
○ kód a inicializovaná data: načteme z programu
○ vše ostatní: vynulujeme (nelze ponechat původní obsah z bezpečnostních důvodů)
➔ stránka byla v minulosti uvolněna z FAP
○ kód a konstantní data znovu načteme z programu
○ ostatní: pokud byla stránka modifikována je ve swapu a musí se načíst do FAP
● úprava tab. str. (namapování zpřístupňované stránky na přidělený rámec)
● restart instrukce (proces je ve stavu připravený)

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

LRU, Least Recently Used

A

● odkládá nejdéle nepoužitou stránku
● velmi dobrá aproximace hypotetického ideálního algoritmu (znal by budoucnost a dle budoucích požadavků by se rozhodoval, co odložit)
● problematická implementace -> vyžaduje výraznou HW podporu (&označování stránek časovým razítkem posledního přístupu či udržování zásobníku stránek)
● používají se aproximace LRU
● Aproximace LRU pomocí omezené historie
○ při každém přístupu HW nastaví referenční bit stránky
○ jádro si vede omezenou historii tohoto bitu pro stránky
○ periodicky posouvá obsah doprava -> na pozici úplně vlevo (na začátek) uloží aktuální hodnotu ref. bitu a vynuluje ho
○ oběť (victim page) je vybrána jako stránka s nejnižší číselnou hodnotou historie
● Aproximace LRU algoritmem druhé šance
○ stránky jsou v kruhovém seznamu
○ postupujeme a nulujeme ref. bit
○ odstraníme první stránku, která již nulový referenční bit má
○ často používaný algoritmus (clock algorithm)
● výhody LRU: často používaný, velmi dobrá aproximace
● nevýhody LRU: problematická implementace (vyžaduje výraznou HW podporu)

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

FIFO, First In, First Out

A

● Jednoduchá implementace
● Může odstranit “starou”, ale stále často používanou stránku
● Trpí tzv. Beladyho anomálií
● Odstraňuje stránku, která byla zavedena do paměti před nejdelší dobou a dosud nebyla odstraněna

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

Plánování

A

● preemptivní: ke změně běžícího procesu může dojít na základě přerušení (typicky od časovače, ale může se jednat i o jiné přerušení)
● nepreemptivní: ke změně běžícího procesu může dojít pouze tehdy, pokud to běžící proces umožní, předáním řízení jádru (I/O operace, nebo se sám vzdá procesoru - volání yield)
● FCFS - nepreempt. FIFO. Při vzniku procesu, jeho uvolnění z čekání, nebo vzdá-li se proces procesoru, je tento proces zařazen na konec fronty. Procesor se přiděluje prvnímu procesu ve frontě.
● Round-robin - preempt. FIFO. Obdoba FCFS, navíc má ale každý proces přiděleno časové kvantum, po jehož vypršení je mu odebrán procesor a proces je zařazen na konec fronty připravených procesů.
● Víceúrovňové plánování: procesy jsou rozděleny do skupin (typicky dle priority), v každé skupině může být jiný plánovací algoritmus (FCFS..), další plánovací algoritmus se používá pro určení skupiny, ze které se vybere proces, který má běžet (ale typicky na základě priority), může hrozit hladovění.
● Víceúrovňové se zpětnou vazbou: skupiny procesů rozdělené dle priorit, nově vzniklý proces je ve frontě s nejvyšší prioritou, postupně klesá, nakonec je plánován Round-Robin v nejnižší úrovni.
○ modifikace: proces zařazen do fronty na základě statické priority, dynamická priorita se zvyšuje, pokud hodně čeká na I/O, nebo naopak snižuje, pokud spotřebovává hodně času CPU. Cíl: rychlá reakce interaktivních procesů.

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

Kroky systému při volání open()

A
● vyhodnocení cesty
● vytvoření v-uzlu
● nová položka v tab. otevření souborů naplněna:
  ○ odkazem na položku tabulky v-uzlů
  ○ režimem otevření
  ○ pozicí v souboru
  ○ čítačem odkazů na tuto položku
● deskriptor
● návrat indexu
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Deadlock - definice

A

● Uváznutím při přístupu ke zdrojům s omezeným přístupem označujeme situaci, kdy každý proces z určité množiny procesů je pozastaven a čeká na uvolnění zdroje s omezeným přístupem, vlastněného nějakým procesem z dané množiny, který jediný může tento zdroj uvolnit.
● Obecná definice uváznutí: je situace, kdy každý proces z určité množiny procesů je pozastaven a čeká na událost, která by mohla nastat, pouze pokud by byl uvolněn nějaký proces z dané množiny procesů.

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

Deadlock - Coffmanovy podmínky

A

● Vzájemné vyloučení při používání prostředků
● Vlastnictví alespoň jednoho zdroje, pozastavení a čekání na další
● Prostředky vrací proces, který je vlastní, a to po dokončení jejich využití
● Cyklická závislost na sebe čekajících procesů

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

Deadlock - řešení

A

● Prevence uváznutí
● Vyhýbání se uváznutí
● Detekce a zotavení
● (ověření, že uváznutí nemůže nastat)

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

Deadlock - prevence

A

(Zrušíme platnost některé z podmínek nutných pro uváznutí)

● Nepoužívat sdílené prostředky nebo používat sdílené prostředky, které umožňují (skutečně současný) sdílený přístup a u kterých není tedy nutné vzájemné vyloučení procesů.
● Proces může žádat o prostředky pouze, pokud žádné nevlastní
● Pokud proces žádá o prostředky, které nemůže momentálně získat, je pozastaven, všechny prostředky jsou mu odebrány a proces je zrušen, nebo se čeká, až mu mohou být všechny potřebné prostředky přiděleny
● Prostředky jsou číslovány a je možné je získávat pouze od nejnižších čísel k vyšším, nebo jiným způsobem vylučujícím cyklickou závislost na sebe čekající procesů

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

Deadlock - vyhýbání se uváznutí

A

● Procesy předem deklarují určité informace o způsobu, jakým budou využívat zdroje. V nejjednodušším případě se jedná o maximální počet současně požadovaných zdrojů jednotlivých typů.
● Předem známé informace o možných požadavcích jednotlivých procesů an o aktuálním stavu přidělování se využijí k rozhodování o tom, které požadavky mohou být uspokojeny (a které musí počkat) tak, aby nemohla vzniknout cyklická závislost na sebe čekajících procesů i v nejhorší možné situaci, která by mohla v budoucnu vzniknout při deklarovaném chování procesu.
● Existuje řada algoritmů pro vyhýbání se uváznutí, např. algoritmus založený na grafu alokace zdrojů pro systémy s jednou instancí každého zdroje. Vytváří se graf vztahu se 2 typy uzlu (P-procesy, R-zdroje) a 3mi typy hran (R=>P) - zdroj je vlastněn procesem, (P=>R) - proces žádá o zdroj, (P->R) proces může požádat o zdroj
● Zdroj je přidělen pouze tehdy, pokud nehrozí vznik cyklické závislosti čekajících procesů, což by se projevilo cyklem v grafu při záměně hrany žádosti za hranu vlastnictví.

17
Q

Deadlock - detekce a zotavení

A

● Uváznutí může vzniknout, periodicky se přitom detekuje, zda k tomu nedošlo a pokud ano, provede se zotavení
● Detekce uváznutí: graf vlastnictví zdrojů a čekání na zdroje procesy (podobný jako graf alokace zdrojů, ale bez hran vyjadřujících možnost žádat o zdroj); cyklus indikuje uváznutí
● Zotavení z uváznutí:
○ odebrání zdrojů alespoň některým pozastaveným procesům, jejich přidělení ostatním a později umožnění získat všechny potřebné zdroje a pokračovat (případně jejich restart či ukončení)
○ v každém případě anulace nedokončených operací (rollback), nebo nutnost akceptace možných nekonzistencí

18
Q

Operační systém (definice, cíle, role)

A

● program (kolekce programů) vytvářející spojující vrstvu mezi (příp. virtualizovaným) HW a uživateli a jejich aplikacemi
● cíle
○ max využití zdrojů (dříve, drahé počítače x levná pracovní síla)
○ snadnost použití (dnes, levné počítače x drahá pracovní síla)
● role
○ tvůrce virtuálního počítače - abstrakce, standardní rozhraní
○ správce zdrojů - bezpečnost a efektivita sdílení,

19
Q

Jádro OS

A

● Jádro OS je nejnižší a nejzákladnější část OS
● nejnižší správa prostředků a tvorba prostředí pro zbytek OS a uživ. app.
● reaktivní program, zavádí se jako první při zapnutí a běží po celou dobu
● Navazuje přímo na HW, typicky jej pro uživatele zapouzdřuje
● Obvykle běží v privilegovaném režimu

20
Q

Mikrojádro

A

● jednoduché rozhraní, malý počet služeb, jednoduché abstrakce
● část služeb monolitického jádra je implementována jako servery mimo privilegovaný režim
● bezpečnost - útok na server neovládne celé jádro a OS
● flexibilita - umožňuje zastavovat nebo spouštět služby/servery
● nižší efektivita - vyšší režie
● příklady: L4, Mach, QNX,…

21
Q

Žurnálování - definice

A

● Žurnál slouží pro záznam modifikovaných metadat (dat) před jejich zápisem na disk. Implementován jako cyklicky přepisovaný buffer ve speciální oblasti disku. Operace pokryté žurnálováním jsou atomické: vytváří transakce – buď uspějí všechny dílčí kroky nebo žádný.
● systémy se žurnálem: Ext3, ext4, NTFS.
● Umožňuje spolehlivější a rychlejší návrat do konzistentního stavu po chybách.
● Data obvykle žurnálovaná nejsou – velká režie.
○ Kompromis: předřazení zápisu dat na disk před zápisem metadat do žurnálu

22
Q

Žurnálování - implementace

A

● Implementace na základě dokončení transakcí – REDO (ext3,4):
○ Sekvence dílčích operací se uloží do žurnálu mezi značky značící start a konec transakce. Poté se na disku provedou dílčí operace. Jestli uspějí všechny, transakce se ze žurnálu uvolní. Jestli ne, dokončí se všechny transakce, které jsou v žurnálu zapsány celé.
● Implementace na základě anulace transakcí – UNDO:
○ Záznam dílčích operací do žurnálu a na disk se prokládá. Proběhne-li celá transakce, ze žurnálu se uvolní. Při chybě se eliminují nedokončené transakce.
● UNDO+REDO (NTFS)
● implementace musí zajišťovat správné pořadí zápisu operací, které ovlivňuje plánování diskových operací v OS, popř. jejich přeuspořádání v disku

23
Q

Žurnálování - Alternativy

A

● Copy-on-Write
○ nejprve zapisuje nová data/metadata na disk, pak je zpřístupní: Změny provádí hierarchicky v souladu s hierarchickým popisem obsahu disku (jde o vyhledávací, nikoli adresovací strom). Vytvoří kopii měněného uzlu -> upraví ji -> vytvoří kopii
uzlu nadřazeného -> upraví ji tak, aby ukazovala na uzel vytvořený v předchozím kroku. Na nejvyšší úrovni se udržuje několik verzí kořenového záznamu se zabezpečovacím kódem a časovými razítky. Nabízí bázi pro implementaci:
snímků souborového systému a klonů SS – vznikají částečně sdílené stromové struktury popisující různé verze obsahu SS

24
Q

Diskový sektor

A

● Nejmenší jednotka, kterou disk umožňuje načíst/zapsat
● Velikost sektoru: typicky 512B, u nových disků 4096B
● Adresace sektorů:
○ CHS = Cylinder, Head (typicky 1-6 hlav), Sector
○ LBA = Linear Block Address (číslo 0..N

25
Q

Alokační blok

A

● Skupina pevného počtu sektorů, typicky 2N pro nějaké N, následujících logicky (tj. v souboru) i fyzicky (tj. na disku) za sebou, která je nejmenší jednotkou diskového prostoru se kterou umí OS (FS) pracovat. (nejmenší jednotka, kterou umožňuje OS načíst/zapsat)

26
Q

Extent

A

● posloupnosti proměnného počtu bloků jdoucích za sebou logicky v souboru a uložených fyzicky za sebou na disku. Zrychlují práci s velkými soubory(menší indexovací struktury, menší objem metadat), naopak pro malé soubory to může znamenat zbytečně velkou reži

27
Q

Překlad logické adresy na fyzickou přes 2-úrovňovou tabulku stránek

A

● LA se rozloží na prefix p sestávající z odkazu p1 do adresáře stránek a z odkazu p2 do konkrétní tabulky stránek. Tedy p=p1.p2
● Test zda TLB obsahuje dvojici (p,f), vyhledává se asociativně dle p (je možné částečně asociativní vyhledání), je-li položka (p,f) nalezena, je výsledná adresa (f,d).
● Přístup k položce na indexu p1 v adresáři stránek, který je v RAM na adrese uložené ve speciálním registru MMU (u intelu CR3)
● Má-li výše uvedená položka nastaven příznak neplatnosti, nastává výpadek v adresáři stránek
● Není-li tomu tak, pak se z uvedené položky získá bázová adresa dílčí tabulky stránek rovněž uložené v RAM. Použije se položka s indexem p2 této tabulky.
● Obsahuje-li položka na indexu p2 v dílčí tabulce stránek příznak neplatnosti, nastává výpadek stránky. Jinak se z položky zmíněné výše získá číslo rámce f a ̈ výsledná adresa je (f,d

28
Q

Inverze priorit - Definice problému

A

● Nízko prioritní proces si naalokuje nějaký zdroj, více prioritní procesy ho předbíhají a nemůže dokončit práci s tímto zdrojem.
● Časem tento zdroj mohou potřebovat více prioritní procesy, jsou nutně zablokovány a musí čekat na nízko prioritní proces.
● Pokud v systému jsou v tomto okamžiku středně prioritní procesy, které nepotřebují daný zdroj, pak poběží a budou dále předbíhat nízko prioritní proces.
● Tímto způsobem uvedené středně a nízko prioritní procesy získávají efektivně vyšší prioritu.

Inverze priorit nemusí, ale může, vadit; může zvyšovat odezvu systému a způsobit i vážnější problémy,
zejména pokud jsou blokovány nějaké kritické procesy reálného času (ovládání hardware apod.)

29
Q

Inverze priorit - možnosti řešení

A

● Priority ceiling: procesy v kritické sekci získávají nejvyšší prioritu.
● Priority inheritance: proces v kritické sekci, který blokuje výše prioritní procesy, dědí (po dobu běhu v kritické sekci) prioritu čekajícího procesu s největší prioritou.
● Zákaz přerušení po dobu běhu v kritické sekci (na jednoprocesorovém systému): proces v podstatě získá vyšší prioritu než všichni ostatní

30
Q

NTFS (3 varianty reprezentace a adresování)

A

● MFT (Master File Table)
○ alespoň jeden řádek pro každý soubor
○ malé soubory jsou celé uložené v MFT (i s obsahem)
○ střední – na řádku příslušeného souboru uložené odkazy na extenty
○ velké – přes 2 řádky jsou odkazy na pomocné odkazy, ve kterých jsou uložené odkazy na extenty (adresování podobné jako u B+ stromů)
● Extent
○ posloupnoust proměnného počtu alokačních bloků logicky jdoucích za sebou v souboru a uložených fyzicky na disku
● podpora žurnálování (REDO+UNDO)