Architektura operačních systémů, vrstvená struktura, vlastnosti a f k kl funkce, klasifikace. ifik
Abstraktní pohled na systémové komponenty Uživatel 1
Kompilátor
Uživatel 2
Uživatel n
textový editor
databázový systém
Operační systém
Hardware počítače
Definice operačního systému • Správce prostředků – spravuje a přiděluje zdroje systému • Řídicí program – řídí provádění uživatelských programů a operací I/O zařízení • Jádro – trvale běžící program – všechny ostatní lze chápat jako aplikační programy
Operační systémy-způsoby popisu Proces 3
Proces 1 „holý h lý počítač
Uživatelské programy
vnitřní Proces 2
vnější Virtuální počítač
OS A OS-A
Operační systém je • Program, který řídí běh ostatních procesů – Ostatním procesům bezpečně a efektivně předává řízení a získává je zpět – CPU sděluje, děl j kdy kd máá spouštět š ě ostatníí procesy
• Rozhraní mezi uživatelem a hardware • Skrývá ostatním procesům detaily o hardware – Musí zvládnout správu p detailů hardware ve své režii
Typické poskytované služby • • • • • • •
Vytváření programů Provádění programů, běh procesů Zpřístupňování V/V zařízení Řízení přístupů k souborům Řízení přístupu k systému D t k chyb Detekce h b a chybové h b é ří řízeníí Protokolování činností
Struktura operačního systému • • • •
Monolitický systém Vrstvená struktura Virtuální počítač Model klient-server
Monolitický systém • • • • •
velmi rozšířený model jádra OS+systémových služeb bez vnitřní struktury Unix, CP/M, MS-DOS různé režimy činnosti procesoru Æ různé fáze činnosti OS
Monolitický systém uživatelský program 2 uživatelský program 1
uživatelské programy běžící v uživatelském módu
Operační systém běžící v módu jádra
Vrstvená struktura • hierarchické uspořádání vrstev • vyšší vrstva využívá pouze služeb nejbližší nižší vrstvy • příklad návrh OS „THE System“ ( (Technische h i h Hogeschool h l Eidhoven idh – Dijkstra 1968): 6 vrstev
Vrstvená struktura 5
operátor
4
uživatelské programy
3
správa I/O zařízení
2
komunikace s procesy
1
správa sp v ppaměti ě
0
přidělování procesoru
Virtuální počítač (virtual machine). • oddělení funkce multiprogramování od funkce rozšířeného šíř éh stroje j (extended ( d d machine) hi ) • příklad CP/CMS (VM/370) • OS SW emuluje existenci více jednouživatelských systémů y s vlastním HW ((virtual machine monitor VM), které jsou přesnou kopií HW (VM vrstva emuluje j HW))
Virtuální počítač
Virtuální 370’ 370
CMS
CMS
CMS
Operační systémy zajišťující funkci rozšířeného počítače
VM /370 HW 370
Vlastní HW počítače
Model klient-server • trend minimalizace rozsahu jádra OS (mikrokernel), • část funkcí OS implementována do úrovně uživatelských procesů (zasílání požadavků mezi procesy), procesy) • mikrokernel zajišťuje zejména komunikaci
Model klient-server
kli t klient
kli t klient
kli t klient
server
Jád Jádro
server
server
v uživatelském módu v módu ód jádra jád
Generické komponenty p y OS Interpret příkazů Networking Správa souborů Správa sekundární paměti Správa p I/O systému y Správa hlavní paměti Správa procesů Správa procesorů
S y s t é m o c h r a n
Principy vonNeumannovy koncepce počítače, jednotlivých podsystémů, zobrazování informací v počítači, principy k komunikace ik periferních if í h zařízení ří í s procesorem, procesorem jiné architektury p počítačů.
Operační paměť PAMĚŤOVÉ BUŇKY
ADRESOVÝ REGISTR PAMĚTI - RAP NASTAV ADRESU SU
ADRESA
NAJDI ADRESU
ŘADIČ PAMĚTI
ÚDAJOVÝ REGISTR PAMĚTI - RDP
HOTOVO
VYBER ULOŽ
START
ÚDAJ
SESTAV ÚDAJ
Předpoklady paměťové buňky • Obsahuje jedno slovo – slabiku – byte • Při získání údaje čtením se obsah neporuší • Lze do ní zapsat novou informaci s podmínkou že se zruší existující informace • Má jednoznačně přidělenou adresu
Hierarchie paměťového podsystému ŘADIČ
ŘÍDÍCÍ PAMĚŤ
OPERAČNÍ JEDNOTKA
ZÁPISNÍKOVÁ PAMĚŤ
OPERAČNÍ PAMĚŤ
VSTUP / VÝSTUP Ý VNĚJŠÍ VELKOKAPACITNÍ PAMĚŤ
• • •
VNĚJŠÍ VELKOKAPACITNÍ PAMĚŤ
• • •
Procesor: • aritmeticko-logická jednotka • registry • řadič
Aritmeticko logická g jednotka j REGISTR A - STŘADAČ
1 operand 1. d
Z PAMĚTI
P Ř E P Í N A Č
RESITR B - BÁZE
2 operand 2. d REGISTR Q - PODÍL
VÝSLEDEK
řízení posunů
řízení přepínačů
ŘADIČ OPERAČNÍ JEDNOTKY
P Ř E P Í N A Č
∑ DO PAMĚTI
Řadič RDP
ŘÍDÍCÍ REGISTR
OK
Dekodér instrukcí
ČASOVÁNÍ A ŘÍZENÍ PŘEPÍNAČŮ (PŘENOSŮ)
RAP
RAP
ČÍTAČ INSTRUKCÍ
ADRESA
Ústřední řadič
Základní instrukční cyklus
START
Výběrová fáze řadiče
Prováděcí fáze řadiče
HALT
Způsoby komunikace procesoru s okolím • Programovou smyčkou • Přerušením • DMA
Podmíněný ý přenos p dat
Při Připraven? ? ne
ano přenos
Přenos dat systémem přerušení Hlavní program
Přerušení Nalezení příčiny přerušení a uchování stavu CPU
Odskok do podprogramu pro obsluhu přerušení
Obnovení stavu CPU
Posloupnost obsluhy přerušení • Uchování stavu procesoru • Vlastní obsluha přerušení • Obnovení stavu procesoru
Instrukční cyklus s přerušením
Interrupt Disabled
START
Výběrováá Výbě fáze řadiče
Prováděcí P ádě í fáze řadiče
Proces P přerušení Interrupt Enabled
HALT
DMA přenos
Procesor
Paměť
Řadič disků Kradení cyklů
Harwardská koncepce paměť programu
paměť dat
registr instrukcí programu
ALU
řadič
vstupy/ / výstupy
Sériový procesor s jedním tokem instrukcí a jedním tokem dat SISD Procesor
Data
Instrukce
Paměť
Data
Řetězený procesor s jedním tokem dat a vícenásobným ícenásobným tokem instrukcí instr kcí MISD Procesor
Data
Data
Instrukce
Paměť
Maticový procesor s jedním tokem instrukcí a vícenásobným tokem dat SIMD Paměť programů Řídící jednotka systému Instrukce
Instrukce Data
Data P ěť dat Paměť d t
Multiprocesor s mnohonásobným tokem instrukcí a dat MIMD Procesor
Data
Data Instrukce
Instrukce
Paměť
Obecné uspořádání čísla v pevné řádové čárce Znaménko Číslo Řádová čárka
Obecné uspořádání čísla v pohyblivé řádové čárce Znaménko Exponent
Znaménko Mantisa
Obecná struktura instrukce Operační kód
Adresová část
Tříadresová instrukce OK
• • • • • • •
A1
A2
A3
Y = A * B + (C – D) * E / F Instrukce Násob a b p1 Odečti c d Ná b Násob e Děl f Sečti p1 -
Význam A * B -> P1 C - D -> R R * E -> >R R / F -> R R + P1 -> Y
Dvouadresová instrukce OK
• • • • • • • •
A1
Y = A * B + (C – D) * E / F Instrukce Násob a b Zapiš p1 Odečti c d Násob e Děl f y Sečti P1
A2
A R R R R R
Význam * B -> R -> P1 D -> > R * E -> R / F -> R + P1 -> Y
Jednoadresová instrukce OK
• • • • • • • • • • •
Y = A * B + (C – D) * E / F Instrukce Ulož a Násob b Zapiš p1 Ulož c Odečti d Násob e Děl f Sečti p1 Zapiš y
A1
Význam A -> R R * B -> R R -> P1 C -> R R - D -> R R * E -> R R / F -> R R + P1-> R R -> Y
Správce S á procesů ů operačního č íh systému plánování procesů, systému, procesů komunikace mezi procesy, p y, kritická sekce, uváznutí, vlákna.
Pojmy • Program = zápis algoritmu v nějakém programovacím í jazyce j (například ( říkl d ve strojovém j é kódu). Je statický, neměnný (neuvažujeme-li vývoj ý j nových ý h verzíí programů). ů) • Proces (process, task) = běžící program. Proces je tvořen neměnným kódem programu a konstantami a proměnnými daty jako je stav procesoru, data na zásobníku, globální proměnné, halda, soubory atd
Zdroje systému nutné pro běh procesu • operační paměť • procesor • další prostředky (I/O zařízení, zařízení soubory apod.)
2 stavový ý model vytvoření
Spuštění
ukončení
běží í běžící
neběžící
Potlačení
vytvoření
fronta
spuštění
ukončení
procesor potlačení
3 stavový ý model Procesu je přiřazen procesor
vytvoření
připravený
ukončení
běžící Proces musíí P čekat na dokončení I/O nebo b ji jinou událost
I/O nebo jiná událost je ukončena
ukončení
čekající
5-stavový ý model spuštění
vytvoření
ukončení
běžící
připravený Čas, priorita
obnova odložení
Potlačení – čekání na událost
Aktivace – vznik události
Odložený připravený
ukončení
čekající
Aktivace – vznik události
odložení
Odložený čekající
Informace OS o procesu • Process Control Block – tabulka obsahující b h jí í informace i f potřebné ř b é pro definici a správu procesu – – – –
stav procesu (běžící, připravený, …) čítač instrukcí registry i procesoru informace potřebné pro správu paměti ěti – informace potřebné pro správu I/O – účtovací informace
Ukazatel
Stav procesu
Číslo procesu Programový čítač (čítač instrukcí) Registry procesoru
Oblast operační paměti Seznam otevřených souborů
.. .. ..
Přepnutí procesu Proces P1
Operační p systém y
Proces P2
Běžící P1
Uložení kontextu P1
Čekající P2
Načtení kontextu P2 Čekající P1
Běžící P2 Uložení kontextu P2 Načtení kontextu P1 Čekající P2
Běžící P1
Nepreemptivní p p plánování p • V případě nepreemptivního plánování se proces musí procesoru sám vzdát. d Pokud k d má být b doba, d b po kterou je proces ve stavu běžící, omezená, je nutné, aby proces kontroloval časovač a po překročení stanovené doby se dobrovolně vzdal procesoru vyvoláním služby OS, která je k tomuto účelu určena Výhodou je určena. je, že proces nemůže být přerušen, přerušen pokud nechce (například v kritické sekci). N ýh d jje, že Nevýhodou ž špatně š ě chovající h jí í se proces může ůž zablokovat celý OS. Takto fungují například MSWindows.
Preemptivní plánování • V případě preemptivního plánování OS může odebrat procesu procesor. Zpravidla j při p uplynutí py časového kvanta se tak děje určeného pro běh procesu a celá akce je vyvolána přerušením od časovače. časovače Příkladem OS, který používá preemptivní plánování lá á í je j OS Unix. U i
Strategie plánování procesoru podle těchto kritérií: • spravedlnost: každý proces dostane spravedlivý díl času procesoru • efektivita: udržovat maximální vytížení procesoru, příp jiné části systému příp. • čas odezvy: minimalizovat dobu odezvy pro interaktivní uživatele • doba obrátky: minimalizovat dobu zpracování každé dávkové úlohy • průchodnost: maximalizovat množství úloh zpracovaných za jednotku času
Plánovací algoritmy Typ
Využívá charakteristickou veličinu
Princip
FCFS, také FIFO (first come - first served / First in - first out)
toi
řádný frontový režim
SXFS (shortest execution first served)
ti
proces s nejkratší dobou provádění, je první obsloužen
LCFS (least (l completed l dfirst served)
tbi
přednostně ř d ě se obsluhuje bl h j proces, který zatím běžel nejkratší dobu
EDFS (e (earliest lie t - due-time d e ti e fisrst served)
tdi
přednostně řed t ě see obsluhuje b l h je proces, kterému zbývá nejméně času na dokončení, tj. j do okamžiku,, kdyy musí být dokončen
HSFS (highest static priority first served)
Pi
přednostně se obsluhuje proces s nejvyšší statickou prioritou
RR (round-robin)
Δti
cyklická obsluha procesů po časových intervalech
Spolupráce p p mezi procesy p y • sdílená paměť - jednodušší programování, mocnější - programátor má více prostředků, zpravidla i jednodušší implementace.
• zasílání zpráv - flexibilnější, je možné použít i pro komunikaci mezi procesy běžícími na různých pprocesorech oceso ec nebo ebo počítačích poč tač c
• Některé operační systémy podporují oba mechanismy
Prostředky y ppředávání zpráv p • SEND zašle zprávu. Nikdy se nezablokuje. P k d na zprávu Pokud á čeká č ká příjemce říj operacíí RECEIVE, je mu zpráva doručena a příjemce odblokován. • RECEIVE zprávu přijímá. přijímá Pokud žádná zpráva není dostupná, přijímající proces je zablokován. • Je třeba vyřešit problém adresace, tj. určení příjemce. j Lze řešit např. p odesilatele a p identifikací procesu na daném počítači. Jiným řešením je zavedení schránek (mailboxů) a adresace pomocí identifikace schránky.
Sdílená paměť • Sdílená paměť je paměť, do které má přístup více procesů. Může být použita pro p y komunikaci mezi procesy
Souběh - race condition • při přístupu dvou nebo více procesů ke sdíleným d ů dojde datům d jd k chybě, h bě přestože ř ž každý k ždý z procesů ů samostatně se chová korektně • K chybě dochází díky tomu, že data jsou modifikována některým procesem v době, kdy s nimi jiný proces provádí několik operací, o kterých se předpokládalo, že budou provedeny jako jeden nedělitelný celek.
Kritická oblast • Data, která jsou sdílena několika procesy tak, že při přístupu k nim by mohlo dojít k souběhu • Kritická sekce je nejmenší část programu, ve které se pracuje s daty v nějaké kritické oblasti, a která musí být provedena jako jeden celek.
Souběh • Zejména u složitějších datových struktur ( b (obousměrné ě é spojové j é seznamy, složité l ži é dynamické d i ké struktury uložené v souborech apod.) dochází č často k tomu, žže v určitém či é stadiu di zpracování á í jsou j data dočasně nekonzistentní • Pokud v tom okamžiku dojde k přepnutí kontextu na proces, který tato data také používá, může nastat souběh
Problém kritické sekce • umožnit přístup ke kritické oblasti procesům, které o to usilují, při dodržení následujících podmínek: – výhradní přístup; v každém okamžiku smí být v kritické sekci nejvýše j ý jeden j proces p – vývoj; rozhodování o tom, který proces vstoupí do kritické sekce, ovlivňují pouze procesy, které o vstup do kritické sekce usilují; toto rozhodnutí pro žádný proces nemůže být odkládáno do nekonečna; nedodržení této podmínky může vést například k tomu, ž je že j umožněna ž ě pouze striktní t ikt í alternace lt (dva (d procesy se při ři průchodu kritickou sekcí musí pravidelně střídat) – omezené čekání; pokud jeden proces usiluje o vstup do kritické sekce, nemohou ostatní procesy tomuto vstupu zabránit tím, že se j - mohou do této kritické sekce v kritické sekci neustále střídají vstoupit pouze omezený počet krát (zpravidla pouze jednou)
Znázornění paralelismu pomocí Petriho sítí (p (problém kritické sekce)) A
KSP
B
C
KS Q
D
Prostředky pro zajištění výlučného přístupu • Zákaz přerušení • Instrukce Test and set lock • Semafory
Princip operace P P
S(i)=0? ANO NE
S(i) := S(i) - 1
Princip operace V V
ANO
S(i)=C(i)?
NE
S(i) := S(i) + 1
Uváznutí - deadlock • je j situace, kdyy dva nebo více procesů p čekají j na událost, ke které by mohlo dojít pouze pokud by jeden z těchto procesů pokračoval (vyřešení dopravní situace couváním).
Podmínky y uváznutí • Výlučný přístup (mutual exclusion). Existence prostředků, ř dků kkteréé jsou j přidělovány řiděl á pro výhradní ýh d í použití jednomu procesu, tj. nesdílitelných prostředků. dků • Postupné p p přidělování p prostředků ((hold and wait). ) Procesy nežádají o přidělení všech prostředků j , ale postupně. p p Pokud ppožadovaný ý najednou, prostředek není volný, musí proces čekat. • Přidělování prostředků bez preempce. preempce Přidělené prostředky nelze procesu násilím odebrat. • Cyklické C kli ké ččekání ká í
Řešení otázky y uváznutí • ignorovat je - přestože tato strategie vypadá nepřijatelně, používá ji například OS Unix; v případě uváznutí musí zasáhnout některý z uživatelů a jeden nebo více procesů násilím ukončit; v krajním případě může být nutné znovu nastartovat celý systém • předcházet mu - zabránit splnění aspoň jedné z podmínek nutných pro vznik uváznutí y ý se mu - systém y se vyhýbá y ý situaci,, kdyy byy došlo k cyklickému y • vyhýbat čekání tím způsobem, že zná maximální nároky procesů na jednotlivé prostředky a před přidělením každého prostředku zjišťuje, zda existuje způsob jak dokončit všechny procesy i když budou vyžadovat způsob, prostředky odpovídající maximálním nárokům; OS přidělí prostředek pouze tehdy, je-li to bezpečné (existuje-li způsob, jak všechny aktivní procesy zdárně dokončit) • detekovat uváznutí a zotavit se z něj
Předcházení uváznutí • Strategie předcházení uváznutí se snaží zabránit splnění alespoň jedné z podmínek uváznutí: – – – –
Výlučný přístup Postupné přidělování prostředků Přidělování prostředků bez preempce Cyklické čekání
Výlučný ý ýp přístup p • Prostředky, které jsou bez omezení sdílené, nemohou způsobit uváznutí. uváznutí Příkladem jsou read-only soubory. soubory • Virtualizace prostředků - používá se například u tiskáren. P Procesy nepoužívají ží jí přímo ří tiskárnu, ti ká ale l výstupy ýt zapisují i jí do d diskového souboru, který operační systém vytiskne později. U vstupních t í h zařízení ří í systém té načte čt požadovaná ž d á data d t do d souborů, ze kterých je pak jednotlivé procesy čtou. Tato metoda t d se nazývá ý á spooling li (simultaneous ( i lt peripherial i h i l output t t on-line). • Bohužel existují prostředky, které jsou z podstaty nesdílitelné, na které není možné tuto metodu použít.
Postupné p ppřidělování pprostředků • Jednorázové přidělování prostředků - každý proces si vyžádá y všechny y pprostředky, y které potřebuje p j při p svém startu a žádné další mu nebudou později přidělovány. Pokud procesu nemohou být přiděleny všechny požadované prostředky, ř dk nejsou j mu přiděleny řiděl žádné žád é a proces musíí ččekat. k • Alternativou je strategie, při které je možné přidělovat prostředky ř dk pouze procesu, který k ý žádné žád é nemá. á Díky Dík tomu může proces několikrát za dobu svého běhu vrátit všechny prostředky a pak žádat o další. další • Nevýhody: – využití žití prostředků tř dků je j nízké, í ké prostředky tř dk jsou j vlastně l t ě přidělovány řiděl á procesům, které je ve skutečnosti zatím nepotřebují – možnost stárnutí procesů (starvation); nároky procesu, procesu který potřebuje několik často používaných prostředků, nemusí být nikdy uspokojeny a proces tak může čekat neomezenou dobu
Přidělování p prostředků bez ppreempce p • Pokud je možné snadno uschovat a následně obnovit stav prostředků, může operační systém odebrat d b t procesu prostředky, tř dk kt kteréé potřebuje tř b j pro jiné procesy. • Díky nutnosti uschovat o obnovit stav prostředku, je možné tuto strategii používat pouze u prostředků, které to umožňují jako je procesor nebo operační paměť. paměť
Cyklické čekání • Algoritmus, který zamezuje cyklickému č ká í čekání: – Každému typu prostředku je přiděleno číslo. – Pokud má proces přiděleny nějaké prostředky, může žádat pouze o takové další prostředky, j ji h číslo jejichž l je j větší než největší j z čísell procesem už držených prostředků. – O prostředky, ř dk kkteréé mají jí stejné j é čí číslo l musíí žádat žád najednou.
Shrnutí • Některé ze strategií, které se používají pro předcházení uváznutí, uváznutí je možné použít pouze pro určité prostředky (sdílitelné prostředky a prostředky jejichž stav je možné uschovat a prostředky, obnovit). • Ostatní strategie mohou vést k nízkému využití prostředků a ke stárnutí procesů, což může být ppovažováno za tak velkou nevýhodu, ý , že v mnoha operačních systémech nejsou tyto strategie používány.
Vyhýbání se uváznutí • Strategie předcházení uváznutí jsou buď příliš omezující, nebo nepokrývají všechny prostředky používané v příslušném systému. Pokud není možné zabránit prvním třem podmínkám vzniku uváznutí a není schůdné ani podstatné omezení, které klade na systém výše popsaný algoritmus předcházení cyklickému čekání, je možné použít strategii vyhýbání se uváznutí. prostředek systém y kontroluje, j zda existuje j • Při žádosti o p alespoň jeden proces, který je možné po přidělení tohoto prostředku dokončit. Po jeho p j dokončení opět p musí existovat alespoň jeden proces, který může být dokončen a tak dále až po ukončení všech pprocesů. Pokud by p y tato ppodmínka nebyla y splněna, systém prostředek nepřidělí.
Bankéřům algoritmus • Každý proces deklaruje pro každý typ prostředku maximální množství, množství které bude potřebovat. potřebovat • Operační systém si musí při přidělování prostředků ponechat p p tolik p prostředků,, aby y byl y schopen uspokojit maximální požadavky alespoň jednoho procesu. • Tím Tí je j zaručeno, č že ž tento proces skončí k čí a uvolní l í prostředky, které pak mohou být přiděleny dalším procesům OS nekontroluje pouze, procesům. pouze zda je možné dokončit jeden proces, ale všechny aktuální procesy.
Definice problému p
• Bankéř chce rozdělit pevný kapitál abstraktních peněžních jednotek mezi pevný počet zákazníků • Každý zákazník udává předem svou maximální potřebu peněžních jednotek • Bankéř vyhoví zákazníku, pokud potřeba zákazníka nepřevyšuje kapitál bankéře • Během transakcí zákazník může vracet nebo si půjčovat peněžní jednotky • Bankéř musí zaručit, že čekací doba zákazníka na přidělení peněžních jednotek bude vždy konečná • Běžná půjčka zákazníka nesmí nikdy převýšit jeho maximální potřebu • Zákazník zaručuje, že dokončí své transakce a splatí půjčku v konečném čase
Algoritmus • Stav jistý – jestliže bankéř umožní všem zákazníkům dokončení všech jejich transakcí v konečném čase • Stav nejistý – opačná situace
Situace • zákazníka – požadavek = potřeba – půjčka
• bankéře – hotovost = kapitál – součet půjček
Příklad • • • •
bankéř má 10 jednotek zákazníci P,Q R mají potřebu 20 jednotek zápis = (půjčka)požadavek Algoritmus vyšetřuje zákazníky jednoho po druhém a hledá toho, jehož požadavek nepřevyšuje hotovost H
Stav jistý j ý nejdříve uspokojí zákazníka Q H
P Q R
2
H
4 H
4(4)
2(1) 2(7)
P
R
8
4(4)
2(7)
R
2(7)
H
10
Stav nejistý přidělil R jednu jednotku a po uspokojení Q se navodí neřešitelná situace H
1
H
3
4(4) P Q
2(1)
P
3(6) R
R
4(4)
3(6)
Procesy a vlákna •
Program – soubor definovaného formátu obsahující instrukce, data a další informace potřebné ř b é k provedení d í daného d éh úkolu úk l
•
Proces – systémový objekt charakterizovaný svým paměťovým prostorem a kontextem (paměť i některé další zdroje jsou přidělovány procesům)
•
Vlákno, také „sled“ – objekt, který vzniká v rámci procesu, je viditelný pouze uvnitř procesu a je charakterizován svým stavem (CPU se přidělují vláknům)
•
Model – jen procesy (ne vlákna) – proces: jednotka plánování činnosti i jednotka vlastnící prostředky
•
Model – procesy a vlákna – proces: jednotka vlastnící zdroje – vlákno: jednotka plánování činnosti
Procesy a vlákna • Každé vlákno si udržuje svůj vlastní – – – –
•
zásobník PC (program counter) registry TCB (Thread CB)
Vlákno může přistupovat k paměti a ostatním zdrojům svého procesu – –
zdroje procesu sdílí všechny vlákna jednoho procesu jakmile jedno vlákno změní obsah (nelokální – mimo zásobník) b ňk všechny buňky, š h ostatníí vlákna lák (téhož ( éh ž procesu)) to vidí idí – soubor otevřený jedním vláknem mají k dispozici všechny ostatní vlákna (téhož procesu)
Stavy vláken • Tři klíčové stavy vláken: – běží – připravený – čekající
• Vlákna se (samostatně) neodkládají – všechny vlákna jednoho procesu sdílejí stejný adresový prostor
• Ukončení procesu ukončuje všechny vlákna existující v rámci tohoto procesu
Vlákna na uživatelské úrovni • User-Level Threads (ULT) –
Správa vláken se provádí prostřednictvím vláknové knihovny („thread library“) na úrovni uživatelského / aplikačního programu – Jádro o jejich existenci neví přepojování mezi vlákny nepožaduje provádění funkcí jádra nepřepíná se ani kontext procesu ani režim procesoru – Plánování přepínání vláken je specifické pro konkrétní aplikaci aplikace si volí pro sebe nejvhodnější (např. (např plánovací) algoritmus
•
Příklady – – –
POSIX Pthreads Mach C-threads Solaris threads
Vlákna na úrovni jádra • Kernel - Level Threads (KLT) jádro nepoužívá se „thread thread • Správu vláken podporuje jádro, library“ – – – –
•
používá se API pro vláknové služby jádra informaci o kontextu procesů a vláken udržuje jádro přepojování mezi vlákny aktivuje jádro plánování na bázi vláken již v jádře OS
Příklady říkl d – – – – – –
OS/2 Windows 95/98/NT/2000/XP Solaris Tru64 UNIX BeOS Linux
Správce operační paměti, metody přidělování paměti, ochrana paměti, ěti virtuální i t ál í paměť. ěť
Hlavní úkoly správce paměti • Přidělovat operační paměť jednotlivým procesům, ů když kd ž sii ji vyžádají žád jí • Udržovat informace o p paměti, o tom, která část je volná a která přidělená (a komu) • Zařazovat paměť, kterou procesy uvolní, opět do volné části • Odebírat paměť procesům, procesům je-li je li to zapotřebí • ochrana paměti – umožňuje-li to HW
Strategie přidělování paměti • • • • • • •
Přidělování veškeré volné paměti Přidělování pevných bloků paměti p velikosti Přidělování bloků ppaměti proměnné Segmentace paměti Stránkování paměti Stránkování na žádost (demand paging) Segmentace se stránkováním na žádost
Přidělování veškeré volné paměti p • Část paměti RAM je obsazena operačním systémem (kód proměnné, (kód, ě é vyrovnávací á í paměti), ěti) zbytek b t k je j k dispozici pro uživatelský program. V každém okamžiku je tedy v paměti nejvýše jeden uživatelský p g program • Přeadresování provádí program zvaný locator. Locator podle tabulky adres v relativním programu změní (dle umístění) příslušné adresy na absolutní. • Ochrana paměti - pouze ochrana OS před přepsáním uživatelským programem (pomocí mezního registru; změna pouze v privilegovaném stavu procesoru)
Spojité přidělování paměti do jednoho úseku • Nejjednodušší verze: V paměti v daném okamžiku pouze jeden proces, který může ppoužívat celou ppaměť,, • Později přechod na systém, kdy jsou v operační paměti umístěny: operační systém a jednouživatelský proces, zbylé místo nevyužité Æ rozdělení na tři souvislé ( y) oblasti (úseky)
operační systém
uživatelský proces
volný prostor
Operační systém
Základní segment g
inicializace overlay area
výstup provádění
Strategie g přidělování p pevných p ý bloků paměti p • First fit - procházejí se bloky paměti a přidělí se první blok bl k ddélka lk je j větší nebo b rovna požadované d paměti. • Last fit - vybere se poslední vyhovující • Worst W t fit - vybere b se největší j ětší vyhovující h jí í u přidělovaných bloků proměnné velikosti (používá se u strategie přidělování bloků paměti proměnné pro omezení fragmentace) g ) velikosti p • Best fit - vybere se nejmenší vyhovující (pro přidělo ání bloků pevné přidělování pe né velikosti elikosti se zpravidla pra idla používá tato strategie)
Přidělování bloků paměti proměnné velikosti elikosti • Výhody: – ve vnitřní paměti může být několik procesů současně – lepší využití paměti
• Nevýhody: – součet paměťových nároků, které jsou současně v paměti musí být menší nebo roven velikosti paměti – fragmentace paměti - procesy vyžadují souvislé úseky paměti. Může se stát, že není možné spustit další proces, protože má větší nároky na paměť než je velikost největšího volného bloku i přesto, přesto že součet velikostí volných bloků je větší než paměťové nároky procesu
• Pro odstranění fragmentace g ppoužívají j další strategie g správy p y paměti p následující metody: – setřásání bloků; problémy s adresními konstantami lze odstranit použitím segmentace – stránkování = programu se jeví adresní prostor jako souvislý, přestože ve skutečnosti není
Fragmentace paměti 30 KB
volný blok
10 KB
Proces 1
40 KB
volný blok
10 KB
Proces 2
20 KB
volný blok
10 KB
Proces 3 volný blok
30 KB
Setřesená paměť 10 KB
Proces 1
10 KB
Proces 2
10 KB
Proces 3
120 KB
volný blok
Stránkování paměti • Stránkování paměti umožňuje přidělit procesu několik nesouvislých úseků paměti, y pro p proces p iluzi,, že tato ppaměť a vytvořit souvislá je. • Při stránkování paměti je fyzická paměť je rozdělená na rámce - frames (někdy se nerozlišuje rámec a stránka).
St á k á í Stránkování llogické i ké adresy CPU
p
ffyzické i ké adresy f
d page table p f
d
fyzická paměť
čísla rámců á ů
Stránkování
0
logický adresový prostor
1
ppage g 2 page 3
page 0
2
page 0 page 1
fyzická paměť
0 1 2 3
1 4 3 7 tabulka stránek
3
page 2
4
page 1
5 6 7
page 3
Princip p stránkování paměti p • Logická adresa (= adresa použitá v programu) je rozdělena na dvě složky, složky číslo stránky a posunutí v rámci stránky (OFFSET). Velikost stránky bývá řádově kilobyty. kilobyty Při velikosti stránky 4 KB je pro offset potřeba 12 bitů (2^12 = 4K), čili spodních 12 bitů logické adresy je offset offset, zbylé bity jsou číslo stránky. Po rozkladu adresy (vše provádí procesor bez asistence programátora) na číslo stránky a offset se číslo stránky použije jako index do tab lk stránek (každý proces má ssvoji tabulky oji vlastní). lastní) V tabulce stránek je uvedeno číslo rámce ve fyzické paměti. ěti K číslu čí l rámce á se připojí ři jí offset ff t a výsledkem ý l dk je fyzická adresa v paměti.
Vytváření adresy při stránkové organi aci paměti organizaci Tabulka stránek konkrétního programu
0 1 . V . . . .
adr. d virt. i stránky á k Ad Adresa V slova
Skutečná adresa slova
Adr. fyz. stránky Adresa slova
Segmentace paměti • Fyzická (skutečná) adresa v paměti se získává přičtením řič í obsahu b h segment registru i a logické l i ké adrese (= adresa použitá v programu). Obsah segment registru i nastavuje j OS a pro uživatelský ži l ký program je nepřístupný. Díky tomu adresní prostor k ždéh procesu začíná každého čí á na 0 a odpadají d d jí problémy blé s relokací programu. Většina systémů, které používají ží jí segmentacii paměti ě i dovoluje d l j procesům ů použít více segmentů.
Segmentace LAP
operační systém
FAP
Segmentace segment 0
segment 1
Source text Symbol y table
segment 2
segment 3
segment 4
Constant Parse tree
Call stack
Segmentace Symbol table Source text
Constant table Parse tree
Call stack
Segmentace s limit base
CPU
s
segment table
d <
fyzická paměť +
Segmentace g
1400 segment 0
segmentt 4
2400
segment 0
3200 segment 3 segment 3 segment 1 segment g 2
limit
base
0
1000
1400
1
400
6300
2
400
4300
3
1100
3200
4
1000
4700
4300 segment g 2
4700 segment 4
5700 6300 segment 1
6700
Struktura paměťového prostoru procesu proces • kód programu -> neměnný (obsah ani délka) • konstanty -> neměnné • inicializované statické proměnné -> délka se nemění, nemění obsah je nastaven při startu procesu (načte se z souboru, který obsahuje obs uje program), p og ), při p bě běhu u pprocesu ocesu se jejich jej c obsah obs může ů e měnit, délka se nemění • neinicializované statické pproměnné,, délka se nemění,, obsah ano y z pprocedur a lokální pproměnné a • zásobník ((návratové adresy parametry); proměnná velikost i obsah, neobsahuje díry p velikost i obsah,, může obsahovat díry y • halda;; proměnná • paměť pro overlaye (překryvné segmenty), dynamické knihovny
Segmentace paměti • Výhody: – jje možné ž é dynamické d i ké přemísťování ř í ť á í segmentů tů za běhu běh procesu pro odstranění fragmentace (lze spojovat volné p j bloku)) blokyy ppaměti ppřesunutím překážejícího – možnost dodatečně zvětšovat adresní prostor procesu – není nutné provádět relokaci programu – možnost sdílení segmentů
• Nevýhody: – součet nároků procesů v paměti musí být menší nebo roven velikost paměti (lze obejít odkládáním segmentů na disk) - může časo časověě náročné – nutná hardwarová podpora segmentace
Ochrana paměti • mezní registr na číslo segmentu • pro každý segment mezní registr obsahující maximální povolenou adresu segmentu (limit velikosti segmentu); segmenty mají různou délku !!!
Ochrana mezními registry g y Horní mezní adresa HMA RSH
( HMA – A ) : 0
RAP
A
RSD
( A- DMA ) : 0 DMA Dolní mezní adresa
<0
Překročení horní meze
Adresový registr paměti
<0
Překročení dolní meze
Ochrana p paměti klíči Registr klíče programu
adresový registr B RAP
A
1 RKP
4
B = BRZ
B = BRZ
& BRZ
KP
4
registr i t zámku á k adresa stránky 4
Z – zámek ZB
Paměť zámků stránek 0 1
Z0 Z1
B
ZB
&
1
1
RZP
Stránkování na žádost ((demand paging) p g g) • V tabulce stránek je pro každou stránku údaj, zda se stránka nachází v p paměti nebo na disku. V ppřípadě, p , že jje stránka na disku, je uvedeno i její umístění na disku. Pro stránkování se používá zpravidla zvláštní soubor, partition (oblast na disku) nebo b ddokonce k di disk. k • V případě, že se proces odkazuje na stránku, která je přítomna ve fyzické paměti, paměti vše probíhá jako u běžného stránkování. stránkování Pokud však stránka ve fyzické paměti není (je na disku), dojde k vyvolání y vnitřního ppřerušení "výpadek ýp stránky". y Obslužnýý program přerušení musí do vnitřní paměti zavést stránku z disku, opravit odkaz v tabulce stránek, a zajistit zopakování instrukce, kt á výpadek která ý d k stránky t á k způsobila. ů bil Pokud P k d je j ve vnitřní itř í paměti ěti volné místo, použije se libolný z volných rámců. Pokud jsou všechny rámce plné, je nutné vybrat některý z nich a přenést jej do stránkovacího souboru na disk.
Algoritmy g y nahrazování stránek • Algoritmus FIFO • Algoritmus LRU • Algoritmus NUR - zjednodušení algoritmu LRU
Algoritmus g FIFO • Vyhodí z paměti stránku, která je v ní nejdéle. Bohužel to může být stránka stránka, která se používá trvale, což efektivitu algoritmu snižuje. • Algoritmus FIFO také vykazuje tzv. FIFO anomálií. provede tentýž ý výpočet ýp dvakrát s různě Pokud se p velkou vnitřní pamětí, mělo by při výpočtu s větší pamětí dojít nejvýše ke stejnému počtu výpadků stránek jako při výpočtu s menší pamětí. Při použití strategie t t i FIFO to t nemusíí vždy žd platit. l tit Navíc N í neníí snadné implementovat nahrazování stránek pomocí strategie FIFO.
Algoritmus LRU (least recently used)) • vyhazuje z paměti tu stránku, která nebyla nejdelší dobu použita použita. Implementace tohoto algoritmu může používat buď registr udávající čas posledního odkazu na danou stránku nebo frontu, frontu na jejiž začátek se zařazuje stránka, na kterou byl pprávě proveden p odkaz. Má-li být ý z ppaměti některá stránka vyhozena, vybere se ta, která nebyla použita nejdéle (v případě použití fronty je to poslední ve frontě). Algoritmus LRU je sice kvalitní, ale jeho hardwarová implementace je obtížná. btíž á
Algoritmus g NUR ((not used recently) y) • Zjednodušení algoritmu LRU. • V tomto případě je každému rámci přiřazen jednobitový příznak, zda byla příslušná stránka použita. Při hledání oběti se vybere ta stránka, která použita nebyla. • V algoritmech nahrazování stránek je vhodné brát v úvahu, zda byl obsah stránky změněn. V případě, že nebyl, stačí stránku pouze zahodit (její kopie je na disku). Pokud byla stránka změněna, je nutné ji nahrát na disk, což trvá přibližně stejně dlouho jako načtení nové stránky z disku. Pro tento účel bývá pro každý rámec k dispozici jednobitový příznak, který se vynuluje při zavedení stránky do vnitřní paměti a nastaví při zápisu do rámce.
Segmentace se stránkováním na žádost • Logická adresa se skládá z čísla segmentu, čísla stránky a offsetu na stránce. Každý pproces má vlastní tabulku segmentů. g Každý ý segment má vlastní tabulku stránek (pro sdílený segment je tabulka jen jedna). jedna)
Segmentace se stránkováním na žádost • Výhody: – odstranění fragmentace – je možné používat více paměti (virtuální paměť) než je velikost fyzické paměti – je možné sdílet segmenty
• Nevýhody: – složitost – nutná podpora hardware
Vytváření adresy při segmentové organizaci Virtuální adresa r. začátek tab. segmentů
č. segmentu
∑
Tabulka segmentů
Poč. adr.tab. stránek daného segmentu Tabulka T b lk stránek
adr. stránky
adr. slova
∑
∑ Adr. fyz. str.
Skutečná Sk t č á adresa
Správa S á souborů, b ů organizace i adresářů vlastnosti souborů, adresářů, souborů metody y přístupu p p na disk,, výpočet ýp parametrů disku.
Systémy souborů • Soubory uchovávají data a programy • OS implementuje abstraktní koncepci souborů správou velkokapacitních záznamových zařízení y souborů se skládá ze dvou částí: • Systém – sada souborů obsahující vlastní uložené informace – struktura adresářů obsahující informace o souborech
Organizace struktury adresářů • Dnes obvykle v nějaké podobě grafu s kořenem. • Aktuální adresář - pozice uživatele v adresářové struktuře • Absolutní cesta - jméno souboru spojené se jmény všech podadresářů ležících na cestě z kořenového adresáře k danému souboru • Relativní cesta - jméno spojené se jmény všech podadresářů ležících na cestě z aktuálního adresáře k danému souboru, obvykle přidány speciální jména adresářů pro aktuální adresář a předchůdce adresáře (., ..) • Stromová struktura - adresář obsahuje množinu souborů a adresářů, adresářů strom má kořenový adresář • Struktura acyklického y ggrafu - sdílení adresářů a souborů,, linky y • Struktura obecného grafu - možnost cyklů znesnadňuje procházení adresářů
Stromová struktura - /A/B/D/g g A
e
B
a
C
D
b
c
d
f
g
Acyklický graf – /A/B/D/g a /C/g ukazují na stejný soubor A
e
B
a
C
D
b
c
d
f
g
Obecný graf - /A/B/D/g a např. /A/B/D/A/C/ ukazují /A/B/D/A/C/g k jí na stejný t j ý soubor A
e
B
a
C
D
b
c
d
f
g
Správa velkokapacitních záznamových zařízení • V Velkokapacitní lk k it í záznamová á á zařízení ří í uchovávají h á jí permanentně velké množství dat (na rozdíl od operační paměti) • Disk má S sektorů, sektorů H hlav a T stop. stop • Převod trojrozměrné adresy (s, h, t), kde s je číslo sektoru, h je číslo hlavy a t je číslo stopy (cylindru) ýp prostor sektorů p pomocí formule na jjednorozměrný
s + S × (h + H × t )
Alokační metody • Dány možností přímého přístupu na disk. • Souvislá alokace – Každý soubor zabírá souvislou množinu bloků na disku. Adresa souboru je pak udána pouze adresou prvního bloku. – Výhodou je malá pravděpodobnost pohybu hlavou disku. – Nevýhodou je nacházení volného místa pro soubor a obtížná implementace dynamických změn velikosti souboru (zvětšování). • Spojovaná alokace – Odstraňuje nevýhody souvislé alokace pospojováním bloků použitých pro soubor. – Nevýhodou ýh d tohoto h přístupu ří je j ztráta á "hezké" "h ké" velikosti lik i a relativní l i í pomalost při náhodném přístupu do souboru. – Úpravou Ú jje FAT, FAT kd kde spojový j ý seznam jje tvořen t ř polem l na vyhrazeném místě disku.
Indexová alokace - upravuje špatný přímý přístup spojované metody umístěním indexů bloků jednotlivých souborů pohromadě
Plánování disku • Čas přístupu na disk je dělen na tři části: – SEEK přesun hlavy na požadovaný cylindr – LATENCY otočení disku na začátek požadovaného sektoru k – TRANSFER přesun dat z disku/na disk
• Při velkých zátěžích v OS s více procesy nejvíce zpomaluje přístup na disk čas SEEK.
Obsluha p požadavků na přístup p p k disku • Při vyřizování ři á í požadavku ž d k OS na disk di k je j potřeba ř b nejprve vystavit hlavy na příslušnou stopu a pak počkat, až bude požadovaný sektor pod hlavami. U vvíceúlohových ceú o ovýc sys systémů é ů mohou o ou ppřicházet c e požadavky po d v y na disk rychleji, než je možné je vyřizovat. • Vyřizování V ři á í požadavků ž d ků v pořadí, ř dí jak j k přicházejí ři há jí (tzv. (t FIFO nebo FCFS - First In First Out, First Come First Serve), není optimální.
FCFS (First Come Come, First Served) • Vhodný pro lehké zátěže zátěže. • žádosti v pořadí: 98, 183, 37, 122, 14, 124, 65, 67 • hlavy jsou na pozici 53 14
37
53
65 67
98
122 124
183
• Používají se jiné algoritmy (oba lze modifikovat v případě, že existuje rychlý způsob, jak se dostat na stopu 0): – SSF (Shortest Seek First) • máme-li hlavu na 50 cylindru a přijdou požadavky na 52, 80, 7, 49, 45 -> SSF -> bude vyřízeno v pořadí 50, 49, 52, 45, 80, 7 • dochází k diskriminaci okrajových cylindrů
– Elevátorový ý algoritmus g • totéž co automatické výtahy (nahoru -> dolů) • pohyb hlavy je změněn na 50, 50 52, 52 80, 80 49, 49 45, 45 7
SSTF (Shortest Seek Time First) • Naplánován je požadavek s nejmenším relativním pohybem hlavy. • Existuje zde možnost možnost, že nastane starvation. 14
37
53
65 67
98
122 124
183
SCAN • Je určen směr pohybu hlav. Z fronty jsou zpracovávány pouze požadavky postupně v určeném směru. Po zpracování nejkrajnějšího jk j ějšíh požadavku ž d k se směr ě pohybu h b hlav obrátí. 14
37
53
65 67
98
122 124
183
C-SCAN C SCAN (Circular SCAN) • posouvá hlavy pouze v jednom směru a po zpracování nejkrajnějšího požadavku přesune hl hlavy opět ě na začátek. čá k 14
37
53
65 67
98
122 124
183
Příklad - zadání • Disk Di k s parametry t – – – –
20 povrchů, 25 sektorů/stopu, 800 stop/povrch 512 slabik/blok, slabik/blok 3600 ot/min, ot/min Rotační zpoždění = 16,7 ms Průměrná doba vystavení = 28 ms (mezi válci 7 ms)
• Slabik/stopu – Slabik/blok x bloků/stopu – 512 x 25 = 12 800 B = 12,8 kB
• Slabik/povrch – Slabik/stopu x stop/povrch – 12 800 x 800 = 10 240 000 B = 10,24 10 24 MB
• Slabik/svazek – Slabik/povrch x povrchů/svazek – 10,24 x 20 = 204,8 MB
Doba přečtení celého disku sekvenčně ( álel po válci, (válel álci sekvenčně) sek enčně) • Doba přečtení stopy : 16,7 ms (doba otočky) • Doba přečtení válce = doba přečtení stopy x stop/válec t / ál = 16,7 16 7 x 20 = 334 ms • Doba p přečtení svazku = čtení 800 válců + 799 vystavení = 800 x 334 + 799 x 7 = 267200 + 5593= 272793 ms = 272,793 272 793 s • Doba odpovídající čtení slabik = 273s/204,8MB = 1,33 ms/KB
Příklad - zadání • Disk s parametry – – – – – – –
6000 záznamů á ů po 200 200B 1K sektor 16 sektorů/stopu Clustery po 4 sektorech Blokování více záznamů do sektorů P ů ě á doba Průměrná d b vystaveníí = 25 ms 3600 ot/min, rotační zpoždění = 16,7 ms
• Kolik se obsadí clusterů? • Jak dlo dlouho ho se čte cluster/soubor? cl ster/so bor?
Řešení • Volí se blokovací faktor 5 (24B fragmentace při K=1024)) • Pak je 20 záznamů/cluster (4 sektory x 5) • A je třeba 300 clusterů (6000 záznamů/20) • Průměrná doba čekání na natočení na cluster = rotační zpoždění/2= 8ms • Průměrná doba p přenesení bloku =1/4stopy= py rotační zpoždění/4= 4 ms • Průměrná doba čtení clusteru = průměrná doba vystavení 25ms + 8ms + 4 ms = 37 ms • Průměrná P ů ě á doba d b čtení čt í souboru b = 300 clusterů l t ů x 37 ms = 11,1 s
Windows XP, UNIX (Linux) architektura, vlastnosti, služby, i t l instalace.
BIOS – Basic Input Output System • Tvoří rozhraní mezi hardwarem a operačním č í systémem té • Provádí úvodní test p po spuštění p ppočítače • Umožňuje nastavení základních parametrů počítače • Zavádí operační systém • Poskytuje P k j operačnímu č í systému é prostředky ř dk pro realizaci víceúlohového prostředí
Jádro OS DOS • IO.SYS (IBMBIO.COM) – příkazy a rutiny V/V p – načte zaváděcí sektor DOSu do operační p operací paměti a předá řízení – zůstává v paměti (mimo zavaděč) • MSDOS.SYS (IBMDOS.COM) – interní příkazy a rutiny – zůstává v paměti • COMMAND. COM – interpret – Rezidentní funkce – trvale v paměti (DIR,CLS..) – Transientní T i í funkce f k – nejsou j v paměti ě i – musíí být bý přístupné na disku
Komponenty p y Windows 98
Windows XP – – – – –
32-bitová architektura Intel, multi-uživatelský univerzální OS pro PC, plánování – preemptivní multitasking aplikace modelu klient-server na více různých úrovních uplatněná architektura mikrojádra
• Klíčové cíle: – – – – – – – –
portabilita, přenositelnost b bezpečnost, č t spolehlivost l hli t splnění norem POSIX extensibility, rozšiřitelnost podpora multiprocessingu velký výkon podpora národních klonů slučitelnost s MS-DOS a MS-Windows aplikacemi
Architektura XP
Základní typy přechodů mezi stavy rámců
Uspořádání virtuální paměti ve Windows XP
Princip 2-úrovňové 2 úrovňové hierarchické tabulkyy stránek v XP
Executive – Plug-and-Play Manager • Plug-and-Play (PnP) manager – používá se k rozpoznání a pro přizpůsobení systému změnám konfigurace hardware – zařízení a driver musí splňovat PnP standard
• Když y se ppřidá nové zařízení ((PCI,, USB)) zavede PnP manager odpovídající driver • PnP manager také sleduje zdroje používané každým zařízením a zavádí potřebné drivery
Executive – Registry • vnitřní databáze • v jednotlivých úlech se pamatují – – – –
implicitní preference uživatelů informace o instalacích software bezpečnostní informace ...
• systémový úl se používá při zavádění – proto součást Executive • ex. nástroje á j pro periodickou i di k archivaci hi i databáze d bá a pro návrat k předchozí verzi po instalaci chybné aplikace třetí strany
Booting – zavedení systému • zapnutí (energie) → spustí se provádění BIOS z ROM zařízení ze kterého se bude zavádět • BIOS identifikuje zařízení, zavlékací program – bootstrap loader • BIOS zvede zavlékací program ze zavlékacího sektoru tohoto zařízení • Bootstrap loader zná formát systému souborů a zavede z kořenového adresáře pprogram g NTLDR • NTLDR – ze zavlékacího zařízení (boot device) zavede knihovnu HAL, jádro a systémový úl (registry) – určí ze systémového úlu driver zařízení pro zavedení operačního systému (boot driver) a zavede jej a spustí jádro
.
..
Systém souborů • alokační blok se nazývá cluster – cluster l t je j tvořen t ř jistým ji tý počtem čt sektorů, kt ů délka délk = mocnina 2 (sektor pro HD < 1 GB, GB 1 KB pro 1 GB HD, HD 2K pro 2 GB HD, 4 KB pro 4 GB, 32 KB pro 32 GB, 128 KB pro větší disky ) – má délku menší, než by si vynucovalo použití 16-bitové FAT vzhledem ke kapacitám používaných disků (desítky GB), – je tudíž ud minimalizovaná ov vnitřní v fragmentace g e ce
NTFS — vnitřní uspořádání • •
diskové adresy NTFS: pořadová čísla – logical cluster numbers (LCNs) soubor v NTFS – není prostým proudem bytů jako vMS-DOS nebo v UNIXu, – je spíše strukturovaným objektem tvořeným atributy (pojmenované atributy – jméno, přístupová práva, doba vytvoření, . . . nepojmenované atributy – data) – je popsaný jedním nebo několika záznamy v poli (,,řádku”) uchovávaném ve speciálním souboru (,,tabulce ( tabulce”)) – Master File Table (MFT) – zobrazení souboru – • rezidentní atributy (definice a méně rozsáhlá data) v záznamech MFT • nerezidentní atributyy (nerezidentní ( vůči MFT)) – rozsáhlé datové atributyy v externích alokačních blocích referencovaných z rezidentních atributů
NTFS — vnitřní uspořádání Každý soubor na NTFS svazku má • vnější jméno (až 255 znaků) a • jedinečné vnitřní jméno, ID, file reference: – 64-bitové hodnota tvořená • 48-bitovým číslem souboru (pořadové číslo definičního záznamu souboru v MFT) a • 16-bitovým pořadovým číslem inkrementovaným každým použitím záznamu MFT ((lze ppoužít k provádění p vnitřních kontrol konzistence))
•
prostor jmen NTFS je organizován do hierarchie adresářů – index jmen v každém adresáři má strukturu B+-stromu – v listech B+-stromu jjsou vedle ukazatelů na data zopakovány p y atributyy typu yp jméno, rozměr, doba vytvoření (pro výpisy) – rychlé prohlížení – jména souborů jsou tříděná, doba prohlížení neroste lineárně s růstem počtem souboru
Vnitřní struktura OS UNIX
Stavy procesu