| Комп'ютер і зовнішні події
| |
Ми чекали його дуже довго.
Що може бытьглупее, чим чекати?
Б. Гребенщиков |
Практично всі функції сучасних обчислювальних систем так чи інакше
зводяться до обробки зовнішніх подій. Єдина категорія додатків,
для яких зовнішні події абсолютно неактуальні, — це так звані
пакетні застосування найчастіше — обчислювальні завдання.
Доля таких завдань в
загальному об'ємі комп'ютерних застосувань у наш час невелика і постійно падає.
У останніх же випадках, навіть якщо не згадувати про спеціалізовані комп'ютери,
що управляють, сервери обробляють зовнішні по відношенню до ним
запити клієнтів, а персональний комп'ютер — реагує на дії користувача.
Відмінність
між системами (додатками реального часу), що управляють,
і системами загального призначення (термін — система розділеного
часу
вийшов з вживання і не завжди точно відображає суть справи) полягає лише
в тому, що перші повинні забезпечувати гарантований час реакції
на подію, тоді як другі "всього лише" — надати хороший середній
час такої реакції і обробку великої кількості подій в секунду.
Примітка
Час
обробки однієї події і кількість подій, що обробляються в
одиницю часу, далеко не завжди є жорстко взаємозв'язаними — адже
при багатопотоковій обробці система може обробляти декілька подій
паралельно.
Єдиний спосіб, яким нейманівський для фону комп'ютер може відреагувати
на що б то не було, — це виконати програму, послідовність команд.
В разі зовнішньої події, природним рішенням здається надати
команду умовного переходу, умовою якого є ознака події.
У системах команд мікроконтроллерів частореализуют саме такий
переходи (див. наприклад таблиця. 2.2). Як ознака події в цьому випадку використовується
значення одне з бітів спеціального регістра, біти якого відповідають
входам мікросхеми контроллера. Біт дорівнює одиниці, якщо на відповідний
вхід подана висока напруга, і нулю — якщо низьке.
Наявність таких команд корисна, але вирішує проблему
не повністю: так, сіли подія сталася, ми моыжем викликати програму і
здійснити реакцію але що ми робитимемо, якщо його ще не відбувалося?
|