Vous êtes sur la page 1sur 25

OTHER KERNEL OBJECTS

GROUPE 4

MEMBRES DU GROUPE :

NOMS PRENOMS MATRICULES


MBIANDJA HILAIRE 20V2885
FOKANA ALAIN STEPHANE 20U2163
BOSSAMBO EHAB DENIS JUNIOR 20W2330

CHIMI NANA STEVE CARNEL 20U2230

GROUPE 4
1

INF 464 Ingénierie des systèmes temps réels et embarques Enseignants : Dr MESSI & Mr NJITCHE CESAIRE
PLAN

• INTRODUCTION
• TUYAU
• Blocs de contrôle de canalisation
• Opérations de tuyauterie typiques
• Registres d'événements
• LES SIGNAUX
• BLOCS DE CONTRÔLE DES SIGNAUX
• OPERATIONS TYPIQUES DES SIGNAUX

2
INTRODUCTION

• En plus des objets clés du noyau, tels que les tâches, les sémaphores et
les files d'attente de messages, les noyaux fournissent également de
nombreux autres objets importants. Comme chaque noyau est
différent, le nombre d'objets pris en charge par un noyau donné peut
varier d'un noyau à l'autre.
• Ce chapitre explore des objets noyau supplémentaires communs au
développement de systèmes embarqués, bien que la liste présentée ici
ne soit certainement pas exhaustive.

3
LES TUYAUX

