For i:= 1 to n – 1 do

System := System + (System.Node[i] « System.Node[i + 1])

endf;

System := System + (System.Node[n] « System.Node[1])

В цикле к системе добавляются ребра между первым и вторым узлами, между вторым и третьим узлами, …, между предпоследним и последним узлами. Затем добавляется ребро между последним и первым узлами.

Точно такого же результата можно добиться более короткой записью:

System := System + cycle(Node[1..n]).

Здесь cycle – графовая константа (простой цикл). После выполнения операции получается объединение звезды с простым циклом.

Возможны операции и над рутинами. Поскольку рутина представляет собой множество событий (событийных секций), в которых производится планирование других событий из этого же множества, рутина может быть представлена графом. В этом графе вершины – события, а дуги – операторы планирования событий.

Следовательно, добавление и удаление событий – добавление и удаление вершин; введение и исключение планирования – добавление и удаление дуг. Поэтому, система операций над структурами (графами) пригодна и для обозначения операций над рутинами. Например, удаление события можно записать так:

ControlledGenerator := ControlledGenerator – Repeat;

При удалении события автоматически удаляются и все операторы планирования (schedule (Repeat, ·)), связанные с этим событием. Это, опять же, подобно тому, что происходит в графе при удалении вершины: удаляются все входящие в эту вершину дуги и все исходящие из этой вершины дуги.

На рисунке 9 графически изображена связь между событиями ei некоторой рутины. Около дуг, соответствующих операторам указано значение – второй параметр оператора, задающий период времени, через который должно произойти планируемое событие.

На рисунке 10 изображена та же рутина после удаления из нее события e2 .

 

Рис. 9

 

Рис. 10