Le programme de l'exécutif fait donc appel à un arbre de décision pour détecter les différents conflits et les résoudre. À cette fin, des règles sont nécessaires afin de déterminer, à partir du graphe des interactions d'incompatibilités, le comportement du système. Il y a plusieur types de règles intervenant dans la dynamique du système.
Les règles qui définissent les conditions de démarrage d'un service, les plus importantes du point de vue de l'exécutif puisque ce sont elles qui prennent en compte les incompatibilités entre les services. C'est à ce niveau que les conflits sont détectés. Elles doivent prendre en compte les états des groupes, les différentes stratégies - interruption ou attente - pour les conflits entre les services d'un même groupe et les services de groupes différents.
Enfin il y a les règles qui permettent d'analyser la terminaison des services et de maintenir à jour le vecteur d'état.
De plus, pour produire son automate, Kheops a besoin de règles complémentaires (autres que celles relatives aux conflits) afin d'avoir un modèle complet de l'évolution du système. En particulier il lui faut connaître les règles de stabilité (!). Il en faut autant que de services dans le groupe plus une prenant en compte le cas où le groupe est au << repos >>, c'est-à-dire où aucun service n'est en actif. Les deux types de règles sont les suivants :
Cependant, ces règles pourront aisément être synthétisées automatiquement.
Les règles de démarrage de services, détecté par un évènement particulier, sont les suivantes :
En sus de ces règles il y a les règles de terminaison de service. Il n'y en a qu'une par groupe. Elle consistent en :
<< Si une notification d'arrêt de service pour un service du groupe et que ce service est actuellement en cours, alors le groupe passe dans l'état de repos IDLE >>.