Асинхронний або неблокуючий ввід/вивід — це форма обробки (вводу/виводу), яка дозволяє виконувати інші процеси ще до того як закінчиться передавання даних.
Операції вводу/виводу на комп’ютері можуть бути надзвичайно повільними порівняно з обробкою даних. Пристрій вводу/виводу може містити механічні частини які повинні фізично переміщуватись, наприклад жорсткий диск, який шукає доріжку для запису чи читання. Це часто на порядки повільніше ніж перемикання електричного струму. Наприклад під час дискової операції що займає десять мілісекунд, процесор що має частоту в один гігагерц може виконати десять мільйонів циклів виконання інструкцій.
Простішим підходом до вводу/виводу є запитати доступ, і чекати на отримання даних. Але такий підхід (що називається синхронним, чи блокуючим) зупиняє роботу програми на час виконання вводу/виводу, призводячи до простоювання обчислювальних ресурсів. Коли програма робить багато операцій вводу/виводу, процесор майже ввесь свій час може проводити очікуючи на завершення виконання цих операцій.
Альтернативою є почати комунікацію, а потім виконати процеси що не потребують результатів її завершення. Цей підхід називають вводом/виводом. Будь-яка задача що насправді залежить від результатів вводу-виводу все ще очікуватиме завершення комунікації, але інші процеси зможуть продовжувати роботу.
В операційних системах існує багато функцій на різних рівнях, призначених для реалізації асинхронного I/O. Насправді, у всіх, окрім найбільш рудиментальних операційних систем, головною функцією є забезпечення хоча б базових форм асинхронного I/O, хоча це може бути не надто видимим для користувача чи програміста. В найпростішому програмному рішенні, статус пристрою постійно з певними інтервалами, щоб визначити чи готовий пристрій до наступної операції. (Наприклад (CP/M) працювала таким чином. Семантика її системних викликів не вимагала більш складної структури вводу/виводу, хоча більшість реалізацій були складнішими та ефективнішими). Прямий доступ до пам’яті може значно збільшити ефективність систем що базуються на опитуванні, а можуть взагалі усунути потребу в опитуванні. Багатозадачні операційні системи можуть використовувати функціональність яка надається апаратними перериваннями, при цьому ховаючи складність обробки переривання від користувача. був першою формою багатозадачності створеної для експлуатації асинхронного вводу виводу.
Асинхронний ввід/вивід використовується для збільшення пропускної здатності, та швидкості реагування на події.
Дивись також
Посилання
- C10K Problem [Архівовано 18 липня 2013 у WebCite] — огляд методів асинхронного вводу/виводу з наголосом на маштабовність.
aio.h
— asynchronous input and output [ 8 березня 2014 у Wayback Machine.] Стандарт POSIX
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Asinhronnij abo neblokuyuchij vvid vivid ce forma obrobki vvodu vivodu yaka dozvolyaye vikonuvati inshi procesi she do togo yak zakinchitsya peredavannya danih Operaciyi vvodu vivodu na komp yuteri mozhut buti nadzvichajno povilnimi porivnyano z obrobkoyu danih Pristrij vvodu vivodu mozhe mistiti mehanichni chastini yaki povinni fizichno peremishuvatis napriklad zhorstkij disk yakij shukaye dorizhku dlya zapisu chi chitannya Ce chasto na poryadki povilnishe nizh peremikannya elektrichnogo strumu Napriklad pid chas diskovoyi operaciyi sho zajmaye desyat milisekund procesor sho maye chastotu v odin gigagerc mozhe vikonati desyat miljoniv cikliv vikonannya instrukcij Prostishim pidhodom do vvodu vivodu ye zapitati dostup i chekati na otrimannya danih Ale takij pidhid sho nazivayetsya sinhronnim chi blokuyuchim zupinyaye robotu programi na chas vikonannya vvodu vivodu prizvodyachi do prostoyuvannya obchislyuvalnih resursiv Koli programa robit bagato operacij vvodu vivodu procesor majzhe vves svij chas mozhe provoditi ochikuyuchi na zavershennya vikonannya cih operacij Alternativoyu ye pochati komunikaciyu a potim vikonati procesi sho ne potrebuyut rezultativ yiyi zavershennya Cej pidhid nazivayut vvodom vivodom Bud yaka zadacha sho naspravdi zalezhit vid rezultativ vvodu vivodu vse she ochikuvatime zavershennya komunikaciyi ale inshi procesi zmozhut prodovzhuvati robotu V operacijnih sistemah isnuye bagato funkcij na riznih rivnyah priznachenih dlya realizaciyi asinhronnogo I O Naspravdi u vsih okrim najbilsh rudimentalnih operacijnih sistem golovnoyu funkciyeyu ye zabezpechennya hocha b bazovih form asinhronnogo I O hocha ce mozhe buti ne nadto vidimim dlya koristuvacha chi programista V najprostishomu programnomu rishenni status pristroyu postijno z pevnimi intervalami shob viznachiti chi gotovij pristrij do nastupnoyi operaciyi Napriklad CP M pracyuvala takim chinom Semantika yiyi sistemnih viklikiv ne vimagala bilsh skladnoyi strukturi vvodu vivodu hocha bilshist realizacij buli skladnishimi ta efektivnishimi Pryamij dostup do pam yati mozhe znachno zbilshiti efektivnist sistem sho bazuyutsya na opituvanni a mozhut vzagali usunuti potrebu v opituvanni Bagatozadachni operacijni sistemi mozhut vikoristovuvati funkcionalnist yaka nadayetsya aparatnimi pererivannyami pri comu hovayuchi skladnist obrobki pererivannya vid koristuvacha buv pershoyu formoyu bagatozadachnosti stvorenoyi dlya ekspluataciyi asinhronnogo vvodu vivodu Asinhronnij vvid vivid vikoristovuyetsya dlya zbilshennya propusknoyi zdatnosti ta shvidkosti reaguvannya na podiyi Divis takozhProblema 10000 z yednan Asinhronnij semafor ATM tehnologiya PosilannyaC10K Problem Arhivovano 18 lipnya 2013 u WebCite oglyad metodiv asinhronnogo vvodu vivodu z nagolosom na mashtabovnist aio h asynchronous input and output 8 bereznya 2014 u Wayback Machine Standart POSIX