OPSY - WordPress.com

Transkript

OPSY - WordPress.com
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