Составители:
//{x == 0 ∨ x == 1}
< x = x + 2; >
{x == 2 ∨ x == 3}
oc
{x == 3}
В этой программе предусловия и постусловия для каждого процес-
са слабее, чем могли бы быть при изолированном их выполнении.
Например, для процесса x = x + 1; можно было бы записать
{x == 0}
x = x + 1;
{x == 1}
Аналогично — для второго процесса.
Рассмотрим часто встречающуюся задачу.
Пусть процесс планирует операции диска с перемещаемыми го-
ловками, а другие процессы добавляют операции в очередь. Когда
диск не занят, он выбирает (по некоторому критерию) наилучшую
операцию и начинает ее выполнение. На самом деле здесь реали-
зуется ослабленная ситуация: диспетчер не всегда выполняет наи-
лучшуют операцию, ибо в процессе выполнения может в очереди
появиться еще одна, лучшая операция, после того, как был сделан
выбор. Итак, здесь происходит естественное ослабление условий.
Аналогичным образом можно рассмотреть параллельный ал-
горитм, часто встречающийся п ри приближенном решении д иффе-
ренциальных уравнени й (например, методом сеток).
Пространство задач аппроксимируется конечной сеткой точек
grid[n, n]. Каждой точке (ил и блоку точек) сетки назначается про-
цесс
double grid[n, n];
process PDE[i = 1 to n − 1, j = 1 to n − 1] {
while ([не сошлось]) {
grid[i, j] = f([окружение точки (i, j)])
}
}
36
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »
