Paralelní systémy

Download Report

Transcript Paralelní systémy

4. přednáška
26. 2. 2013
-
holý počítač, BIOS, virtuální počítač
vývoj operačních systémů
multiprocessing
paralelní systémy
Studijní materiály najdete na adrese:
http://www.uai.fme.vutbr.cz/~vdumek/
“Holý” počítač
Operační paměť
I/O procesor
(kanál)
I/O procesor
(kanál)
Řídící jednotka
Řídící jednotka
Periferie
Periferie
Procesor
Procesor
BIOS – Basic Input Ouput System
- základní souhrn instrukcí a funkcí nutných pro spuštění
počítače
- propojuje HW a SW
- je tvořen sadou ovladačů základních komponent systému
- BIOS sděluje informace o HW, který je v počítači a OS
říká, jak s ním má nejlépe pracovat, jaké má potíže
- první vrstva BIOSu v ROM (informace pro základní používání
komponent, typ pamětí, typ procesoru), druhá vrstva v čipu CMOS
(nastavení prováděná v menu), třetí vrstva jsou ovladače zaváděné
v průběhu spouštění OS
- po zapnutí:
nastaví konfiguraci počítače z CMOS paměti
provede autonomní test počítače (POST Power On Self
Test)
inicializuje komponenty
v konečné fázi spouští OS
BIOS
Virtuální počítač
Uživatelské
programy
Proces 1
Proces 3
Virtuální počítač
Holý počítač
Proces 4
Proces 2
Programy jádra
operačního
systému
Vývoj operačních systémů
1940 – polovina 50. let
přímá interakce programátora s technickým vybavením, programátor
a operátor v jedné osobě, bez operačního systému, absolutní zavaděč,
konzola, děrné štítky a děrná páska, kontrolky, nízké využití drahého
HW, dva hlavní problémy: plánování (každý uživatel si musel
vyhradit strojový čas pro svůj výpočet (zápis do nějakého seznamu),
často docházelo k jeho nedodržení), přípravný čas (provádění
programu (job) zahrnovalo loading zdrojového kódu, linkeru spolu s
různými funkcemi, každý z těchto kroků znamenal mount a dismount
pásky nebo čtení sady děrných štítků, výskyt chyby znamenal znovu
začátek), éra sériového zpracování (Serial Processing), v průběhu
času byly zavedeny nástroje pro zlepšení sériového zpracování, byly
vyvinuty různé SW nástroje pro zefektivnění práce (knihovny,
linkers, loaders, debuggers, I/O driver routines, ...)
Vývoj operačních systémů
1955 – 1965
počítače byly velice drahé a bylo nezbytné zvýšit jejich
využití, zbytečné prostoje během přípravných prací byly
neakceptovatelné, pro zvýšení využití se zavedly jednoduché
dávkové systémy (Simple Batch Systems), prvním byl
IBSYS pro počítače IBM, objevuje se první operační systém
– monitor, byl rezidentně umístěný v paměti, jazyk k
provádění instrukcí monitoru – JCL (Job Control Language)
zásoboval monitor instrukcemi, procesorový čas tak
alternoval mezi monitorem a uživatelským programem, bylo
to za cenu dvou obětí: monitor zabíral paměť a pro
provádění monitoru je spotřebováván strojový čas, využití
procesoru je však zvýšeno
Memory Layout for a Resident Monitor
Interrupt
processing
Monitor
Device driver
Job sequencing
Control language
interpreter
Boundary
User
program
area
Vývoj operačních systémů
od první poloviny 60. let
Během jednoduchého dávkového zpracování je procesor
často nečinný (idle). Problémem je rychlost I/O zařízení, na
která se musí čekat. Z tabulky vyplývá, že téměř 96% času
se spotřebuje čekáním na I/O operaci a přenos dat do
souboru. Pokud máme dostatek paměti pro monitor a
uživatelské programy, můžeme mezi nimi alternovat
(provést je „najednou“). Takový způsob je známý jako
Multiprogrammed Batch Systems (dávkové zpracování s
multiprogramováním), multitasking, výhody jsou patrné z
porovnání utilizačních histogramů, multiprogramování
musí počítat s HW předpoklady (IRQ, DMA, MMU)
Efekt multiprogramování na využití zdrojů
JOB1
JOB2
JOB3
Typ úlohy
Heavy compute
Heavy I/O
Heavy I/O
Délka
5 min.
15 min.
10 min.
Požadavek na paměť
50 K
100 K
75 K
Potřeba disku
Ne
Ne
Ano
Potřeba terminálu
Ne
Ano
Ne
Potřeba tiskárny
Ne
Ne
Ano
Uniprogramming
Multiprogramming
Využití procesoru
22%
43%
Využití paměti
30%
67%
Využití disku
33%
67%
Využití tiskárny
33%
67%
Spotřebovaný čas
35 min.
20 min.
Výkon
6 jobs/hod.
9 jobs/hod.
Průměrná odezva
18 min.
10 min.
Job1
Utilization Histogram
Job2
Job3
100%
100%
CPU
0%
0%
100%
100%
Paměť
0%
0%
100%
100%
Disk
0%
0%
100%
100%
Terminál
0%
0%
100%
100%
Tiskárna
0%
0
5
10
15
20
25
čas [min]
0%
30
0
5
10
15
čas [min]
Výpočet využití procesoru
Čtení záznamu ze souboru
Provedení 100 instrukcí
Zápis záznamu do souboru
Součet
15 ms
1 ms
15 ms
31 ms
Percent CPU Utilization = 1/31 = 0,032 (3,2%)
Vývoj operačních systémů
od druhé poloviny 60. let
Pro většinu úloh je žádoucí nabídnout uživateli možnost interakce s
výpočtem, nejprve pro sálové počítače, dnes zcela samozřejmá pro všechny
kategorie počítačů. Jedná se o systémy se sdílením času TSS (Time
Sharing Systems), jedná se také o multiprogramové systémy, v rámci
multitaskingu je provozováno více úloh různých uživatelů, prvním TSS byl
CTSS (Compatible Time Sharing System) MAC (Multiple Access
Computer) pro počítač IBM 709 v roce 1961, zavedení TSS
(multiprogramování) přineslo řadu nových problémů pro OS, jedná se o
ochranu paměti, ochranu souborového systému, soupeření o zdroje, ...
1980 – současnost
osobní počítače, pracovní stanice, inteligence do koncových zařízení,
počítačové sítě, paralelní systémy
Time-Sharing Systems
dávkové OS nepodporovaly interakci s uživateli, TSS rozšiřuje pojem
multiprogramování na správu více interaktivních úloh, procesor je sdílen více
uživateli (podle výkonu systému o sobě uživatelé nemusí vědět), objevuje se
chráněný systém souborů
Batch
Multiprogramming
Time Sharing
Hlavní účel
Maximalizovat užití
procesoru
Minimalizovat čas
odezvy
Zdroj příkazů pro OS
Příkazy JCL
Příkazy zadávané z
terminálu
- prvním TSS byl CTSS pro počítač IBM 709 v roce 1961
Multiprogramování
Uniprogramming
Run
A
Run
A
Wait
Wait
čas
Multiprogramming se dvěma programy
Run
A
Run
B
Wait
Run
A
Run
B
Wait
čas
Multiprogramming se třemi programy
Run
A
Run
B
čas
Run
C
Wait
Run
A
Run
B
Run
C
Wait
Multiprocessing
Interleaving (multiprogramming, one processor) - prokládání
Proces1
Proces2
běží
Proces3
blokován
čas
jeden procesor
Overlapping (multiprocessing, three processors) - překrývání
Proces1
Proces2
běží
Proces3
blokován
čas
tři procesory
Počítačové systémy
Počítačový systém
- hardware („holý počítač“)
- operační systém
- aplikační programy (překladače, hry, databázové systémy,
systémové nástroje, …)
- uživatelé
Paralelní systémy
Multiprocesorový systém obsahuje více procesorů (p > 1) sdílejících společnou paměť,
sběrnice, hodiny a periferie. Paralelní systémy dělíme na symetrické a asymetrické.
Paralelní systém – skutečný
paralelismus procesů, těsně vázané
systémy, společný FAP, sdílí se
hodiny, vyšší propustnost a
spolehlivost
Distribuovaný systém –
paralelismus procesů, volně vázané
systémy, více FAP, komunikace
periferními operacemi, každý
procesor má vlastní paměť a hodiny
Multiprocessing
Symetrický multiprocessing (SMP)
- používá rovnocenné univerzální procesory (vlastní časování, ALU, registry), každý
procesor má přístup do hlavní paměti a prostřednictvím sběrnice k I/O zařízením,
procesory spolu mohou komunikovat prostřednictvím paměti (sdílení) nebo
zpráv, na každém běží část operačního systému. Procesy se procesoru přidělují
jako celky, někdy se proces může dělit na samostatné části – vlákna (thread).
Potom se i vlákna mohou přidělovat jednotlivým procesorům. Dělení procesů na
vlákna vede při použití víceprocesorových počítačů ke zrychlení výpočtu. Se
systémovými strukturami může pracovat více procesorů. Plánování je provedeno
pro každý procesor, důraz je kladen na synchronizaci procesů (sledů).
Asymetrický multiprocessing (ASMP)
- uplatňuje mezi procesory vztah master – slave, ty nemusí být stejného typu
(vektorový počítač Convex, 128 procesorů, speciální SW). ASMP funguje i pro
počítače PC pro specializované procesory (FPU – pro pohyblivou čárku, grafika,
zvuková karta, …). Řízení zajišťuje CPU – centrální (univerzální) procesor.
Pouze jeden procesor smí pracovat se systémovými datovými strukturami. Jsou
jednodušší, není potřeba zajišťovat sdílení systémových struktur, nevýhodou je
nižší pružnost a výkonnost.
Architektura SMP
Processor
Processor
L1
L2
L1
...
Processor
L1
L2
L2
System bus
I/O adapter
I/O adapter
Main memory
I/O adapter
I/O
subsystem
Distribuované a agentové systémy
Distribuované systémy
Klasické – procesory jsou méně vázané, jde vlastně o samostatné počítače (uzly)
spojené pomocí komunikační sítě. Důvody pro budování distribuovaných systémů:
- sdílení zdrojů
- urychlení výpočtů
- zvýšení spolehlivosti (porovnání výsledků, uložení souborů na více
místech, …)
Mezi paralelními systémy a klasickými distribuovanými systémy se nachází
počítačový cluster. Ten umožňuje efektivní spojení výkonu více počítačů, nejen jejich
procesorů. Navzájem jsou propojeny vysokorychlostní sítí.
Agentové systémy
- jsou vázány volněji než klasické distribuované systémy. Agenti se skládají z jádra
(programu) a komunikační obálky pro umožnění komunikace s jinými agenty. Agent
je samostatný systém schopný spolupracovat s jinými systémy. Na rozdíl od přesně
organizovaného distribuovaného systému jsou agentové systémy schopné v případě
potřeby přibrat další agenty ke spolupráci.
Paralelismus - distribuovanost
Paralelní systém – skutečný
paralelismus procesů, těsně vázané
systémy, společný FAP, sdílí se hodiny,
vyšší propustnost a spolehlivost
Paralelní systém
paměť
procesor
procesor
procesor
procesor
Distribuovaný systém – paralelismus
procesů, volně vázané systémy, více
FAP, komunikace periferními
operacemi, každý procesor má vlastní
paměť a hodiny
Nezávislý – běží samostatné procesy, žádná
Distribuovaný systém
distribuce dat a řízení
Mem
Mem
P
P
synchronizace, víceuživatelské systémy
Velmi hrubozrnný – distribuované
zpracování v síti (řešení jedné komplexní úlohy)
řídká interakce mezi procesy (omezení síťové
režie)
Hrubozrnný – běh více procesů na více
procesorech, jeden FAP, multiprocessing
Střednězrnný – multitasking, sledy v rámci
jednoho procesu v časté interakci,
multiprogramming
Jemnozrnný – paralelní řešení operací
(maticové procesory), stejná operace na datech