Kódová vzdálenost
Teorie
Link to original
- Kód
- Definice
- Kód je způsob reprezentace dat pomocí znaků podle určitého pravidla. Např. binární kód (0 a 1) slouží k ukládání a přenosu dat.
- Typy
- prostý | zabezpečující | samoopravný
- Princip konstrukce
- Zabezpečující: Přidáváme paritní bity, které označují sudou nebo lichou paritu (podle zvolené metody)
- Samoopravný: Na pozice mocnin dvou (např. 1, 2, 4, 8, …) přidáváme paritní bity, které kontrolují různé kombinace ostatních bitů.
- Nadbytečnost
- Proč nadbytečnost (redundance)?
- Jsou to nadbytečné informace, které můžou zvýšit h-vzdálenost a zabezpečit tím data před chybami.
- nadbytečnost v %,
- (): 8+1 (parita) = 1/9 = 11.11 %.
- (): 8+4 (1,2,4,8) = 4/12 = 33.33 %.
- Vzdálenost
- Hamingeova - Počet bitů, ve kterých se liší dvě kódová slova.
- Minimální - Hammingova vzdálenost mezi všemi dvojicemi kódových slov v daném kódu.
- Udává schopnost kódu detekovat nebo opravovat chyby.
- H-Váha - počet bitů, které mají hodnotu 1 v binárním řetězci
Data a Uložení
- Informace a Data
- Definice + VS
- Data: kodová zpráva (přenos v bin)
- Informace: data + jejich iterpretace (čitelný pro člověka)
- VS: Máme data po decodovaní asci tebulkou přečteme “text”
Data(101...10) -> interpretace dat -> Informace(Hello World)
- Jednotky
- (b)it (1/0) | (B)ajt (1B=8b) | půl-byte | kB,MB,GB,TB
- Typy a uložení
- Celé čísla - doplňkový kod
- Desetiná číslá - kod s plovoucí čárkou (IEEE754)
- Znaky - unicode / asci tabulka
- Definice + VS
- Uložení dat
- Krátkodobé: RAM
- Dlouhodobé: HDD, SDD, Optické média(CD,DVD)
- ? Vnitřní paměti
- Rozdělení
- RAM: Dočasná paměť pro běžící procesy
- Cache: Rychlá paměť mezi procesorem a RAM pro často používaná data.
- Registry: Velmi rychlá paměť přímo v procesoru pro okamžitá data.
- ROM: Trvalá paměť, obsahuje firmware. (bios)
- Architektura
- Hierarchie: Registry → Cache → RAM → ROM → Sekundární úložiště.
- Adresace: Paměť je organizována do adresovaných bloků, které umožňují rychlé vyhledávání dat.
- Paměťové buňky:
- Nejmenší jednotka paměti, uchovává 1 bit (hodnotu 0 nebo 1).
- Seskupují se do bajtů (8 bitů) a větších celků.
- Virtuální paměť
- virtuální paměť = technika, která umožňuje počítačovému systému rozšířit dostupnou paměť nad rámec fyzické RAM
- přidělování = adresový prostor - každý proces dostane představovaný prostor paměti, který může používat, i když v reálné paměti (RAM) není celkově tolik místa
- Rozdělení
- Typy Architektury a rozdíly
- Harvardská
- oddělená paměť (data/program)
- rychlejší, paralelní přístup
- Von Neumannovo
- jednoduší, levnější ⇒ (běžné PC)
- (sdílná, sekvenční-hrdlo)
Životní cyklus (Von)- 1
INPUT --(program & data)-> operační pamět - 2
vlastní výpočet -> ALU(řízena řadičem PC)- mezivýsledky → registrů / OP
- 3
RESULTS -> OUTPUT DEVICE
- 1
- Harvardská
Algoritmy
- Program
- Definice:
- Program je soubor pokynů napsaných v nějakém programovacím jazyce, který je určen k tomu, aby řešil konkrétní problém.
- Interpretace vs Kompilace
- Kompilace překládá celý program do strojového kódu před jeho spuštěním, zatímco interpretace vykonává kód řádek po řádku během běhu programu.
+- Program je algoritmus popsaný tak, aby jeho popis mohl sloužit jako vstup pro počítač. (Skripta)
- Interpretace je proces, při kterém se program vykonává přímo z původního kódu, bez jeho předchozího překladu do strojového kódu. (např. Python, JS)
- Kompilace je proces, při kterém se celý program přeloží z vyššího programovacího jazyka (např. C, C++) do strojového kódu nebo do mezikódu (např. bytecode pro Java)
- Definice:
- Algoritmus
- Definice: Algoritmus je konečná posloupnost kroků k vyřešení určitého problému.
- Vlastnosti:
- Mechanický - při běhu se nemůže vracet k zadání
- Deterministický - vždy se ví co bude další krok (neni to random AI)
- Hromadný (zobecnitelnost) - je ready na jakýkoliv vstup, ne jenom čísla 123
- Konečný+Resultativnost - musí někdy skončit a něco vrátit (UI/hodnota)
- Správný - nespadne při špatným inputu
- Other
- Elementárnost: je tvořen z nedělitelných kroků
- (Efektivnost)
- ?
Správnost algoritmu: splňuje všechny vlastnosti
- Jak se dá zobrazit?
- Textově - krok za krokem (příkazy, podmínky).
- Pseudo+Kodem - psedojazyk
- Diagramem - Plošný, Vývojový, Stromečkový
- Strukturogramy:
- Typy +
+/-- Plošný: Vhodné pro hierarchická rozhodnutí.
- Vývojový: Vhodné pro hierarchická rozhodnutí.
- Stromečkový: Vhodné pro vizualizaci toků a podmínek.
- lze zjemňovat, pojmenovat celky, úrovňové
- (všechny nejsou dobré na komplexnější alg, užitečné pouze na jednoduché)
- Převod
- Každý algoritmus má 3 typy prvků:
- Sekvence: posloupnost příkazů za sebou
- Iterace: Cyklus
- Selekce: Podmínka
- ? stačí?
- Každý algoritmus má 3 typy prvků:
- Typy +
- Rekurze
- Definice: Podprogram který se sám volá
- Pravidla: musí obsahovat basecase aby někdy skončila (
přerušení)
- Podprogram
- Definice - je samostatná část kódu (funkce, procedura), která vykonává určitou úlohu.
- Why? - zjednodušení kódu a znuvupoužitelnost
- Správný návrat
- Stack (zásobník): Uchovává návratovou adresu (kam se má vrátit).
- Instrukce
return: Provádí návrat z podprogramu.
Other
-
Semafor
- K čemu? Používá se k řízení přístupu více procesů ke sdíleným zdrojům, aby nedošlo ke konfliktům v kritické oblasti.
- Jakých hodnot může nabývat?
- Binární semafor:
0=obsazeno,1=volné (zámek) - Počítaný: Celé číslo (
0 až N)N=počet volných zdrojů |0=všechny zdroje obsazeny → čekej- umí řídit více instancí stejného typu zdroje
- např: thread pool, více tiskáren
- Binární semafor:
- Funkce
- Test (zkontrolovat): Je semafor volný?
- Uzamknutí (zamknout): Zabrání přístupu ostatním.
- Odemknutí (uvolnit): Umožní dalším procesům přístup.
- ostatní
- Kritická oblast = Část kódu přistupující ke sdíleným prostředkům, kde hrozí konflikty při souběžném přístupu více procesů
- Jak předejít zamrznutí? = Správná alokace zdrojů (např. pomocí semaforů) a dodržení pravidel synchronizace, aby žádný proces nehladověl
-
OS
- definice: software, který spravuje hardware počítače a poskytuje prostředí pro běh aplikací, zjišťuje komunikaci mezi uživatelem a hardwarem
- služby: Síťové, Bezpečnost, správa souborů a procesů, Správa paměti
-
Co je Boolengovská algebra, důsledek, ekvivalence, …
-
UI & API
- UI je rozhraní které umožnuje uživateli komunikovat s počítačem (terminál, plovoucí okna aplikací)
- API je rozhraní pro programy, např knihovny od OS poskytují API pro správu souborů nebo rest api pro čerpání dat z backend
-
Testovací tabulka
- Význam: Popsat jaky vyznam ma testovaci tabulka algoritmu a co obsahuje
- Obsahuje: vstupní data a očekávané výstupy, skutečné výstupy, poznámky
Datové struktury
- Základní
- Stack
LIFO, jako talíře- poslední přidaný prvek je první odebrán
- operace: Push, Pop, Peek
- využití: paměti, iterativní rekurze
- Que
FIFO, fronta v obchodě- první přidaný prvek je první odebrán
- operace: EnQue, DeQue, Peek
- využití: tiskové, priority
- Strom
- Hierarchická struktura, kde každý prvek může mít více podřízených (např. binární strom pro vyhledávání).
- Pole
- soubor stejných objektů | fixní velikost | přístup prvků přes index
- Stack
- Soubor
- slouží k uchovávání a organizaci dat na pevném disku nebo jiném úložném médiu
- Pojmy
- Integrita: Data musí být v souladu s reálnými objekty (např. kladný věk).
- Redundance: Opakování dat, které není nutné (např. duplicita informací).
- Konzistence: Uložené údaje musí zůstat stejné, pokud jsou opakovaně čteny.
- Typy
- Statická
- velikost a struktura jsou definovány při kompilaci a nemění se během běhu programu
- např: Pole
- Dynamická
- umožňuje dynamické přidávání a odebírání prvků během běhu programu
- např: List, Strom
+Flexibilita-pamět,pomalejší
- Statická
HW
- Sběrnice
- Definice:
- komunikační kanál, který propojuje různé části počítače a umožňuje přenos dat mezi nimi (např: mezi procesorem, pamětí a periferními zařízeními)
- P(jakákoliv skupina vodičů, po které jsou data v systému přenášena z jedné součásti desky do druhé)
- Typy:
- datová, adresová, řídící
- Definice:
- fáze strojových instrukcí procesoru
- načtení instrukce, dekódování, provádění, zápis?
- pevný disk HDD a SSD
- HDD = úložné zařízení, které používá magnetické disky k ukládání dat
- SSD = úložné zařízení, které používá flash paměť k ukládání dat, bez pohyblivých částí, díky tomu je rychlejší, tišší a odolnější než HDD
- optický disk CD rom, DVD
- CD = optický disk, který umožňuje pouze čtení dat (ne zápis), je často používaný pro distribuci hudby
- DVD = optický disk, který je podobný CD-ROM, ale má větší kapacitu pro uchovávání dat, je použitelný pro video, software a další data
- pixel, barevná hloubka, barevná mapa
- pixel = nejmenší jednotka obrázku na obrazovce nebo v grafice, která může mít určitou barvu
- barevná hloubka = určuje, kolik bitů je použito k reprezentaci barvy jednoho pixelu (čím větší barevná hloubka, tím více barev může být zobrazeno)
- barevná mapa = tabulka, která mapuje indexy nebo hodnoty pixelů na konkrétní barvy
- alokační jednotka, stopa, sektor, cylindr
- alokační jednotka = nejmenší jednotka paměti, kterou operační systém přiděluje procesům
- stopa = jedna z kruhových drážek na povrchu rotačního disku (např. HDD), kde jsou uložena data
- sektor = nejmenší jednotka pro čtení nebo zápis dat na disku
- cylindr = všechny stopy na všech diskových plotnách, které jsou umístěny ve stejné poloze