scheduler architecture
This commit is contained in:
parent
d854390640
commit
500f8f1a7c
|
@ -53,51 +53,7 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Le centre de calcul (serveur) est un automate qui effectue des transitions locales sur un état global
|
|
||||||
|
|
||||||
Les modifications successives de cet état global décrivent sa trajectoire dans son espace de phase
|
|
||||||
|
|
||||||
Chaque transition locale est calculée indépendamment, en mode asynchrone, par un thread de calcul
|
|
||||||
|
|
||||||
Tous les threads de calcul appliquent les mêmes règles selon le même algorithme
|
|
||||||
|
|
||||||
Un processus principal (scheduler) initie et termine ces threads
|
|
||||||
|
|
||||||
Il garantit la cohérence de l'état global et valide l'ensemble du calcul ou l'interrompt en cas d'erreur
|
|
||||||
Il est seul à avoir accès à l'état global et à la liste des threads de calcul
|
|
||||||
Il n'a pas accès aux règles de transition
|
|
||||||
Il assure également (ou délègue) les fonctions de communications avec les modules périphériques
|
|
||||||
|
|
||||||
Il exécute un cycle qui comporte deux étapes principales:
|
|
||||||
|
|
||||||
- recherche aléatoire d'un espace local
|
|
||||||
|
|
||||||
- si trouvé:
|
|
||||||
|
|
||||||
- arrêt de cette recherche
|
|
||||||
|
|
||||||
- préemption de cet espace local
|
|
||||||
|
|
||||||
- initiation d'un nouveau thread de calcul auquel est attibué cet espace local
|
|
||||||
|
|
||||||
- sinon arrêt de cette recherche en un temps fini
|
|
||||||
|
|
||||||
- recherche des threads de calcul en fin d'exécution
|
|
||||||
(ces threads se signalent dans une liste; leur temps de calcul est aléatoire)
|
|
||||||
|
|
||||||
- si trouvé(s):
|
|
||||||
|
|
||||||
- arrêt de cette recherche
|
|
||||||
|
|
||||||
- mise à jour de l'état global (insertion du ou des états locaux calculés)
|
|
||||||
|
|
||||||
- terminaison des threads de calcul concernés et libération des verrous associés
|
|
||||||
|
|
||||||
- sinon arrêt de cette recherche en un temps fini
|
|
||||||
|
|
||||||
- stimule le superviseur qui effectue : mesures / recueil des commandes / retour d'information
|
|
||||||
|
|
||||||
- s'arrête s'il le superviseur renvoie une alerte d'intégrité
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
Le centre de calcul (scheduler) est un automate qui effectue des transitions locales sur un état global
|
||||||
|
|
||||||
|
Les modifications successives de cet état global décrivent sa trajectoire dans son espace de phase
|
||||||
|
|
||||||
|
Chaque transition locale est calculée indépendamment, en mode asynchrone, par un thread de calcul
|
||||||
|
|
||||||
|
Tous les threads de calcul appliquent les mêmes règles selon le même algorithme
|
||||||
|
|
||||||
|
Un processus principal (scheduler) initie et termine ces threads
|
||||||
|
|
||||||
|
Il garantit la cohérence de l'état global et valide l'ensemble du calcul ou l'interrompt en cas d'erreur
|
||||||
|
Il est seul à avoir accès à l'état global et à la liste des threads de calcul
|
||||||
|
Il n'a pas accès aux règles de transition
|
||||||
|
Il assure également (ou délègue) les fonctions de communications avec les modules périphériques
|
||||||
|
|
||||||
|
Il exécute un cycle qui comporte deux étapes principales:
|
||||||
|
|
||||||
|
- recherche aléatoire d'un espace local
|
||||||
|
|
||||||
|
- si trouvé:
|
||||||
|
|
||||||
|
- arrêt de cette recherche
|
||||||
|
|
||||||
|
- préemption de cet espace local
|
||||||
|
|
||||||
|
- initiation d'un nouveau thread de calcul auquel est attibué cet espace local
|
||||||
|
|
||||||
|
- sinon arrêt de cette recherche en un temps fini
|
||||||
|
|
||||||
|
- recherche des threads de calcul en fin d'exécution
|
||||||
|
(ces threads se signalent dans une liste; leur temps de calcul est aléatoire)
|
||||||
|
|
||||||
|
- si trouvé(s):
|
||||||
|
|
||||||
|
- arrêt de cette recherche
|
||||||
|
|
||||||
|
- mise à jour de l'état global (insertion du ou des états locaux calculés)
|
||||||
|
|
||||||
|
- terminaison des threads de calcul concernés et libération des verrous associés
|
||||||
|
|
||||||
|
- sinon arrêt de cette recherche en un temps fini
|
||||||
|
|
||||||
|
- stimule le superviseur qui effectue : mesures / recueil des commandes / retour d'information
|
||||||
|
|
||||||
|
- s'arrête s'il le superviseur renvoie une alerte d'intégrité
|
Loading…
Reference in New Issue