Bakalářská státnice - Informatika - Základy informatiky - ISPS - Architektura počítačů a operačních systémů

Z ωικι.matfyz.cz
Přejít na: navigace, hledání

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


zdroje:


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]

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[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