Changes between Version 14 and Version 15 of SujetTP6-2016
- Timestamp:
- Mar 28, 2016, 5:15:16 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SujetTP6-2016
v14 v15 98 98 Dans la pratique, les tâches des applications communiquent entre elles. Nous pouvons le faire ici en passant par des variables globales dont les adresses sont passées en paramètres des tâches. Ce dernier point est important, il faut absolument que les variables globales ne soient pas directement utilisées par les fonctions de tâches mais toujours passées explicitement en paramètre ceci afin de faciliter la mise au point ET permettre d'avoir plusieurs instances de la même tâche. 99 99 100 Dans l'exemple qui suit, nous avons ajouter une tâche GetKbd qui lit un message au clavier et le place dans un buffer nommé mess.100 Dans l'exemple qui suit, nous avons ajouter une tâche !GetKbd qui lit un message au clavier et le place dans un buffer nommé mess. 101 101 C'est la tâche Mess qui fera l'affichage. 102 102 Les deux tâches se synchronisent en utilisant une case mémoire nommée full dont la valeur peut prendre deux états: 103 - 0 = le buffer ne contient pas de message, le buffer appartient à GetKbd qui le remplit à chaque nouveau caractère103 - 0 = le buffer ne contient pas de message, le buffer appartient à !GetKbd qui le remplit à chaque nouveau caractère 104 104 - 1 = le buffer contient un message, le buffer appatient à Mess qui le lit et l'affiche 105 105 106 La case full est mise à 1 par GetKbd et mise à 0 par Mess.107 108 Il y a une autre communication entre GetKbd et Led que je vous laisse analyser106 La case full est mise à 1 par !GetKbd et mise à 0 par Mess. 107 108 Il y a une autre communication entre !GetKbd et Led que je vous laisse analyser 109 109 110 110 {{{#!c