Micro Systèmes n°101 octobre 1989
Micro Systèmes n°101 octobre 1989
  • Prix facial : 30 F

  • Parution : n°101 de octobre 1989

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (203 x 271) mm

  • Nombre de pages : 198

  • Taille du fichier PDF : 160 Mo

  • Dans ce numéro : première mondiale... tous les secrets du bios.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 182 - 183  |  Aller à la page   OK
Pages suivantes >
182 183
TECHNIQUE L Compteur = +1 (b) LivEl P E File d'attente à B <- Entrée Fig. 3. - Lorsqu'un véhicule se présente à l'entrée de la piste d'accès, le compteur est décrémenté ; il indique toujours le nombre de pompes libres (2 voitures sont arrivées dans la situation représentée). Compteur = 0 (c) avnvo File d'attente <- Entrée B Fig. 4. - Une troisième voiture vient de se présenter ; il n'y a plus de pompe libre. Le compteur a la valeur 0, indiquant que la ressource (la station) est saturée. Fig. 5. - Une quatrième voiture arrive alors qu'aucune des autres n'a terminé le plein ; en empruntant la piste d'accès, elle provoque la décrémentation du compteur dont la valeur passe à -1. Cela a pour effet de baisser la barrière : la voiture est bloquée. L Compteur = -2 (e) v v File d'attente V V <- Entrée B Fig. 6. - Si d'autres voitures se présentent, elles seront bloquées après avoir décrémenté le compteur. La valeur absolue du compteur représente maintenant le nombre de véhicules en attente. 182 - MICRO-SYSTEMES Octobre 1989
PROGRAMMATION Fig. 7. - Une voiture vient de quitter la station. En sortant, elle a provoqué l'incrémentation du compteur, signalant qu'une pompe venait d'être libérée. Cela a pour effet de débloquer le premier véhicule en attente. L Compteur = 0 P V P V P (g) File d'attente I B <- Entrée Fig. 8. - Une deuxième voiture a quitté la station. La valeur du compteur est passée à zéro et le dernier véhicule a été débloqué. La situation est la même qu'en (c) et peut évoluer vers (b) ou (d) en fonction des entrées/sorties. Implémentation des sémaphores Voyons maintenant comment appliquer ce mécanisme aux processus. La structure de données permettant de représenter un sémaphore sera donc formée d'un compteur de type Integer et d'une file d'attente ; cette structure de donnée, allouée dynamiquement sur le tas, sera accessible à l'aide d'un pointeur par l'intermédiaire des primitives exportées par l'unité Noyau. On peut remarquer que, quel que soit le nombre de sémaphores utilisés dans une application, les files d'attente associées seront des sous-files disjointes de la file des processus définis, puisqu'un processus ne pourra à un instant donné figurer que dans une seule file d'attente (où il sera bloqué). Aussi, on pourra utiliser pour le chaînage de ces files un unique champ de type T_P tr _Descripteur _Processus (Bloque_Suivant) qu'il suffit d'ajouter à la structure T_Descripteur_Processus, comme pour les files File_Definis et File_Prets. Les primitives exportées sont les suivantes : - Procédure Creer_Semaphore : Crée une variable de type T_Semaphore sur le tas, initialise la file d'attente à vide et le compteur avec la valeur passée en paramètre. En entrée : la valeur initiale du compteur. En sortie : un pointeur vers la variable créée. - Procédure Baisser_Semaphore : Réalise l'algorithme présenté ci-dessus, le blocage du processus s'effectue comme suit (le processus à bloquer est celui qui exécute cette procédure, donc le processus en cours) : - Procédur- Etat (Processus_en_Cours) <- En_Attente - Mettre Processus_en_Cours en queue de la file d'attente - Commuter (pour donner la main à un autre processus). Octobre 1989 En entrée : un pointeur vers le sémaphore concerné. En sortie : rien. Lever_Semaphore : Réalise l'algorithme présenté ci-dessus, le déblocage du premier processus de la file d'attente s'effectuant comme dans la procédure ActiVer_Processus après l'avoir retiré de la file d'attente. En entrée : un pointeur vers le sémaphore concerné. En sortie : rien. et accessoirement la fonction Valeur_Semaphore qui retourne la valeur du compteur, valeur dont on a vu la signification précédemment. Ces primitives sont listées dans le fichier SEMA- PHOR.PAS joint en annexe, la déclaration du type T_Semaphore étant faite dans NOYAU.PAS. Nous terminerons par une remarque concernant l'exclusion mutuelle dans les primitives. Celles-ci seront exécutées sur le même sémaphore par plusieurs processus simultanément (tous les processus entrant en compétition pour l'accès à la ressource protégée par ce sémaphore) ; la structure de donnée de ce sémaphore constitue donc une ressource non partageable pour ces processus : nous n'avons fait que déplacer le problème ! Cependant, comme la durée de ces sections critiques est d'un ordre de grandeur très inférieur à celle du problème initial, l'exclusion mutuelle dans les primitives est réalisée par masquage des interruptions : tout mécanisme d'exclusion mutuelle repose en définitive sur un dispositif matériel. Ces réflexions n'ont évidemment de sens que si le programmeur est discipliné et s'impose de protéger toute ressource qui doit l'être par un sémaphore et de n'accéder à ce sémaphore qu'au travers des primitives. Michel Rambouillet Les listings des fonctions ainsi qu'un programme de démonstration se trouvent sur la disquette AB-Systèmes n°1. MICRO-SYSTEMES - 183



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 101 octobre 1989 Page 1Micro Systèmes numéro 101 octobre 1989 Page 2-3Micro Systèmes numéro 101 octobre 1989 Page 4-5Micro Systèmes numéro 101 octobre 1989 Page 6-7Micro Systèmes numéro 101 octobre 1989 Page 8-9Micro Systèmes numéro 101 octobre 1989 Page 10-11Micro Systèmes numéro 101 octobre 1989 Page 12-13Micro Systèmes numéro 101 octobre 1989 Page 14-15Micro Systèmes numéro 101 octobre 1989 Page 16-17Micro Systèmes numéro 101 octobre 1989 Page 18-19Micro Systèmes numéro 101 octobre 1989 Page 20-21Micro Systèmes numéro 101 octobre 1989 Page 22-23Micro Systèmes numéro 101 octobre 1989 Page 24-25Micro Systèmes numéro 101 octobre 1989 Page 26-27Micro Systèmes numéro 101 octobre 1989 Page 28-29Micro Systèmes numéro 101 octobre 1989 Page 30-31Micro Systèmes numéro 101 octobre 1989 Page 32-33Micro Systèmes numéro 101 octobre 1989 Page 34-35Micro Systèmes numéro 101 octobre 1989 Page 36-37Micro Systèmes numéro 101 octobre 1989 Page 38-39Micro Systèmes numéro 101 octobre 1989 Page 40-41Micro Systèmes numéro 101 octobre 1989 Page 42-43Micro Systèmes numéro 101 octobre 1989 Page 44-45Micro Systèmes numéro 101 octobre 1989 Page 46-47Micro Systèmes numéro 101 octobre 1989 Page 48-49Micro Systèmes numéro 101 octobre 1989 Page 50-51Micro Systèmes numéro 101 octobre 1989 Page 52-53Micro Systèmes numéro 101 octobre 1989 Page 54-55Micro Systèmes numéro 101 octobre 1989 Page 56-57Micro Systèmes numéro 101 octobre 1989 Page 58-59Micro Systèmes numéro 101 octobre 1989 Page 60-61Micro Systèmes numéro 101 octobre 1989 Page 62-63Micro Systèmes numéro 101 octobre 1989 Page 64-65Micro Systèmes numéro 101 octobre 1989 Page 66-67Micro Systèmes numéro 101 octobre 1989 Page 68-69Micro Systèmes numéro 101 octobre 1989 Page 70-71Micro Systèmes numéro 101 octobre 1989 Page 72-73Micro Systèmes numéro 101 octobre 1989 Page 74-75Micro Systèmes numéro 101 octobre 1989 Page 76-77Micro Systèmes numéro 101 octobre 1989 Page 78-79Micro Systèmes numéro 101 octobre 1989 Page 80-81Micro Systèmes numéro 101 octobre 1989 Page 82-83Micro Systèmes numéro 101 octobre 1989 Page 84-85Micro Systèmes numéro 101 octobre 1989 Page 86-87Micro Systèmes numéro 101 octobre 1989 Page 88-89Micro Systèmes numéro 101 octobre 1989 Page 90-91Micro Systèmes numéro 101 octobre 1989 Page 92-93Micro Systèmes numéro 101 octobre 1989 Page 94-95Micro Systèmes numéro 101 octobre 1989 Page 96-97Micro Systèmes numéro 101 octobre 1989 Page 98-99Micro Systèmes numéro 101 octobre 1989 Page 100-101Micro Systèmes numéro 101 octobre 1989 Page 102-103Micro Systèmes numéro 101 octobre 1989 Page 104-105Micro Systèmes numéro 101 octobre 1989 Page 106-107Micro Systèmes numéro 101 octobre 1989 Page 108-109Micro Systèmes numéro 101 octobre 1989 Page 110-111Micro Systèmes numéro 101 octobre 1989 Page 112-113Micro Systèmes numéro 101 octobre 1989 Page 114-115Micro Systèmes numéro 101 octobre 1989 Page 116-117Micro Systèmes numéro 101 octobre 1989 Page 118-119Micro Systèmes numéro 101 octobre 1989 Page 120-121Micro Systèmes numéro 101 octobre 1989 Page 122-123Micro Systèmes numéro 101 octobre 1989 Page 124-125Micro Systèmes numéro 101 octobre 1989 Page 126-127Micro Systèmes numéro 101 octobre 1989 Page 128-129Micro Systèmes numéro 101 octobre 1989 Page 130-131Micro Systèmes numéro 101 octobre 1989 Page 132-133Micro Systèmes numéro 101 octobre 1989 Page 134-135Micro Systèmes numéro 101 octobre 1989 Page 136-137Micro Systèmes numéro 101 octobre 1989 Page 138-139Micro Systèmes numéro 101 octobre 1989 Page 140-141Micro Systèmes numéro 101 octobre 1989 Page 142-143Micro Systèmes numéro 101 octobre 1989 Page 144-145Micro Systèmes numéro 101 octobre 1989 Page 146-147Micro Systèmes numéro 101 octobre 1989 Page 148-149Micro Systèmes numéro 101 octobre 1989 Page 150-151Micro Systèmes numéro 101 octobre 1989 Page 152-153Micro Systèmes numéro 101 octobre 1989 Page 154-155Micro Systèmes numéro 101 octobre 1989 Page 156-157Micro Systèmes numéro 101 octobre 1989 Page 158-159Micro Systèmes numéro 101 octobre 1989 Page 160-161Micro Systèmes numéro 101 octobre 1989 Page 162-163Micro Systèmes numéro 101 octobre 1989 Page 164-165Micro Systèmes numéro 101 octobre 1989 Page 166-167Micro Systèmes numéro 101 octobre 1989 Page 168-169Micro Systèmes numéro 101 octobre 1989 Page 170-171Micro Systèmes numéro 101 octobre 1989 Page 172-173Micro Systèmes numéro 101 octobre 1989 Page 174-175Micro Systèmes numéro 101 octobre 1989 Page 176-177Micro Systèmes numéro 101 octobre 1989 Page 178-179Micro Systèmes numéro 101 octobre 1989 Page 180-181Micro Systèmes numéro 101 octobre 1989 Page 182-183Micro Systèmes numéro 101 octobre 1989 Page 184-185Micro Systèmes numéro 101 octobre 1989 Page 186-187Micro Systèmes numéro 101 octobre 1989 Page 188-189Micro Systèmes numéro 101 octobre 1989 Page 190-191Micro Systèmes numéro 101 octobre 1989 Page 192-193Micro Systèmes numéro 101 octobre 1989 Page 194-195Micro Systèmes numéro 101 octobre 1989 Page 196-197Micro Systèmes numéro 101 octobre 1989 Page 198