Теория распараллеливания и синхронизация. Демьянович Ю.К - 41 стр.

UptoLike

Интуитивно чувствуется, что упомянутая стратегия не являет-
ся справедливой.
Определение 1. Стратегия планирования называется почти
справедливой, если любое допустимое (безусловное) неделимое дей-
ствие в конце концов выполняется.
2
Запуск и исполнение предыдущей программы при почти спра-
ведливой стратегии приведет в конце концов к ее окончанию.
Для этой программы почти справедливой стратегией ее выпол -
нения на однопроцессорной системе явилась бы цикличе ская смена
процессов (наприм ер , по времени) с сохранением состояния сменя-
емого процесса.
Однако, для программ, содержащих операторы await с усло-
виями, стратегия почти справедл ивости недостаточна для заверше-
ния программы, т.к. условное неделимое действие не может быть
выполнено, пока условие не станет истинным.
Определение 2. Стратегия планирования называется спра-
ведливой в слабом смысле, если 1) она почти справедлива, 2) каж-
дое допустимое условное неделимое действие в конце концов вы-
полняется, если условие становится и затем остается истинным
в процессе реализации условного неделимого действия.
Однако, при стратегии, справедливой в слабом смысле, нет га-
рантии, что любой допустимый оператор await в конце концов вы-
полнится; это связано с тем, что в п ери од задержки условие может
многократно и быстро меняться, принимая значения false и true,
а проверка этого условия задержанным процессом может прихо-
диться всякий раз на значение false, так что процесс не будет
продвигаться.
Поэтому необходима более сильная стратегия.
Определение 3. Стратегия называется справедливой в силь-
ном смысле, если 1) она почти справедлива; 2) любое условное неде-
лимое действие в конце концов выполняется, если его условие бы-
вает истинным бесконечно часто.
Рассмотрим программу
bool continue = true, try = false;
co while (continue) {try = true; try = false; }
// < await (try) continue = false; >
2
Иногда эту стратегию называют безусловно справедливой, см. [7].
42