Введение в программирование - Учебное пособие (Корочкин А. В.)

Глава9. задачи

Созданный более 15-и лет назад язык Ада уже тогда включал средст­ва параллельной обработки, что выделяло его среди других универсаль­ных языков программирования. Сегодня, когда можно говорить о на­чале широкого практического применения параллельных вычисли­тельных систем, наличие в Аде средств программирования параллель­ных процессов придает языку еще большую ценность.

Язык предоставляет развитые средства для программирования па­раллельных процессов. Программа представляется в виде модулей, ко­торые могут выполняться параллельно на множестве процессоров или на одном процессоре в режиме разделения времени. При этом модули могут взаимодействовать между собой, синхронизироваться или обме­ниваться информацией. Такие модули в Аде называются задачами. Они предназначены для реализации абстракции процесса. Понятие задачи ( процесса ) является фундаментальным в языке, так как выполнение Ада программы - это выполнение одной или нескольких задач. При этом каждая задача имеет собственную нить управления, выполняется неза­висимо и параллельно.

Задачи, как и остальные модули, имеют две части: спецификацию и тело задачи. Однако задача не является компилируемым модулем. По­этому задачи размещаются в описательной части пакета или подпро­граммы.

В Аде 95 средства параллельной обработки получили дальнейшее развитие в двух направлениях. Это во-первых, появление в язьпсе еще одного механизма работы с процессами - защищенных модулей, а во-вторых - специальное приложение к языку "Распределенные систе­мы". Защищенные модули будут детально рассмотрены в Главе 13.

В настоящем разделе рассматриваются средства работы с заданными модулями (task units).