zpět: Bakalářská státnice - Informatika - Základy informatiky - obor Správa počítačových systémů

zdroje:

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

  • I2CI^2C

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