====== Parita (Parity) ====== **Parita** je matematický mechanismus kontroly integrity. Představte si ji jako "kontrolní součet". Pokud odesíláte řadu nul a jedniček, přidáte na konec ještě jednu číslici tak, aby celkový počet jedniček byl buď vždy sudý, nebo vždy lichý. ---- ====== 1. Parita v přenosu dat (Detekce chyb) ====== Nejzákladnější použití parity je při posílání dat po sériové lince nebo v operační paměti. Existují dva typy: * **Sudá parita (Even Parity):** Paritní bit se nastaví tak, aby celkový počet jedniček byl sudý. * **Lichá parita (Odd Parity):** Paritní bit se nastaví tak, aby celkový počet jedniček byl lichý. ===== Příklad (Sudá parita): ===== Chceme poslat číslo **1011** (obsahuje tři jedničky). 1. Aby byl počet jedniček sudý, musíme přidat **1**. 2. Výsledek: **10111** (nyní máme čtyři jedničky -> sudé). 3. Pokud příjemce dostane **10011** (jedna nula se cestou změnila), spočítá jedničky (3 -> liché) a ví, že **data jsou poškozená**. **Omezení:** Tato jednoduchá parita umí poznat, že nastala chyba, ale **neumí ji opravit** (neví, který bit je špatně). ---- ====== 2. Parita v RAID poli (Obnova dat) ====== U diskových polí (např. **RAID 5**) se využívá pokročilejší logika založená na operaci **XOR** (Exclusive OR). Zde parita neslouží jen k tomu, aby řekla "něco je špatně", ale dokáže chybějící data **dopočítat**. ===== Kouzlo XOR operace ===== Představte si tři disky, kde třetí disk (Parita) je výsledkem XOR operace disků A a B. Rovnice: $$Disk A \oplus Disk B = Parita$$ Pokud nám **Disk A selže (shoří)**, můžeme ho vypočítat zpětně: $$Parita \oplus Disk B = Disk A$$ ===== Příklad obnovy dat: ===== Mějme data: * Disk A: **10** (binárně) * Disk B: **11** (binárně) * Paritní disk (A XOR B): **01** **Havárie:** Disk A shoří. Máme jen Disk B (**11**) a Paritu (**01**). **Výpočet:** $$11 \oplus 01 = 10$$ **Výsledek:** Získali jsme zpět obsah Disku A (**10**). Toto je důvod, proč je RAID 5 pomalejší při zápisu (musí pokaždé vypočítat paritu), ale zachrání data při výpadku disku. ---- ====== 3. Parita v paměti RAM (ECC) ====== Běžné paměti RAM v domácích počítačích paritu nepoužívají. Pokud se bit v paměti samovolně otočí (např. vlivem kosmického záření), počítač spadne (modrá smrt) nebo se poškodí soubor. Servery používají **ECC paměti** (Error Correcting Code), které mají paritní čipy navíc. * Dokážou chybu nejen **detekovat**, ale v případě jednoho bitu i okamžitě **opravit** bez pádu systému. ---- ====== Srovnání typů parity ====== | Typ | Účel | Schopnost | Kde se používá | | --- | --- | --- | --- | | **Paritní bit** | Kontrola přenosu | Pouze detekuje chybu. | Sériové porty, staré PC. | | **ECC** | Ochrana paměti RAM | Detekuje a opraví 1 bit. | Servery, pracovní stanice. | | **RAID Parita** | Ochrana disků | Dopočítá celý chybějící disk. | RAID 5, RAID 6. | ---- //Související pojmy: RAID, Bity a Byty, XOR, ECC RAM, Binární soustava.//