Введення-виведення даних синхронне та асинхронне - що це таке

даних

У комп'ютерних системах під синхронним введенням і синхронним висновком розуміють процеси введення-виведення відліків даних, у яких явно зберігаються інтервали часу (періодичність) передачі відліків на введення чи виведення. Синхронність введення-виведення забезпечується за допомогою тієї чи іншої апаратної підтримки (таймери та різні інші периферійні пристрої із засобами синхронізації та із застосуванням буферизації даних для вирівнювання потоку введення-виведення даних). При цьому термін синхронне введення-виведення не означає обов'язкової наявності сигналу синхронізації в інтерфейсі введення-виведення, і синхронність може забезпечуватися як внутрішньою, так і зовнішньою синхронізацією.

Зазвичай у процесорних і вимірювальних системах напрямок потоку даних (на введення чи висновку) вважають щодо комп'ютера (процесора), що у центрі аналізованої архітектури. Зокрема, відліки АЦП та цифрових (дискретних) входів вважають даними на введення, а відліки ЦАП та цифрових (керуючих) виходів font-family: "Calibri", "sans-serif"; mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:UA;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"– даними на висновок.

При асинхронному введенні та виведенні не зберігаються інтервали часу (періодичність) передачі відліків на введення або виведення. При цьому дані надходять на введення або виведення в темпі самого інтерфейсу передачі даних, з непередбачуваними затримками буферизації, без збереження будь-яких тимчасових інтервалів. Зокрема, це означає для програміста, що під час використанняасинхронних функцій введення-виведення безглуздо зіставляти моменти виклику функції асинхронного введення-виведення з фізичними моментами виконання цієї операції “з іншого боку інтерфейсу” (подібне зіставлення має сенс лише за статистичному способі обробки даних). Факт виконання асинхронної операції на висновок може бути перевірений за допомогою підтвердження (якщо дана операція виведення має підтвердження, або підтвердження можна отримати наступною операцією введення даних). При асинхронному введенні-виводі згадана вище буферизація даних може зіграти протилежну роль і збільшити невизначеність часу доставки даних за відсутності механізму синхронізації та управління трафіком передачі даних.

При синхронному зборі в системах збору даних нерідко програмне середовище на приймальній стороні отримує дані асинхронно, але якщо відомо, що отримані дані були зібрані без втрат і синхронно (наприклад, АЦП в синхронному режимі), то ці дані розглядаються як синхронні, наприклад, при використанні спектральних алгоритмів ЦГЗ. Аналогічно, при реалізаціях синхронного виведення через буфер сторона, що передає, асинхронно заповнює буфер (з контролем його заповнення), а приймальна сторона (наприклад, ЦАП) інтерпретує отримані дані як синхронні.

Коли несинхронність вводу-виводу може становити характерно мінімальну частину від заданого періоду збору даних, використовують термін квазисинхронный режим введення-виведення. У цьому режимі дотримується встановлений середній період збору даних і натомість можливої ​​фазової нестабільності періодичного процесу ввода-вывода. Квазісинхронний режим, як правило, цілком прийнятний для систем управління, але на введення квазісинхронний режим збору (наприклад, АЦП) може бути застосований там, де не застосовуєтьсяспектральна обробка сигналу Квазісинхрний режим не дозволяє відновити вихідну форму сигналу, оскільки відліки даних не жорстко прив'язані до часу, за винятком випадку, коли випадкова величина фазової нестабільності кількісно відома і цей фактор враховується при відновленні форми сигналу.

У міру історичного розвитку рівнів програмних та апаратних засобів все більше з'являється проміжних програмно-апаратних рівнів, як наслідок, все більше з'являється асинхронних інтерфейсів та ускладнюються реалізації синхронних інтерфейсів введення-виведення.