zpět: Bakalářská státnice - Informatika - Základy informatiky - obor Správa počítačových systémů
zdroje:
Přednáška Principy počítačů (David Obdržálek)
Skripta Operační systémy (PDF, Petr Kolář)
Architektury počítače
von Neumannova architektura
koncepce programovatelného počítače
ALU, řadič, operační paměť, vstupní zařízení, výstupní zařízení
Harvardská architektura
oddělená paměť pro instrukce a pro data
víceúrovňová organizace počítače:
mikroprogramová úroveň
strojový jazyk počítače
úroveň operačního systému
úroveň assembleru
úroveň vyšších programovacích jazyků
úroveň aplikaních programů
architektura říká:
z jakých částí se počítač skládá
význam částí
jak se jednotlivé části ovládají
jak spolu části komunikují
architektura zahrnuje:
základní datové struktury a reprezentace dat
adresové konvence
instrukční soubor a registrový model
řízení chodu, stavy počítače, přerušení
vstupy a výstupy, přenos dat
šíře datových cest
stupeň sdílení
definice specializovaných jednotek
paralelismy
organizace paměti a I/O
stupeň predikce
Procesory, multiprocesory
wcs:Procesor
CPU – central processing unit
CISC (Complex Instruction Set Computer) - komplexní instrukční sady, různé varianty instrukcí
RISC (Reduced Instruction Set Computer) - jen nejpoužívanější instrukce, jejich optimalizace, komplexnější věci ponechány na kompilátoru
Post-RISC - využití nových metod a toho nejlepšího z CISC a RISC
instrukce = řetězec symbolů, které při interpretaci procesorem způsobí jednoznačnou a definovanou změnu stavu stroje
součásti procesoru:
řadič
sada registrů
ALU - aritmeticko-logické jednotky
FPU - jednotky pro operace v plovoucí řádové čárce
cache
dělení procesorů:
16bit, 32bit, 64bit
frekvence jádra
architektury - x86, x86-64, PowerPC, SPARC (Sun Microsystems), MIPS, Alpha, ...
zvyšování výkonu:
pipeline
simultánní multithreading - více vláken
predikce hodnoty a skoků
SMP (Symmetric multiprocessing) - více procesorů se sdílenou operační pamětí
Sběrnice, protokoly
struktura sběrnice - datové linky, adresové linky, řídící linky
synchronní přenos - vznik události je dán hodinovým signálem
asynchronní přenos - vznik události je určen předcházející událostí
parametry sběrnice
datová šířka - počet přenášených bitů v jednom okamžiku
kapacita - počet bitů přenesených za čas
rychlost - kapacita sběrnice normovaná k jednotce informace
řízení požadavků
centrální - náhodné, dle pořadí vzniku, prioritní
distribuované - kolizní, token bus, prioritní linka - daisy chain
přenos dat po sběrnici
za účasti procesoru: zdroj -> CPU -> cíl
bez účasti procesoru
dávkový režim - domluva mezi CPU a řadičem na době obsazení sběrnice
kradení cyklů - řadič na dobu přenosu "uspí" procesor
transparentní režim - řadič rozezná, kdy procesor nepoužívá sběrnici, obvykle nelze větší přenosy najednou
DMA (Direct Memory Access) - speciální jednotka pro provádění přenosů
příklady:
ISA, EISA
ATA, ATAPI - UltraDMA, Serial-ATA (SATA)
SCSI (Small Computer System Interface)
PCI, PCI-X, PCI Express
AGP (Advanced Graphics Port)
USB (Universal Serial Bus)
FireWire (IEEE 1394)
RS485
příbuzné:
IrDA
Bluetooth
Wi-Fi, WiMAX
Vstupní a výstupní zařízení, přenos dat
druhy přístupu
port - speciální adresový prostor CPU
paměťově mapované - mapování do fyzické paměti
charakteristiky zařízení:
druh - blokové, znakové
přístup - sekvenční, náhodný
komunikace - synchronní (na žádost), asynchronní ("nevyžádaná" data)
sdílení - sdílené (preemptivní, lze odebrat), vyhrazené (nepreemptivní, tiskárna, spooling)
rychlost
směr dat - R/W, R/O (CD-ROM), W/O (tiskárna)
přenos dat:
polling - aktivní čekání na změnu zařízení, přenos provádí CPU
přerušení - asynchronní přerušení od zařízení, přenos provádí CPU
DMA (Direct Memory Access)
zařízení si samo řídí přístup na sběrnici a přenáší data z/do paměti
po skončení přenosu přerušení (oznámení o dokončení)
Technologie dálkového přenosu dat
?? nejsem si jist, co sem má patřit, nejspíš kapitola "Propojovací sítě" z principů počítačů, ostatní věci jsou až v okruhu "Sítě a internetové technologie"
dělení propojovacích sítí:
statické - spojovací cesty zůstávají neměnné
dynamické - spojovací cesty vznikají a zanikají - lokální/centrální řízení
křížové přepínače (propojovací pole)
propojovací sítě s výměnou
víceúrovňové propojovací sítě - blokující, neblokující, přestavitelné
válcové posouvače
řízení dynamické sítě
centrální / distribuované
synchronní / asynchronní časování
přepínání zpráv / okruhy / virtuální okruhy
lineární síť
hvězdicová topologie
kruhová síť
úplný graf
planární topologie
hyperkrychle
stromy
embedding - logická struktura sítě není vázána s fyzickou strukturou
Velkokapacitní záznamová média, zálohování, technologie ukládání a zabezpečení záznamů
?? co sem patří? informace níže převzaty z předmětu Ochrana informace
Záložní média:
výměnná média
diskety, optické disky
streamery (pásková zařízení)
DAT - modernější obdoba streamerů
výměnné disky
WORM disky
nevýměnná média
další disk
disk mirroring -> RAID
clusterování, duplexing
Typy záloh:
model Grandfather-Father-Son
úplná záloha
rozdílová (diferenciální) záloha - změny oproti poslední úplné
přírůstková (inkrementální) záloha - změny oproti předchozí přírůstkové
Uložení záložních kopií:
význačné záložní kopie na vzdálených bezpečných místech - pro případ katastrof
další zálohy ukládat blízko - pro případ smazání dat a rychlou obnovu - menší "katastrofy"
Obnova provozu:
cold site - hardware zapojený a připravený v dedikované lokalitě pro případ katastrofy (je třeba nainstalovat SW a nakopírovat data)
hot site - navíc řipravený software, stačí jen dodat data
další související pojmy:
CRC (Cyclic redundancy check)
šifrování
Architektury OS
monolitická struktura
virtuální stroje
mikrojádro
architektura Windows, Unix
Vztah OS a HW, obsluha přerušení
zjištění změny stavu I/O zařízení:
asynchronní přerušení - zašle zařízení
polling - peridická kontrola stavu zařízení
druhy přerušení:
synchronní - záměrně, výjimky (nesprávné chování procesu) - zpracuje se okamžitě
asynchronní - vnější událost (např. příchod dat) - zpracuje se po dokončení aktuální instrukce
obsluha přerušení:
OS se ujme řízení
uloží se stav CPU (obsah registrů, čítač, ...)
analyzuje se přerušení, vyvolá se příslušná obsluha (pokud není přerušení blokováno)
obslouží se přerušení
obnoví se stav CPU a aplikace pokračuje, popř. může dojít k přeplánování
I/O software (vrstvy):
uživatelský I/O software
I/O nezávislý subsystém
ovladače zařízení
obsluha přerušení
cíle I/O software:
nezávislost zařízení - programy nemusí vědět, s jakým přesně pracují
jednotné pojmenování (/dev)
připojení (mount) - vyměnitelná zařízení
obsluha chyb
Procesy, vlákna, plánování
proces - adresový prostor, prostředky, práva, signály
vlákno - programový čítač, registry CPU, zásobník
procesy a vlákna ve Windows a Unix
stavy procesu - připraven, běžící, blokován, zombie (v Unixu)
kontext procesu (stav CPU, registry, zásobník, programový čítač aj.)
plánování
preemptivní x nepreemptivní
cíle - spravedlnost, efektivnost, doba odpovědi, průchodnost, minimální režie OS
kritéria - vázanost procesu na CPU a I/O, proces dávkový/interaktivní, priority, výpadky stránek, skutečný CPU čas
priorita = statická + dynamická
plánovací algoritmy
FIFO
Round Robin
více front se zpětnou vazbou
plánování v SMP - fronta CPU čekajících na připravené procesy, afinita procesů k CPU
plánování ve Windows a Unixu (Linuxu)
kooperativní multitasking
Synchronizační primitiva, vzájemné vyloučení
race conditions, vzájemné vyloučení (mutual exclusion), kritická sekce
aktivní čekání
Petersonovo řešení
instrukce TSL - spin-lock
pasivní čekání
zámky (mutex)
monitory
semafory - operace UP a DOWN, čítač
zprávy - operace SEND a RECEIVE, zablokování odesílatele/příjemce, adresace proces/mailbox, randez-vous
RWL - read-write lock
bariéry
Windows - jednotné funkce pro pasívní čekání, čekání na více primitiv, timeouty
Unix - OS implementuje semafor, knihovna pthread
Zablokování a zotavení z něj
prostředky - odnímatelné vs. neodnímatelné
práce s prostředky - žádost o prostředek, používání, odevzdání
zablokování množiny procesů
Coffmanovy podmínky - nutné podmínky pro zablokování
vzájemné vyloučení
drž a čekej
neodnímatelnost
čekání do kruhu
řešení zablokování
Pštrosí algoritmus - neřeší se, zablokovaný proces ukončí uživatel
detekce a zotavení - modelování žádostí o prostředky orientovaným grafem, odebírání prostředků, zabíjení procesů, rollback procesů
vyhýbání se zablokování
bezpečný stav systému - vždy existuje cesta k uspokojení požadavků procesů
bankéřův algoritmus
prevence
spooling
drž a čekej
čekání do kruhu
dvojfázové zamykání
Organizace paměti, alokační algoritmy
Hierarchie paměti:
registry
cache
hlavní paměť - operační, RAM
pomocná paměť - disk
zálohovací paměť - často jen sekvenční přístup
správce paměti (memory manager) - správa, rozdělení a přidělování
přiřazení adresy - při překladu, při zavádění (relokace), za běhu (dynamicky)
overlay
výměna - swapping na disk
spojité přidělování
informace o volném místě - bitová mapa, spojový seznam volných bloků
fragmentace paměti
externí - volný prostor rozdělen na malé kousky
interní - nevyužití celého přiděleného prostoru
sesypání - nelze při statickém přidělení adresy
Alokační algoritmy:
First-fit - první volný dostatečné velikosti - rychlý
Next-fit - další volný dostatečné velikosti - rychlejší
Best-fit - nejmenší volný dostatečné velikosti - pomalý (prohledává celý seznam), zanechává malinké díry
Worst-fit - největší volný - pomalý (prohledává celý seznam), rozdělí velké díry
Buddy systém - štěpení, slučování volných bloků
Principy virtuální paměti, stránkování, algoritmy pro výměnu stránek, výpadek stránky, stránkovací tabulky, segmentace
Virtuální paměť: (Virtual memory)
procesy pracují s virtuální adresou
mapování adresy na fyzickou - mapovací tabulky
obraz virtuální paměti (VAP) částečně v RAM a částečně na disku
iluze větší paměti, ochrana přístupu
stránkování / segmantace
Stránkování: (Paging)
VAP rozdělen na stránky, FAP na rámce (úseky stejné délky)
převod stránkovací tabulkou, příznak existence mapování (výpadek stránky -> synchronní přerušení)
sdílená paměť - mapování virtuální stránky 2 procesů do jedné fyzické
víceúrovňové stránkování
TLB - asociativní paměť, lokalita chování programů (Translation Lookaside Buffer)
nulaúrovňové stránkování - pouze TLB, řízeno také OS
inverzní stránkování
Algoritmy pro výměnu stránek: (Page replacement algorithm)
optimální stránka - nelze implementovat
NRU (Not Recently Used) - příznaky Accessed a Dirty
FIFO, druhá šance
hodiny
LRU (Least Recently Used) - často používané stránky v posledním krátkém časovém úšeku budou znovu použity, čítač použití stránek
NFU (Not Frequently Used) - SQ simulace LRU, čítač ke každé stránce
Segmentace: (Segmentation)
rozdělení programu na segmenty, různé délky segmentů
VAP dvourozměnrý (segment, offset), FAP jednorozměrný
segmentová převodní tabulka, příznak existence mapování, výpadek segmentu
Systémy souborů, adresářové struktury
soubor = pojmenovaná množina souvisejících informací, která leží v pomocné paměti (na disku), abstrakce
pojmenování souboru
atributy souborů - jméno, typ, umístění, velikost, ochrana, časy, vlastník, ...
struktura souborů - sekvence bajtů / sekvence záznamů / strom
typy souborů - běžné soubory, adresáře, speciální soubory
přístup - sekvenční, náhodný
paměťově mapované soubory - pojmenovaná virtuální paměť, práce se souborem instrukcemi pro práci s pamětí
volné místo na disku - bitmapa / spojový seznam volných bloků
adresáře - kořen, hierarchická struktura, aktuální adresář, absolutní/relativní cesta
softlink, hardlink
implementace adresářů - záznamy pevné velikosti, spojový seznam, B-stromy
uložení souborů
souvislá alokace - souvislý sled bloků
spojovaná alokace - blok odkazuje na další
indexová alokace - inode (UNIX)
NTFS - charakteristika, MFT, run list
ext2/ext3 - struktura, inode, žurnál
plánování pohybu hlav disků:
FCFS (First-Come, First-Served) - žádné plánování, fronta požadavků, jeden za druhým
SSTF (Shortest Seek Time First) - krajní žádosti mohou "hladovět"
LOOK (výtah), C-LOOK (circular LOOK) - pohyb jen jedním směrem, na konci otočka
RAID (Redundant Array of Inexpensive Disks)
JBOD
RAID 0 - striping, žádná redundance
RAID 1 - mirroring, redundance
RAID 0+1
RAID 2 - 7-bitový paritní Hammingův kód
RAID 3 - 1 paritní disk, po bitech na disky
RAID 4 - 1 paritní disk a striping
RAID 5 - distribuovaná parita a striping
RAID 6 - distribuovaná parita a P+Q striping
Bezpečnost, autentifikace, autorizace, přístupová práva
ochrana - s prostředky OS mohou pracovat pouze autorizované procesy
bezpečnost - zabraňuje neautorizovanému přístupu do systému
Domény ochrany:
právo - povolení/zákaz k vykonání nějaké operace
autorizace - zjištění oprávněnosti požadavku
doména je množina párů (objekt:práva)
ACL (Access Control List) - ke každému objektu seznam práv pro uživatele/skupiny
C-list (Capability list) - ke každému uživateli/skupině seznam práv pro objekty
Autentifikace:
= identifikace něčím, co uživatel ví, má nebo je
hesla
otázka - odpověď
fyzické tokeny - USB klíče, smart cards
biometriky
Druhy útoků a obrana proti nim
Cíle útoků:
důvěrnost dat - zjištění obsahu dat
celistvost dat - změna obsahu dat
dostupnost systému - DoS, DDoS
Útočníci:
náhodný přístup prostým uživatelem - nedbalost, neodbornost
odborný vnitřní pracovník
vnitřní programátor
špionáž
Ztráta dat:
"Boží" zásah
HW nebo SW chyby
lidské chyby
Vnitřní útoky:
trojský kůň
login spoofing - falešná přihlašovací obrazovka
logická bomba
zadní dvířka (trap door, back door)
buffer overflow - vykonání podstrčeného kódu, který přetekl vlivem neošetřeného vstupu na zásobník
Vnější útoky:
virus
worm - Internetový červ
mobilní kód - applety, interpretované programy
Obrana:
zálohování
bezpečnostní politika
bezpečnostní programy - antivir, antispam, IDS (Intrusion Detection System)
filtrování dat - firewally
šifrování
...
Kryptografické algoritmy a protokoly
Cíle kryptografie:
důvěrnost dat
celistvost dat
autentifikace - od koho
nepopiratelnost
kryptografický systém: plaintext, ciphertext, šifrovací a dešifrovací klíče, generování klíčů, šifrování, dešifrování
náhodné posloupnosti - HW generátory, SW generátory, pseudonáhodné generátory
hashovací funkce
blokové / proudové šifry
hybridní šifrování
symetrické šifrování
stejný klíč pro šifrování i dešifrování
velká propustnost, rychlé
oba klíče musí zůstat utajeny
příklady: DES, AES, Blowfish
asymetrické šifrování
veřejný a privátní klíč
mnohem pomalejší
příklady: RSA, DSA (ElGamal)
protokol Diffie-Hellman pro výměnu klíčů
útoky na protokoly:
přehrání zachycené zprávy
man-in-the-middle
paralelní spojení
odražení (reflection)
prokládání
chyba typu
vypuštění jména
chybné použití šifrovací služby