Составители:
22
программы создала условия для их исполнения. Параллельные операторы представляют час-
ти алгоритма, которые в реальной системе могут исполняться одновременно. Эти части взаи-
модействуют между собой и с окружением проектируемой системы.
Наиболее явно разница между сигналами и переменными проявляется при интерпрета-
ции операторов последовательных присвоений. Для обоих видов сохраняется общее для по-
следовательных операторов правило начала исполнения: первый оператор в процессе (см.
раздел 4.6.) исполняется после выполнения условий инициализации процесса, а каждый сле-
дующий сразу после исполнения предыдущего. Однако результат присвоения переменной
непосредственно доступен любому последующему оператору в теле процесса. Трактовка
оператора последовательного присвоения сигналу существенно отличается от трактовки при-
своения переменной или операторов присваивания в традиционных языках программирова-
ния. Присвоение сигналу не приводит непосредственно к изменению его значения. Новое
значение сначала заносится в специальный буфер, называемый драйвером сигнала, и сле-
дующие операторы в теле процесса оперируют со старыми значениями. Фактическое изме-
нение значения сигнала выполняется только после исполнения до конца процессов и других
параллельных операторов, инициированных общим событием, или после исполнения опера-
тора останова
wait (см. раздел 4.7.3).
Сформулируем наиболее существенные различия сигналов и переменных:
9 Переменные меняют значения сразу после присвоения, и новые значения непо-
средственно учитываются во всех преобразованиях, записанных в теле процесса
после такого присвоения.
9 Значение сигнала меняется не сразу после выполнения присвоения. Оператору
присваивания сопоставляется некий буфер, называемый контейнером или, чаще,
драйвером сигнала. Оператор присваивания передает новое значение драйверу
сигнала, и лишь после того, как выполнены преобразования во всех процессах,
инициированных общим событием, содержание драйвера передается сигналу. Пе-
редача значения сигналу может быть еще более задержана, если оператор при-
сваивания содержит выражение задержки after.
9 Переменная определена только внутри тела процесса, сигнал — во
всем архи-
тектурном теле.
9 Переменной можно многократно присваивать значение в теле процесса. Сигнал
внутри одного процесса может иметь только один драйвер, т. е. присвоение зна-
чения сигналу может быть выполнено только один раз в теле процесса (на раз-
личных несовместимых путях реализации алгоритма могут быть несколько опера-
торов присваивания
значений одному сигналу).
4.5. Атрибуты
Атрибуты — скаляры, отражающие некоторые свойства объектов, используемых в
программных модулях (типов, переменных, агрегатов). Например, атрибуты типа предназна-
чены для сжатого представления информации о множестве значений, объединенных типом, а
атрибуты сигнала — для представления временных свойств сигнала. В разделах операторов
программы создала условия для их исполнения. Параллельные операторы представляют час-
ти алгоритма, которые в реальной системе могут исполняться одновременно. Эти части взаи-
модействуют между собой и с окружением проектируемой системы.
Наиболее явно разница между сигналами и переменными проявляется при интерпрета-
ции операторов последовательных присвоений. Для обоих видов сохраняется общее для по-
следовательных операторов правило начала исполнения: первый оператор в процессе (см.
раздел 4.6.) исполняется после выполнения условий инициализации процесса, а каждый сле-
дующий сразу после исполнения предыдущего. Однако результат присвоения переменной
непосредственно доступен любому последующему оператору в теле процесса. Трактовка
оператора последовательного присвоения сигналу существенно отличается от трактовки при-
своения переменной или операторов присваивания в традиционных языках программирова-
ния. Присвоение сигналу не приводит непосредственно к изменению его значения. Новое
значение сначала заносится в специальный буфер, называемый драйвером сигнала, и сле-
дующие операторы в теле процесса оперируют со старыми значениями. Фактическое изме-
нение значения сигнала выполняется только после исполнения до конца процессов и других
параллельных операторов, инициированных общим событием, или после исполнения опера-
тора останова wait (см. раздел 4.7.3).
Сформулируем наиболее существенные различия сигналов и переменных:
9 Переменные меняют значения сразу после присвоения, и новые значения непо-
средственно учитываются во всех преобразованиях, записанных в теле процесса
после такого присвоения.
9 Значение сигнала меняется не сразу после выполнения присвоения. Оператору
присваивания сопоставляется некий буфер, называемый контейнером или, чаще,
драйвером сигнала. Оператор присваивания передает новое значение драйверу
сигнала, и лишь после того, как выполнены преобразования во всех процессах,
инициированных общим событием, содержание драйвера передается сигналу. Пе-
редача значения сигналу может быть еще более задержана, если оператор при-
сваивания содержит выражение задержки after.
9 Переменная определена только внутри тела процесса, сигнал — во всем архи-
тектурном теле.
9 Переменной можно многократно присваивать значение в теле процесса. Сигнал
внутри одного процесса может иметь только один драйвер, т. е. присвоение зна-
чения сигналу может быть выполнено только один раз в теле процесса (на раз-
личных несовместимых путях реализации алгоритма могут быть несколько опера-
торов присваивания значений одному сигналу).
4.5. Атрибуты
Атрибуты — скаляры, отражающие некоторые свойства объектов, используемых в
программных модулях (типов, переменных, агрегатов). Например, атрибуты типа предназна-
чены для сжатого представления информации о множестве значений, объединенных типом, а
атрибуты сигнала — для представления временных свойств сигнала. В разделах операторов
22
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »
