Bakalářská státnice - Informatika - Základy informatiky - ISPS - Architektura počítačů a operačních systémů
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)
- Přednáška Základy operačních systémů
- Architektury počítačů a procesorů (ČWUT)
- Skripta Operační systémy (PDF, Petr Kolář)
Obsah
- 1 Architektury počítače
- 2 Procesory, multiprocesory
- 3 Sběrnice, protokoly
- 4 Vstupní a výstupní zařízení, přenos dat
- 5 Technologie dálkového přenosu dat
- 6 Velkokapacitní záznamová média, zálohování, technologie ukládání a zabezpečení záznamů
- 7 Architektury OS
- 8 Vztah OS a HW, obsluha přerušení
- 9 Procesy, vlákna, plánování
- 10 Synchronizační primitiva, vzájemné vyloučení
- 11 Zablokování a zotavení z něj
- 12 Organizace paměti, alokační algoritmy
- 13 Principy virtuální paměti, stránkování, algoritmy pro výměnu stránek, výpadek stránky, stránkovací tabulky, segmentace
- 14 Systémy souborů, adresářové struktury
- 15 Bezpečnost, autentifikace, autorizace, přístupová práva
- 16 Druhy útoků a obrana proti nim
- 17 Kryptografické algoritmy a protokoly
Architektury počítače[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
- 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
- $ I^2C $
příbuzné:
- IrDA
- Bluetooth
- Wi-Fi, WiMAX
Vstupní a výstupní zařízení, přenos dat[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
?? 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ů[editovat | editovat zdroj]
?? 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[editovat | editovat zdroj]
- monolitická struktura
- virtuální stroje
- mikrojádro
- architektura Windows, Unix
Vztah OS a HW, obsluha přerušení[editovat | editovat zdroj]
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í[editovat | editovat zdroj]
- 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í[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
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[editovat | editovat zdroj]
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[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
- 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[editovat | editovat zdroj]
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[editovat | editovat zdroj]
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