• Aucun résultat trouvé

7.2 Introduction au standard ARINC

7.2.2 Les processus

Ce sont les entit´es ´el´ementaires d’ex´ecution. Les processus coop`erent pour accomplir la fonction affect´ee `a la partition au sein de laquelle ils s’ex´ecutent5. Comme pour la partition, un processus est caract´eris´e par diverses informations parmi lesquelles des attributs, un programme ex´ecutable et un pointeur sur une zone de pile.

Attributs. Ici aussi, on distingue des attributs fixes et variables.

Attributs fixes :

1. Nom(chaˆıne de caract`eres) - Identificateur unique `a chaque processus,

2. Point d’entr´ee (type d´ependant de la plate-forme) - Point d’entr´ee pour l’ex´ecution du processus,

3. Taille de pile(type num´erique) - Taille de la pile associ´ee au processus,

4. Priorit´e de base (type num´erique) - Priorit´e `a laquelle le processus est initialis´e ; 5. Temps allou´e (type num´erique, d´ependant de l’horloge de la plate-forme de mise en

œuvre) - Dur´ee de temps `a ne pas exc´eder pendant l’ex´ecution d’un processus. Cette information permet de d´eterminer la date d’´ech´eance d’un processus ;

6. P´eriode (mˆeme type que le temps allou´e) - P´eriode d’activation pour les processus p´eriodiques. Autrement, cet attribut a une valeur constante particuli`ere pour les processus ap´eriodiques (ce qui permet de les distinguer des processus p´eriodiques),

7. Ech´´ eance- Nature de l’´ech´eance d’un processus : hard ou soft.

Attributs variables :

1. Priorit´e courante (type num´erique) - Priorit´e courante du processus,

2. Date d’´ech´eance (mˆeme type que la p´eriode) - Date `a laquelle le processus doit avoir accompli sa mission ;

3. Etat´ - ´Etat courant du processus. Quatre ´etats sont d´efinis : ready (´eligible pour l’acc`es au processeur),running(en cours d’ex´ecution),waiting (bloqu´e en attente d’une ressource ou d’un ´ev´enement) etdormant (in´eligible pour recevoir le processeur).

Services Description de la requˆete engendr´ee get process id r´ecup´eration de l’identificateur d’un processus get process status r´ecup´eration du statut courant d’un processus create process cr´eation et initialisation d’un processus set priority mise `a jour de la priorit´e d’un processus suspend self suspension d’un processus par lui-mˆeme

suspend suspension d’un processus par un autre processus

resume r´eactivation d’un processus suspendu

stop self arrˆet d’un processus par lui-mˆeme

stop arrˆet d’un processus par un autre processus

start activation d’un processus

lock preemption augmentation du niveau de verrouillage unlock preemption diminution du niveau de verrouillage

Table 7.3 – Services APEX pour la gestion des processus.

Gestion. C’est lepartition-level OS qui a la charge de la gestion des processus. Il doit prendre en compte la p´eriodicit´e des processus pour ce qui concerne leur activation. Il se base sur la priorit´e et l’´etat des processus d’une partition pour les ordonnancer. D’autre part, grˆace au niveau de verrouillage de chaque partition, la pr´eemption peut ˆetre autoris´ee ou non (certaines portions de code associ´ees aux processus peuvent n´ecessiter une ex´ecution ininterruptible). Une partition doit pouvoir r´einitialiser tout processus `a tout moment (la d´etection de certaines erreurs dans le syst`eme peut requ´erir une r´einitialisation ou mˆeme la terminaison du processus actif). Enfin, des moyens sont fournis afin de garantir l’exclusion mutuelle lors des acc`es aux ressources partag´ees par les processus. Nous r´esumons ci-apr`es les principales caract´eristiques du mod`ele d’ordonnancement au sein d’une partition :

– L’unit´e d’ordonnancement est le processus. L’acc`es aux ressources (par exemple, le pro-cesseur) par les processus se fait de mani`ere exclusive ;

– Contrairement aux partitions, chaque processus a une priorit´e. Celle-ci est repr´esent´ee par des valeurs positives. Une priorit´e est plus forte qu’une autre lorsque sa valeur est sup´erieure `a celle de la seconde ;

– L’algorithme d’ordonnancement est pr´eemptif. L’ordonnanceur se base sur la priorit´e et l’´etat courant des processus rang´es dans une file d’attente : c’est le processus ayant la priorit´e la plus forte et se trouvant dans l’´etatready qui se voit attribuer le processeur. Dans le cas o`u plusieurs processus ont la mˆeme priorit´e, c’est le plus ancien dans la file qui est s´electionn´e. Ainsi, le processus ´elu d´etiendra les ressources jusqu’`a la prochaine demande d’ordonnancement. Des r´eordonnancements peuvent cependant survenir sur une demande explicite d’un processus, ou bien sur l’occurrence d’un ´ev´enement interne `a la partition ;

– Le syst`eme offre les moyens de g´erer les processus p´eriodiques et ap´eriodiques (cette gestion est uniforme ; les structures utilis´ees pour d´ecrire les attributs des processus sont identiques) ;

– Enfin, les processus d’une mˆeme partition partagent l’int´egralit´e des ressources allou´ees `a celle-ci.

Les services APEX servant `a la gestion des processus sont donn´es dans la table Tab. 7.3. Le

statut d’un processus est compos´e de la valeur courante de ses attributs.

Services Description de la requˆete engendr´ee create buffer cr´eation et initialisation d’unbuffer

send buffer envoi d’un message dans unbuffer

receive buffer r´eception d’un message d’unbuffer get buffer id r´ecup´eration de l’identificateur d’unbuffer get buffer status r´ecup´eration du statut courant d’unbuffer create blackboard cr´eation et initialisation d’unblackboard display blackboard ´ecriture d’un message dans un blackboard read blackboard lecture d’un message dans unblackboard clear blackboard nettoyage d’unblackboard

get blackboard id r´ecup´eration de l’identificateur d’unblackboard get blackboard status r´ecup´eration du statut courant d’unblackboard create event cr´eation et initialisation d’unevent

set event positionnement d’unevent

reset event r´einitialisation d’unevent

wait event attente d’unevent

get event id r´ecup´eration de l’identificateur d’unevent get event status r´ecup´eration du statut courant d’unevent create semaphore cr´eation et initialisation d’un s´emaphore

wait semaphore attente d’un s´emaphore

signal semaphore relˆachement d’un s´emaphore

get semaphore id r´ecup´eration de l’identificateur d’un s´emaphore get semaphore status r´ecup´eration du statut courant d’un s´emaphore

Table7.4 – Services APEX pour la communication et la synchronisation au sein d’une partition.

Communications et synchronisations. On distingue principalement quatre m´ecanismes pour r´ealiser les communications et les synchronisations entre processus au sein d’une parti-tion.

Trois m´ecanismes de communication sont utilis´es. Le buffer offre le moyen d’´ecrire et de lire des messages rang´es dans une file selon une politique FIFO (First In First Out) ; la file a une taille born´ee. L’event permet de notifier l’occurrence d’un ´ev´enement `a des processus qui seraient bloqu´es en attente de celui-ci. Enfin, le dernier m´ecanisme est le blackboard. Celui-ci permet d’´ecrire et de lire des messages dans un tampon `a une place. Lorsqu’un message vient d’ˆetre ´ecrit, il y reste jusqu’`a ce qu’il soit ´ecras´e par l’´ecriture d’un nouveau message ou bien que le blackboard soit “nettoy´e”. Le m´ecanisme de synchronisation utilis´e par les processus est un s´emaphore `a compteur. La table Tab. 7.4 donne les services APEX utilis´es pour les communications et les synchronisations au sein d’une partition. Les informations constituant le statut des diff´erents m´ecanismes sont :

buffer : le nombre courant de messages stock´es dans le buffer, la capacit´e maximale de celui-ci, la taille des messages qu’on peut y stocker et le nombre courant de processus bloqu´es en attente d’envoi ou de r´eception de messages dans lebuffer;

blackboard : l’´etat courant (vide ou non), la taille des messages qu’on peut y stocker et le nombre courant de processus bloqu´es en attente de lecture de messages dans leblackboard; event : l’´etat courant et le nombre de processus actuellement bloqu´es sur l’event;

s´emaphore : la valeur courante, la valeur maximale et le nombre courant de processus bloqu´es sur le s´emaphore.

Services Description de la requˆete engendr´ee timed wait suspension pour une quantit´e de temps donn´ee

periodic wait suspension d’un processus p´eriodique jusqu’`a sa date d’activation suivante get time r´ecup´eration du temps affich´e par l’horloge du syst`eme

replenish d´ecalage de la date d’´ech´eance d’un processus `a une date ult´erieure

Table 7.5 – Services APEX pour la gestion du temps.

Services Description de la requˆete engendr´ee

report application message transmission d’un message `ahealth monitor par une partition create error handler cr´eation du processuserror handler

get error status r´ecup´eration d’informations concernant une erreur parerror handler raise application error activation deerror handler par une partition sur d´etection d’une erreur

Table 7.6 – Services APEX de gestion d’erreurs.