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

Reference

V tomto článku byl použit překlad textu z článku Asynchronous I/O na anglické Wikipedii.

    Externí odkazy

    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.