Simscript III/Dictionnaire des instructions/BREAK ... TIES

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Cet énoncé, qui ne peut apparaître que dans le préambule (preamble), établit des priorités d’exécution entre plusieurs processus d’une même classe dans le cas où ils se trouvent activés simultanément (même heure d’activation time.a). Elle doit se situer après la déclaration des attributs utilisés pour définir les priorités (phrase every de la rubrique processes).

Nom_Processus est un processus et Attribut est un attribut (de priorité) qui a dû être déclaré auparavant dans un "every Nom_Processus has a Attribut,...". Les phrases optionnelles "then by" permettent d’ajouter d’autres attributs de priorité pour résoudre les conflits en cas d’égalité des attributs précédents.

Il faut savoir que lorsque plusieurs processus ont la même heure d’activation (attribut time.a identique sur 16 digits), ils sont exécutés dans l’ordre correspondant aux règles suivantes :

1. Pour des processus de classes différentes, on suit l’ordre défini par l’énoncé priority order si il existe, ou bien l’ordre de leur déclaration dans la rubrique processes, sinon
2. Pour les processus d’une même classe, on suit l’ordre défini par l’énoncé break  ...  ties si il existe, ou bien l’ordre fifo (premier activé, premier exécuté), sinon

Voir à priority order pour un exemple complet.