Vstup a výstup (I/O - Input/Output)

V informatice pojem I/O (zkratka z anglického Input/Output, česky vstup a výstup) označuje veškerou komunikaci mezi systémem pro zpracování informací (počítačem, mikrokontrolérem) a vnějším prostředím. Tímto prostředím může být lidský uživatel, jiný počítač, síť nebo jakékoliv periferní hardwarové zařízení.

Jednoduše řečeno: Vstupy jsou data a signály, které systém přijímá ke zpracování, zatímco výstupy jsou výsledky zpracování, které systém odesílá ven. Koncept I/O je absolutním základem architektury počítačů (tzv. Von Neumannovy architektury) – bez něj by počítač byl jen izolovanou černou skříňkou, do které nelze dostat žádná data a ze které nelze přečíst žádné výsledky.

1. Hardwarové I/O zařízení (Periferie)

Fyzická zařízení, která zprostředkovávají I/O operace, se nazývají periferie. Dělí se do tří základních kategorií:

2. Jak počítač komunikuje s I/O zařízeními

Aby mohl centrální procesor (CPU) efektivně komunikovat s pomalejšími periferiemi, využívá počítačová architektura několik klíčových mechanismů:

Adresování periferií

Správa přenosu dat

3. Softwarové I/O a programování

Z pohledu operačního systému a softwarového vývoje neznamená I/O jen klávesnici a monitor. Jde primárně o File I/O (čtení a zápis souborů na disku) a Network I/O (stahování a odesílání dat přes síť). Tyto operace jsou z hlediska procesoru extrémně pomalé.

Programovací jazyky k tomu přistupují dvěma způsoby:

Blokující vs. Neblokující I/O

4. I/O jako úzké hrdlo (Bottleneck)

Rychlost procesorů a operačních pamětí roste historicky mnohem rychleji než propustnost pevných disků nebo síťových spojení. Z tohoto důvodu se IT systémy často dělí podle toho, co je nejvíce omezuje:

K měření výkonnosti úložných I/O zařízení se nejčastěji používá metrika IOPS (Input/Output Operations Per Second), která udává, kolik operací čtení/zápisu dokáže úložiště zpracovat za jednu vteřinu (moderní NVMe SSD disky dosahují i více než milionu IOPS).

Rychlé srovnání I/O pojmů

Aspekt Popis Typický příklad
Vstupní zařízení Posílá data do počítače Klávesnice, čtečka čárových kódů
Výstupní zařízení Přijímá data z počítače pro zobrazení Monitor, tiskárna, LED dioda
I/O Bound proces Brzděn pomalým přísunem dat Zálohování velkých složek, databázové dotazy
Synchronní I/O Blokuje běh programu do dokončení operace Tradiční čtení souboru (např. v Pythonu)
DMA (Direct Memory Access) Hardware obchází procesor při přesunu dat Načítání textur z disku přímo do grafické paměti