Asynchronní vstup/výstup
Asynchronní vstup/výstup (asynchronní V/V, z angličtiny i asynchronní I/O) je v oboru počítačů označení pro takovou podobu vstupu/výstupu, při které které mohou být během čekání na dokončení vstupního/výstupního datového přenosu souběžně prováděny jiné procesy.
Vstupně/výstupní operace jsou obvykle řádově časově náročnější než operace prováděné procesorem v operační paměti. Tedy například od okamžiku, kdy procesor předá diskovému řadiči požadavek na data, do okamžiku, kdy jsou data připravena a posílána zpět, mohou uplynout milióny taktů, tedy procesor mohl vykonat milióny instrukcí.
Proto je požadavek na poskytování asynchronního V/V jedním za základních požadavků na služby operačního systému. V nejjednodušší podobě (například na systému CP/M) bývá implementován přinejmenším takzvaný polling, který může mít v základní podobě podobu prostého líného aktivního čekání. Pokročilejší platformy a operační systémy obvykle využívají vnější přerušení, které aktivní čekání nevyžaduje a je tak efektivnější. Na úrovni operačního systému dále zlepšuje využití hardwaru multitasking uživatelských procesů. Asynchronní vstup a výstup může být rovněž podporován na úrovni uživatelských procesů a to tehdy, pokud může programátor využívat více vláken nebo pokud operační systém nabízí ve svém programovém rozhraním také systémová volání pro asynchronní vstup/výstup. Příkladem struktur pro řízení běhu pro podporu asynchronního V/V je dvojice klíčových slov async/await dostupná v řadě moderních programovacích jazyků.
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Asynchronous I/O na anglické Wikipedii.