L'insieme delle azioni del CCS è definito da
dove comprende tutte le azioni esterne
(input e output) che possono essere svolte dal sistema, mentre
rappresenta l'azione interna.
Gli operatori di base del CCS sono i seguenti (indichiamo con E,
F, G etc. espressioni formate da processi, azioni ed operatori):
- Sequenzializzazione
-
- Somma
-
(I è un insieme indicizzato)
- Composizione
parallela
-
- Restrizione
-
- Relabelling
-
- Equazione di Definizione
-
Schematizzando, i termini di questo calcolo sono generati dalla
seguente Grammatica espressa in Backus Normal Form:
dove
P e Q sono processi generici mentre è il processo
inattivo che non esegue alcun comportamento.
Con CCS si possono "simulare" molti operatori presenti in altre
algebre di processi. Vediamo due semplici esempi:
- Hiding
-
dove
ed
. Con Ever si ripetono
continuamente le azioni
e quindi appena il
processo P svolge un certo si ha la sincronizzazione che
dà come risultato ( non è più visibile e
questo è l'obiettivo dell'Hiding).
- Link
-
dove i due processi interagiscono
tramite le porte ed
, perciò si ha la
sincronizzazione sostituendo le etichette con ed
.
Abbiamo visto che alcuni operatori preservano il determinismo al
contrario di altri. Supponendo che i processi , e
siano deterministici, riassumiamo il comportamento dei combinatori
presenti in CCS:
- 0,
e
sono sempre
deterministici.
-
lo è solo
se gli sono tutti distinti.
- se i due
processi non hanno azioni in comune o complementari tra loro.
- se la funzione di relabelling è iniettiva sulle
azioni di .
Esempio Bill-Ben 9: Utilizzando
l'algebra CCS, il sistema concorrente Bill_Ben può essere
definito nel seguente modo:
Morpheus
2004-02-10