Співпрограми

Використовуючи співпрограми (coroutine, рис. Б.1), говорять про концепцію обмеженої паралельної обробки інформації. В основу цієї обробки покладено однопроцесорну модель, де є тільки один потік інструкцій з послідовно виконуваним керуючим потоком, що передбачає організоване заняття та звільнення операційного ресурсу "процесор" співпрограмою.

Цей "квазі-паралельний" процес відбувається між двома або багатьма співпрограмами i може розглядатись як один з видів процедур, локальні дані яких залишаються незмінними від одного виклику до наступного. Обробка починається за викликом одної співпрограми. Кожна співпрограма може мати в багатьох місцях інструкцію для перемикання керуючого потоку на іншу співпрограму. Це не є процедурним викликом, тобто викликана співпрограма має віддавати керування на співпрограму, що її викликала, а може також переключатися на інші співпрограми. Якщо співпрограма, що була активною до цього, одержує дозвіл на ресурс, то обробка продовжується з тієї інструкції, перед якою було виконано перехід до іншої співпрограми. Якщо активна співпрограма термінує ("зависає"), то закінчується процес виконання всіх інших співпрограм. Переходи між співпрограмами мають описуватися програмістом у явній формі.Він повинен також піклуватися про те, щоб кожна співпрограма була доступною i щоб керуючий потік правильно визначав точки співпрограм. з яких продовжується обчислення.

У зв'язку з тим, що ця концепція будується на одному єдиному процесорі, вона не потребує відповідних управлінських витрат на мультизадачність. Однак тут не відбувається справжньої паралельної обробки!


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: