Vous êtes sur la page 1sur 26

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 16
signaux.
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. 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
CONCLUSION

• 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. 26

Vous aimerez peut-être aussi