1. konzultace (5 hodin)
28. 2. 2014
Studijní materiály najdete na adrese:
http://www.uai.fme.vutbr.cz/~vdumek/
Úvodní informace
- konzultace – učebna A4/715
- hodnocení studujícího: 2 nebo 3 ústní otázky
- podmínka pro 2 otázky - vypracování literární práce na téma:
Počítače v pozadí zkázy civilizace ...
(forma literární práce – povídka)
Literatura
Gary Nutt: Operating Systems, Third Edition. ISBN: 0201773449
William Stallings: Operating Systems: Internals and Design Principles
(7th Edition, 2011)
Andrew S. Tanenbaum: Operating Systems: Design and Principles (3rd
Edition)
Madnick, Donovan: Operační systémy. Praha 1981.
Bach: Principy operačního systému UNIX. Praha 1993.
Abraham Silberschatz: Operating System Concepts (7th Edition)
Čada: Operační systémy. Praha 1994.
Plášil: Operační systémy. Skriptum ČVUT, Praha 1989.
http://www. …
Podpůrné materiály pro konzultace:
http://www.uai.fme.vutbr.cz/~vdumek
Souvislost hardware - software
Software
Hardware
Process
management
CPU
Memory
management
Main
Memory
I/O Control
File
Management
I/O Devices
Secondary
Storage
Komponenty počítačového systému
- hardware – poskytuje základní systémové zdroje (CPU, memory, I/O devices)
- operační systém – řídí a koordinuje použití prostředků mezi různými procesy (programy)
různých uživatelů
- aplikační programy – definuje způsoby použití systémových zdrojů pro řešení
uživatelských programů (compilers, database systems, video games, business programs)
- uživatelé – lidé, stroje, jiné počítače
User 1
Data Base
User 2
...............
MS-WORD
Operating System
Computer Hardware
User n
Paint
Computer Components: Top-Level View
- operační systém využívá HW zdroje, nabízí množinu služeb
uživatelům
- řídí procesor(y), primární a sekundární paměť, I/O kanály
- procesor řídí operace počítače, provádí zpracování dat a
instrukcí, pokud je jeden -> CPU (Central Processing Unit)
- hlavní paměť (Main Memory) slouží k ukládání programu i dat,
typicky je energeticky závislá (Real Memory, Primary Memory)
- I/O moduly přenáší data mezi počítačem a externími zařízeními
(disky, terminály, komunikační kanály, ...)
- systémová sběrnice (adresní, datová, řídící) slouží ke spojení
procesoru a hlavní pamětí
PC
IR
MAR
Program Counter
Instruction Register
Memory Address Register
MBR
I/O AR
I/O BR
Memory Buffer Register
Input/Output Address Register
Input/Output Buffer Register
Computer Components: Top-Level View
CPU
PC
MAR
IR
MBR
I/O AR
Execution
unit
I/O BR
Main memory
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Data
Data
Data
Data
Data
Data
I/O module
Buffers
Provádění programu
Fetch Stage
Start
Fetch Next Instruction
Execute Stage
Execute Instruction
Halt
- přesouvání mezi pamětí a registry procesoru, ukázka sečtení obsahu adresy 940 s obsahem adresy
941 a uložení výsledku na adresu 941, jsou potřeba tři instrukce a tři fáze načtení (fetch) a tři fáze
provedení (execute)
PC obsahuje adresu první instrukce (300),
instrukce (1940) je načtena do IR a PC je
inkrementován, postup v sobě zahrnuje
použití MAR a MBR, které nejsou zobrazeny
Step1
První 4 bity (první hexadecimální číslo) v IR
indikuje, že do AC se načte z paměti obsah
adresy 940 (zbývajících 12 bitů)
Další instrukce (5941) je načtena do IR z
adresy 301 a PC je opět inkrementován
Původní obsah AC (0003) je sečten s
obsahem adresy 941 (0002) a výsledek je
uložen do AC
Step4
Step3
Step2
Další instrukce (2941) je načtena z adresy
302 a PC je inkrementován
Obsah AC (0005) je uložen na adrese 941
Step5
Step6
Provádění programu
300
301
302
940
941
Memory
1940
5941
2941
...
0003
0002
CPU registers
PC
300
AC
IR
1940
940
941
Step 1
300
301
302
940
941
940
941
Step 5
CPU registers
PC
301
AC
0003
IR
1940
Memory
1940
5941
2941
...
0003
0002
CPU registers
PC
302
AC
0005
IR
5941
Step 2
Memory
1940
5941
2941
...
0003
0002
CPU registers
PC
301
AC
0003
IR
5941
300
301
302
940
941
Step 3
300
301
302
300
301
302
Memory
1940
5941
2941
...
0003
0002
3+2=5
Step 4
Memory
1940
5941
2941
...
0003
0002
CPU registers
PC
302
AC
0005
IR
2941
300
301
302
940
941
Fetch Stage
Step 6
Memory
1940
5941
2941
...
0003
0005
CPU registers
PC
303
AC
0005
IR
2941
Execute Stage
John von Neumann
- *1903 v Budapešti, + 1957 v USA
- maďarský matematik židovského původu
- značnou měrou přispěl k oborům kvantové fyziky,
funkcionální analýzy, teorie množin, ekonomiky,
informatiky, numerické analýzy, hydromechaniky a
statiky
- od útlého věku známky geniality, jazykové nadání a
neobyčejná paměť
- celosvětově se prosadil v roce 1928 jako spolutvůrce
matematické teorie her
- v roce 1929 se stal spolu s Albertem Einsteinem
zakládajícím členem Institut for Advanced Study v
Princetonu
- nejvýznamnější jsou jeho objevy jako průkopníka
digitálních počítačů a operační teorie kvantové
mechaniky, teorie her a buňkového automatu
Von Neumannova koncepce počítače
- vznikla kolem roku 1945
- základní moduly jsou procesor, operační paměť, vstupní
a výstupní zařízení
- platná s vyjímkami do dnešní doby
- základní principy:
sériové zpracování instrukcí
jednotné uložení dat i programu
univerzální struktura počítače (nezávislost na řešené úloze)
binární prezentace údajů
Harwardská koncepce
paměť
programu
paměť
dat
registr instrukcí
řadič
ALU
vstupy/výstupy
Harwardská koncepce
-
-
návrh: Howard Aiken v 30. letech 20. století na Harvardské univerzitě
vývoj reléového počítače Harvard Mark 1
instrukce na děrné pásce, data na elektro-mechanických deskách
použito také na Pensylvánské univerzitě pro ENIAC (Electronic Numerical
Integrator and Calculator)
již tehdy šlo o moderní koncepci, která nebyla realizována kvůli technickým
prostředkům a proto byla použita von Neumannovská architektura
později bezproblémová realizace
typické oddělení paměti pro data a program (může být jiná šířka sběrnice,
jiná technologie a rychlost pamětí, jiná velikost nejmenší adresovací
jednotky)
větší technologická náročnost
vyšší rychlost provádění instrukcí (dvojí paměť umožňuje současný přístup
k datům i instrukcím)
typickým představitelem jsou signálové procesory od Motoroly
pro zvýšení výpočetní výkonnosti se používá pipelining
přímý přístup do paměti je umožněn vícenásobným kanálem DMA
program nemůže přepsat sám sebe
nevyužitou paměť dat nelze použít pro instrukce a obráceně
Číselné soustavy
Používané číselné soustavy: dekadická (desítková)
binární (dvojková)
oktalová (osmičková)
hexadecimální (šestnáctková)
- soustavy váhové
528 = 5*102 + 2*101 + 8*100
1101B = 1*23 + 1*22 + 0*21 + 1*20
0574 = 5*82 + 7*81 + 4*80
1AB5H = 1*163 + 10*162 + 11*161 + 5*160
- lepší orientace v binárních zápisech, hexadecimální vyjadřování
- vzájemné převody
Sběrnice osobních počítačů
- řídící, datová, adresní, šířka, rychlost
ISA (Industry Standard Architecture, IBM, 1984), data 16 bitů
adresa 24 bitů, 8 MHz => 5 MB/s, známá technická
specifikace, vnášela omezení při komunikaci s periferiemi
MCA (Microchanel, IBM, 1987), šířka 32 bitů, 10 MHz, má
dvojnásobný počet adresních vodičů => 6x rychlejší než ISA,
špatná marketingová strategie, není kompatibilní s ISA
EISA (Compaq, 1986), 32 bitů, kompatibilní k ISA, 5x dražší
Local Bus - zachovává ISA, lokální spojení procesoru a paměti,
50 MHz, 130 MB/s, omezení počtu periferií
PCI (Peripherals Component Interconnect, IBM, 1992), 64 bitů, 132
MB/s, 84 pinů, bus mastering, sdílení IRQ, PCI-X 150 pinů (1.0, 2.0, 266
MHz, 2,1 GB/s, 533 MHz, 4,2 GB/s)
AGP (Accelerated Graphics Port), pro graf. kartu 528 MB/s, 4x 108 pinů,
100 MHz, 8x – výkon 2GB/s
USB sériová polyfunkční sběrnice, 3.0 4 800 MB/s
FireWire (50 MB/s), RS-485, I2C až 32 nízkorychlostních periferií
PCI Express
- PCI-Express, PCIe (známá i jako 3GIO, PCI-E), náhrada PCI, PCI-X a AGP
- komunikace probíhá pomocí paketů sériově, umožňuje to zvyšovat frekvenci,
nejsou potíže se synchronizací
- původní návrh přinesla skupina AWG (Arapaho Work Group), konečný
standard z dílny Dell, IBM a HP
- možnost „hot-plug“ (výměna za provozu)
- existují verze 1, 2 a 3 (PCIe v. 2.0 1x 500 MB/s jednosměrně, 4x, 8x a 16x (2
GB/s, 4 GB/s a 8 GB/s))
- není dost rychlá pro použití jako paměťová sběrnice
- verze jsou kompatibilní
PCI Express
Sběrnice procesoru
- FSB (Front Side Bus) je fyzická obousměrná datová sběrnice,
která přenáší veškeré informace mezi procesorem a severním
můstkem
-některé procesory mají L2 nebo L3 vyrovnávací paměti, které
jsou k procesoru připojeny přes BSB. Tato sběrnice a vyrovnávací
paměť se připojují rychleji než přístup do paměti přes FSB
-šířka pásma FSB je dána šířkou sběrnice a kmitočtem (1600
MB/s)
-čipset je spojovacím bodem pro všechny ostatní sběrnice v
systému (PCI, AGP, paměť)
- pomalá FSB může zpomalovat rychlý procesor (procesor čeká na
data z paměti)
- frekvence, se kterou procesor pracuje, je určena použitím
násobičky kmitočtu FSB (550 MHz – CPU, 100 MHz – FSB,
multiplier – 5,5x)
- frekvence FSB bývá stovky MHz
Sběrnice procesoru
Clock
Generator
Graphics
card slot
CPU
Front Side
Bus
Memory Slots
Chipset
High-speed
graphics Bus
AGP or PCIX
Northbridge
Memory Bus
(memory controller
hub)
Internal Bus
PCI Bus
Southbridge
PCI Bus
I/O controller
hub)
PCI Slots
Low Pin
Count Bus
Flash ROM
(BIOS)
IDE
SATA
USB
Ethernet
Audio
CMOS
Super I/O Serial Port
Parallel Port
Floppy Disk
Keyboard
Mouse
Onboard graphics
controler
Cables and ports
leading off-board
Registry procesoru
- registr (viditelné pro uživatele (minimalizace potřeby paměti, využívání všech
dostupných registrů, znalost instrukcí assembleru, ...), řídící a stavové (control)
(používání při privilegovaných přístupech, ...))
- kompatibilita procesorů
- uživatelské – pro data, pro adresy (index, segment, stack)
- řídící a stavové – PC (Program Counter), IR (Instruction Register), PSW
(Program Status Word)
AH, AL
BH, BL
CH, CL
DH, DL
střadač, akumulátor
bázový registr
čítač
datový registr
SP
BP
SI
DI
stack pointer
base pointer
source index
destination index
CS
DS
SS
ES
code segment
data segment
stack segment
extra segment
FLAGS registr příznaků
IP
instruction pointer
Přerušení
Přerušení (Interrupt) je schopnost procesoru přerušit právě vykonávaný program a začít vykonávat
program jiný (obsluha přerušení), začalo se implementovat z důvodu obsluhy periferií (procesor
nemusí čekat ve smyčce na pomalé zařízení), dnes je využito při přepínání procesů
- technickými prostředky (vnější), instrukcí INTR
- programově (vnitřní)
- sled činností:
nemaskovatelná
maskovatelná
instrukcí INT n,
chybou při běhu
programu
uloží se FLAGS
vynulují se IF, TF
CS do zásobníku
do CS obsah hodnoty přerušení
IP do zásobníku (neprovedená instrukce)
do IP obsah hodnoty přerušení
- přerušení se uplatní po provedení instrukce
- návrat instrukcí IRET
PIC 8259A
01234567
PIC 8259A
8 9 10 11 12 13 14 15
IRQ Levels (Interrupt Request)
Typ signálu přerušení, které lze maskovat (bit IF – Interrupt Enable
Flag v příznakovém registru nastaven na 0), potom se přerušení
generované signálem INTR neprovede
IRQ0 - systémový časovač
IRQ1 - řadič klávesnice
IRQ2 - sekundární PIC
IRQ3 - COM2, COM4
IRQ4 - COM1, COM3
IRQ5 - LPT2 (zvuková karta)
IRQ6 - řadič disket
IRQ7 - LPT1 (zvuková karta)
IRQ8 – hodiny reálného času
IRQ9 – available, NIC, SCSI
IRQ10 – available, NIC, SCSI
IRQ11 – available, NIC, SCSI
IRQ12 – myš, PS/2
IRQ13 – floating point unit
IRQ14 – ATA (CD ROM, HD)
IRQ15 - ATA
Y
Zásobník
T-M
N+1
Zásobník
T-M
N+1
N+1
Program
counter
T
Y+L+1
T
General
registers
Y
Y+L
Start
Přerušovací
rutina
T
Stack
pointer
Y
Y+L
Return
Start
Přerušovací
rutina
Return
Processor
Processor
T-M
N
N+1
Uživatelský
program
Main
memory
T-M
Vyvolání přerušení
po instrukci N
T
N
N+1
Uživatelský
program
Návrat z přerušení
Main
memory
Instrukční cyklus s přerušením
USER PROGRAM
INTERRUPT HANDLER
1
i+1
...
i
... ...
2
Interrupt
disabled
M
START
FETCH NEXT
INSTRUCTION
EXECUTE
INSTRUCTION
HALT
CHECK FOR INTERRUPT
INITIATE INTERRUPT
HANDLER
Interrupt
enabled
Obsluha přerušení
Je možné zavádět prioritní
obsluhu přerušení
Sekvenční způsob
Vnořený způsob
Časování při vícenásobném přerušení
Interrupt occurs = 10
t=0
t=10
2
Interrupt occurs = 15
t=15
5
Comunication interrupt
service routine
t=25
t=25
4
t=40
User program
Printer interrupt
service routine
Interrupt occurs = 20
t=35
Disk interrupt
service routine
Důležité vztahy mezi tématy
Process
description
and control
Memory
management
Scheduling
I/O
management
Concurrency
File
management
Networking
Security
Vytváření programu
Idea
Execution Engine
Status
Stack
Algorithm
Files
Source
Program
Binary
Program
Data
Other
Resources
Process
Vytváření programu
Algoritmus
-determinovanost
-rezultativnost
-hromadnost
-efektivnost
- analýza
- editace
- překlad
- sestavení
- spuštění
Operační systémy
Cíle:
použití počítače je pohodlnější a výhodnější, čerpání systémových
zdrojů je účinnější, schopnost vývoje (testování, nové funkce, ...)
Funkce:
vytváření programů (editor, debugger), spouštění programů, přístup
na I/O, přístup k souborům, přístup a ochrana systémových
zdrojů, detekce chyb, evidence
Charakteristiky:
souběžnost, sdílení (cena, sdílená data, vytváření dalších úloh, odstranění
redundance), determinovanost (stejné výsledky ze stejných dat a kdykoliv),
výkonnost (střední čas mezi procesy, čas odezvy, čas obrátky, využití zdrojů, ...),
spolehlivost, udržovatelnost, velikost
Definice operačního systému
- program, který je prostředníkem mezi uživatelem a
technickým vybavením
- účelem OS je poskytovat uživateli prostředí pro spouštění
programů
- základní část téměř všech počítačových systémů
- správce prostředků (řídí, alokuje, odebírá) – Resource
Manager
- řídí provádění uživatelských programů a I/O operací –
Control Program
- program, který vždy běží - Kernel
Provádění vnořených procedur
4000
4100
4101
CALL Proc1
Main
program
4500
4600
4601
4650
4651
CALL Proc2
Procedura
Proc1
CALL Proc2
RETURN
4800
Procedura
Proc2
RETURN
.
4101
.
4601
4101
.
4101
.
4651
4101
.
4101
.
.
Zásobník
Dno zásobníku SS:0A1A
SS:0A1A
0A18
AA01
0A16
11AA
0A14
3C00
Vrchol zásobníku SS:0A14
0A12
- struktura LIFO v operační paměti
- instrukce PUSH (vložení), POP (výběr)
- výběr řídí registr SP (Stack Pointer)
- kapacita zásobníku na programátorovi
- používá INT, přerušovací systém, volání podprogramu
Typická organizace zásobníku
Stack
limit
Stack
pointer
Free
Stack
base
Blok rezervovaný
pro zásobník
In use
- pouze jeden element může být dosažen,
jedná se o poslední vkládaný záznam –
vrchol zásobníku
- parametry zásobníku (počáteční adresa,
velikost, limit, ...) jsou variabilní
- Stack Pointer – obsahuje sdresu vrcholu
zásobníku, adresa je inkrementována
nebo dekrementována operacemi PUSH a
POP
- Stack Base – obsahuje počátek
zásobníku ve vyhrazené oblasti
- Stack Limit – obsahuje adresu
povoleného vrcholu zásobníku, každá
operace PUSH za touto hodnotou vyvolá
chybové hlášení
Růst zásobníku při dvou procedurách
y2
y1
Return adress
Q:
x2
x1
Return adress
P:
Previous frame
pointer
aktivní proces P
Top of
stack pointer
Current
frame
pointer
Previous frame
pointer
x2
x1
Return adress
P:
Top of
stack pointer
Current
frame
pointer
Previous frame
pointer
proces P zavolal proces Q
Direct Memory Access
DMA - Direct Memory Access, některá
zařízení mají možnost přistupovat k
paměťovým přenosům dat bez účasti
procesoru, při přenosu mezi pamětí a
zařízením by byla velká režie, u blokových
přenosů se nepřizpůsobuje rychlost – pouze u
paměti, jedna adresová sběrnice – nelze
použít adresaci dvou míst současně,
specializovaný obvod – řadič DMA,
jednoúčelové zařízení s 8 kanály u
současných počítačů
Multiprogramování
- procesor provádí více programů (procesů) „současně“
- pořadí provádění programů záleží na jejich prioritě, je
modifikováno čekáním na nějakou událost (I/O operace)
- po přerušení se nemusí pokračovat v programu, který se
prováděl před přerušením
Paměťová hierarchie
- rychlejší přístup – dražší bit
- větší kapacita – levnější bit
- větší kapacita – pomalejší přístup
Hierarchie pamětí
zvyšuje se
frekvence přístupů
Registr
Cache
Operační paměť
Elektronický disk
Magnetický disk
Optický disk
levnější, větší
kapacity, pomalejší
přístup
Pokud se postupuje
hierarchií dolů:
- klesá cena bitu
- zvyšuje se kapacita
- zvyšuje se doba
přístupu
- klesá frekvence
přístupů z procesoru
do paměti
Magnetická páska
rychlejší přístup, větší kapacita = dražší bit, větší kapacita = pomalejší přístup
velkokapacitní paměti – dlouhá doba přístupu, rychlé paměti – menší kapacita
Cache paměť
CPU
Word Transfer
Cache
Block Transfer
Main memory
- drahá a velmi rychlá paměť
- kontakt s pomalejší a větší hlavní pamětí
- OS a uživatelské procesy ji nevidí
- je v interakci s HW správy paměti (MMU)
- hledání odkazovaného slova v cache
- při neúspěchu přesun dalšího bloku dat
- prostorová lokalita
Režimy práce procesoru
- většina procesorů podporuje nejméně dva režimy
zpracování instrukcí, zpracování spojené s
uživatelským programem (user mode), zpracování
spojené s operačním systémem (system mode, control
mode, kernel mode)
- je potřeba oddělit manipulaci se systémovými daty a
uživatelskými daty
- oddělení není nezbytné, ale z hlediska bezpečnosti
velice žádoucí
- režim je indikován na procesoru typicky pomocí
jednoho bitu
Flynnova klasifikace systémů
Michael J. Flynn (Stanford University,1966) třídí paralelní systémy z hlediska počtu toků
instrukcí a počtu toků dat, příliš hrubé rozdělení, přesto rozšířené, rychlé přežívání, rozlišuje
čtyři základní kategorie počítačových architektur:
SISD (Single Instruction Single Data)
jednoprocesorový počítač zpracovávající jeden tok dat, data v jedné paměti (von Neumann)
SIMD (Single Instruction Multiple Data)
počítač používající větší počet funkčních jednotek (procesorů), všechny procesory vykonávají současně
stejnou operaci na různých datech, maticové počítače, vektorové počítače
MISD (Multiple Instruction Single Data)
hypotetická kombinace několika programů zpracovávajících jeden tok dat, takový princip se zatím
nepoužívá a je někdy nesprávně zaměňován se systémem se zřetězeným zpracováním instrukcí
(pipelining), u zřetězeného zpracování instrukcí je aktivní vždy pouze jeden program, kategorie
počítačů, která není v praxi příliš běžná, posloupnost dat je přenášena k množině procesorů, lze sem
zařadit některé speciální systémy, jako jsou systolická pole nebo neuronové sítě, implementováno
zřídka
MIMD (Multiple Instruction Multiple Data)
obecný typ paralelního systému, který obsahuje jednotky již tak samostatné, že každá z nich plní
samostatný program a přitom zpracovávají jiná data, nejčastější typ paralelizace, multiprocesorový
systém, v němž je každý procesor řízen samostatným programem a pracuje nad svými daty,
multiprocesorový systém – těsná vazba, distribuovaný systém – volně vázaný systém
Vrstvy počítačového systému
End user
Programmer
Application programs
Utilites
Operating system
Computer hardware
Operating
system
designer
OS jako Resource Manager
Computer System
Operating System
Software
I/O Devices
I/O Controler
I/O Controler
Programs
&
Data
Storage
I/O Controler
Operating System
Software
Processor
Processor
Programs
&
Data
Obecné poznatky o operačních systémech
Rozdělení operačních systémů:
podle počtu úloh: jednoúlohové, multitaskové
podle počtu uživatelů: jednouživatelské, víceuživatelské
podle účelu použití: univerzální (nespecializované),
specializované (RT- systémy, mívají zvláštní požadavky na
řízení periferií, na interface s uživatelem, ...), databázové
systémy, síťové operační systémy
Obecná struktura OS:
* řídící program (kernel, executive)
* příkazový procesor (command processor)
* řídící V/V programy
* obsluha souborů
* pomocné programy (utilities)
Obecné poznatky o operačních systémech
OS je správcem prostředků (zdrojů). Řídí běh ostatních procesů (předává a
bere řízení), vlastní jednotlivé systémové zdroje (přiděluje je a odebírá
jednotlivýn procesům), zajišťuje rozhraní mezi uživatelem a HW, unifikuje
detaily o HW pro procesy a uživatele (spravuje detaily HW ve vlastní režii).
Operační systém je program, který funguje jako prostředník mezi uživatelem a
hardware počítačového systému. Vytváří prostředí pro spouštění programů
uživatele. Hlavním cílem je zabezpečení pohodlného přístupu uživatelů k
programům a efektivní využívání technického vybavení. Podle odborné definice
je OS pouze program, který běží neustále na počítači, tzv. výkonné jádro (kernel)
operačního systému. Podle širší definice patří k OS i editory, kompilátory, GUI,
atd. Ve formě virtuálního počítače OS skrývá detaily ovládání jednotlivých
zařízení (zajišťuje transparentnost), definuje standardní rozhraní pro volání
systémových služeb.
diskové, specifické postupy při vývoji, assembler versus vyšší programovací
jazyky, výsadní postavení jazyka C, vrstvená struktura s jednostranným
tokem, krátké zdrojové texty pro snadnější ladění, objektový způsob přinesl
možnost snadnější modifikace a rozšiřování, využití dědičnosti pro zvýšení
flexibility
Vrstvy operačního systému
operace přístupu k souboru,
otevírání, zavírání, přesuny,
ochrana, umístění, stav, ...
Systém souborů
Přidělování I/O
Přidělování paměti
Přidělování procesoru
stav periferií, stav kanálů a
řídících jednotek, sdílení,
přiřazení, efektivní přiřazování
stav paměti, její využití, rozsah a
doba přidělení, vlastník,
uvolňování a vracení
stav procesoru a procesů,
plánování úloh, dispečer,
plánovač úloh, vypršení limitu
„Holý počítač“
HW počítače
Moderní operační systémy
- nikoliv pouhá modifikace stávajících vlastností OS a jejich rozšiřování, zcela
nová organizace, byly vytvořeny jak experimentální, tak komerčně využívané OS,
pozornost zaměřena na oblasti:
mikrokernelová architektura
ve stávajících OS jednolitý kernel, ten prováděl většinu funkcí (plánováni, souborový systém, síťové služby, řízení
paměti, ovladače zařízení, ...), byl implementován jako samostatný proces, jeden adresní prostor, mikrokernel si
ponechává pouze některé funkce, zbytek je realizován samostatnými procesy (servery), ty běží v uživatelském módu,
větší flexibilita, vhodné pro distribuované prostředí
multithreading
proces je prováděn pomocí více vláken, vlákno (sled, thread) je systémový objekt, který vzniká v rámci procesu, je
viditelný pouze uvnitř procesu, výkonná jednotka procesu, charakterizován svým stavem, společné systémové prostředky
(paměť, soubory, globální proměnné, …), vlastní zásobník, přiděluje se jim procesor, proces je systémový objekt
charakterizovaný svým paměťovým prostorem a kontextem
symetrický multiprocessing
disponuje více procesory, sdílí jednu paměť a stejné I/O zařízení, propojeny komunikační sběrnicí, všechny procesory
mohou provádět stejnou činnost
distribuované OS
ošetření několika samostatných počítačů jedním OS, multipočítačový systém, každý z počítačů má vlastní prostředky,
DOS poskytuje iluzi jedné kolekce prostředků (paměť, ...), vývoj probíhá pomaleji než SMP
objektově orientovaný návrh
modulární přístup, dědičnost, pro plnohodnotné distribuované OS
Požadované vlastnosti OS
Výkonnost (určena spoustou faktorů):
střední doba mezi procesy, doba nečinnosti CPU, doba obrátky
pro úlohy, čas odezvy, využití zdrojů, výkonnost počítače,
kompromisní řešení
Spolehlivost:
v ideálním případě bez chyb
Udržovatelnost:
modulární řešení, jasné definice interface mezi jednotlivými
moduly, rozšiřování schopností, oprava chyb
Velikost:
odůvodněná velikost v paměti i na disku, větší systémy jsou
náchylnější k poruchám
Služby OS
- vytváření programů na uživatelské úrovni
editory, kompilátory, sestavovací programy, ladící programy
- provádění programů
zavádění programů do RAM, multiprogramové
- podpora komunikace a synchronizace procesů
všechny OS jsou postaveny na základě zpracování procesů
- V/V operace a operace se soubory
zpřístupňování, formátování, privilegované operace
- přístup k počítačovému systému
ochrana při přístupu k systémovým zdrojům a údajům, řešení konfliktů při soupeření o
zdroje
- chybové řízení
detekce chyb (HW, SW, neschopnost OS splnit požadavek aplikace), reakce na chyby
- protokolování
statistiky o zdrojích, monitorování výkonu, kalkulace cen, inspirace pro zlepšování
konfigurace
Řídící struktury OS
- OS musí mít informace o aktuálním stavu procesů, informace o stavu HW zdrojů
- OS vytváří a udržuje tabulky o všech částech, které jsou pro něj důležité
- čtyři různé typy tabulek (paměť, I/O, soubory, procesy)
- mohou být rozdíly mezi různými OS, uvedené kategorie ale platí obecně
Memory tables – sleduje se stav primární (real) i sekundární (virtual) paměti, část paměti je
rezervována pro OS, zbytek je pro procesy, tabulky musí obsahovat informace o alokování obou pamětí
procesům, ochranné atributy pro neoprávněný přístup (sdílení), informace potřebné k řízení virtuální
paměti
I/O tables – jsou používány OS k řízení I/O zařízení a kanálů systému, obsahují informace o přiřazení
I/O zařízení jednotlivým procesům, jejich dostupnost
File tables – informují o uložení souborů na disku, všechny jeho atributy, informace využívá hlavně
souborový systém
Process tables – slouží pro řízení procesů, musí obsahovat lokalizaci procesu (PCB (task control block,
process descriptor, task descriptor), process image)
Řídící struktury OS
Process image
Memory
Memory tables
Process 1
Devices
I/O tables
Files
Processes
File tables
Process 1
Process image
Primary process table
Process 2
Process 3
.
.
.
Process n
Process n
“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ů
Raná historie (50. léta)
- programátor a operátor v jedné osobě
- přímá interakce s HW počítače
- počítače bez operačního systému
- plánování (nějaká forma seznamu), přípravný čas (provádění
programu (job) zahrnovalo loading zdrojového kódu, linkeru +
různé funkce, 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)
- cena HW převyšovala cenu kvalifikované lidské práce
- koncem 50. let se začaly objevovat náznaky OS
- monitor – zaváděl systém ochrany paměti (monitor – programy),
kontrolu I/O (2 pracovní módy - čtení/zápis na děrné štítky nebo
provádění programu, kontrolu nekonečné smyčky (timeout,
přerušení programu)
Vývoj operačních systémů
První operační systémy (60. – 70. léta)
- é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, ...)
- SPOOL: jednoduchý OS, běh více programů současně,
přepínání mezi nimi, jak postupně čekaly na I/O operace, každý
výrobce měl svůj naprosto odlišný SPOOL
- 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, pokračoval 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
Vývoj operačních systémů
Další vývoj OS
- 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)
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ů
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, ...
Časová osa operačních systémů
50. léta: bez operačního systému, monitor
60. léta: SPOOL (Simultaneous Peripheral Operation OnLine)
70. léta: UNIX, Multics (Honeywell, MIT), poslední byl vypnut v
roce 2000, VMS (DEC) – první verze 1978, 32 bitový, multitaskový
a multiprocesorový, virtuální paměť, vyvíjen do 2000, hlavně pro
procesory Alpha, i 64 bitová verze
80. léta: ráj 8 bitových počítačů, i do domácností, CP/M, velmi
zjednodušená verze UNIXu, 8.3, MacOS, integroval GUI, myš jako
hlavní nástroj, Amiga OS, v roce 1981 DOS pro IBM XT, 640 KB
RAM, vycházel z CP/M, IBM se snažilo o PC/DOS, OS2 (z něj
vznikly Windows NT), v oblasti mainframe různé UNIXy (AIX,
Solaris, IRIX, FreeBSD, OpenBSD, …)
90. léta: DOS + Windows 3.1, Windows 9x/NT, Linux, BeOS
(multimediální aplikace)
Současnost: Windows, Linux
Oblíbenost operačních systémů
Operační
systém
2009
2010
2011
2012
2013
Windows
94,05%
93,73%
93,06%
92,02%
91,34%
Mac
4,91%
5,25%
5,87%
6,81%
7,27%
Linux
1,01%
1,0%
1,07%
1,17%
1,39%
Ostatní
0,03%
0,02%
0%
0%
0%
Memory Layout for a Resident Monitor
Interrupt
processing
Monitor
Device driver
Job sequencing
Control language
interpreter
Boundary
User
program
area
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í - 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
Multiprogramování - multiprocessing
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
Multiprogramování - 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.
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]
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
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
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
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.
Descargar

No Slide Title