• Les tuyaux sont des objets du noyau qui fournissent un échange de données
non structuré et facilitent la synchronisation entre les tâches.
• Dans une implémentation traditionnelle, un tuyau est une installation
d'échange de données unidirectionnelle, comme le montre la figure 1 suivante
• Deux descripteurs, un pour chaque extrémité du tube (un pour la lecture et
un pour l'écriture), sont renvoyés lors de la création du tube. Les données sont
écrites via un descripteur et lues via l'autre. Les données restent dans le tube
sous la forme d'un flux d'octets non structuré. Les données sont lues à partir
du tube dans l'ordre FIFO

4
LES TUYAUX(SUITE)

FIGURE 1 Un tuyau commun unidirectionnel


5
TUYAUX(SUITE)

• Notez qu'un canal est conceptuellement similaire à une file d'attente de


messages, mais avec des différences significatives. Par exemple, contrairement à
une file d'attente de messages, un canal ne stocke pas plusieurs messages. Au
lieu de cela, les données qu'il stocke ne sont pas structurées, mais consistent
en un flux d'octets.
• Un tube fournit une facilité de flux de données simple de sorte que le lecteur
se bloque lorsque le tube est vide et que l'écrivain se bloque lorsque le tube
est plein. En règle générale, un canal est utilisé pour échanger des données
entre une tâche productrice de données et une tâche consommatrice de
données.

6
Blocs de contrôle de canalisation

• Les tuyaux peuvent être créés ou détruits dynamiquement. Le noyau crée et


maintien des informations spécifiques au tuyau dans une structure de données
interne appelée bloc de contrôle de tuyau.
• La structure du bloc de contrôle des canalisations varie d'une implémentation
à l'autre. Dans sa forme générale, un bloc de contrôle de canal contient un
tampon de données alloué par le noyau pour l'opération d'entrée et de sortie
du canal.
• . La taille de ce buffer est maintenue dans le bloc de contrôle et est fixée lors
de la création du tube ; il ne peut pas être modifié au moment de l'exécution.
• Le nombre d'octets de données actuel, ainsi que les indicateurs de position
d'entrée et de sortie actuels, font partie du bloc de contrôle de canalisation. Le
nombre d'octets de données actuel indique la quantité de données lisibles dans
le tube.
7
États des canalisations

• Un tube a un nombre limité d'états qui lui sont associés


depuis sa création jusqu'à sa fin. Chaque état correspond à
l'état de transfert de données entre le lecteur et l'écrivain
du tube.

8
Canalisations nommées et non nommées

• Un noyau prend généralement en charge deux types


d'objets de canal : les canaux nommés et les canaux sans
nom.
• Un tube nommé, également connu sous le nom de FIFO, a
un nom similaire à un nom de fichier et apparaît dans le
système de fichiers comme s'il s'agissait d'un fichier ou d'un
périphérique.
• Toute tâche ou ISR qui doit utiliser le canal nommé peut le
référencer par son nom. Le tube sans nom n'a pas de nom
et n'apparaît pas dans le système de fichiers. 9
OPÉRATIONS DE TUYAUTERIE TYPIQUES

• L'ensemble d'opérations suivant peut-être effectué sur un


tuyau :
Créer et détruire un tuyau,
Lire ou écrire dans un tube,
Émettre des commandes de contrôle sur le tuyau, et
Sélectionner sur un tuyau.

10
Utilisations typiques des tuyaux

• Étant donné qu'un canal est un simple canal de données, il est


principalement utilisé pour le transfert de données tâche-à-tâche ou ISR-à-
tâche. Une autre utilisation courante des canaux est la synchronisation
inter-tâches.
• Dans la figure 4 suivante, la tâche A et la tâche B ouvrent deux canaux
pour la communication entre les tâches. Le premier tube est ouvert pour
le transfert de données de la tâche A à la tâche B. Le deuxième tube est
ouvert pour l'accusé de réception (un autre transfert de données) de la
tâche B à la tâche A. Les deux tâches émettent l'opération de sélection sur
les tubes. La tâche A peut attendre de manière asynchrone que le canal de
données devienne accessible en écriture (la tâche B a lu des données à
partir du canal).

11
UTILISATIONS TYPIQUES DES
TUYAUX(SUITE)

12
FIGURE 4 UTILISATION DE TUYAUX POUR LA SYNCHRONISATION INTER-TÂCHES
REGISTRES D'ÉVÉNEMENTS

• Certains noyaux fournissent un registre spécial dans le cadre du bloc


de contrôle de chaque tâche, comme le montre la figure 5. Ce registre,
appelé registre d'événements, est un objet appartenant à une tâche et se
compose d'un groupe de drapeaux d'événements binaires utilisés pour
suivre l'occurrence d'événements spécifiques.
• Grâce au registre d'événements, une tâche peut vérifier la présence
d'événements particuliers qui peuvent contrôler son exécution. Une
source externe, telle qu'une autre tâche ou un ISR, peut définir des bits
dans le registre d'événements pour informer la tâche qu'un événement
particulier s'est produit.

13
LES SIGNAUX

• Un signal est une interruption logicielle générée lorsqu'un événement s’est


produit. Il détourne le récepteur du signal de son chemin d'exécution normal et
déclenche le traitement asynchrone associé.
• Essentiellement, les signaux notifient aux tâches des événements qui se sont
produits pendant l'exécution d'autres tâches. Comme pour les interruptions
normales, ces événements sont asynchrones par rapport à la tâche notifiée et ne
se produisent à aucun moment prédéterminé de l'exécution de la tâche. La
différence entre un signal et une interruption normale est que les signaux sont
des interruptions logicielles, qui sont générées via l'exécution de certains
logiciels au sein du système.

14
BLOCS DE CONTRÔLE DES SIGNAUX

15
BLOCS DE CONTRÔLE DES SIGNAUX
(SUITE)

• Si le noyau sous-jacent fournit une fonction de signal, il crée le bloc de contrôle


de signal dans le cadre du bloc de contrôle de tâche.

• Le bloc de contrôle des signaux maintient un ensemble de signaux, les signaux


utiles que la tâche est prête à gérer.

• Lorsqu'une tâche est prête à gérer un signal, on dit souvent que la tâche est
prête à capter le signal. Lorsqu'un signal interrompt une tâche, on dit souvent
que le signal est élevé à la tâche. La tâche peut fournir un gestionnaire de signal
pour chaque signal à traiter, ou elle peut exécuter un gestionnaire par défaut
fourni par le noyau. Il est possible d'avoir un seul gestionnaire pour plusieurs
types de signaux.

16
OPERATIONS TYPIQUES DES
SIGNAUX

- Catch : Installe un gestionnaire de signal


- Release : Supprime un gestionnaire précédemment installé
- send : Envoie un signal à une autre tâche

- Ignore : Empêche la transmission d'un signal


- Block : Bloque un ensemble de signaux d'être délivré
- Unlock : Débloque les signaux afin qu'ils puissent être délivrés

17
OPERATEUR CATCH

• L'opération catch installe un gestionnaire pour un signal particulier. Le noyau


interrompt l'exécution de la tâche à l'arrivée du signal, et le gestionnaire est
invoqué. La tâche peut installer le gestionnaire par défaut fourni par le noyau,
les actions par défaut, pour n'importe quel signal.

• Le gestionnaire installé sur la tâche a la possibilité de traiter le signal et de


rendre le contrôle au noyau ou de traiter le signal et de passer le contrôle au
gestionnaire par défaut pour un traitement supplémentaire.

18
OPERATEUR SEND

• L'opération d'envoi permet à une tâche d'envoyer un signal à une autre tâche.
Les signaux sont généralement associés à des événements matériels qui se
produisent pendant l'exécution d'une tâche, tels que la génération d'une adresse
mémoire non alignée ou une exception à virgule flottante. De tels signaux sont
générés automatiquement lorsque les événements correspondants se produisent.
Les

• L'opération send, en revanche, permet à une tâche de générer explicitement un


signal.

19
OPERATEUR IGNORE

• L'opération ignore permet à une tâche d'indiquer au noyau qu'un ensemble


particulier de signaux ne doit jamais être délivré à cette tâche. Certains signaux,
cependant, ne peuvent être ignorés ; lorsque ces signaux sont générés, le noyau
appelle le gestionnaire par défaut.

20
OPERATEUR BLOCK

• L'opération de bloc ne provoque pas l'ignorance des signaux mais les empêche
temporairement d'être délivrés à une tâche. L'opération de bloc protège les
sections critiques du code contre les interruptions. Une autre raison de bloquer
un signal est d'éviter les conflits lorsque le gestionnaire de signal est déjà en
cours d'exécution et est en train de traiter le même signal. Un signal reste en
attente tant qu’il est bloqué.

21
OPERATEUR UNLOCK

• L'opération de déblocage permet à un signal précédemment bloqué de passer.


Le signal est délivré immédiatement s'il est déjà en attente.

22
UTILISATION TYPIQUES DES
SIGNAUX

• Certains signaux sont associés à des événements matériels et sont donc


généralement envoyés par des ISR matériels. L'ISR est chargé de réagir
immédiatement à ces événements. L'ISR, cependant, peut également envoyer
un signal afin que les tâches affectées par ces événements matériels puissent
effectuer un traitement supplémentaire spécifique à la tâche.

• Les signaux peuvent également être utilisés pour la synchronisation entre les
tâches. Cependant, les signaux doivent être utilisés avec parcimonie pour les
raisons suivantes :

23
UTILISATION TYPIQUES DES
SIGNAUX (SUITE)

 L'utilisation de signaux peut être coûteuse en raison de la complexité de la fonction


de signal lorsqu'elle est utilisée pour la synchronisation inter-tâches. Un signal
modifie l'état d'exécution de sa tâche de destination. Étant donné que les signaux se
produisent de manière asynchrone, la tâche de réception devient non déterministe,
ce qui peut être indésirable dans un système en temps réel

 De nombreuses implémentations ne prennent pas en charge la mise en file d'attente


ou le comptage des signaux. Dans ces mises en œuvre, les occurrences multiples
du même signal se remplacent les unes les autres. Par exemple, un signal envoyé à
une tâche plusieurs fois avant que son gestionnaire ne soit appelé a le même effet
qu'une seule livraison. La tâche n'a aucun moyen de déterminer si un signal est
arrivé plusieurs fois.
24
LES VARIABLES DE CONDITION

• Les tâches utilisent souvent des ressources partagées, telles que des fichiers et
des canaux de communication. Lorsqu'une tâche doit utiliser une telle
ressource, elle peut avoir besoin d'attendre que la ressource soit dans un état
particulier. La façon dont la ressource atteint cet état peut se faire par l'action
d'une autre tâche. Dans un tel scénario, une tâche a besoin d'un moyen pour
déterminer l'état de la ressource.

25

Vous aimerez peut-être aussi