Brevet FR2291543A1 — publié le 19760611

Domaine de l'invention La présente invention concerne des systèmes de traitement de données et plus particulièrement des améliorations apportées à la désignation et au traitement des exceptions. Description de l'état de la technique Les ordinateurs sont passés successivement, sur le plan de la technologie, de la premiere génération, caractérisée par les tubes à vide, à la seconde gené- ration, caractérisée, par les transistors, et à la troisième génération, caractérisée dans ltensemble par les circuits intégrés. Ces différentes générations de technologie ont été accompagnées de différentes générations de software (ou logiciel), la première génération de software étant caractérisée principalement par le langage machine, les assembleurs et les sous-programmes, et la seconde par les langages évolués, les moniteurs et les macro-assembleurs. La troisième génération de software est caractérisée par les systèmes d'exploitation, les systèmes multiprogrammation, temps réel, on-line, et les systèmes de gestion de données. Le hardware (ou matériel) de la première génération associé au software de la première génération, de même que le hardware de la seconde génération associé au software de la seconde génération étaient principalement orientés vers le traitement par lots dans lequel les travaux étaient exécutés essentiellement en série. Les systèmes hardware/software de la troisième génération sont egalement orientés vers le traitement par lots, mais en raison de l'existence de la multiprogrammation, plusieurs travaux peuvent être exécutés en parallèle au lieu de l'être en série, et les données à traiter peuvent êtres prises en charge au fur et à mesure qu'elles se présentent. Le système de la quatrième génération sera capable d'assurer les fonctions suivantes 1. "Le système sera catalogué comme un système de communication et de contrôle et sera capable d'exécuter une grande diversité d'applications.Des interfaces de communication intrasysteme seront nécessaires tant sur le plan du hardware que du software. 2. "Le système sera contrôlé par les données au lieu des programmes comme c'était le cas dans les anciennes machines, autrement dit le contrôle du système sera déterminé par l'entrée et non pas des instructions enregistrées. Le développement de cette possibilité dépendra de la soumission d'informations en temps réel. Le retour d'information aura donc une très grande importance. Des interactions adéquates entre interfaces intersystéme et intrasystème seront vitales. Les relations entre données (bits de communication), et programmes (bits d'information) devront être définies avec soin. L'existence de registres à décalages multiples, de mémoires mortes économiques et de grande capacité et d'éléments semiconducteurs multifonctions fabri ques en série permet une nouvelle organisation de l'ordinateur. Les éléments logiques exécuteront une variété de tâches. Ainsi, des bascules d'orientation identifieront des operations spécifiques. Ces bascules seront positionnées par l'insertion en parallèle ou en serie-parallele de bits sur un sous-ensemble de conducteurs aboutissant a chaque bloc logique ainsi qu'une combinaison appropriée de signaux de synchronisation et de commande. Les données seront dirigées sur un élément de stockage avec un accès plus général (ou plus rapide) à d'autres points du système. Des techniques d'auto-reconfiguration et des structures de mémoires mortes variables pourront être utilisées grâce aux bascules d'orientation qui sont capables de distinguer, parmi les entrées, les données de controle, les informations d'exploitation ou les données à manipuler. Il en résulte que la mémoire principale ou la mémoire auxiliaire assurera provisoirement les fonctions de la mémoire morte dans l'ordinateur. La reconfiguration apparemment instantanée de l'organisation d'un ordinateur sera possible. Le traitement en parallèle sera exécuté facilement. 3. "Le hardware pilotera les procédures de communication et de contrôle. l'utilisation de programmes de contrôle de système sera substantiellement reduite voire éliminée. Cette caractéristique est étroitement liée a la précédente La mise au point de la conception du système grâce à des réseaux de communication éliminera dans une bonne mesure la nécessité du software et facilitera le contrôle du système. Dans ce cas également, la circulation de données intersysteme et intrasystème est importante. Lorsque ces techniques seront utilisées, l'intervention du software dans le contrôle du système sera minimisée. 4. "Le traitement sera principalement exécuté en temps réel ; les opérations seront exécutées selon une cadence d'entrée qui permettra d'obtenir le temps de réponse nécessaire en sortie. Dans le présent contexte, le temps réel n'implique pas l'entrelaçage des programmes ou le dialogue homme-machine du time-sharing (temps partagé). L'implication est que le système acceptera les données au fur et à mesure qu'elles seront présentées et les traitera en tenant compte des contraintes imposées par les temps de réponse demandes. 5. "L'extension du système sera facilement réalisable. La conception du hardware et du software sera modulaire sur le plan - fonctionnel. La puissance de calcul pourra être modifiée sans une refonte du système. Ceci n'implique pas que le jeu d'instructions sera variable. Toutefois, des sous-ensembles hardware emboités seront disponibles pour faire pendant aux sous-ensembles software emboltes. En fait l'embo;tement du software est pratiqué couramment. Le software utilisateur comporte couramment à la fois des macros d'exécution et des macros système. Les macros système contiennent couramment des macros emboîtées qui assurent des fonctions de communication pour des terminaux particuliers. Ces macros peuvent être supprimées ou personnalisées ; on obtient ainsi la modularité du système. Le principe de la famille dans la conception du hardware (ex : terminal) reçoit ainsi une impulsion (Fourth Generation Computers User Requirements and Transition ; publié par Fred Gruenberger, Prentice-Hall Inc. Englewood Cliffs, N.J. 1970 pp. 16-17). Dans les ordinateurs de la première génération, le traitement était relativement simple, le travail ou le programme était considéré comme l'unité élémentaire de traitement. Pour tout travail ou toute transaction lancé par l'utilisateur, un programme était généralement lancé et se déroulait pratiquement sans interruption jusqu'à l'achèvement du travail ou de la transaction en question. De nombreux travaux simples tels que la compilation et l'exécution d'un programme écrit en un langage évolué tel que le FORTRAN étaient effectivement exécutés en une seule fois.Les travaux plus difficiles nécessitaient cependant des opérations multitâches et créaient d'autres processus au fur et a mesure de leur exécution. (On notera qu'un processus est un concept impliquant l'exécution d'une certaine activité et ne doit pas être confondu avec le concept de programme qui est une description d'activité pouvant être utilisée par un ou plusieurs processus. On peut dire qu'un processeur ou un processus exécute un programme. L'idée de considérer un processus comme l'unité élémentaire de traitement a fini par s'imposer dans le contexte multiprogrammation/multitraitement des ordinateurs de la troisième génération. Dans un tel contexte ou de nombreux utilisateurs demandent a être pris en charge simultanément, il est naturel d'imaginer des processus multiples entrant en concurrence pour l'utilisation des ressources du système. Chaque processus est constitué d'un programme (suite ordonnée d'instructions et de données s'y rattachant) qui est exécuté par l'ordinateur et exploite des données pour exécuter le travail d'un utilisateur ou une phase de ce travail. Lorsque plusieurs processus demandent simultanément au système de les prendre en charge.La communication avec des processus ou leur intercommunication ainsi que le contrôle et l'affectation des ressources a ces processus compte tenu notamment des impératifs propres aux systèmes de la quatrième génération deviennent extrêmement complexes. Les ordinateurs Burroughs B-6500 et B-7500 faisant l'objet d'un article de E.A. Hauch et B.A Dent intitulé Mécanisme de pile des B-6500/B-7500" Actes de la Spring Joint Computer Conference de l'AFIPS, 1968, pp 245-261 Thomson, Washington D.C. et d'un article de J. G Cleary intitulé "Traitement des processus sur Burroughs B-6500" Actes de la Quatrième conférence Informatique Australienne Adelaine, South Australia, 1969 permettent un certain contrôle des processus en utilisant un mécanisme de pile.En gros "chaque processus se voit affecter de la place en mémoire pour une pile dans laquelle sont stockés des variables locales, des références à des/procedures de programmes, des tableaux de données et l'état du processus en cours la pile fonctionne comme une zone de mémoire selon le principe dernier entré, premier corti... un processus actif est représenté par une pile active". (PP 231 - 232 de l'article de J. G. Cleary cité plus haut). Il en résulte qu'une pile peut stocker l'historique dynamique dun programme en cours d'exécution4 Cleary décrit en outre (pp. 233 - 234) une façon simple de créer des systèmes arborescents (semblables au Cactus du Type Saguaro) qui serviront de véhicule au contrale de la multiprogrammation. et du traitement en parallèle. Toutefois, les techniques de mécanismes de piles exposées dans lXar- ticle ne sont pas totalement satisfaisantes pour les ordinateurs de la quatrième génération principalement parce qu'elles n'assurent pas une protection suffisante de Irinformation en interdisant l'accès aux informations d'une multitude d'autres processus dudit système de la quatrième génération en fonction du privilège particulier attribué à chaque processus. Un mémoire de A. J. Bernstein, G. D. Detlefsen et R. H. Kerr publié dans le symposium. de I'ACM sur les systèmes d'exploitation et intitulé "Communication et contrôle des processus" décrit la structure de processus et la fonction de communication interprocessus mis en oeuvre dans un système d'exploitation universel. Ce sy stème permet à processus de comporter jusqu'à quatre parties appelées-segments logiques. Ces segments peuvent occuper des positions disjointes lorsque le processus#est en mémoire. La translation et la protection de ces segments est réalisée par quatre registres. Généralement les processus sont contralés par un système diexptoita- tion qui utilise des primitives (pseudo-instructions) émises par le processus et par l'utilisation d'un mécanisme grâce auquel les processus communiquent entre eux. La communication consiste essentiellement à se partager des évènements de la même façon que l'on pourrait se partager un fichier. Chaque processus comporte des éléments de table K I T (Known Item Table) (Table de données connues) qui pointent vers le même élément de table AI T (Active Item Table) (Table de données actives) qui contient un élément particulier pour chaque fichier qui se trouve ouvert.Grâce à cette structure, un processus peut demander une notification (en émettant une primitive NOTIFY) lorsque llévène- ment se produit. Par suite, le système d'exploitation crée un élément dans une file d'attente diévènements associés à llévènement qui identifie le processus demandeur attendant la notification. En ce point le processus demandeur peut continuer à siexécuter ou il peut se suspendre en émettant une primitive BLOCK. On dit que 'événement se produit quand un quelconque autre processus lui envoie une primitive CAUSE et peut être catalogué et traité dans la structure direction en utilisant les mêmes primitives. Les informations peuvent être alors transférées d'un processus à l'autre ou les processus peuvent être associés d'une quelconque autre façon pour exécuter une tâche donnée. Dlau- tres primitives du système d'exploitation créent et donnent naissance à des processus ou les détruisent. Cette technique de communication et de contrôle de processus n'offre pas un historique dynamique et ordonné du programme en cours d'exécution mais introduit certains concepts de multiplexage et de gestion drévènements par Software. Cette technique assure pas non plus la protection d'un processus vis-à-vis d'un autre selon un niveau de privilèges. Elle ne permet pas non plus de communiquer efficacement des messages d'un processus à l'autre. De plus, l'adressage des processus et la translation ne semblent pas convenir pour les systèmes de la quatrième génération.Pour les systèmes de la quatrième géné ration il est nécessaire de disposer diun système hardware/firmware (Matériel logiciel cable) qui assure un adressage et une translation efficace des proces sus offre les structures d'information identifiant l'état du processus et permet tant en outre au processus de contrôler ces états, en assurant une protection vis-à-vis des autres processus et dieux-mêmes grâce à des niveaux de privi lèges, et qui assurent une commutation efficace des processus ainsi qu'une synchronisation avec les autres processus, et permettent aux utilisateurs qui ont écrit leurs programmes de féçon modulaire de passer d'un module de pro gramme à l'autre. Ces impératifs ainsi que d'autres et les problèmes qui s'y attachent pour la mise au point d'ordinateur qui exécutent efficacement les fonctions demandées, ainsi que quelques suggestion relatives à l'obtention de ces fonctions sont ex posés dans un mémoire de Butler W. Lampton intitulé "A Scheduling Philosophy for Multiprocessing Systems" publié dans l'ACMl 1 (5). Toutefois les sugges tions données dans cet article ne semblent pas résoudre les problèmes. Dans le type de machine exposé qui dispose d'un processus contrôlant le processeur central et drune mémoire divisée en segments, il est important d'identifier la cause et la gravité relative d'une anomalie afin de pouvoir y remédier immédiatement. Pour cela, il faut non seulement identifier totalement l'erreur ou l'exception mais de plus exécuter une intervention spéciale en fonc tion de cette identification. Jusqu'ici aucune distinction n'état faite en ce qui concerne la source de l'erreur et aucune intervention spécialisée n'était appli quée en fonction de l'erreur. On se contentait de fournir des ind ications géné rales sur l'erreur et de faire appel à un programme d'erreur prenant en char ge tous les cas d'erreurs et d'exceptions4 Il s'ensuit qu'une anomalie était traitée de façon généralisée et non pas en fonction du type ou de la nature de l'erreur proprement dite.Mais ce qui est plus important, c'est qu'aucune dis tinction n'était faite jusqu'ici entre les erreurs qui étaient relativement mineu res, par exemple les erreurs provoquées par l'écriture d'informations erro nées, et celles qui avaient une très grande importance, par exemple les opé rations de contrôle affectant des données critiques du système de traitement des données. On considérerait systématiquement que l'on avait affaire au cas le plus grave et l'on mettait en oeuvre le traitement des exceptions. En raison du plus grand degré d'élaboration des ordinateurs modernes, il n'est plus possible de traiter les anomalies d'une façon aussi générale. Il est donc indispensable de disposer d'un mécanisme de traitement des exceptions qui évite les écueils d'une procédure généralisée mais neoconstitue pas pour autant une surcharge pour l'ensemble du système. OBJETS DE L'INVENTION L'objet principal de la présente invention est de fournir un système de traitement des exceptions qui remplace le traitement général des exceptions tel qu'il était pratique jusqu'ici. Un autre objet de la présente invention est de fournir un système amélioré pour le traitement des exceptions. Un autre objet de l'invention est de fournir un système amélioré qui intègre le traitement de toutes les exceptions dues a des erreurs survenant dans le système de traitement de données. Un autre objet de l'invention est de fournir un système de traitement des exceptions qui identifie les exceptions et exécute des opérations particulières en fonction des caractéristiques propres à lrexception. RESUME DE L'INVENTION Le diagnostic des anomalies est pris en charge par les différents éléments d'un système de traitement de données. Dans le cas d'une erreur machine, un me canisme d'erreur machine est averti de l'existence de l'erreur. Après avoir essayé de résoudre ce cas d'erreur, le mécanisme d'erreur machine signale le resultan de toute tentative d'intervention à un mécanisme d'exception central sous le contrôle d'informations contenues dans le masque de contrôle hardware. Dans le cas d'une exception interdite ou fonctionnelle, le mécanisme d'exception central est averti directement. Cette notification comprend l'identification de l'erreur détectée au moyen d'un numéro de classe et d'un numéro de type. Le mécanisme d'exception central traite alors l'exception en déterminant si celle-ci se trouve dans le processus en cours, autrement dit si le processeur est en mode processus ou si elle intéresse l'ensemble du système autrement dit si le processeur est en mode système.Après avoir déterminé le mode utilise par le pro cesseur, le mécanisme d'exception central traite l'exception en utilisant soit un mécanisme de déroutement qui exécute un appel de procédure par l'intermediai- re d'une instruction simulée de préparation de pile et d'entrée, soit un mecanisme d'interruption qui procède à un échanqe de processus, ce qui met un terme à l'exécution du processus en cours et émet un messaqe signalant la nature ou la cause de lflexception dans une opération V simulée, à destination d'un autre pro cessus en vue d'une prise en charge. Si une exception est détectée lorsque le mécanisme d'exception central est en train de traiter une exception de processus, il se produit automatiquement une exception-système ; si une exception est détectée lorsque le mécanisme d'exception central traite une exception' système, il se produit alors un incident système. DESCRIPTION SOMMAIRE DES DESSINS Les nouveautés qui caractérisent l'invention sont exposées en détail dans les revendications annexées. Toutefois, l'invention proprement dite, tant sur le plan de l'organisation que du fonctionnement ainsi que ses objets et avantages supplémentaires seront plus faciles à comprendre en se reportant a la description détaillée qui devra être lue parallèlement à la consultation des dessins, ciaprès. La Figure 1 est un schéma par blocs d'un système multiprogrammable matérialisant l'invention. La Figure 2 est une représentation schématique de différentes structures hardware utilisant l'invention. La Figure 3 donne l'explication des abréviations utilisées pour les zones de stockage réservées des registres décrits dans la Figure 2. La Figure 4 est un schéma d'un bloc de contrôle de processus. La Figure 5 est un schéma du système d'adressage d'un bloc de contrôle de processus. La Figure 6 est un schéma de la base du système utilisée dans l'invention. Les Figures 7A et 7B représentent respectivement un segment de pile et un support de pile. La Figure 8 est un schéma d'un système d'adressage des segments G et en particulier de la file de processus du système GO. La Figure 9 est un schéma éclatés'un segment GO illustrant la file des processus et la liaison des processus. Les Figures 10a à 101 sont les schémas des structures du bloc de contrôle de processus. Les Figures îîa à 11r sont les schémas des structures de la base du systeme. La Figure 12 est un schéma des systèmes d'adressaqe des segments utilisateurs et système employant la base du système et les structures du bloc de contrôle de processus. La Figure 13 est un schéma de l'unité de contrôle. Les Figures 14a a 14i représentent les schémas de fonctionnement du commutateur firmware. La Figure 15 est un schéma des mécanismes d'exception utilisés dans l'invention. La Figure 16 est un organigramme du mécanisme d'exception après intervention du mécanisme d'exception central. La Figure 17 est un organigramme du mécanisme d'erreur machine avant transmission de la signalisation au mécanisme d'exception central. La Figure 18 est une représentation schématique des messages utilisés par le mécanisme d'exception central. DESCRIPTION DETAILLEE DE L'INVENTION La présente invention repose sur l'utilisation de l'équipement décrit ciaprès dont la coordination sera assurée par un système d'exploitation hardware/ firmware/software. Comme on peut le voir figure 1, les sous-systèmes sont le sous-système processeur 101, le sous-système de stockage 102, et un ou plusieurs (au maximum 32) sous-systèmes périphériques 103. Le sous-système processeur contient une unité centrale (CPU) 104 et jusqu'à quatre contrôleurs d'entree/sortie (IOC) 105. Chaque sous-système peripherique est constitue d'une unité de contrôle de périphériques (PCU) 106, d'un certain nombre d'adaptateurs de dispositifs (DA) 107 et d'un maximum de 256 périphériques d'entree/sortie 108.Le sous-systeme de stockage 102 est constitué de 1 à 4 modules de mémoire a semiconducteurs ayant une capacité unitaire comprise entre 32 et 512 kilooctets. 1 - SOUS SYSTEME PROCESSEUR Dans le sous-système processeur 101, l'unité centrale CPU 104 exécute les opérations de traitement de base pour le système et assure la liaison avec la mémoire 102. Le contrôleur IOC 15 contrôle tous les échanges d'informations entrele sous-systeme de stockage 102 et les périphériques 106. A. PROCESSEUR CENTRAL Le processeur central comporte un synchronisateur de mémoire principale 109, une mémoire tampon 110, différents éléments constituant l'unité de calcul 111 et des émulateurs facultatifs 112. Le synchronisateur de mémoire principale 109 résout les conflits d'utilisation de la mémoire principale pouvant surgir entre l'unité de calcul 111, la mémoire tampon liO et le contrôleur IOC 105 Les conflits sont résolus en fonction des priorités. Le contrôleur IOC a la priorité la plus élevée puis viennent dans l'ordre les écritures mémoire (issues de l'unité de calcuT) et les lectures en mémoire (introduction dans la mémoire tampon). Le processeur central comporte également l'unité de contrôle d'adresse 131 qui contrôle }'adressage de la mémoire centrale et la mémoire associative AS 132 qui conserve les adresses de mémoire principale utilisées le plus récemment. La mémoire tampon 110 est une petite mémoire rapide qui reproduit une petite partie de la mémoire principale et se trouve reliée à l'unité de calcul pour réduire le temp#s moyen d'accès en mémoire. A chaque lecture mémoire, la mémoire tampon et la mémoire principale sont sollicitées. Si les informations à rechercher se trouvent déjà dans la mémoire tampon, il est mis fin à la lecture en mémoire princi pale et les informations sont extraites de la mémoire tampon. Sinon une lecture est effectuée dans la mémoire principale 102. A chacune de ces lectures, le processeur central 104 extrait 32 octets qui contiennent les informations recher chées. Ces informations restent dans la mémoire tampon en vue d'une consultation ultérieure.Etant donné que la mémoire tampon est transparente pour le software, le programme dirigeant l'ordinateur à un moment donné ne peut déterminer si les informations qu'il traite ont été extraites de la mémoire tampon ou de la mémoire principale. L'unité de calcul 111 exécute tous les traitements de données ainsi que la génération des adresses à l'intérieur du processeur central. Une mémoire morte 130 implantée dans l'unité de calcul (se reporter à l'ouvrage intitulé Microprogramming : Principes and Practices.de Samir S. Husson publie par Prentice Hall, Inc.) contient le firmware qui initialise le système, contrôle le processeur central 104, ainsi que le contrôleur IOC 105 et décode un jeu d'instructions (qui n'est pas représenté ici), Sur option, la mémoire morte peut contenir des instructions scientifiques, des programmes d'essai, des packages d'émulation ou des fonctions spéciales qui augmentent les possibilités du sous-système processeur. En option, le processeur central assure l'émulation de système autres que le présent système. Les émulateurs 112 sont des éléments du firmware, du software et dans certains cas du hardware. B. CONTROLEUR D'ENTREE/SORTIE Le contrôleur d'entrée/sortie IOC 105 du sous-système processeur sert de plaque tournante entre tout sous-système périphérique 103 et le sous-système de stockage 102. Le circuit ainsi constitué permet le lancement des ordres de commande des périphériques et la gestion des transferts de données qui en résulte. Un contrôleur d'entrée/sortie peut normalement prendre en charge jusqu'à 32 unites de contrôle de canal (non représentées). C. SOUS-SYSTEMES PERIPHERIQUES Dans le sous-système périphérique 103 de la figure 1, l'unité de contrôle de périphérique 106 est un processeur microprogramme autonome qui diminue la charge imposée au processeur central 104 en assurant le contrôle des périphériques d'entrée/sortie 108 pendant l'exécution des opérations d'entrée/sortie.Pour cela, l'unité de contrôle de périphériques exécute les instructions contenues dans un programme de canal. Ce programme fait exécuter à l'unité de contrôle des périphériques des opérations arithmétiques, logiques, de transfert, de décalage et de branchement. Les types d'unités de contrôle de périphériques varient suivant les périphériques qu'elles contrôlent à savoir : lecteurs et perforateurs de cartes, mémoire de masse (disques), dérouleurs de bande magnétique, unités de transmission, etc. Les adaptateurs de dispositifs 107 servent d'intermédiaires entre toute unité de contrôle de périphériques et les périphériques qu'elle commande. Chaque unité de contrôle de périphérique contient le firmware et la logique spécialisées nécessaires a la réalisation des communications avec un type de périphérique particulier. Selon le type de périphériques, un adaptateur de dispositifs 107 peut gérer un ou plusieurs périphériques. Les fonctions principales exécutées par un sous-systeme périphérique 103 sont les suivantes 1. Transformation des instructions issues du processeur-central en une série d'ordres susceptibles d'être exécutés par le périphérique concerne. 2. Tassement et éclatement des données en fonction de la forme utilisée par le processeur central ou le périphérique approprie. 3. Signalisation au processeur central de l'état du sous-système et des périphé- riques places sous sa dépendance. 4. Lancement et traitement des procédures de détection et de réparation d'erreurs 5. Possibilité de diagnostics on-line d'un périphérique sans perturber les possi bilités d'utilisation en commun des périphériques du processeur de périphéri ques en questio#n. Une unité de contrôle de pèrip#ériques résout les conflits d'utilisation de la mémoire surgissant entre les périphériques qui lui sont connectés ; toutefois, c'est le contrôleur d'entrée/sortie qui résout les conflits entre unités de contrôle de périphériques. D. SOUS-SYSTEME DE STOCKAGE Chaque module de mémoire (1 à 4) a une largeur de 4 ou 8 octets. Le nombre de modules, leur taille ainsi que le circuit des données peuvent varier selo#n la taille de l'ordinateur. Les modules de mémoire sont organisés selon un entrela çage quadruple ce qui fait que l'accès aux quatre modules s'effectue séquentiellement (le module 1 contient les 8 premiers octets, le module 2 les 8 octets suivants, etc.). L'entrelaçage réduit le nombre- de conflits d'accès à la mémoire principale ce qui contribue à réduire le temps d'accès moyen en mémoire. La reconfiguration de la mémoire est possible en cas d'incident ; autrement dit, des blocs de mémoire appartenant à un module peuvent être retires de l'utilisation sans détruire pour autant l'adressage contigu. La mémoire principale 102 utilise un support capacitif constitue de microplaquettes à semi-conducteurs (MOS). Ce support applique le principe de la régé nération pour conserver l'information. Chaque position de mémoire est régénérée au moins une fois toutes les deux millisecondes ; la mémoire est conçue de telle sorte qu'il existe peu de conflits entre les cycles de régénération et les accès à la mémoire. (En cas de conflit, c'est la régénération qui est prioritaire). En début de mémoire principale, une zone est réservée au hardware et au firmware. La limite supérieure de cette zone est définie par le contenu d'un registre d'adresses (registre BAR qui sera décrit plus loin) dont le software du système peut connaître le contenu. Le contenu du registre BAR est initialisé au moment de l'initialisation du système. La zone de mémoire, se trouvant en-dessous de l'adresse spécifiée dans le registre BAR, peut contenir des tables de contrôle d'entrée/sortie qui définissent la configuration des sous-systemes périphéri- ques, le firmware nécessaire à la commande du processeur central ou des micropro grammes et des tables destinés à l'émulation.La taille de la zone se trouvant sous l'adresse spécifiée dans le registre BAR dépend de la configuration du sys tème. L'implantation des microprogrammes en mémoire principale ou en mémoire dépend de la configuration du système et des applications dont le système a la charge. 2 - STRUCTURES DE BASE DE LA MACHINE Ce hardware comporte essentiellement trois structures de données de base formats de données, registres accessibles au software, et formats d'instructions. A. FORMATS DE DONNEES Les informations sont transférées entre la mémoire et le processeur central par multiples de 8 bits en parallèle. Chaque unité d'information de huit bits est appelé octet. Les données servant à la parité ou à la correction des erreurs sont également transférées avec les données mais ne peuvent être affectées par le software. Il en résulte que dans le présent contexte le mot donnée ne s'applique pas aux informations servant à la parité ou à la correction des erreurs. B. OCTETS Les bits constituant un octet sont numérotés de O à 7 de la gauche vers la droite. Les octets sont traites séparément ou par groupes. Deux octets constituent un demi-mot, quatre octets un mot, huit octets un mot double et seize octets un mot quadruple. Ce sont là les formats de base de toutes les données y compris les instructions. C. REPRESENTATION DES DONNEES Toutes les données sont sous forme binaire, mais elles peuvent être inter prétées comme des données binaires, décimales ou alphanumériques. Les bits de données sont interprétés comme des données en décimal codé binaire (groupes de 4 bits) ; en alphanumérique (8 bits) ou en binaire (16 à 64 bits). Dans ce dernier cas, ils sont interprétés en binaire comme des nombres signés en virgule fixe ou en virgule flottante. Tout groupe de bits consécutifs jusqu'à concurrence du mot double peut également être manipulé comme une chai ne. Le jeu de caractères alphanumériques est représenté par le code EBCDÏC. Le code ASCII constitue un code de remplacement. D. ADRESSES DES OCTETS Les emplacements d'octets en mémoire principale sont numérotés consécutive ment à partir de zéro ; chaque nombre représente l'adresse de l'octet. On considère qu'un groupe d'octets consécutifs est aligné au demi-mot au mot, au mot double ou, au mot quadruple si l'adresse de l'octet gauche d'un groupe est un multiple de 2, 4, 8 ou 16. Lorsqu'un demi-mot, un mot, un mot double ou un mot quadruple est aligné de cette façon, cette unité d'information peut-être extraite à cette adresse. L'emplacement d'une donnée en mémoire principale est spécifié par un descripteur de donnée auquel on accède indirectement pendant le développement d'adresse. (Voir demande de brevet N07317765 déposée le 1605.73 pour "Developpement d'Adresse Segmentée" dont le cessionnaire est le même que celui du pre sent brevet.) E.REGISTRES VISIBLES Le processeur central 104 de la figure 1 comporte 33 registres accessibles à l'utilisateur et dont le contenu définit collectivement l'état du processeur central. Il existe 4 types de registres (voir figure.2). 1. les registres généraux 2. les registres de base 3. les registres scientifiques (en option) 4. les registres divers F. REGISTRES GENERAUX Les registres généraux (GR)201 servent à manipuler les nombres binaires en virgule fixe ainsi que les channes de bits. Le processeur central 104 contient 16 registres généraux de 32 bits numéros GRO à GR15. Les registres généraux GR8 à GR15 peuvent également servir de registres d'index. Lorsqu'ils sont utilisés comme registres d'index, ils sont référencés XO à X7 dans le présent contexte l'indexation est réalisée en utilisant l'entier de 32 bits en complément à 2 contenu dans le registre. G. REGISTRES DE BASE Les registres de base (BR) ont le même format que les compteurs d'instruction IC et que les registres de pile 202-203. Les registres de base sont utilises pendant le calcul d'adresse pour définir une partie de la mémoire. Il existe huit registres de base de 32 bits BRO à BR7. H. REGISTRES SCIENTIFIQUES Les registres scientifiques (SR) sont installés en option pour les calculs utilisant des nombres binaires en virgule flottante. Il existe 4 registres scientifiques de 8 octets qui sont référencés SRO à SR3. Les registres scientifiques ont le format 204-205 de la figure 2. I. REGISTRES DIVERS Il existe 5 autres registres - compteur d'instruction ayant le format 202-203 - registre d'état ayant le format 207 - registre de pile (appelé registre T) - registre d'adresse ayant le format 202-203 - registre de masque de contrôle hardware ayant le format 208 Le compteur d'instruction (IC) est un registre de 32 bits qui contient l'adresse de l'instruction en cours d'exécution. Le registre d'état (STR)207 est un registre de 8 bits qui enregistre les événements intéressant la procédure en cours d'exécution tels que par exemple, dépassement de capacité négatif provoque par la toute dernière opération. Le registre de pile qui porte également le nom de registre T est un registre de 32 bits qui contient un pointeur désignant le sommet d'une pile à refoulement associée avec la procédure en cours d'exécution. Les piles, qui seront décrites dans le présent exposé, offrent un espace de travail et un mécanisme permettant de conserver les variables locales et de protéger les informations relatives à l'introduction et au retour de procédure. Le registre d'adresse (BAR)206 est un registre de 28 bits qui spécifie l'adresse absolue la plus petite en mémoire principale accessible par software. Ce registre est chargé à l'initialisation du système et sa lecture ne peut être réalisée que par software. Le registre de masque de contrôle hardware 208 est un registre de 8 bits qui enregistre des informations sur l'état de la machine. J. FORMATS D'INSTRUCTION Il existe environ 200 instructions mais on peut en utiliser plus ou moins. Chaque instruction peut avoir l'une des quatre longueurs possibles mais elle doit toujours comporter un nombre pair d'octets. Les instructions occupent des positions de mémoire consécutives. L'adresse de l'octet de gauche est un multiple de 2 et correspond à l'adresse de l'instruction. Les huit bits les plus significatifs (et dans certains cas les bits 8 à 11 ou 12 à 15) d'une instruction représentent le code opération alors que les autres bits représentant un ou plusieurs opérandes. Un opérande peut être un désignateur de registre, un désignateur de déplacement, une syllabe d'adresse (adresse logique), une valeur littérale ou une valeur littérale immédiate. Le type et le nombre d'opérandes sont déterminés par le format de l'instruction. 3 - ORGANISATION DU SYSTEME A. ETAPE DE TRAVAIL ET TACHE Le traitement que doit exécuter l'ordinateur est défini extérieurement par une série d'étapes de travail au moyen d'un langage de contrôle de travail. Une étape de travail est une unité de travail à laquelle sont affectées des ressources hardware. Une étape de travail comporte plusieurs tâches. La tâche est l'unité de travail la plus petite définie par l'utilisateur et constituée d'une suite d'instructions exécutée sans parallélisme. B. PROCESSUS Aux concepts de tâche et d'étape de travail qu'emploie l'utilisateur corres pondent respectivement le processus et le groupe de processus sur le plan du hardware. Un processus est une suite ordonnée d'instructions qui peut être exé cutée de façon asynchrone par le processeur central (plusieurs processus peuvent être actifs et se partager les ressources mais un seul processus s exécute en réalité à un moment donne). Un groupe de processus est un ensemble de processus associés nécessaires à l'exécution d'une étape de travail. C. BLOC DE CONTROLE DE PROCESSUS ET BASE DU SYSTEME Etant donné que les processus peuvent se soustraire aux ordres du processeur central en divers points de leur exécution, une zone de stockage de mémoire centrale est mise à la disposition d'un processus pour conserver l'état du processeur central. Ces informations d'état permettent de préparer le processeur central avant de relancer l'execution d'un processus. La zone de stockage affectée à un processus est appelée bloc de contrôle de processus (PCB)400 figure 4. Les données contenues dans un bloc de contrôle de processus comprennent les adresses des zones de mémoire (espace adresse) affectées au processus, le contenu de tous les registres appropriés ainsi que l'état du processus. Un bloc de contrôle de processus sert donc de zone de stockage provisoire pour les informations nécessaires au lancement et à la relance d'un processus sans aucune perte d'information. Chaque bloc de contrôle de processus est accessible au hardware et le système d'exploitation peut y accéder en passant par l'intermédiaire d'un ensemble de tables hardware créé pendant l'initialisation du système et modifié pendant l'exécution du traitement (figure 5). Il existe une zone absolue de mémoire centrale désignée sous le nom de base du système (figures 5 et 6). Cette zone, créée par le firmware, est accessible par l'intermédiaire du registre d'adresse (BAR)501 qui peut faire l'objet d'une lecture mais non d'une écriture. La base du système 502 contient un certain nombre de caractéristiques du système dont le numéro d'étape de travail et un numéro de groupe de processus (J,P) pour le processus en cours d'execution. Une autre caracteristique de la base du système est un pointeur qui désigne une structure de donnée définie par hardware et portant le nom de table J503. Cette table contient un élément pour chaque étape de travail se trouvant dans le système. Chaque élément de la table J503 désigne une table P504 qui est également une structure de donnée définie par hardware. Cette table définit un groupe de processus et contient un élément pour chaque processus figurant dans le groupe de processus. Chaque élément de la table P désigne un bloc de contrôle de processus 400. Figure 5, on peut voir que le pointeur de la table J505 indexé par le numéro J par l'intermédiaire de la partie arithmétique 506 de l'unité de calcul 111 (figure 1) permet d'accéder à un élément de la table J503. Cet élément contient un pointeur de table P qui, lorsqu'il est indexe par le numéro P par l'intermédiaire de l'unité de calcul 506 permet d'accéder à un élément de la table P 504. L'élément de la table P contient un pointeur 507 qui renvoie au bloc de contrôle du processus en cours d'exécution. Ainsi le système d'exploitation peut accéder au bloc de contrôle de processus actif en utilisant le contenu du registre d'adresse 501 et peut accéder à un autre bloc de contrôle de processus en connaissant le nom logique qui lui est associé (J,P). D. SEGMENTATION DE LA MEMOIRE Dans un contexte multiprocessus tel que celui que nous decrivons ici, un grand nombre de processus se trouvent en mémoire à un moment donné. La taille de ces processus et leurs besoins en mémoire varient ce qui pose un Problème d'affectation de la mémoire. Le hardware que nous décrivons ici allié à un système d'exploitation (non représenté) résout ce problème par une affectation dynamique de l'espace mémoire. En raison de l'irrégularité des besoins en mémoire re, la mémoire est affectée en segments de dimensions variables et l'affectation de la mémoire peut être restructurée pendant l'exécution d'un processus. Il en résulte qu'un processus peut utiliser un certain nombre de segments de mémoire non contigus. Cette affectation de la mémoire est appelée segmentation. La segmentation pose un autre problème en ce sens que les adresses mémoire doivent être modifiées lorsqu'un processus subit une translation totale ou partielle. Pour résoudre ce problème, le système que nous décrivons ici offre une technique grâce à laquelle les adresses utilisées par un processus sont des adresses logiques et non pas des adresses absolues en mémoire. Ces adresses logiques permettent de calculer les adresses absolues. La segmentation permet également à chaque processus d'accéder à ses propres segments en mémoire ou a des segments s'y rattachant par l'intermédiaire d'un système de descripteur de segments. En accédant à un descripteur de segment, un processus peut obtenir l'adresse d'un segment. Les descripteurs de segments sont contenus dans la mémoire principale et sont gérés par le système d'exploitation. Chaque processus peut accéder à un maximum de 2068 segments de mémoire. Normalement cela exigerait un même nombre de descripteurs de segments par processus. Cependant, étant donné que les segments peuvent être utilisés en commun, le système d'exploitation groupe les descripteurs de segments en table de segments. Ce groupage est basé sur la possibilité d'accès à partir d'un processus (tâche), d'un groupe de processus (étape de travail) ou d'accès global (ensemble du système). A chaque processus peut être associé un maximum de 15 tables de segments. Cette technique n'exige qu'un seul descripteur de segments pour chaque segment auquel peut accéder un processus par l'intermédiaire d'une table de segments. Ceci a pour effet de réduire l'encombrement en mémoire des descripteurs de segments ; le nombre de mises à jour de la mémoire pendant la translation est réduit et une certaine protection des programmes est assurée. (Le mécanisme principal de protection des programmes est un système en anneau. Voir demande de brevet n0 7342706 déposée l ft 30. il. 73 intitulée Protection des informations dans un ordinateur multiprogrammable/multitraitement" dont le cessionnaire est le même que celui de la présente invention. Un processus doit pouvoir déterminer les segments auxquels il a le droit d'accéder. Le système offre donc un processus utilisant deux tableaux de mots décrivant des tables de segments (STWA). Ces tableaux contiennent les adresses de toutes les tables de segments accessibles à un processus. Il existe deux tableaux de mots décrivant des tables. de segments par processus puisqu'il existe deux tailles de segments : grande et petite. Les grands segments ont la taille de 222 octets alors que les petits segments ont une taille maximum de 216 octets. Tous les segments ont une taille qui varie par tranches de 16 octets jusqu concurrence de la taille maximum. Un système peut comporter jusqu'à 28 grands segments et 2040 petits segments. Les tableaux de mots décrivant des tables de segments peuvent être trans latés par le système d'exploitation ; un processus doit donc connaître l'adresse absolue des tableaux de mots décrivant des tables de segments qui lui sont associés. Le bloc de contrôle de tout processus contient deux mots qui renfer ment cette information et qui portent le nom de mots d'espace adresse références ASWO-1 figure 4. Chaque mot désigne un tableau de mots décrivant des tables de segments STWA. Le système d'exploitation met à jour le contenu des mots ASW lorsque les tableaux STWA correspondants sont translatés. L'analyse de la chai ne de pointeurs et le décodage du descripteur de segments est une fonction assurée par firmware et une fois qu'elle est lancée, elle n'est pas visible, même pas pour le système d'exploitation. La segmentation définit plus de 200 millions d'octets d'espace adresse à la disposition des processus. Ce nombre dépasse la capacité de la mémoire principale ; en conséquence, une mémoire auxiliaire (disque ou tambour magnétiques) est utilisée en complément de la mémoire principale. Le système d'exploitation donne l'illusion que le système dispose d'une mémoire principale beaucoup plus importante que celle qui est effectivement disponible. C'est ce principe que l'on appelle la mémoire virtuelle. A un moment précis, un segment donné peut se trouver ou ne pas se trouver effectivement dans la mémoire principale. Le contenu d'un descripteur de segment indique si le segment correspondant se trouve ou non dans la mémoire principale. Le hardware détecte toute tentative effectuée par un processus pour accéder à un segment ne se trouvant pas en mémoire principale et le signale au système d'exploitation. Le système d'exploitation assure le transfert dans la mémoire principale du segment en question qui se trouve sur mémoire auxiliaire. Ensuite, le système d'exploitation range l'adresse mémoire du segment dans le descripteur de segment qui est le seul endroit ou l'on puisse trouver l'adresse absolue d'un segment. Cette opération est invisible au processus et il ignore donc que le segment n'était pas en mémoire principale ou qu'il devra éventuel le- ment être translaté en mémoire principale. Pour les détails de la segmentation mémoire, voir Demande de brevet n0 73 17765 déposée le 16. 05. 73 intitulée Développement d'dresse Segmentée". L'ordinateur décrit ici assure la protection des procédures et des données en interdisant toute interférence entre processus ainsi que l'utilisation reciproque de leur espace adresse de façon inappropriée. Cette protection est réalisée en restreignant l'adressage au moyen de la segmentation mémoire et d'un système en anneau. Les tables de segments isolent l'espace adresse des divers processus du système. Les processus utilisent toujours une adresse segmentée pendant leur exécution. Une adresse segmentée est constituée d'un numéro de segment et d'une adresse relative à l'intérieur du segment (voir demande de brevet ci-dessus intitulée "Développement d'Adresse Segmentée"). Le hardware vérifie que l'adresse utilisée par un processus figure dans l'espace adresse affecté au processus. Si l'adresse se trouve en dehors de l'espace adresse affecté il se produit une exception. Un processus ne peut se référer à des données se trouvant dans l'espace adresse d'un autre processus car le hardware utilise les tables de segments du processus en question. Il est donc impossible qu'un processus ou qu'un groupe de processus référence une entité appartenant à un autre groupe de processus. En général, il y a recouvrement de l'espace adresse dans le système pour les segments qu'utilisent tous les processus. Ces segments communs sont créés par les programmes du système qui vérifient qu'il n'y a pas de conflits d'adresses. Ainsi, la. segmentation protège les programmes utilisateurs contre toute interférence réciproque et le système d'exploitation vis-à-vis des programmes utilisateurs. Les segments utilisés par plusieurs processus ne sont pas protégés contre une mauvaise utilisation de la part de l'un de ces processus. Pour résoudre ce problème, un système en anneau est utilisé grâce auquel procédure et segments de données sont groupés selon une hiérarchie à quatre niveaux. Les quatre classes d'anneau sont numérotées de O à 3. Chaque anneau représente un niveau privilégié du système, le niveau O (anneau le plus interne) ayant le privilège le plus éle- vé et le niveau 3 (anneau le plus externe) le moins élevé. A chaque procédure du système est affecté un numéro d'anneau minimum et maximum qui peut appeler la procédure. Une procédure est un sous-programme capable d'appeler d'autres procédures et de leur fournir des paramètres; Les règles générales du système en anneau sont les suivantes 1.Une procédure d'un anneau interne a libre accès aux données d'un anneau externe. En revanche, une procédure d'anneau externe ne peut avoir accès aux données d'un anneau interne. 2. Une procédure d'un anneau externe peut se brancher sur une procédure d'un anneau -interne mais l'inverse n'est pas autorise. 3. Chaque segment contenant des données reçoit deux valeurs d'anneau : une pour la lecture (RD) et une pour l'écriture (WR). Ces valeurs d'anneau specifient la valeur d'anneau maximale dans laquelle une procédure peut s'exécuter lorsque l'accès aux données se fait en mode lecture ou en mode écriture. Chaque fois qu'une isntruction de procédure est exécutée, le numéro d'anneau de la procédure (anneau d'adresse effective BAR) est comparé aux numéros d'anneaux affectée au segment contenant les données référencées. L'anneau est le nombre maximum de numeros d'anneau de processus du compteur d'instruction et de tous les numéros d'anneaux des registres de base et des descripteurs de données rencontrés pendant l-'adressage. L'accès aux données sera accordé ou refusé par comparaison avec les numéros d'anneaux.Ainsi, s'il existe dans un segment une table système ayant une valeur maximum d'anneau de lecture égale à 3 et une valeur maximum d'anneau d'écriture égale à 1, une procédure utilisateur s'exécutant dans l'anneau 3 pourra lire la table mais ne pourra pas la mettre à jour. Par construction, les anneaux O et 1 sont réservés au système d'exploitation et les anneaux 2 et 3 sont réservés à l'utilisateur. L'anneau O contient les segments indispensables au fonctionnement de l'ensemble du système. L'anneau 1 contient l'ensemble des segments du système pour lesquels un incident ne serait pas catastrophique et permettrait une reprise. L'utilisateur peut employer l'anneau 2 pour les programmes au point et l'anneau 3 pour les programmes en cours de mise au point. F. APPELS DE PROCEDURE L'appel de procédure est une fonction importante dans le système décrit ici. Les appels de procédure sont utilisés pour passer d'une procédure à l'autre, autoriser les procédures utilisateur à avoir recours aux services du système d'exploitation et obtenir une structure modulaire à l'intérieur du système d'exploitation. Un appel de procédure est réalisé par des instructions ainsi que par une entité reconnue par le hardware et appelée pile (figure 7A). Une pile est un mécanisme qui accepte et stocke les données et en permet l'extraction selon le principe dernier entré premier sorti. Les piles résident dans des segments spéciaux appelés segments de pile. Un segment de pile est cons titué d'un certain nombre d'éléments consécutifs appelés supports de pile 701 (figures 7A et 7B) qui sont affectés dynamiquement à chaque procédure. Le premier support de pile est chargé au sommet du segment et les supports suivants sont charges par dessus. Le dernier support chargé est considéré comme le sommet de la pile. Le registre T 702 localise le sommet de la pile pour le processus en cours d'exécution. Il existe un registre T virtuel dans le bloc PCB de tous les autres processus du système. Le support de pile 701 figure 7B comporte 3 zones : une zone de travail 702 qui sert au stockage des variables, une zone de mémorisation 703 qui sert à mè- moriser le contenu des registres et une zone de communication 704 qui permet le transfert des paramètres entre procédures. Avant un appel de procédure, l'utilisateur doit spécifier les registres dont il veut conserver le contenu et il doit charger dans la zone de communication les paramètres à fournir à la procédure appelée. Lorsque l'appel s'effectue, le hardware conserve le contenu du compteur d'instruction IC ainsi que le contenu des registres de base spécifiés pour faciliter un retour depuis la procédure appelée. Chaque appel de procédure crée un support de pile dans un segment de pile 701 et les appels emboités- suivants créent des supports supplémentaires. Chaque sortie de l'une de ces procédures appelées entraîne l'élimination d'un support de pile dans la pile. Ceci permet de conserver l'historique des appels et facilite les retours après exécution. Pour assurer la-protection entre procédures s'exécutant dans des anneaux différents, on utilise des segments de piles différents. Il existe un segment de pile correspondant à chaque anneau de protection pour chaque processus. Un bloc PCB contient trois mots de base de pile qui désignent le début des segments de piles pour les anneaux 0, 1 et 2 associés au processus. Le segment de pile de l'anneau 3 ne peut jamais être mis en oeuvre par un appel intérieur ; son adresse de#début de pile n'est donc pas nécessaire dans le bloc PCB. 4 - GESTION ET SYNCHRONISATION DES PROCESSUS Le présent système permet des opérations en multitraitement qui sont contrôlées par un système d'exploitation associant software, hardware et firmware. Le software crée et supprime les processus dans le système alors que le hardware et le firmware assurent un multiplexage des processus sur le processeur central. Par ailleurs, l'association du hardware/software/firmware permet la synchronisation entre processus. Normalement mais pas toujours, les processus sont lancés et arrêtés au début et à la fin des opérations d'entrée/sortie pendant le-traitement de travaux associés et a d'autres moments pour des raisons jugées nécessaires par le système d'exploitation. Un système de communications est donc nécessaire pour lancer et arrêter les processus associés et pouP assurer le transfert d'informations entre ces processus. Le hardware du présent système dispose de messages internes appelés sémaphores qui assurent la communication entre ces processus. A. ETAT DE PROCESSUS Un processus peut se trouver dans l'un des quatre états possibles à tout moment : état d'exécution, état prêt, état attente ou état suspension. Le hardware détecte ces quatre états possibles et exécute diverses procédures firmware pour réaliser la commutation des processus, les changements d'états et pour maintenir les structures de données en fonction de l'état du processus. Le bloc PCB contient une #one état qui définit l'état actuel du processus correspondant. Un processus est à l'état d'exécution lorsqu'il dispose du processeur central. Cet état entraîne la fourniture d'un espace adresse (tables de segments) et d'une adresse début au processeur central. Le processeur central exécute alors les instructions se trouvant dans les segments de procédure du processus. Le mot (adresse logique) de la table J des noms de processus du bloc PCB intéressant le processus en cours d'exécution est conservé dans le mot processus en cours (BAR + 60) de la base du système#(figure 6). (Note : La base du système représentée figure 5 est la même que celle de la figure 6 mais quelques détails ont été omis). L'état prêt équivaut à l'état d'exécution à cette différence que le processus n'a pas la disponibilité du processeur central car il n'a pas été reconnu par celui-ci. Un processus se trouvant à l'état prêt se trouve en concurrence avec d'autres processus prêts ainsi qu'avec le processus en cours d'exécution pour l'utilisation du processeur central. Un processus est a l'état attente lorsqu'il ne peut se poursuivre avant l'arrivée d'un événement particulier tel que l'envoi d'un message par l'intermédiaire d'un sémaphore. Un processus en attente ne sollicite pas l'utilisation du processeur central mais il peut se trouver en concurrence avec d'autres processus en attente, dans l'attente de l'événement en question. Un processus suspendu est un processus qui a été arrêté pendant un certain temps par le software et qui pourra être poursuivi ultérieurement. La décision d'arrêter et de reprendre le processus est externe au processus. Il en découle qu'un processus suspendu n'est pas actif et qu'il ne peut ni rece#voir notification d'événements ni utiliser le processeur central. La suspension d'un processus s'effectue dans les conditions suivantes (1) Par l'exécution d'une instruction d'arrêt (à la suite de l'achèvement de toutes les fonctions demandées) (2) Par l'exécution d'une instruction de suspension réalisée par le système d'exploitation. (3) Par l'arrivée d'une exception provoquant le renvoi au système d'exploitation. B. COMMUTATION DE PROCESSUS Les processus passent d'un état à l'autre soit volontairement en cours de déroulement soit involontairement sous l'effet d'autres processus. Un élément du processeur central appelé commutateur contrôle le passage des processus d'un état à l'autre. Le commutateur utilise un certain nombre de files (qui seront décrites plus loin) pour manipuler les processus qui sont a l'état prêt ou attente. Les processus suspendus sont contrôlés par software. Comme on peut le voir figures 6, 8 et 9, un processus prêt ou en attente est représenté par un bloc PCB ainsi que par un élément spécial de file d'attente appelé liaison de processus. La figure 9 montre une vue éclatée du contenu du segment GO 802 et contient les liaisons de processus 803a - 803b et 803c 803g des processus actifs, et les liaisons de processus libres 805a - 805c des processus suspendus. Chaque liaison de processus spécifie le nom de processus (J,P), la priorité du processus et comporte un pointeur orienté vers la liaison de processus suivante de la file. Il existe divers types de files tels que file "attente" 803a-b et file "prêt" 803c-q. Un #ispositif hardware similaire à la table J et portant le nom de table G (figures 6 et 8) contient des pointeurs dirigés vers tous les segments généraux (connus par l'ensemble du système) 802-802n. Le premier élément, GO, de la table G 801 désigne le segment 802 contenant les files du commutateur. Un pointeur de table G désignant la table G 801 figure dans la base du système 502 à la figure 5. La base du système comporte éqalement un élément appelé mot de file de processus interne (IPq) qui identifie le début 805 de la file prêt 803c - 8039 du segment GO 802. Ainsi, le commutateur peut examiner tous les processus prêts en consultant la file prêt 803c - 803g. Lorsque le processus en cours d'exécution chanae d'état, le commutateur retire la liaison de processus se trouvant en tête de la file prêt et utilise le nom J,P pour accéder à son bloc PCB. Le processus défini par le bloc PCB devient alors le nouveau processus à exécuter. Etant donné que plusieurs processus peuvent attendre l'arrivée d'un même événement, il existe une file de processus en attente 803a - 803b pour chaque événement. Les processus en attente sont également reliés au moyen de liaisons de processus 805 résidant dans le segment GO. Un pointeur orienté vers la tête de la file attente existe dans le sémaphore 903 (qui sera décrit ultérieurement). Il existe un certain nombre d'événements que peut attendre un processus ; en conséquence, il existe un certain nombre de files "attente" dont chacune est associée à un sémaphore 903, 904. Le nombre de processus prêts ou en attente varie dynamiquement. Il en résulte que le nombre de liaisons de processus nécessaires pour les files prêt et attente varie également. Ceci pose un problème de gestion de mémoire pour le commutateur. Le problème est résolu par une autre file appelée file de. liaisons de processus libres 805a-c. Cette file relie ensemble toutes les liaisons de processus du segment GO qui ne sont pas utilisées par les files prêt ou attente et peut être utilisée pour compléter une file particulière de processus prêts ou attente. Un pointeur 901 orienté vers la tête 902 de la file des liaisons de processus libres 805 réside pres du début du segment GO 802. C. SYNCHRONISATION DES PROCESSUS La synchronisation des processus est nécessaire pour coordonner les activités de deux processus travaillant sur la même tâche. Cette synchronisation est réalisée en utilisant les sémaphores 903-904 qui sont des structures de données résidant dans l'espace adresse des processus en communication. Un sémaphore sert à signaler les événements et à traiter les files de messages. Dans le présent contexte, un événement est tout ce que peut observer un processus et qui peut intéresser un quelconque autre processus. L'événement peut être l'achèvement d'une opération asynchrone ou la disponibilité d'une ressource. Un processus utilise deux opérations de sémaphore pour signaler un événement. Une opération envoie un signal à un sémaphore, l'autre reçoit un signal d'un sémaphore (l'opération émettrice est souvent appelée opération V, et l'opé- ration réceptrice opération P). L'opération émettrice permet à un processus d'envoyer des données ou un signal indiquant que les données sont prêtes. Le sémaphore conserve le signal jusqu'à ce qu'un autre processus soit en mesure de le recevoir. Ainsi, le processus émetteur a la possibilité de se poursuivre étant donné qu'il a envoyé les données. L'opération réceptrice examine un sémaphore spécifié et reçoit le signal. Si un signal est present, le processus recepteur continue à s'executer. Toutefois, s'il n'y a pas de sianal au sémaphore, le processus récepteur passe à l'état attente.Le sémaphore sert alors de pointeur orienté vers la tête de la file attente. Le processus reste à l'état attente dans la file du sémaphore jusqu'à ce qu'un autre processus renvoie un siqnal à ce sémaphore particulier. Un sémaphore peut donc garder un signal jusqu'à ce qu'un processus le prélève ou conserver un processus jusqu'à ce qu'un signal lui parvienne. Des messages peuvent également être communiqués entre processus. Un message a la même caractéristique (présence ou absence) qu'un signal et comporte des informations supplémentaires. Une partie de ces informations est fournie par le hardware et une partie par la-procédure du processus ayant envoye le message. Un message porte le nom du processus émetteur. Il en résulte que de nombreux processus peuvent envoyer par l'intermédiaire d'un seul sémaphore des informations portant le nom de l'émetteur. Un sémaphore de messages peut comporter une file de messages attendant d'être pris en charge par des processus. Comme pour les sémaphores de signaux, les besoins en mémoire augmentent ou diminuent, ce qui pose un problème de gestion de mémoire. Dans ce cas également, le problème est résolu au moyen d'une file de liaisons de messages libres. Ces liaisons résident dans un emplacement connu d'un segment qui peut être facilement retrouvé lorsque cela est nécessaire pour fournir des liaisons de messages ou les prendre en charge. Etant donne que les sémaphores et les files qui s'y accumulent sont utilisés par différentsprocessus, l'ensemble de la structure des sémaphores est protégé. Cette protection est réalisée par des conventions hardware et software qui limitent l'accès à tout segment contenant des sémaphores. Les sémaphores doivent donc se trouver dans des segments descripteurs de sémaphores dont certains peuvent être des segments G. (si une communication système est nécessaire). Cependant, tous les segments G (à l'exception du segment GO) sont des segments de description de sémaphores. Chaque descripteur de sémaphore contient un pointeur oriente vers un sémaphore. Les adrésses de sémaphores sont développées au moyen d'un descripteur de sémaphore, ce qui assure une protection supplémentaire au sémaphore. L'adressage d'un segment de sémaphore peut être fait logiquement en utilisant un numéro de segment et une adresse relative dans le segment ou directement en-utilisant le numéro G,D. STRUCTURES DU BLOC DE CONTROLE DE PROCESSUS La figure 4 donne le format du bloc de contrôle de processus (PCB). Le bloc de contrôle de processus 400 est une zone de la mémoire principale mise à la disposition d'un processus et destiné à conserver l'état d'un processeur central. L'adressage d'un bloc PCB s'exécute ainsi qu'il a été expliqué plus haut à propos de la figure 5. Le pointeur PCB 507 (figure 5) renvoie à un bloc PCB occupant la position de mémoire O figure 4. On remarquera que de haut en bas les emplacements de mémoire progressent de 4 octets alors que dans le sens inverse à partir de l'emplacement de mémoire O ils augmentent de 8 octets. On considère que les emplacements de mémoire sont positifs à partir de O de haut en bas alors qu'ils sont négatifs à partir de O de bas en haut.Les emplacements supérieurs sont facultatifs et peuvent être inclus ou non dans le bloc de contrôle de processus ; de même les emplacements 148 à 176 sont facultatifs (noter que les valeurs indiquées à gauche correspondent au déplacement en octets par rapport à l'emplacement de référence O du bloc de contrôle de processus PCB et qu'il ne faut pas les confondre avec les numéros de référence couramment utilisés pour identifier les pièces dans un plan de brevet). Les octets O à 16 , ce dernier exclus, contiennent 4 mots principaux de processus PMWO à PMW3 , chaque mot PMW comportant 4 octets. Le mot PMWO occupe les octets O à 3 et comporte 4 parties un octet fonction, un octet priorité, un octet état et un octet décor étendu DEXT. Les figures 10a à 10d donnent le détail du mot PMWO, la figure 10b donnant le détail de l'octet fonction 1001. Figure Ob, le premier bit 1005 est le bit mode comptage qui précise si les fonctions comptage de temps sont utilisées ou non pour le processus. Lorsque le bit mode comptage 1005 a la valeur 0, aucune fonction de comptage n'est exécutée pour le processus ; lorsque ce bit est à 1, la fonction comptage de temps est exécutée. Le bit mode scientifique 1006, lorsqu'il est à 0, indique qu'il n'y a pas stockage du registre scientifique de la machine et que la zone de stockage du registre scientifique occupant les octets 148 à 176 (figure 4) n'existe pas dans le bloc de contrôle de processus.Lorsque le bit mode scientifique 1006 a la valeur 1, cela signifie que le dispositif scientifique optionnel existe et qu'il est utilisé dans le processus ; la zone de stockage des registres scientifiques est alors utilisée pour mémoriser le contenu des registres scientifiques lorsque cela est nécessaire. Le bit mode code 1007 indique si un jeu de codes standard ou un jeu de codes compatible est utilise ou non par le processus ; un O binaire doit figurer dans cette position pour indiquer que c'est le jeu--de codes standard qui est utilisé, alors qu'un 1 binaire dans la troisième position binaire 1007 indiquera que c'est un jeu de codes compatible qui est utilise. Les autres bits de l'octet fonction s-ont mis à 0. Les détails de l'octet priorité 1002 sont représentés figure 10c. Les 4 premiers bits 1008 de l'octet priorité 1002 servent à définir le niveau de priorité du processus associé à ce bloc de contrôle de processus. Chaque processus reçoit l'un des seize niveaux de priorité qui permet d'ordonner les processus qui se trouvent en concurrence dans les cas suivants (a) sélection parmi les processus prêts du processus à exécuter (b) rangement des processus dans des files. Les priorités vont en diminuant de O à 15 et pour un niveau de priorité donné, on applique le principe premier entré, premier sorti. Les quatre bits suivants 1009 de l'octet priorite 1002 sont à zéro. La figure 10d donne le détail de l'octet état 1003. L'octet état permet de fournir des informations sur le processus associe au bloc de contrôle de processus 400. Le bit-A zone active 1010 reçoit la valeur binaire 1 lorsque le processus est mis en fonction. La zone S suspension 1011 reçoit la valeur binaire 1 lorsque le processus est suspendu. La zone SS sous-état 1012 est une zone de 2 bits qui définit les-sous-états suivants du processus (a) lorsqu'elle contient 00 le processus est inactif (b) lorsqu'elle contient 01 le processus attend dans la file des processus prêts (Q/PR/RDY) ; (c) lorsqu'elle contient 10 le processus attend un sémaphore dans une file de sémaphore (Q/PR/S) ; (d) lorsqu'elle contient la valeur 11 le processus est en train d'être exécuté par le processeur.La zone MOI (milieu d'opération) 1013 a la valeur 1 lorsqu'une interruption se produit et est prise en charge pendant l'exécution d'une instruction, c'est - à - dire avant l'achèvement du processus. Le bit mode décor étendu EXTD 1014 a la valeur 1 lorsque le processus est exécuté dans le mode décor étendu qui est un mode émulé de la machine. Les bits 1015 et 1016 ont la valeur 0. Le quatrième octet du mot PMWO contient le numéro de décor étendu et sert lorsque le système est en mode émulé. Le mot PMW1 est stocké dans les octets 4 - 7 du bloc de contrôle de processus. Le détail du mot PMW1 est représenté figure 10e. L'octet état 1016 est le premier octet du mot PMW1 et il contient le contenu du registre d'état. L'octet MP multitraitement 1018 n'a de signification que dans le contexte d'un multitraitement, sinon cette zone est à zéro. Le deuxieme et le quatrième octets du mot PMW1 sont respectivement les zones 1017 et 1019 qui doivent être à zéro pour le fonctionnement normal. Le mot PMW2 occupe les octets 8 - 11 du bloc de contrôle de processus et il est représenté plus en détail figure 10f. Sur cette figure on peut voir que la zone comprise entre le bit 4 et le bit 31 contient le nom local SEG, SRA 1021 du sémaphore auquel est relié le bloc PCB lorsque le processus est à l'état attente ou suspension. La zone classe et type d'exception 1023 contient la classe et le type de l'exception type interruption qui fait passer le processus à l'état suspension après une exception. La zone comprise entre le bit 4 et le bit 15 est sans ùtilité 1022 lorsqu'un processus se trouve dans un état différent de ceux mentionnés ci-dessus. Le mot Pl~W3 occupe les octets 12 à 15 du bloc PCB 400 et pointe vers une table de décor étendu. Comme on peut le voir figure 10g, qui donne le détail du mot PMW3 , la zone DETSZ 1024 définit le nombre d'éléments de la table et si cette zone est à zéro , le processus ne peut bénéficier d'aucun décor étendu. La zone DETA 1025 est l'adresse absolue de la table décor étendu en unités de 16 octets et n'a de signification que si la zone DETSZ n'est pas à zéro. La table décor étendu est constituée des éléments ième DETSZ. Chaque élément a une longueur d'un octet . Le DEXT - élément de la table définit la possibilité qu'a le processus de s'exécuter dans le mode décor étendu DEXT . Lorsque le DEXT ieme octet est à zéro, le numéro de décor étendu DEXT n'est pas autorisé alors que si le DEXT sème octet est à 1 le numéro de décor étendu DEXT est autorisé. Les valeurs de DEXT autres que O et 1 sont interdites. (Voir numéro DEXT 1004 figure iota). Les octets 16 à 23 du bloc PCB 400 contiennent deux mots d'espace adresse ASWO et ASW1 et chaque mot ASW contient un pointeur désignant un tableau de mots décrivant des tables de segments. Les mots ASWO et ASW1 ont le même format que celui indique figure 10h. La taille du tableau de mots décri vant des tables de segments est définie par le nombre de mots de tables de segments d'un tableau et elle est généralement de 6 pour ASWO et de 8 pour ASW1 . La zone STWZ 1026 indique la taille du tableau de mots décrivant des tables de segments. La zone STWA 1027 contient l'adresse absolue STWA du tableau en unités de 16 octets ; autrement dit , l'adresse absolue du tableau est égale à 16 fois STWA en octets. Les octets 24 à 27 du bloc PCB contiennent un mot d'exception EXW représenté plus en détail figure 10i . Ce mot d'exception contient un poin teur (SEG , SRA) 1029 renvoyant à une table de classes d'exceptions qui définit l'action à entreprendre à la suite d'une exception de processus conformément à sa classe qui est stockée dans le mot PMW2 (Voir figure 10f). La zone MBZ 1028 du mot d'exception EXW doit être à 0. Le mot de pile SKW qui occupe les octets 28 à 31 du bloc PCB contient la valeur du sommet du registre T de la pile du processus lorsque le proces sus n'est pas en train de s'exécuter et ce mot est représenté plus en détail figure 10j . Sur cette figure, les bits O et 1 définissent la zone TAG 1030. La zone TAG indique le type de descripteur par son contenu et doit être à 0 pour SKW. Les bits 2#et 3 du mot SKW contiennent la zone RING 1031 qui contient le numéro d'anneau associe à l'adresse segmentée de la pile et qui sert à la protection ; dans ce cas, ce numéro doit être 0. Les bits 4 à 31 contiennent le numéro de segment SEG et l'adresse relative. de segment SRA 1032 et cette zone identifie le segment décrit dans la table de segments et l'adresse relative du segment dans-le segment . Le mot de pile SKW est mis à jour chaque fois que le processus passe de l'état d'exécution à un autre état. Ce mot sert à restaurer le contenu du registre T chaque fois que le processus commence à s'exécuter. Dans ce dernier cas, la zone TAG 1030 et la zone RING 1031 subissent un contrôle ayant pour objet de déterminer si elles sont à O , sinon il se produit une exception "PCB incorrect" Les octets 32 à 35 du bloc PCB 400 contiennent le mot ICW contenu du comp teur d'instruction parfois appelé mot ICC. La figure 10k donne le détail du mot ICW dans lequel la zone TAG 1033 doit contenir la valeur binaire 00 (les valeurs différentes de O sont interdites dans le compteur d'instruction). La zone {anneau courant 1034 qui occupe les bits 2 et 3 définit le numéro d'an neau courant du processus à utiliser, compte tenu des priorités d'accès à la mémoire principale. Les bits 4 à 31 définissent le numéro de segment et l'adres se relative de segment (SEG, SRA) 1035 qui définissent l'adresse de l'instruc tion suivante à exécuter. La zone MBZ des octets 36 à 39 doit être à O. (On remarquera que la zone MBZ indique toujours une zone qui doit être à O). Le mot MBZ est testé chaque fois que l'accès au bloc PCB s'effectue à partir du nom J, P. Si cette zone n'est pas a O une exception "PCB incorrect" se produit. Les mots à la base de la pile SBW 0-2 occupent les octets 40-51 du bloc PCB 400. Ces mots ont le même format que celui représenté plus en détail figure 101. Ils sont utilisés pendant les opérations portant sur les piles et pendant leur utilisation leurs zones TAG 1036 et RING 1037 doivent être à zéro sinon une exception PCB incorrect se produit. Les bits 4 à 31 contiennent l'adresse segmentée (SEG, SRA) 1038 des premiers octets des segments de pile respectivement pour les anneaux O, 1 et 2. Les octets 52 à 83 du bloc PCB 400 correspondent à un espace réservé à une zone de stockage des registres de base (8 mots). Les octets 84 à 147 sont une zone de stockage qui est utilisée pour conserver les valeurs de tous les registres généraux (16 mots). Les octets 148 à 179 sont une zone de stockage qui est utilisée pour conserver le contenu des registres scientifiques (8 mots). Cinq mots doubles sont prévus dans le bloc PCB 400 au-dessus de l'adresse PCB O pour les comptages de temps lorsque le bit mode de comptage du mot PMW O est positionne. Ces mots sont implantes de l'adresse PCB -8 à l'adresse PCB -40. Chaque mot contient une durée ou une tranche de temps exprimée en microsecondes dans ses 52 premiers bits, les bits 52-63 étant remplis de zéros. Le mot double temps d'exécution partiel RTO -8 premiers octets au-dessus de O dans le bloc PCB - contient la tranche de temps effectivement consacrée par le processeur au processus jusqu'à ce qu'une-exception se produise. Ce mot RTO est mis à jour de la façon suivante : chaque fois que le processus sort de l'état d'exécution, la valeur du compteur de processus est rangée dans le mot RTO. Chaque fois que le processus passe à l'état d'exécution, la valeur du compteur de processus est chargée à partir du mot RTO. Le mot double RUA comptage d'exécution totale, qui occupe les octets 7 à 15 est un compteur qui indique le temps total consacré par le processeur à un processus dans l'état d'exécution. Le temps enregistré est le temps consacré effectivement par le processeur au processus. Le mot RUA est mis à jour de la fa çon suivante : chaque fois que le processus sort de l'état d'exécution, la valeur du compteur de processus PT est lue. La différence entre le contenu du mot RTO et du compteur PT est ajoutée au mot RUA. (La valeur du compteur PT est ensuite rangée dans le mot RTO). On remarquera que le temps pendant lequel le processus est suspendu n'entre pas dans le calcul. Les mots RTO et RUA sont mis à jour même si le bit mode de comptage est mis à 0.Toutefois, les mots CET, RTA et WTA (qui seront décrits plus loin) n'existent dans le bloc PCB que si le bit mode de comptage du mot PMW O se trouve à 1. Ils ne sont mis a jour que dans ce cas. Le mot WTA comptage de temps d'attente, qui occupe les octets 17 à 23, est un compteur temps réel qui indique le temps-réel total pendant lequel le processus s'est trouvé dans l'état attente. Ce mot WTA est mis à jour de la fa çon suivante : chaque fois que le processus abandonne 1 'état attente, l'horloge "heure du jour" (non représentée) est lue et la valeur de cette horloge moins la valeur du mot CET est ajoutée au mot WTA. Le mot RTA comptage temps prêt, qui occupe les octets 24 à 31, est un mot double qui contient un compteur en temps réel spécifiant le temps réel total pendant lequel un processus s'est trouve à l'état prêt. Ce mot RTA est mis à jour de la façon suivante : chaque fois que le processus abandonne l'état prêt, la valeur de l'horloge heure du jour TOD est lue et le contenu de l'horloge TOD moins le contenu du mot CET est ajouté au mot RTA. Le mot double CET heure début courante, qui occupe les octets 32 à 39, contient l'heure du jour à laquelle le processus est passé dans l'un des états suivants : prêt, attente, exécution et suspension. STRUCTURES DE BASE DU SYSTEME La base du système 600 est représentée figure 6. La base du système qui réside en mémoire principale absolue est créée par firmware et son accès s'obtient par l'intermédiaire du registre d'adresse BAR qui peut faire l'objet d'une lecture et non d'une écriture. Le registre BAR se trouve en-dessous d'une zone de la mémoire principale réservée au hardware et il sépare cette zone de la base du système 600. Comme on peut le voir figure 6, la base du système 600 contient un certain nombre de caractéristiques du système dont notamment un numéro d'etape de travail et un numéro de groupe de processus (J, P) intéressant le processus en cours d'exécution. A partir du nom logique du processus J, P on obtient l'adresse absolue du bloc PCB correspondant.La taille et l'adresse de la table J sont définis par le contenu du mot de table J (JTW). Ce mot se trouve à l'adresse définie par le registre BAR. Le format du mot JTW est représenté figure lIa. La taille (JTSZ) 1101 ou la table J 1204 de la figure 12 définit le nombre d'éléments de la table J 1204 qui peut atteindre 255. JTSZ 1101 est un entier positif de 8 bits ; une exception "dépassement table J" se produit si J est supérieur à JTSZ. L'adresse absolue de la table J 1204 s'obtient en multipliant le pointeur de table J 1102 par 16. La table J 1204 contient les éléments de la table J dont le format est représenté plus en détail figure Ilb. Chaque élément de table J définit l'adresse absolue d'une table P 1025 qui s'obtient en multipliant le pointeur de table P 1104 par 16. La taille (PTSZ) 1103 d'une table P définit le nombre d'éléments de la table P. PTSZ est un entier positif de 8 bits qui peut varier entre O et 255 pour indiquer le nombre d'éléments de la table P. Une exception "dépassement de la table P" se produit si P est su périeur à PTSZ. Chaque élément de la P 1025 définit l'adresse absolue d'un bloc PCB 1206 en multipliant le pointeur PCB 1107 par 16. Un indicateur de présence P 1105 indique l'absence d'un bloc PCB 1206 lorsqu'il a la valeur binaire 0 et la présence de ce bloc lorsqu'il a la valeur 1. (Lorsque l'indicateur de pré- sence P 1105 a la valeur 0 une exception "élément de table P vide se produit). Les bits 1 à 7 de l'indicateur de table P (figure llc) doivent être à 0, 1106 sinon il se produira une exception "élément de table P"incorrect. A l'adresse BAR + 4 de la base du système 600 se trouve l'octet de format d'un mot de table G (GTW) dont le détail est représenté figure îîd. La taille et l'adresse d'une table de segments G, 1212 figure 12, sont définis par le contenu du mot de table G (GTW). La taille (GTSZ) 1108 de la table G 1212 définit le nombre d'éléments de la table G qui peut atteindre au maximum 255. GTSZ est un entier positif de 8 bits ; une exception "dépassement de la table G" se produit si G est supérieur à GTSZ. L'adresse absolue de la table G 1212 s'obtient en multipliant par 16 le pointeur de table G 1109. Le format de l'élément de table de segments G a une longueur de 2 mots (8 octets) et s'appelle descripteur de segment G. Le format du descripteur de segment G est représenté en détail figures île et 11f.Tous les descripteurs de segments G sont directs et en conséquence le bit indirect 1, 1111 doit être à O sinon une exception "descripteur de segment incorrect" se produira. L'indicateur de présence P 1110 est une zone de 1 bit qui, lorsqu'elle contient la valeur binaire 1, indique qu'un segment est défini en mémoire principale pour le numéro de segment auquel correspond ce descripteur, alors que si elle contient la valeur 0, aucun segment n'est défini et la référence au descripteur de segment provoquera une exception "segment absent". Le bit de disponibilité A 1112 est une zone de 1 bit qui indique si le segment est disponible ou non ; il n'est contrôle que si ce segment est défini (autrement dit P = 1) sinon il est ignoré. La zone U "indicateur = utilise" 1113 indique s'il y a eu accès ou non à ce segment.Si le bit U a la valeur binaire O cela signifie que ce segment n'a pas été utilisé, alors que si la zone U a la valeur 1 cela signifie que le segment a été utilisé. La zone W. "indicateur = écrit" 1114 indique si le segment a été écrit. Si W a la valeur binaire 0, c'est que le segment n'a pas été écrit alors si W a la valeur binaire 1 cela signifie que le segment a été écrit. L'indicateur de conditionnement GS 1115 d'un descripteur de segment G doit avoir la valeur binaire 01 sinon une exception "descripteur de segment incorrect" se produira. La raison en est qu'un segment G contient toujours des sémaphores (bien que l'inverse ne soit pas vrai, autrement dit, il n'est pas obligatoire que tous les sémaphores se trouvent dans un segment G) et que les instructions sur les sémaphores exigent que le code GS ait une valeur binaire 01. L'adresse absolue de la base d'un segment 1214 est définie dans le descripteur de segment G de la figure 11e par la zone de base de 24 bits 1116 ; on multiplie le contenu de cette zone par 16 pour obtenir l'adresse absolue. Le deuxième mot du descripteur de segment G, figure 11f, occupe les positions binaires 32 à 63 dans la table G 1212. La zone RSU 1117, bits 32 à 39 est réservée à l'utilisation du software et elle est généralement ignorée lorsqu'elle est utilisee comme descripteur de segment G comme dans le cas présent.La zone MBZ 1118 doit être à O sinon une exception segment incorrect" se produit. Etant donné que la zone MBZ 1118 occupe les bits 40 à 51, elle fixe la zone SIZN 1119 qui est la zone relative à un petit segment SIZN ; il en résulte que tous les segments G doivent être de petits segments. Le segment SIZN 1119 est un entier positif de 12 bits définissant le nombre d'octets du segment et la taille du segment est consi dégrée comme un multiple de 16. La taille d'un segment G 1214 ne peut donc dépasser 216 octets (petits segments). Comme on peut le voir dans la base du système 600, figure 6, 9 mots "cellule exception système" sont implantes entre BAR + 8 et BAR + 44. Le format des mots "cellule exception système "EXC est représenté figure 119. Etant donné que des sémaphores sont utilisés pour transmettre des messages à des processus particuliers lorsqu'une exception système se produit, les pointeurs désignant ces sémaphores figurent dans 9 emplacements de mémoire -- un par d'exception système -- qui portent le nom de "cellule d'exception système. La zone MBZ 1120 doit avoir la valeur 0 sinon un incident système se produira. Chaque cellule d'exception (EXC) contient le nom système G, D respectivement en 1121 et 1122. La cellule d'exception canal implantée en BAR + 44 de la base système 600 a un format qui est similaire à celui de la cellule d'exception système exposée precedemment et elle contient le nom système GD d'un sémaphore qui sert à transmettre des messages à des processus particuliers lorsqu'une exception canal se produit. Un mot file interne processeur IPQW est implanté à partir de BAR +48 et son format est détaillé figure 11h. Le mot IPQW désigne la tête d'une file de processus prêts (Q/PR/RDY) ainsi qu'on peut le voir figure 9, numéros 905 et 805. La file de processus à l'état prêt. (Q/PR/RDY) relie tous les processus qui sont à l'état prêt. Elle est désignée par la zone tête-de file 1124 (figure 11h) du mot IPQW qui pointe vers la file des processus à l'état prêt. La zone 1124 contient un entier positif de 16 bits qui représente le déplacement entre la base du segment G numéro 0 appelé segment GO et le premier octet de la file Q/PR/RDY. Si cette zone est à O, la file des processus à l'état prêt est considérée comme vide. La zone MBZ 1123 doit être à zéro sinon un incident système se produira. Dans la position BAR + 52 de la base du système 600 est représentée une zone de stockage réservée aux comptages de relance courant et initial dont le format est détaillé figure lli. La zone état non fonctionnel NFS 1125 est une zone de stockage qui n'est pas utilisée par la base du système. La zone comptage relance initial 1126 et la zone comptage relance courant 1127 servent à contrôler le nombre de tentatives d'exécution automatiques d'une instruction avant que se produise une erreur machine qui donnera lieu à la condition d'exception "incident machine". Ces deux zones sont chargees à la même valeur par une opéra- tion re-initialisation comptage relance (non représentée ici). Le mot de processus courant (RPW) représenté figure llj est implanté dans la position BAR + 56 de la base du système 600 et sert à stocker le nom du processeur courant ainsi que sa priorité dans le cas d'une architecture monoprocesseur. Les zones NFS 1128 et 1131 sont des zones de stockage et peuvent être utilisées selon les besoins pour une fonction quelconque mais en général elles ne sont pas utilisées par la base système. Le niveau de priorité d'un processus courant est stocké dans la zone PRI 1129. Un bit déroutement asynchrone est stocké dans la zone AB 1130, alors qu'un anneau déroutement asynchrone est stocké dans la zone ARN 1132. Le nom logique J,P du processus courant dans le cas d'une architecture monoprocesseur est rangé dans la zone J,P 1133. Un mot pointeur de table d'absolutisation représenté figure 11k est implanté à BAR + 60 dans la base du système 600 et il sert, lors du chargement initial du système à initialiser les adresses absolues du programme de chargement initial du système (ISL) en ajoutant le contenu du registre BAR à toutes les adresses absolues du programme ISL. Le pointeur de table d'absolutisation 1135 définit la position de la table d'absolutisation (non représentée). La taille de la table d'absolutisation est donnée par la zone ATSZ 1134. Le mot numéro de série de processeur central représenté figure 111 est un mot de 4 octets implanté en BAR + 64 qui contient le numéro de série du processeur central dans la zone numéro de série du processeur central 1136. Un mot limite supérieure de la mémoire principale représenté figure 11m et implanté en BAR + 78 indique la limite supérieure de la mémoire principale 1139 en fournissant l'adresse absolue du dernier mot disponible en mémoire principale. En BAR + 72 est implante un mot, représenté figure 11h, qui indique le numéro de canal (CN) 1140 du dispositif utilise pour le chargement initial du système ainsi que le numéro de canal (CN) 1141 du dispositif hardware. Le type et le sous-type d'un dispositif utilise dans l'ordinateur sont indiqués par un mot type de dispositif hardware (figure lolo) zones 1143, et 1144, la zone RSU 1142 étant réservée au software. Ce mot est implante dans la base du système en BAR + 76. Un mot similaire ayant un type de format similaire et représenté figure Ilp, contient le type et le sous-type du dispositif utilisé lors du chargement initial du système. Ce mot est implanté en BAR + 80. Lorsqu'on appuie sur la touche RELANCE d'un ordinateur, on simule l'execution d'une opération V sur un sémaphore et l'on passe à l'état prêt. Un pointeur orienté vers ce sémaphore et implanté en BAR + 84 de la base du système 600 est appelé mot de cellule de relance et son format est donnné figure llq. Ce format est similaire à celui de la cellule d'exception système décrite plus haut et contient le nom système G, D d'un sémaphore dans la zone G 1149 et la zone D 1150. La zone MBZ 1148 doit être à 0. Lorsque l'ordinateur comporte plus d'un processeur, un mot est prévu en BAR + 78 dans la base du système 600 pour l'extension multiprocesseur. Le détail de ce mot est représenté figure loir. Exemples d'utilisation de la base du système et du bloc PCB La figure 12 illustre la façon dont on peut utiliser la base du système conjointement avec le bloc de contrôle de processus pour réaliser l'adressage et l'accès d'un segment utilisateur, d'un segment système ou d'un segment de file de processus à l'état prêt Q/PR/RDY. La mémoire principale 1200 comporte une zone 1203 réservée à l'usage du hardware. Un registre d'adresse 1202 sépare la base du système 1215 de la partie mémoire 1203 réservée au hardware. Le registre BAR 1202 permet l'adressage des éléments de la base du système 1215 en ajoutant le contenu du registre au déplacement par tranches de 4 octets de l'élément recherché dans la base du système. Cette adresse désigne alors le premier octet de l'élément recherché dans la base du système.Figure 12, le registre BAR 1202 pointe vers le mot de table J (JTW). Le mot de table J, comme on l'a vu précédemment, possède un pointeur dirigé vers la table J 1204. Par indexation sur le numéro J représenté figure 5 on obtient un élément de table J 1216. L'élément de table J comporte un pointeur de table P qui renvoie sur l'adresse absolue de la table P 1205. Par indexation sur le numéro P (voir figure 5) de la table P 1205 on obtient l'adresse absolue du bloc de contrôle de processus 1206. Comme on l'a déjà vu, le bloc de contrôle de processus PCB 1206 comporte 2 mots d'espace adresse ASW O et ASW 1. Les bits de poids fort de la zone numéro de table de segments STN du registre-de base 1201 permettent d'accéder à l'un de ces deux mots d'espace adresse, le mot ASW 1 dans le cas présent, qui possède un pointeur de tableau de motsdécrivant des tables de segments dirigé sur le tableau STWA 1208. Avec le numéro de table de segments STN du registre de base 1201, on accède à l'un des 8 mots de tables de segments en STWA 1208 qui pointe vers l'une des 8 tables de segments 1210. L'élément de table de segment STE du registre de base 1201 est alors utilise pour introduire l'un des 256 éléments dans la table de segments 1210 ou se trouve un descripteur de segments.Le descripteur de segment est alors utilise pour accéder à un segment utilisateur 1211. (Pour plus de détails se reporter à la demande N07317765 dépôt le 30. 11.73 pour "Développemeht dladressesegmentéeltdonx l'auteur est le même que celui de la présente invention et qui se trouve de ce fait incorporée par suite de sa mention dans le présent document). Pour pouvoir accéder a un segment système 1214 qui est utilisé pour stocker les sémaphores, on a recours à un mot de table G (GTW) dans la base du système 1215. L'adresse du mot de la table G s'obtient en ajoutant le déplacement du mot de la table G dans la base du système au registre BAR 1202. (Voir figure 6). Le mot de table G (GTW) comprend un pointeur de table G qui désigne une table G 1212. En utilisant un numéro G à la disposition du système et par indexation dans la table G, on obtient un descripteur de segments G qui sert à l'adressage d'un segment systeme 1214. De même la base du système 1215 permet d'accéder à la file des processus à l'état prêt (Q/PR/RDY) 1213 en accédant à un mot IPQW qui renvoie au segment Q/PR/RDY 1213. Unité de contrôle Les figures 13a-13c donnent les détails de l'unité de contrôle. Bien qu'elle soit représentée à part, l'unité de contrôle est en fait incorporée au processeur central. Elle comprend une unité de commande de mémoire morte 1301, un adaptateur de contrôle de mémoire d'interface CIA 1302 et les sous unités annexes, le chargeur de mémoire morte CSL 1303 et l'unité de chargement et de contrôle CLU 1304. L'unité de commande de mémoire morte CSU 1301 reçoit des micro-instructions provenant du chargeur de mémoire morte CSL 1303 par l'intermédiaire de l'unité de chargement et de contrôle 1304 et de l'adaptateur de contrôle de la mémoire d'interface CIA 1302. Normalement, les micro-programmes sont chargés de l'ex térieur pendant l'initialisation du système et constituent dès lors une fonction de contrôle permanente de la machine. Toutefois, l'unité de commande de mémoire morte CSU 1301 peut être rechargée et initialisée de façon à offrir plusieurs modes d'exploitation pour le processeur central CPU 1306. Sous contrôle de l'unité de commande de mémoire morte 1301, le processeur central peut utiliser les modes de fonctionnement suivants : (a) mode natif (b) mode émulé (c) mode natif et mode émulé simultanés (d) mode diagnostic. Ceci est possible car les micro-instructions résidant dans l'unité de commande CSU sont à l'origine de micro-opérations qui servent à contrôler le fonctionnement de toutes les autres unités fonctionnelles du processeur central telles que : l'unité d'émulation 1316, l'unité arithmétique et logique 1317, l'unité de pointage d'instruction 1318, l'unité de contrôle d'adresse 1319 et l'unité de gestion de données 1321. Figurent également dans le processeur central 1306 les registres décrits précédemment : registres généraux 1307, registres de base 1308, registres scientifiques 1309, régistre T 1310, registres d'état 1311, compteur d'instruction 1312 et registre de masque de contrôle hardware 1313. L'unité de contrôle de commande de mémoire morte 1301 est une mémoire morte programmable (PROM) à circuits intégrés bipolaires de 9k associée à une memoire vive à accès direct (RAM). Elle a un cycle de lecture de 150 nanosecondes et un cycle d'écriture de 450 nanosecondes. Chaque emplacement de mémoire morte contient un mot micro-instruction de 84 bits (qui sera décrit plus en détail plus loin) et chaque mot micro-instruction commande un cycle du processeur central. A la lecture de chaque emplacement de la mémoire morte dans l'unité de commande de mémoire morte CSU 1301, le contenu est décodé par des décodeurs de micro-opérations qui envoient des signaux de commande de micro-opérations dont chacun provoque l'exécution d'une opération particulière dans le processeur central (sur laquelle nous reviendrons plus loin). En procédant à un regroupement d'emplacements dans chaque mot micro-instruction, (qui sera décrit en détail plus loin) on obtient des séquences capables d'exécuter une opération ou une instruction spécifique dans le processeur central. Lorsque chaque instruction est lancée par le processeur central certains bits du code opération servent à déterminer la séquence de départ de la mémoire morte. Le test de certaines bascules (non représentées) qui sont po sitionnées ou restaurées par des fonctions de décodage d'instruction permet le branchement de la mémoire morte sur une séquence particulière si nécessaire. L'adaptateur de contrôle de la mémoire d'interface CIA 1302 communique avec l'unité de commande de mémoire morte 1301, l'unité de gestion de données DMU 1321, l'unité de contrôle d'adresse ACU 1319 et l'unité arithmétique et logique ALU 1317 pour diriger le fonctionnement de la mémoire morte 1333 figure 13b. L'adaptateur CIA 1302 comprend la logique nécessaire à la modification d'adresse en mémoire morte, aux tests, aux contrôles d'erreurs et à la génération d'adresse hardware. La génération d'adresse hardware sert généralement à developper l'adresse début de séquences d'erreurs ou à la séquence d'initialisation. L'unité de gestion de données DMU 1321 assure l'interface entre le processeur central 1306 et la mémoire principale et/ou la mémoire tampon représentées figure 1. C'est à l'unité de gestion de données qu'il incombe de détecter 1 'u- nité qui contient les informations dont les autres unités ont besoin et d'en autoriser l'introduction dans les registres du processeur central au moment ap proprié. L'unité de gestion de données DMU assure également le masquage pendant les opérations d'écriture partielle. L'unité de pointage d'instruction IFU 1318 est reliée aux unités DMU 1321, ACU 1319, ALU 1317 et CSU 1301 et son rôle est d'alimenter le processeur central en instructions. Avant l'achèvement de l'instruction en cours, l'unité de pointage d'instruction contient dans ses registres l'instruction suivante disponible. Pour cela, l'unité de pointage d'instruction IFU 1318 contient un registre d'instruction de 12 octets (non représenté) qui contient normalement plus d'une instruction. En outre, l'unité IFU, sous le contrôle de l'unité CSU, demande des informations (instructions) à la mémoire principale avant que l'instruction ne soit effectivement nécessaire, ce qui a pour effet de maintenir constamment à jour son registre d'instruction de 12 octets. Les instructions se trouvent ainsi pré-extraites au moyen de cycles de mémoire normalement inutilisés. L'unité de pointage d'instruction décode également chaque instruction et en indique la longueur et le format aux autres unités. L'unité de contrôle d'adresse ACU 1319 communique avec les unités IFU, ALU, DMU et CSU par l'intermédiaire de l'adaptateur CIA. L'unité ACU 1319 a la charge de tous les développements d'adresses dans le processeur central. Toutes les opérations de l'unité ACU y compris les transferts vers l'extérieur, de l'exté- rieur et à l'intérieur de l'unité sont dirigés par la micro-opération et la logique CSU dans l'unité. Le cycle normal de l'unité ACU dépend des types d'adresses figurant dans l'instruction et non pas du type de l'instruction. Selon les types d'-adresses l'unité ACU peut exécuter différentes opérations pour chaque adresse d'une instruction. L'unité ACU contient également une mémoire associative 1319a qui concerne l'adresse de base des 8 segments de mémoire utilisés le plus récemment ainsi que leurs numéros de segments.A chaque demande de mémoire le numéro de segment est comparé au contenu de la mémoire associative pour déterminer si l'adresse de base du segment a déjà été développée et stockée. Si l'adresse de base est contenue dans la mémoire associative 1319a cette adresse est utilisée dans le développement de l'adresse absolue et l'on gagne ainsi un temps considérable. Si l'adresse de base n'est pas contenue dans la mémoire associative 1319a, elle est développée en accédant aux tables de la mémoire principale. Toutefois, après développement de l'adresse de base du segment,celle-ci est stockée dans la mémoire associative avec son numéro de segment en vue d'une utilisation ultérieure. L'unité arithmétique et logique 1317 est reliée aux unités ACU, IFU, DMU et CSU. Son rôle principal est d'exécuter les opérations arithmétiques et les manipulations de données demandées par le processeur central. Les opérations de l'unité arithmétique et logique dépendent. totalement des signaux de commande de micro-opérations issus de l'unité de commande de mémoire morte CSU 1301. Aux unités ALU 1317 et CSU 1301 est associée une mémoire de travail LSU 1315 (parfoir appelée mémoire locale). Elle est essentiellement constituée d'une mémoire à semiconducteurs de 256 positions (32 bits par position) et de la logique de sélection et de lecture/écriture correspondante. La mémoire de travail 1315 sert au stockage d'informations de contrôle et de maintenabilité dans le processeur central. La mémoire de travail 1315 contient en outre des positions de travail qui servent essentiellement au stockage provisoire d'opérandes et du résultat partiel pendant la manipulation des données. A l'unité ALU 1317 est également associée une mémoire auxiliaire 1317a constituée de 64 bascules qui servent au stockage de divers états de l'ordinaoteur. Le processeur central comporte également une unité de synchronisation 1320 qui représente en fait deux systèmes de synchronisation en un seul: le premier système de synchronisation assure la synchronisation de l'adaptateur CIA 1302 et le second système de synchronisation génère les impulsions de synchronisation pour les opérations de l'unité fonctionnelle à l'intérieur du processeur central. La figure 13c donne le format du mot de mémoire morte 1325. Le mot de memoire morte a une longueur de 84 bits et est divisé en six zones principales a. zone type de séquence 1326 (3 bits) b. branchement et/ou micro-opérations 1327 (23 bits) c. génération et désignation des constantes 1328 (14 bits) d. envoi données vers bus 1330 (32 bits) e. micro-opérations 1330 (32 bits) f. contrôle 1131 (4 bits) La zone E de 3 bits du mot de mémoire morte 1325 sert de zone de contrôle de séquence. Il existe 7 types de séquences différents et un type réservé au présent ordinateur. Comme on peut le voir dans le bloc 1335 de la figure 13b, lorsque la zone E a la valeur binaire 0,1 ou 2 la zone branchement A,B,C,D et L de la micro-instruction 1325 sert à générer l'adresse suivante.Les six premiers bits du registre KS 1337 sont utilisés conjointement avec la zone B, le résultat du test C, le résultat du test D et la zone L pour obtenir la nouvelle adresse de la micro-instruction suivante qui sera alors rangée dans le registre d'adresse KS 1337. Lorsque la zone E a la valeur binaire 4 (voir bloc 1335) l'adresse suivante est sélectionnée dans le registre retour d'interruption KA 1339. L'adresse rangée dans le registre KA est celle générée par la logique de génération d'adresse suivante lorsque l'interruption hardware se produit. Lorsque la zone E a la valeur binaire 5, on utilise un branchement pour provoquer un sous-retour depuis un sous micro-programme. Dans ce cas le contenu du registre de retour KR 1346 est#utilisé comme adresse suivante de la mémoire morte. Le registre de retour 1346 est charge en émettant une commande de mémoire morte qui chargera dans le registre KR 1346 l'adresse de mémoire morte actuelle se trouvant dans le registre KS 1337 plus la valeur 1 fournie par l'incrémenteur 1338. La possibilité d'utilisation d'un sous-programme à un niveau d'emboîtage est fournie par le registre branchement retour KT 1347; Chaque fois que le registre KR 1346 est chargé,l'ancien contenu de ce registre est transféré dans le registre KT 1347 à chaque appel de retour de micro-programme; le contenu du registre KT sera transferé dans le registre KR. La possibilité d'utilisation d'un sous-programme à 3 niveaux d'emboîtage est fournie par le registre KU 1348 ; et la possibilité d'utilisation au quatrième niveau d'emboîtage est autorisée par le registre branchement retour KV 1349.Lorsque la zone E du mot de mémoire morte a la valeur binaire 6,le mot suivant de mémoire morte qui est adressé est égal à l'adresse actuelle se trouvant dans le registre 1337 plus la valeur 1 fournie par l'incrémenteur 1338. Lorsque la zone E a la valeur binaire 7,l'unité 1301 passe en mode diagnostic et l'adresse suivante sera l'adresse actuelle + 1. En plus du contrôle de branchement sur l'adresse suivante de la mémoire morte décrit ci-dessus et représenté dans le bloc 1335, il existe un contrôle de séquence génère par hardware -représenté dans le bloc 1336 de la figure 13b. (Notes : les blocs 1335 et 1336 sont en réalité des registres hardware dessinés pour mettre en évidence les différentes formes que peuvent prendre les mots micro-instructions). Les branchements générés par hardware sont des conditions prioritaires (telles qu'erreurs, initialisation, balayage de la mémoire morte, etc.) qui suppriment la zone E et forcent une adresse fixe dans le registre d'adresse de mémoire morte KS 1337. Le branchement s'obtient en imposant un niveau haut à une ligne d'interruption (non représentée) pendant une période d'horloge et en stockant l'adresse qui aurait été générée sous le contrôle de la zone E dans le registre de retour d'interruption KA 1339. Une adresse générée par hardware sera rangée dans le registre d'adresse de la mémoire morte.Certaines interruptions générées par hardware/firmware sont prioritaires lorsque la bascule de bloc d'interruption (non représentée) qui interdit l'exécution d'interruptions supplémentaires dans leur catégorie avant la condition d'interruption, a été satisfaite. Une micro-opération firmware est prévue pour contrôler la restauration de la bascule de bloc d'interruption pour les séquences qui sont sous le contrôle du firmware. Les séquences qui sont sous le contrôle du hardware génèrent automatiquement la restauration de la bascule de bloc à l'issue de la séquence. Les conditions suivantes énumérées par priorité existent dans cette catégorie : (a) chargement de la mémoire morte (b) balayage de la mémoire morte (c) erreur hardware (d) erreur software.Les autres conditions hardware ne positionnent pas la bascule de bloc d'interruption mais elles ont néanmoins un effet immédiat dès qu'elles apparaissent. Les conditions suivantes, énumérées dans l'ordre de priorité existent dans cette catégorie (a) initialisation (b) soft clear (c) entrée panneau de maintenance (d) entrée panneau de maintenance (e) sortie hardware Un signal d'initialisation provoque le branchement de l'unité CSU 1301 sur l'adresse binaire 0, l'effacement des erreurs effaçables par hardware et I'exé- cution d'un chargement de la mémoire morte suivie d'un balayage de la mémoire morte sous le contrôle deu hardware. L'initialisation du système sera également exécutée. Un signal soft clear provoque le branchement de l'unité CSU 1301 sur l'adresse binaire 0, l'effacement des erreurs effaçables par hardware et la restauration de la bascule de bloc d'interruption. Un signal entrée panneau de maintenance provoque le branchement de l'unité CSU sur l'adresse pré-êtab0ie par les interrupteurs d'adresse CSU sur le panneau de maintenance (non représenté). Un signal entrée canal de maintenance provoque le branchement de l'unité CSU sur l'adresse générée par l'intermédiaire du canal de maintenance (non représenté). L'adresse chargée provient du bus de maintenance QMB 1344 qui fait partie du canal de maintenance et est cadrée à droite. Un signal de sortie hardware provoque le branchement de l'unité CSU sur l'adresse binaire 2. Cette sequence est utilisée aux fins de maintenance. A l'issue de la séquence un retour est provoqué en émettant un branchement zone E, la zone E ayant la valeur binaire 4. Un signal de chargement de mémoire morte provoque le branchement de l'unité CSU sur l'adresse binaire 0. Il met également hors fonction la bascule de cycle de lecture de l'unité CSU (non représentée), l'horloge système 1320 et. met l'unité CSU dans l'état de chargement. Dans l'état chargement, l'unité CSU peut être chargée par le chargeur de mémoire morte CSL 1303, l'unité IOC 1305, la mémoire principale 102 ou le panneau de maintenance 1355. Lorsque le chargement s'effectue à partir du chargeur CSL, un balayage automatique est déclenché à l'issue du chargement. Lorsque le chargement s'effectue à partir d'une quelconque autre source, un balayage peut être commandé soit en générant un signal de mi cro-opérati on soit en positionnant l'interrupteur balayage sur le panneau de maintenance. Un signal de balayge de mémoire morte provoque le branchement de l'unité CSU sur une adresse binaire 0. Un balayage de mémoire morte est place sous le contrôle du hardware pendant la durée de la séquence.Pendant le balayage, l'horloge système 1320 est hors fonction et il en résulte qu'aucune commande ni aucun test n'est exécuté. A l'issue de la séquence balayage, le hardware transfere le contenu du registre retour d'interruption KA dans le registre d'adresse KS, l'horloge système est mise en fonction et le firmware reprend le contrôle. Un signal d'erreur hardware provoque le branchement de l'unité CSU sur l'adresse binaire 4. Dans le mode de traitement normal, une erreur hardware détectee dans une quelconque unité fonctionnelle du processeur central mettra en fonction une ligne d'erreur hardware (non représenté). La séquence de mémoire morte générée testera les conditions du système pour déterminer l'action à entreprendre. En mode diagnostic, les conditions d'erreurs qui peuvent être détectées par hardware sont accessibles aux microdiagnostics. Ces microdiagnostics contrôlent l'action à entreprendre. Un signal d'erreur provoque le branchement de la mémoire morte sur l'adresse binaire 1. Cette adresse est le début d'une séquence de signalisation d'erreur software qui se trouve sous le contrôle d'un micro-programme. Comme on peut le voir figure 13c, la zone E 1326 est une zone de 3 bits pour le code de branchement décrit précédemment. La zone branchement et/ou micro-opération 1327 comprend les sous-zones A, B, C, D et L également représentees dans le bloc 1335 figure 13b, la zone A contenant les 6 bits supérieurs de l'adresse suivante, la zone B. les 4 bits milieu de l'adresse suivante de la zone masque de branchement à 64 voies, la zone C une zone de test de 6 bits pour l'un des 64 tests,-la zone D une autre zone de test de 6 bits pour l'un des 64 tests et la zone L le bit le moins significatif. La zone K 1328 est une zone de 14 bits dont 6 représentent la zone constante, 4 la zone constante ou orientation et 4 la zone d'orientation d'une constante.La zone "données vers bus" 1329 comprend la zone QA dont les 4 bits contrôlent les informations destinées à la partie QA du bus QMB 1344 et la zone QB 4 bits contrôlant les informations destinées à la partie QB du bus QMB 1344. La zone F 1330 est une zone de 32 bits codée pour génerer des sous-commandes de micro-opérations. La zoneP 1331 comprend 4 bits réservés au contrôle. En cours de fonctionnement les mots micro-instructions sont stockés dans le tableau de mémoire morte 1333. Pendant un cycle de fonctionnement l'accès au tableau de mémoire morte s'effectue en fonction du contenu du registre d'adresse KS 1337. Ceci provoque le transfert dans le groupe de bascules de lecture 1357 du contenu de l'emplacement spécifié par l'adresse. Des parties des mots des bascules de lecture sont ventilées ou transférées dans les registres de stockage qui se trouvent dans chacune des unités fonctionnelles du processeur central. Chaque unité fonctionnelle comprend des circuits de décodage qui génèrent les sous-commandes nécessaires spécifiées par le mot de mémoire morte sous le contrôle de la source de synchronisation du système. En général, le décodage est réalisé dans chaque unité fonctionnelle à l'intérieur du processeur central et non pas en un point central afin de réduire le temps de décodage ainsi que le nombre des câbles qui seraient normalement nécessaires pour transmettre les signaux de commande si le décodage était regroupe en un point central. En outre, le décodage est exécuté à l'intérieur de chaque unité pour éviter les problèmes de synchronisation qu'entraîneraient les différences entre les longueurs des câbles. En outre, en décodant les sous-commandes à l'in térieur de chaque unité, les signaux qui sont caractéristiques de certaines conditions existant à l'intérieur de l'unité fonctionnelle et nécessaires à la génération de certains signaux de sous-commandes n'ont pas à être renvoyés à l'adaptateur CIA 1302.Un décodeur type 1359, représenté figure 13b, reçoit le contenu de diverses zones de mots micro-instructions et génère des signaux de micro-opérations a, b, c, d q, r. Un décodeur type de micro-opération 1359 reçoit les commandes d'un mot micro-instruction. La zone provenant du mot mncro- instruction est décodée et active une des lignes s, t, u y, z. Une ffatrice est constituée en couplant l'impédance de lignes de contrôle pré-détensinées aux lignes s, z aux points cor, , r....Y,. Lors du décodage d'une zone issue d'une micro-instruction l'une des lignes s-z est activée.Etant donné que les points noirs représentés dans la matrice par les lettres grecques a a o représentent le couplage d'impédance entre les deux ensembles de lignes, tout signal électrique se propageant sur un fil horizontal sera couplé pour se propager sur le fil vertical a-r ou un couplage d'impédance (point noir) est indiqué. Chaque ligne verticale a-r peut alors être couplée pour constituer une entrée dans chacune des portes ET 1360-1365. D'autres signaux d'entrez peuvent également être couplés aux portes ET 1360-1365 y compris un signal de synchro- nisation ts provenant de l'unité de synchronisation centrale.En conséquence, lorsque chaque signal de synchronisation t5 est appliqué, les portes donttws les autres signaux d'entrée sont appliques seront validées et fourniront des signaux de micro-instructions à des unités fonctionnelles prédéteniinées du processeur central. C'est ainsi que si une commande 1341 provenant de la bascule de lecture 1357 est décodée et qu'une ligne horizontale soit active, les lignes de contrôle verticales a, b, c et q seront actives et les portes 1360, 1361, 1362 et 1364 seront validées puisque le signal de synchronisation t5 est applique à ces circuits séquentiellement.Il en résulte que la combinaison selon laquelle les lignes de contrôle verticales sont couplées à la ligne de contrôle horizontale en différents points représentés par les lettres grecques a à X représente une matrice de commutation permanente permettant de fournir des signaux de micro-operations au processeur central pour contrôler les unités fonctionnelles du processeur central au moyen de micro-instructions fournies par le tableau de mémoire morte 1333. Ainsi peut-on incorporer dans la machine faisant l'objet de la présente invention un firmware permanent doté d'une fonction modifiable en spécifiant simplement la séquence de micro-opérations nécessaires. Normalement les données sont ecrites dans le tableau de la mémoire morte 1333 par l'intermédiaire du registre d'écriture de données du processeur central qui porte également le nom de registre local YO 1343. Une bascule de contrôle (non représentée) précise si c'est la moitié-supérieure ou la moitié inférieure du tableau qui doit être écrite. Les données provenant de l'unité de chargement et de contrôle CLU 1304 parviennent aux unités CIA/CSU par l'intermédiaire du bus de maintenance QMB 1344 et sont mises en tampon par le registre de stockage local YO 1343 avant d'être introduites dans le tableau de mémoire morte 1333. Le registre de stockage local 1343 est utilisé à la fois comme registre de lecture et d'écriture. Le multiplexeur KQM 1345 peut être contrôlé soit par le panneau de maintenance 1355 soit par des micro-diagnostics et il constitue une voie de sortie pour les registres qui lui sont reliés. Un registre de comparaison KP 1350 du type non-fonctionnel sert principalement à la maintenance et il est utilisé conjointement avec la logique de comparaison 1352 et la logique de décodage 1351. COMMUTATEUR DE COMMANDE DE PROCESSUS Le commutateur est une unité firmware/hardware qui a pour rôle essentiel de gérer les diverses files de processus et de passer d'un processus à l'autre. Il assure en outre la mise à jour des files de processus, des blocs PCB, du mot de processus courant dans la base du système et du registre d'un nouveau processus. Il communique en outre des messages à un processus qui les attend effectivement au niveau d'un sémaphore (apres une opération V, une simulation d'ope- ration V relative à l'unité IOC ou au traitement des exceptions). De plus, il met en file d'attente un message relatif à un sémaphore après une opération P ayant libéré une liaison de message lorsqu'un processus attend au niveau d'un sémaphore de liaison libre pour délivrer son message. Le commutateur fait en outre appel au firmware d'instructions en mode natif après la "restitution" d'un processus s exécutant en mode natif ou après un "contest" si le processus en cours continue à se dérouler et à s'exécuter en mode natif. Il fait également appel au firmware "décor etendu" pour (a) un appel provisoire pendant le rangement d'un processus s'exécutant dans ce décor étendu (b) un appel provisoire pendant la restitution d'un processus s'exécutant dans ce décor étendu (c) un appel définitif après la restitution d'un processus s exécutant dans ce décor étendu et (d) un appel définitif après un "contest" si le processus en cours continue à se dérouler et à s'exécuter dans ce décor étendu. De plus, le commutateur fait tourner le système sur une boucle vide lorsqu'aucun processus n'est en train de s'exécuter. Il existe plusieurs façons d'entrer dans le commutateur et d'en sortir qui sont les suivantes (1) La procédure d'initialisation (SIP) permet l'entrée en dernier ressort (Voir demande de brevet n0 73 42704 intitulée "Procédure d'initialisation du Système"dont le cessionnaire est le même que celui de la présente invention), déposée le même jour. (2) L'instruction lancement et suspension permet l'entrée dans le commutateur. L'instruction de lancement lance l'exécution d'un processus et l'instruc tion de suspension y met fin. (3) Les opérations P et V permettent d'entrer dans le commutateur. L'operation P reçoit un message d'un sémaphore et s'il n'y a pas de message, le processus passe à l'état attente. (Voir demande de brevet n07342697 déposée le 30.11.73 et intitulée "Opération P et V sur sémaphores"). Le commutateur est le mécanisme principal qui gère les processus et par voie de conséquence les blocs PCB en choisissant le processus à exécuter et en prenant les mesures appropriées telles que le rangement du processus en cours d'exécution (écriture dans le bloc PCB de toutes les informations relatives au processus en cours d'exécution et contenues dans les registres hardware, la memoire de travail etc.), et restitution du nouveau processus (lecture dans le PCB et écriture dans les différents registres hardware, la mémoire de travail, etc. de toutes les informations nécessaires l'execution du nouveau processus). Les différentes fonctions exécutées par le commutateur sont représentées dans les organigrammes figures 14a-14i. Ainsi le bloc 1402 de la figure 14a représente la fonction exécutée par le commutateur dans laquelle un mot microprogramme est délivré par l'unité de commande de mémoire morte et après décodage par le décodeur 1359 contrôle les parties appropriées du processeur central par l'intermédiaire d'une série de signaux de micro-óperation 1360, 1361 etc. pour extraire le mot IPQW de la base du systeme dans le sous-système de stockage 102 et le transférer dans la mémoire de travail 1315. Simultanément, le commutateur extrait en 1404 le descripteur de segment GO (voir figure 12) de la table G des descripteurs de segments désignée par le-mot de table G (GTW) dans la base du système. Les bits 16-31 du mot IPQW contiennent un entier positif de 16 bits qui représente le déplacement entre la base du segment G n0 0, appelé segment GO, et la tête (premier octet) de la file des#processus à l'état prêt (Q/PR/RDY). Si les bits 16-31 du mot IPQW sont à 0, 1403 la file des processus à l'état prêt est considérée comme vide.Si cette file est vide, cela indique qu'aucun processus ne se trouve en attente dans la file Q/PR/RDY et que la file des processus a l'état prêt est vide. La question que l'on se pose dans le bloc de décision 1405 est de savoir si un processus est en cours d'exécution ou non dans la machine et à cet effet on détermine si l'indicateur de disponibilité est positionné ou non. Si l'indicateur de disponibilité est positionné (autrement dit si aucun processus n'est en cours d'exécution) et étant donné que l'on a déterminé qu'il n'existe dans la file des processus à l'état prêt aucun processus attendant d'utiliser le processeur, la machine se met à l'état marche à vide 1406. En revanche, si un processus est en train de s'exécuter dans la machine, mais qu'aucun processus n'attende l'utilisation de la machine, le processus en cours prend en charge son instruction suivante 1407. Revenons maintenant au bloc 1403 de l'organigramme de la figure 14a. S'il existe un entier positif dans la zone pointeur du mot IPQW (bits 16-31) la tête de la file des processus à l'état prêt désignée par le mot IPQW du segment GO est placé dans la mémoire de travail. (Note : Pour éviter la répétition et par souci de clarté les fonctions intermédiaires du commutateur intéressant l'unité de contrôle et le processeur central seront omises ; il ne faut toutefois pas oublier que les fonctions intermédiaires décrites précédemment continuent à être utilisées). Jusqu'ici on a déterminé qu'un processus se trouvait en attente dans la file des processus a l'état prêt.Avant d'entreprendre quoi que ce soit, il est nécessaire de déterminer si un processus est en train de s'exe- cuter dans le processeur central. Ce point est déterminé au bloc 1410 de l'organigramme et si aucun processus n'est en train de s'exécuter dans le processeur central (aucun CJP), on exécute la tête de la file des processus à l'état prêt 1412. Toutefois, si un processus est en train de s'exécuter dans le processeur central, le commutateur doit déterminer si c'est le processus en cours d'exécution ou la tête de la file des processus à l'état prêt qui a la priorité. En conséquence, il faut accéder en 1413 à l'octet priorité du processus en cours (CJP) qui se trouve dans le mot du processus en cours d'exécution de la base du système du bloc-PCB 400.On détermine alors 1414 si la priorité du processus en cours d'exécution CJP est inférieure ou non à celle du nouveau processus NJP se trouvant en attente en tête de la file des processus à l'état prêt. (Voir bloc de décision 1414). Si la priorité du processus CJP n'est pas inférieure à celle du processus NJP, le processus CJP conserve le contrôle du processeur central et l'indicateur de présence est restauré 1415. (L'indicateur de présence est toujours mis à 0 sauf lorsque un nouveau processus ou plus ont été rangés dans la file des processus à l'état prêt depuis le début de la dernière instruction exécutée pour le compte du processus CJP ce qui crée un risque de conflit ;~dans ces conditions, l'indicateur de présence est mis à 1).Toutefois, avant que le processus en cours CJP ne reçoive l'autorisation de se poursuivre et d'exécuter d'autres instructions, on détermine si le processus CJP s'exécute dans le mode décor étendu 1415. Si le processus CJP s'exécute dans le mode de decor etendu l'instruction suivante est alors exécutée en mode émulé (decor étendu) et dans le cas où il ne s'exécute pas dans le mode décor étendu l'instruction suivante est exécutée en mode natif. Revenons une nouvelle fois au pavé de décision 1414. Si le nouveau processus NJP se trouvant à la tête de la file des processus à l'état prêt a une priorité supérieure à celle du processus CJP (son numéro de priorité est inférieur au numéro de priorité du processus CJP), le processus en cours d'exécution CJP est éjecté de la machine et le nouveau processus NJP est introduit en machine. En conséquence, un sous-programme de priorité firmware PRIQ 1418 assure la mise en file d'attente du processus en cours CJP dans la file des processus prêts en respectant le principe dernier entre premier sorti ainsi que le numéro de priorité et en commençant par évacuer le processus CJP sous la direction du sous-programme firmware RLLO 1419.Le sous-programme RLLO assure l'écriture des informations du processus CJP contenues dans les registres généraux, les registres de base, les registres scientifiques, le registre T, les registres d'état et le compteur d'instruction dans les zones de stockage appropriées du bloc PCB en mémoire principale et il dirige la mise à jour du mot RUA. En outre, le numéro DEXT du mot PMW O du bloc PCB 400 est mis à jour 14200. Le nouveau processus NJP est alors prêt à être introduit. On accède au registre BAR 1422 puis au mot RPW à partir de l'adresse BAR + 56 de la base du système. Voir bloc 1423. Le nom du nouveau processus NJP est ensuite écrit dans le mot du processus en cours RPW et étant donné que le nom du nouveau processus NJP a été écrit dans la liaison de processus PL de la file Q/PJVRDY, le nopi se trouvant dans la liaison de processus PL est alors place dans le mot RPY, bloc 1424.Il en résulte que le nouveau processus NJP issu de la file des pnt cessus à l'etát prêt devient le processus CJP, a la possibilité de controler le processeur central, n'attend plus dans la file Q/PR/RDY et doit être retire de cette file ce qui s'effectue en retirant son nom de la liaison de processus PL de la file Q/PR/RDY, bloc 1425.Lorsque cela a été réalisé, la fi7e des processus prêts Q/PR/RDY est mise à jour par le sous-programme firane UQLX '425a. Le numéro JP du processus qui vient d'être retiré de la machine est alers placé dans une liaison de processus de la file Q/PR/RDY car il n'a plus le con- trôle de la machine et doit attendre de la recevoir, 1426.En ce point, on passe le contrôle du processeur central au nouveau processus et l'on range l'an- cien processus dans une file des processus en attente et étant donne qu'un pro cessus (le nouveau CJP) a le contrôle du processeur central, l'indicateur de disponibilité est mis à 0, 1427 ; en revanche, si aucun processus CJP n'avait le contrôle du processeur central, l'indicateur de disponibilité serait mis à 1. A ce stade, l'affectation du processeur est achevée et un nouveau processus a "pris possession" du processeur central alors que l'ancien processus a été mis dans la file des processus à l'état prêt ; toutefois, le nouveau processus n'est pas encore prêt à être exécuté car le hardware du processeur central 1306 figure 13a en l'occurence les registres généraux 1307, les registres de base 1308, les registres scientifiques 1309, le registre T 1310, les registres d'état 1311 et le compteur d'instruction 1312 doivent recevoir des informations de contrôle issues du bloc de contrôle du nouveau processus. En conséquence, le sous-programme firmware 1430 contrôle le processeur central et commence par accéder au mot PMW 3 dans le bloc PCB (figure 4) qu'il transfère dans la mémoire de travail 1315 puis il accède au mot PMW O. La zone MBZ du mot PMW O est contrôlée 1433 et si elle ne contient pas la valeur binaire 0 cela entraîne une exception "PCB incorrect". En revanche, si la zone MBZ du mot PMW O est à O il y a accès au mot PMW 1, 1434. On contrôle alors la zone MBZ du mot PMW 1 pour déterminer si elle contient la valeur binaire 0. Si ce n'est pas le cas, une exception "PCB incorrect" se produit. Si elle contient la valeur binaire 0, le commutateur passe à C. Le mot d'espace adresse ASW 0 est extrait de l'emplacement approprié dans le bloc PCB et la taille STWSZ du mot de la table des segments est contrôlée, 1417, pour déterminer si elle est inférieure ou non à 7. Si elle est supérieure à 7 il se produit une exception -"bloc PCB incorrect". Si elle est égale ou inférieure à 7, le mot ASW 1 est extrait du bloc PCB, bloc 1438, et sa zone STWSZ est contrôlée, 1439, pour déterminer si elle est ou non égale ou inférieure à 8. Si la zone est supérieure à 8, le bloc PCB est incorrect ; mais si la zone STXSZ est égale ou inférieure à 8, le mot d'exception EXW est extrait, 1440, et sa zone MBZ est testée pour déterminer si elle est égale ou non à 0. Si cette zone MBZ n'est pas égale à 0, le PCB est incorrect alors que si elle est égale à O le mot de pile SKW est extrait 1442 et sa zone MBZ est testée 1443 pour déterminer si elle est ou non égale à 0. Si la zone MBZ n'est pas égale à 0, le bloc PCB est incorrect alors que si elle est égale à O le mot compteur d'instruction ICW est extrait du bloc PCB et rangé dans le compteur d'instruction IC et sa zone TAG est testée pour déterminer si elle est ou non inférieure à 0, 1445. Si la zone TAG n'est pas égale à 0, c'est que le PCB est incorrect. Toutefois, si la zone TAG est égale à 0, le mot MBZ est extrait 1446 et sa zone MBZ (bits 0-31) est testée pour déterminer si elle est ou non égale à 0, 1447. Si elle n'est pas égale à 0, c'est que le PCB est incorrect ; mais si elle est égale à 0, les mots de base de pile SBW 0, 1 et 2 sont extraits 1448. Le contenu des 8 registres de base de la zone de stockage des registres de base du bloc PCB est alors extrait 1449 et stocké dans les registres de base de la machine 1308. Ensuite le contenu des 16 registres généraux de la zone de stockage des registres généraux du bloc PCB est extrait 1450 et range dans les registres généraux -de la machine 1307. Toutefois, avant d'extraire le contenu des registres scientifiques on contrôle l'octet fonction du mot PMW O pour déterminer si le mode scientifique est utilisé ou non 1451. Si le mode scientifique est utilisé, le contenu des registres scientifiques se trouvant dans la zone de stockage des registres scientifiques du bloc PCB est extrait et rangé 1452. Le firmware exécute alors un contrôle de l'octet fonction du mot PMW O pour déterminer sj le mode de comptage est utilise ou non 1453. Si le mode comptage est utilisé (le bit comptage de l'octet fonction a la valeur 1) c'est que les mots de comptage existent dans le bloc PCB et le mot RTA est mis à jour. Le firmware détermine alors si le numéro DEXT est mis à O ou non 1454. -S'il n'est pas mis- à 0, cela indique qu'il se peut que la machine se trouve dans le mode émulé (utilisation du décor étendu) et l'on contrôle alors le nu mero DEXT du mot PMWO, 1455, pour déterminer s'il est supérieur ou inférieur à la zone DETSZ du mot PMW3 et s'il est supérieur à la zone DETSZ il se produit une exception "PCB incorrect" 1456 ; étant donné que le numéro DEXT est infé rieur à la zone DETSZ mais différent de O c'est que la machine est en train d'utiliser le mode émulé et elle passe à F. Revenons au bloc de décision 1454 ; si la zone DEXT a la valeur binaire O c'est que le mode natif est utilise et la machine extrait les mots STW, 1457. Le mot RTO du bloc PCB est extrait, 1458, et l'on charge dans le compteur de processus le délai maximum pendant lequel le processus CJP peut rester à l'état d'exécution. Jusqu'ici (a) ou bien un nouveau processus NJP a été introduit pour pren dre contrôle du processeur central alors qulil y avait un ancien processus CJP dans la machine et que le nouveau processus NJP avait une priorité supérieure à celle de cet ancien processus ou (b) aucun CJP n'avait le contrôle du processeur centrale la tête de la file des processus à l'état prêt a été exécutée, Dans le cas (a) le processus CJP a été retiré du mot RPW et rangé dans une liaison de processus PL de la file Q/PR/RDY et le processus NJP d'une liaison de processus PL de la file Q/PR/RDY a été rangé dans e mot RPW ce qui a réalise ainsi l'échange des positions des. deux processus et donné le contrôle au processus NJP devenu alors CJP , le contrôle ayant été retiré à l'ancien CJP. Ensuite, on a accédé au bloc PCB du processus NJP et les informations né cessaires à l'exécution du NJP (devenu maintenant le CJP) ont été rangées dans la mémoire de travail ou dans l'ensemble des registres de l'unité ACU. Si aucun CJP n'avait le contrôle du processeur central (cas b) la tête de la file des processus à l'état prêt aété exécutée , autrement dit le NJP est devenu le CJP car le commutateur a pris le NJP dans la liaison de proces- sus PL de la tête de la file des processus à l'état prêt et l'a rangé dans le mot RPW. Par suite, une liaison de processus PL est restée vide dans la file Q/PR/RDY et il est nécessaire de la retirer. Partant du bloc de décision 1461 , le firmware détermine si un CPJ a eu ou non le contrôle du processeur central et s'il y a eu une liaison de pro cessus libre (FPLS) elle a été extraite et mise en file d'attente et le pro cessus CJP y a été décrit. Toutefois, si aucun processus CJP n'a eu le contrô le du processeur central, l'octet d'état du mot PMW O du processus NJP est mis à jour , 1460, et l'on détermine à nouveau s'il y a eu ou non un CJP dans la machine 1463.Si aucun CJP n'a eu le contrôle du processeur , la liaison de processus NJP (qui était dans la file Q/PR/RDY et a maintenant le contrôle de la machine) est retirée de la file Q/PR/RDY, 1466 (c'est - à - dire sortie de la file Q/PR/RDY) elle devient un sémaphore de liaison libre FLSP, est mise en file d'attente dans la file des liaisons de processus libres (805 figure 9) et fait alors partie de la file des liaisons de processus libres 1466a. Le contenu du registre BAR est extrait 1464 et le mot RPW du processus NJP (maintenant CJP) implanté en BAR + 56 de la base du système est mis à jour en plaçant dans le mot RPW l'identification du processus NJP , bloc 1465. L'indicateur de disponibilité est mis à 0 dans le cas ou il n'y avait pas eu de processus CJP.Ensuite, l'indicateur de présence est mis à 0, 1467, et l'Associateur de seaments (AS 132 figure) qui est une mémoire associative est efface 1471 ; on passe alors au mode processus 1470. (le mode processus indique que les exceptions sont prises en charge par le processus qui est en train de s'exécuter dans le processeur et non par le système d'exploitation). Le firmware continue en CAB 1480 et le bit de déroutement asynchrone AB est contrôlé pour déterminer s'il a ou non la valeur 1 , 1481 .Si ce bit AB a la valeur 1, on détermine alors 1482, si le numéro d'anneau de processus PRN est supérieur ou égal au bit de déroutement asynchrone ARN. (Les bits AB et ARN sont situés dans l'octet priorité du bloc PCB de chaque processus et n'ont d'utilité que lorsque le processus est à l'état d'exécution ; les bits AB et ARN sont extraits du mot RPW implanté en BAR + 56 de la base du système).Les bits AB et ARN implantés en BAR + 56 du mot RPW sont restaurés étant donné que l'opération suivante,1484 , consiste à lancer un programme de déroutement asynchrone qui prendra en charge les conditions ayant provoque initialement le positionnement du bit de déroutement asynchrone ou du numéro d'anneau asynchrone et si ces bits n'ont pas été restaurés au passage suivant du firmware, une anomalie sera signalée alors qu'elle n'existe pas , et on lancera systématiquement le programme de déroutement asynchrone 1484 qui ne s'exécutera pas. Revenons aux blocs de décision 1481 et 1482. Si le bit AB n'est pas positionne ou si le bit AB est positionné mais que PRN ne soit pas supérieur a ARN, le firmware cherchera à déterminer le mode utilisé par le processeur mode natif ou mode émulé. Par suite, le numéro DEXT est contrôlé pour déterminer s'il est ou non à O et s'il est à 0 c'est le mode normal de la machine qui est utilisé, 1487. Toutefois, s'il n'est pas à O c'est le mode émulé qui est utilisé 1486. TRAITEMENT DES EXCEPTIONS Comme on l'a vu précédemment, le processeur central exécute une séquence d'opérations données pendant que les autres éléments du système exécutent leur propre séquence d'opérations. Bien que les opérations doivent normalement s'exécuter correctement, ce n'est pas toujours le cas. Ainsi, une erreur ou une exception peut se présenter dans l'un des éléments du système, y compris le processeur central, ce qui mêcessitera une intervention particulière. Comme l'indique la figure 15, une erreur machine 1500 peut être detectee. On entend par erreur machine la survenance d'un événement interne obligeant le hardware/firmware du système à interrompre immédiatement son fonctionnement pour des raisons imputables à son propre fonctionnement défectueux. Ainsi une erreur machine pourra être une erreur en mémoire principale, ou une erreur dans le processeur central qui sera détectée grâce au système de contrôle de parité etc Les erreurs machine sont traitées par le mécanisme d'erreur machine 1502 qui peut prévenir#le mécanisme d'exception central en fonction des résultats de sa propre intervention. Dans tous les autres cas, la mise en oeuvre du mécanisme d'exception central 1504 s'effectue directement ainsi qu'il est indiqué en 1506. Les exceptions 1506 comprennent toutes les autres exceptions détectées pendant l'exécution d'instructions ou dropêrations de contrôle du système. Ainsi, si pendant son exécution normale, le système de traitement des données détecte la présence d'un incident ou d'une erreur dans un élément, il peut interrompre son fonctionnement et exécuter une exception. Cette exception correspond à la prise en charge des erreurs signalées au mécanisme d'exception central. Le fonctionnement du mécanisme d'exception central est conditionné par l'état du processeur central au moment où l'exception se produit. Ainsi, à un moment donne, le processeur central peut soit (1) exécuter une instruction pour le compte d'un certain processus ou (2) exécuter une opération interne. Par suite, les deux types d'opérations principaux sont donc (1) les opérations relatives à des instructions qui sont toujours exécutées pour le compte du processus en cours, le processeur central se trouvant dans le mode processus ou le mode transitoire critique et (2) les opérations de contrôle de système qui sont toujours exécutées lorsque le processeur central se trouve dans le mode système ou le mode transitoire critique. Après le traitement de l'exception, le mécanisme d'exception central 1504 envoie une signalisation à un programme de traitement d'exception 1508 contenant des informations sur les conditions ayant provoqué l'exception. Ces conditions sont signalées soit en mode processus soit en mode système, au moyen soit d'un mécanisme de déroutement soit d'une mécanisme d'interruption. Dans les deux cas, on exécute une signalisation d'exception qui contient un message identifiant l'erreur et décrivant totalement le moment ou l'erreur a été détectée. Ainsi qu'il a été indiqué précédemment, le processeur central peut se trouver dans l'un des trois modes possibles lorsqugune erreur est détectée Lorsqu'un processus a la disposition du processeur central et que la dernière instruction exécutée pour le compte du processus en cours n'a pas encore été achevée au moment de la détection de l'exception, on dit que le processeur central est en mode processus. Lorsque le processeur central n'est pas en train d'exécuter une instruction mais exécute une opération de contrôle système, il se trouve alors en mode système au moment de la détection de l'exception. Ilest-ànoterqu'à ce moment là un processus n'a pas forcément la disposition du processeur central.Si un processus a la disposition du processeur central, il n'est pas affecté par l'exception et il pourra reprendre logiquement sa propre execution à son instruction suivante. Si une exception est détectée en un point ou une information intéressant l'état de l'ensemble du système peut être détruite, par exemple dans le cas des exceptions rencontrées pendant la manipulation par hardware des files de processus et de messages, on dit alors que le processeur central se trouve dans le mode transitoire critique. Ceci est indiqué par le verrouillage d'une porte hardware avant l'exécution de toute fonction dont la nature exige que la séquence des opérations la constituant ne soit pas interrompue. La détection d'une exception par le mécanisme d'exception central provoque un incident système lorsque le système se trouve dans le mode transitoire critique. Le fonctionnement du mécanisme d'exception central n'est pas lié au fait que le processeur se trouve dans l'état erreur machine. Etant donné que chacun des trois modes énumérés ci-dessus est indépendant des autres, le mécanisme d'exception central agit en fonction de ces modes et traite les exceptions en conséquence. Fonctionnement du mécanisme d'exception central Lorsqu'une exception a été signalée au mécanisme d'exception central, on dit qu'une exception s'est produite. Cet état survient en cas d'incident ou d'erreur. De nombreux exemples indiqués dans les demandes citées précédemment et qui se trouvent implicitement incorporés à la présente demande permettent la détection de ces exceptions. Ces demandes concernent plus particulièrement: - le mécanisme de traversée d'anneau ; - le développement d'adresse segmentée ; - la synchronisation de processus utilisant des sémaphores les instructions P et V sur sémaphores pour synchronisation de processus les instructions de gestion de processus pour système de traitement de données et les instructions d'initialisation de sémaphores pour synchronisation de processus. A chacune de ces demandes correspondent des conditions particulières.Si ces conditions sont testées et que les critères ne soient pas satisfaits, on dit qu'une exception a été détectée. Lors de la détection d'une exception, un registre AJ de l'unité arithmétique et logique 1317 reçoit un code de 8 bits et un branchement est exécuté comme indiqué en 1600 figure 16. Ce branchement s'effectuera à une adresse particulière par toute exception validant le mécanisme d'exception central. Lorsqu'il prend en main le processeur central, le mécanisme d'exception central assure l'exécution des opérations indiquées Figure 16. Et tout d'abord le mécanisme d'exception central teste, en 1602, si la porte hardware est verrouillée. Si cette porte hardware a la valeur "1", autrement dit si elle est verrouillée, cela indique que le processeur central se trouvait dans le mode transitoire critique. Par suite, une exception se produisant pendant que la porte hardware est verrouillée, fait passer le processeur central à l'état incident système 1604. Lors du passage à l'état incident système des diagnostics propres au modèle sont exécutés. Ceci se produit car le processeur central ne peut être interrompu, sinon le système continuerait a s'exécuter avec des éléments inappropriés, et se comporterait de façon défectueuse jusqu'à la détection ultérieure d'une exception. Normalement, la porte hardware n'est pas verrouillée et l'opération 1606 est donc exécutée. Cette opération prélève la-valeur chargée dans le registre AJ lors de la détection de l'exception et accède à la mémoire principale. Comme l'indique la Figure 12, la mémoire principale contient une zo-# ne au-dessus du regis#tre BAR contenant une table des exceptions. Cette table sera indexée par le numéro figurant dans le registre Aj et une exception comportant un numéro de classe et un numéro de type sera lue dans cette table. Le numéro de classe identifie le groupe de l'exception et le numéro de type identifie l'exception particulière dans le groupe. Ces indications seront transférées dans une adresse particulière de la mémoire auxiliaire 1315. Dans le cas d'une exception résultant de la signalisation d'une erreur machine, le numéro de classe et le numéro de type spécifient la nature de l'erreur telle qu'elle a été traitée par le mécanisme d'erreur machine. Dans le cas d'une erreur autre qu'une erreur machine, la classe et le type définissent la nature de la relation entre la tentative d'opération et le ou les éléments sur lesquels elle a porte. Du point de vue fonctionnel, les erreurs autres que les erreurs machine peuvent être divisées entre exceptions interdites et exceptions fonctionnelles. Une exception fonctionnelle indique qu'une erreur n'a pas été commise mais qu'il existe une condition qui ne devrait pas exister et à laquelle il faut remédier. Ainsi, si l'on accède à un segment de la mémoire principale alors que le segment réside dans la mémoire virtuelle, une exception si gnalisation que le segment n'a pas été localise sera émise. Le segment manquant devra alors être transféré dans la mémoire principale afin que l'on puisse y accéder normalement. Une exception fonctionnelle permet donc l'utilisation d'un mécanisme existant dans la machine. L'exception interdite couvre toutes les autres exceptions correspondant à une mauvaise utilisation manifeste des éléments du système de traitement des données. Il se peut ainsi qu'une erreur commise ne puisse être corrigée. Il y a lieu de noter que toutes les exceptions interdites intéressant 8i- rectement le processus en cours d'exécution provoqueront l'arrêt de la procédure en cours. Ceci pourra également être l'état correspondant à certaines exceptions" fonctionnelles. Etant donné qu'il existe environ 80 exceptions détectables par le système de traitement des données, un numéro de 8 bits est généré initialement dans un registre AJ. Le registre AJ est un registre de travail typique implanté dans l'unité arithmétique et logique 1317. Ce numéro indexe alors la table des exceptions en mémoire principale ce qui fournit un numéro de 16 bits. Ces 16 bits comprennent 8 bits pour le numéro de classe et 8 bits pour le numéro de type qui identifient totalement l'exception. Ce numéro identifiera le software, qu'il s'agisse d'une exception fonctionnelle ou d#une exception interdite. Dans l'opération 1608, la bascule de traitement d'exception, qui se trouve dans la mémoire auxiliaire 1317a est testé pour détecter si elle est positionnée. Si elle est positionnée, cela indique qu'une exception s'est produite pendant le traitement d'une exception précédente. Par suite, si elle n'est pas positionnée, autrement dit s'il n'y avait pas d'exception pré cédente, c'est l'opération 1610 qui est exécutée, et la bascule de traitement d'exception est alors positionnée. Un certain nombre d'autres bascules seront mentionnées dans le présent document. Pour simplifier, il ne sera fait mention ni de leur implantation, ni de leur interrogation. Chacune de ces bascules est implanté dans la mémoire auxiliaire 1317, et leur interrogation s'effectue de façon classique. Dans l'opération 1612, le mécanisme d'exception central teste si un processus ou une exception système e#iste.#Si ia#bascule mode système est positionnée, cela indique que le processeur central était en train d 'exécu- ter une opération de contrôle système. Si cette bascule n'est pas positionnée, cela signifie que le processeur central était en train d'exécuter une instruction pour le compte du processus en cours d'exécution, instruction dont l'exécution n'était pas encore achevée au moment de la détection de l'exception. Dans ce dernier cas, autrement dit dans le cas d'une exception en mode processus, un branchement est effectué opération 1614, Figure 16b. Lorsqu'une exception en mode processus a été détectée, le mécanisme d'exception central peut : (1) l'ignorer si elle est masquée (2) la signaler au moyen d'un mécanisme d'exception du type déroutement ou (3) la signaler au doyen d'un mécanisme d'exception du type interruption. La première possibilité est examinée à l'opération 1614. Elle consite à contrôler le registre d'état 207 qui enregistre les événements relatifs à la procédure en cours d'exécution, a savoir que dans le registre d'état, le bit 4 est. un masque décimal, le bit 5 un masque binaire et le bit 6 un masque de dépassement de capacité négatif.Si l'un quelconque de ces bits est à zéro, l'exception correspondante est ignore Le masque décimal indique le dépassement positif de données decisales nu une division décimale ; le masque binaire indique un dépassement en virgule fixe et le masque de dépassement négatif indique un dépassement négatif d'exposant en virgule flottante. A la détection d'une exception masquée, le mécanisme d'exception central repasse la main à l'instruction suivante du processus en cours comme si l'instruction avait été exécutée normalement. Ceci est représente par l'opération 1616 dans laquelle la bascule de traitement d'exception est restauree pour indiquer qu'il n'existe aucune condition d'exception et par l'o- peration 1618 qui exécute un branchement sur l'instruction suivante du processus se trouvant actif. Ainsi, le masque d'exception offre la possibilite d'ignorer certains cas d'exception. Si aucun des trois. cas spéciaux mentionnés ci-dessus ne se présente l'opération 1620 est exécutée, cette opération consistant à extraire un mot PECT (table de classes d'exceptions de processus) du bloc PCB du processus courant. Un mot de bloc du PCB est réservé à la signalisation d'une exception en mode processus pour le processus courant. Ce aut représenté Figure 4 avec l'indication EXW est à l'adresse PCB +24. Ce mot d'exception contient un pointeur (SEG, SRA) (Voir Figure 10) désignant une table des classes d'exception, à savoir la table PECT. Cette table de classes d'exceptions définit l'intervention à effectuer à la suite d'une exception, en mode processus, en fonction de la classe de l'exception.Ainsi, à la suite de la détection'd'une exception en mode processus le mécanisme d'exception central extrait le mot EXW et exécute une indexa tion sur la table PECT avec le numéro de classe d'exception afin de selectionner la solution correspondant a l'exception. L'adresse suivante de la table PECT s'obtient de la façon suivante. Le mot EXW du bloc PCB est transféré dans l'unité arithmétique et logique 1317 à partir de l'adresse de la mémoire auxiliaire EXW, le mot EXW contenant le numéro de segment et l'adresse relative de segment. A 1 'adres- se relative de segment est ajouté le numéro de classe extrait précédem ment de la mémoire principale (opération 1606), l'addition étant réalisée par l'unité arithmétique et logique 1317. A partir de cette adresse relative de segment créée au moyen du mot EXW et du numéro de classe, on connaît l'adresse particulière dans la table PECT. La table PECT qui se trouve dans la mémoire principale est alors indexée avec cette adresse et fournit le mot représenté Figure 10J. Ce mot est un pointeur qui valide un programme distinct pour chaque classe d'exception. Toutes les exceptions d'une même classe sont traitees de la même manière. La partie étiquette du mot est alors testée à l'opération 1622 pour déterminer si elle a la valeur 00 ou 01. La zone étiquette sert à sélectionner le mécanisme de signalisation à utiliser pour la classe d'exception correspondante ; il en résulte qu'elle détermine le mode d'interprétation de la tartie SEG, SRA de l'élément de la table PECT. Si les bits étiquette ont la valeur 00, le mécanisme d'exception central appelle un mécanisme d'exception de processus du type déroutement pour prendre en charge l'exception. Si ces bits ont la valeur 01, le mécanisme d'exception central appelle alors un mécanisme d'exception de processus du type interruption pour prendre en charge cette exception. On voit donc que le bit étiquette détermine la façon dont l'exception est prise en charge. Si l'étiquette a la valeur 00, un déroutement de processus est exécuté à l'opération 1624. Le mécanisme de déroutement ne peut être utilisé que conjointement avec la signalisation en mode processus, autrement dit lorsque le processeur central est en mode processus. Auparavant, le mécanisme d'exception central avait interrompu l'instruction en cours d 'exécu- tion en raison de l'existence d'une exception. Le mécanisme de déroutement impose alors l'interruption de la procédure à l'instruction à laquelle ltex- ception a été détectée. En outre, le mécanisme de déroutement valide une procédure de prise en charge d'exception qui utilise l'espace adresse du processus en cours. Ceci s'obtient en faisant passer le contenu du compteur d'instruction 1312 à une nouvelle procédure au lieu de la faire passer à l'instruction suivante.Cette nouvelle procédure commence à une adresse développée à partir de l'adresse de la table PECT. Ainsi, la table PECT a donne un pointeur c'est-à-dire un descripteur de données qui fournit l'adresse chargée dans le compteur d'instruction. Le mécanisme de déroutement exécute les deux opérations suivantes. En premier lieu, la classe et le type de l'exception sont stockés dans le bloc de contrôle du processus en cours, et en second lieu, une instruction de simu lation de préparation de pile est exécutée, suivie d'une simulation d'instruc tion ENTER. Le compteur d'instruction identifie l'adresse de la nouvelle procédure appelée par l'instruction ENTER simulée. Il est également nécessaire de préparer l'état d'un support de pile pour la nouvelle procédure. Ceci a été réalisé par l'intermédiaire d'une instruction simulée de Préparation de pile qui conserve l'ancien état de l'ancienne procédure. Ces données représentent les informations courantes du processus précédent comprenant notamment les registres de base, les registres generaux, ainsi que les registres scientifiques si le fonctionnement se déroulait en mode scientifique. L'instruction ENTER simulée charge également dans un registre de base, par exemple le registre de base 7, une section de liaison qui désigne les données de la nouvelle procédure. Ce qui est plus important, c'est que le mécanisme d'exception central constitue un message à des adresse prédéterminées de la mémoire auxiliaire (WE4 - WE7) et stocke ensuite le message physiquement après avoir conserve les données d'état de l'ancienne procédure. Ce message est la signalisation d'exception et comprend les quatre mots représentés Figure 18a. Ce message, généré par le mécanisme d'exception central, est le suivant. La zone liaison suivante (NL) qui occupe les deux premiers octets du mot zéro ne contient que des zéros. Le troisième octet du mot 0 est mis à zéro étant donne qu'il ne s'agit pas d'un message d'entrée/sortie. La zone priorité qui occupe les quatre premiers bits du quatrième octet du mot zero est mis arbitrairement à la valeur 1111 qui correspond à la priorité la plus faible. Le contenu des quatre bits suivants est une étiquette M qui indique les circonstances de l'exception. Ainsi, l'étiquette M indiquera si le processus en cours a été suspendu ou non. En outre, 1l'etiquet- te M définit le format général du message, autrement dit si la zone JP du mot i est significative ou non. Dans le mot I, la zone JP indentifie le nom du processus en cours. Cette zone n'est définie que si la procédure courante du processus en cours d'exécution doit être interrompue, autrement dit si le processus en cours doit être suspendu. Les deux octets suivants du mot-I identifient le numéro de classe d'exception et le numéro de type d'exception fournis au registre AJ et stockes dans la mémoire auxiliaire. Le mot 2 est le paramètre d'exception propre à l'exception. Ce mot peut être utilisé pour préciser la cause de l'exception, par exemple numéro de segment de l'exception "segment manquant".'Les deux premiers octets du mot 3 sont à zéro et les deux derniers octets contiennent le nom du canal affecté à l'exception. Ce mot est fourni par le système d'entree/sortie et n'est pas décrit plus en détail. Après'la constitution de ce message, la signalisation d'exception est rangée dans la pile du processus en cours dans l'espace paramètre. Elle est ensuite rangée dans la zone communications de la pile (voir figure 7) suivie de l'exé- cution d'une instruction ENTER simulée analogue à l'instruction ENTER (voir de mande de brevet intitulée "Appels de procédure et mécanisme de pile") qui effec tue un branchement sur le programme de traitement d'exception identifié dans l'élément de table PECT initial. Si le mécanisme de déroutement traite une exception du type fonctionnel 5 comme l'indique sa classe et son numéro de type, il prendra en charge l'excep tion puis reviendra, par l'intermédiaire d'une instruction de sortie à l'ins truction suivante du processus qui se trouvait auparavant en cours d'exécution et qui initialement était suppose exécuté. Cependant, si l'exception est du type interdit, le mécanisme de déroutement préparera un message de liquidation et suspendra le processus en cours d'exécution, le message ci-dessus indiquant les raisons exactes de la liquidation du processus. Les différences entre l'instruction simulée de préparation de pile et l'instruction de préparation de pile indiquées dans la demande citée précéder ment sont essentiellement de deux ordres. L'instruction simulée de préparation de pile stocke toujours tous les registres de base ainsi que les registres gé néraux alors que l'instruction de préparation de pile stocke certaines informa tions en fonction du masque de zone de stockage (SAM) qui occupe les quatre der niers octets de l'instruction de préparation de pile. En outre, la zone NBP qui contient le nombre d'octets de paramètres communiqué par l'instruction simulée de préparation a toujours la valeur 16. Ceci est dû au fait que le message à communiquer a toujours quatre mots.Dans l'instruction de préparation de pile, la zone NBP contient un nombre variable qui dépend du nombre de transferts por tant sur les paramètres à communiquer. L'instruction ENTER simulée est différente de l'instruction ENTER décrite dans la demande citée en référence en ce sens que l'instruction ENTER simulée passe toujours dans l'anneau 0, autrement dit est toujours l'instruction ayant le privilège le plus élevé. En outre, l'instruction ENTER a normalement une adresse fournie par la syllabe d'adresse qui désigne le descripteur de procedu- re. Par contre, l'instruction ENTER simulée obtient son adresse d'un descripteur de procédure par 1 'intermédiaire de la table PECT. Compte tenu de ces différen ces, qui interviennent après l'opération 1626, l'exception est traitée. Par ail leurs, après l'opération 1624 la bascule de traitement d'exception est restau rée à l'opération 1625, ce qui indique que l'exception a été traitée. Toutefois, si à l'opération 1622, l'étiquette du descripteur de données fournie par la table PECT a la valeur 01, c'est qu'un branchement sur l'opera; tion 1628 aura été effectué. Dans l'opération 1628 une interruption de proces sus est exécutée. L'interruption de processus exécute essentiellement deux opé rations : premièrement la classe et le type de l'exception sont stockes dans le bloc de contrôle du processus en cours et deuxièmement une instruction de simu lation d'opération V et de suspension de l'exception de processus est exécutée phore avec un message. Un sémaphore de message est identifié par l'entrée PECT. L'organisation du message à transférer est donnee Figure 18a. Le message contient une zone liaison suivante (NL) identifiant les autres messages mis en file d'attente au même sémaphore. Lorsqu'elle est présentée aux registres généraux d'un processus, cette zone NL est mise à zéro, les autres octets des quatre mots étant identiques à ceux décrits dans l'opération 1624, re- lative à la signalisation du mécanisme de déroutement. Toutefois, le message est transféré comme un message de sémaphore et non comme un message de support de pile, ainsi que cela s'est produit à l'opération 1624. Le mécanisme d'interruption procède à un échange de processus qui ulte- rieurement, en fonction des priorités des processus et du comptage SCT de sEma- phore entraînera l'introduction d'un autre processus pour la prise en charge de l'exception. Cet autre processus reçoit le message' fourni par l'opération V si mutée. A la suite de cette signalisation d'exception, le processus recevant le message exécute des opérations soit pour redresser la situation soit pour tre fin au processus initial. Dans le dernier cas, le processus signale en les raisons de l'arrêt du processus. L'instruction de suspension simulée est analogue à l'instruction de suspen- sion décrite dans la demande de brevet relative à des instructions de gestu.oe.de processus pour un système de traitement de données citée ci-dessus. En outre, une opération V simulée est validée pour transférer le message au sémaphore designé (voir demande de brevet intitulée "Operations V simulées pour syndiNeisa- tion de processus indiquée ci-dessus). Cette opération V simulée fait prpresser la zone SCT d'une unité. Si le comptage du sémaphore est négatif, le prnier processus de la file des processus se trouvant au sémaphore (Q/P;VS) reçoit alors le message de l'opération V simulée.Si la zone SCT a la valeur 0 ou une valeur supérieure, une file (Q/M/S) est constituée. Toutefois, s'il n'existe aucune liaison de message libre ainsi qu'il est décrit dans la demande de brevet relative aux instructions P et V ci-dessus, l'opération V simulée n'est pas alors en mesure de prendre en charge l'exception car cela provoquerait une exception liaison libre manquante. Par suite, cette autre exception relancera l'opération 1600 et réalisera la même action que celle lancée par l'exception "échappement' dé critedans la présente demande. Le processus de traitement d'exception ayant pris ultérieurement l'état d'excécution à la suite de l'action du mécanisme d'interruption recevra le message fourni par l'opération V simulée. Lorsqu'il est fourni, ce message comprend le numéro J,P du processus suspendu, le numéro de classe et le numéro de type identifiant l'exception ainsi que les raisons de l'exception indiquées par le mot 2. A partir de ces informations, le processus prenant en charge le message d'interruption indique que le processus précédent, c'est-à-dire celui ayant le numéro J, P est suspendu en raison de l'exception qui s'est produite. Le processus terminera alors le processus Précédent en exécutant les opérations nécessaires à son achèvement.Ainsi, le processus prenant en charge l'interruption permet l'achèvement du processus précédent auquel s'applique l'exception et en outre laisse une trace imprimée de la cause de l'exécution. En revanche, si l'exécution est du type fonctionnel, le nouveau processus en exécutant l'opération V simulée résoudra les difficultés signalées par l'exception fonctionnelle. Ainsi, si une exception segment manquant s'est produite, le nouveau processus localisera le segment manquant et le transférera dans la mémoire principale. Le nouveau processus exécutera alors une instruction de lancement sur le processus suspendu, ce qui permettra de ranger le processus suspendu dans la file de processus à l'état prêt (Q/PR/RDY). (Voir demande de brevet relative aux instructions de gestion de processus pour système de traitement des données ci-dessus, pour ce qui est de l'explication de l'instruction de lancement). Lors de l'opération 1630, la bascule de traitement d'exception est restaurée, ce qui indique que l'exception est terminée, et à l'opération 1632 un branchement est effectué sur le commutateur (voir figure 14) étant donne que l'indicateur de presence ou l'indicateur de disponibilité sera positionne a "1". Si une exception était détectée alors que le mécanisme d'exception central traitait l'exception précédente, il existerait alors une exception portant le nom d'exception échappement. (Ainsi, si une exécution a été détectée à l'opera- tion 1624 ou 1628, une exception échappement, opération 1627, sera exécutée). Dans un tel cas, l'opération 1600 serait réexécutée et à l'opération 1608, la réponse à la question serait "OUI" autrement dit la bascule de traitement d'exception a été positionnée. Par suite, un branchement serait effectué sur ltope- ration 1634 avec effacement de la bascule de traitement, d'exception, autrement dit indication qu'il n'y a pas eu d'exception. Cependant, à l'opération 1636, le mode système est établi, ce qui indique une opération de contrôle système. Ceci est immédiatement suivi des opérations 1638 à 1652 qui identifient une condition d'erreur différente. Le principe est qu'en général, une exception en mode processus est traitée par des procédures figurant dans ce processus ou par d'autres processus capables de reconnaître le processus précédent.S'il se produit un quelconque incident pendant que l'on tente de rectifier l'exception précédente, rien de ce qui appartient à ce processus n'est sûr. Par suite, une exception système est générée, ce qui valide une opération de contrôle système. Etant donné que l'opération de contrôle du système n'est pas basée sur le processus générant les deux exceptions, ces exceptions peuvent donc être prises en charge sans tenir compte du processus qui peut ne pas convenir. Par ailleurs, l'opération de contrôle système provoque la suspension du processus courant à l'origine des deux exceptions en utilisant une instruction de suspension simulée suivie d'une opération V simulée sur laquelle, nous reviendrons plus loin.De plus, en faisant appel au mode système, les exceptions, autrement dit la première et la seconde exceptions qui ont maintenant été détectées ne sont pas signalées séparément mais transformées en une exception échappement". Pour cette exception "échappement", il sera constitué un message comprenant le plus d'informations possibles à la fois sur la première et la seconde exception. Le message constitué pour la condition "échappement" est celui représenté Figure 18b. Etant donné que le message sera pris en charge par une opération V simulée, la zone liaison suivante désignera les messages précédents associés à la file du sémaphore de messages. Dans le mot 1 du message, le nom J, P est le nom du processus pendant le déroulement duquel la première exception a été dé tectée. Ce processus J, P restera dans l'état suspension. Les deux octets suivants du mot 1 prendront les valeurs classe 2, type O ainsi que l'indique l'opé- ration 1638. Ce numero~de classe et ce numéro de type correspondent alune exception échappement car l'exception provient' de la transformation de deux exceptions en mode processus.Cette classe 2 sert à identifier une exception détectée pendant le traitement d'une exception de processus par le mécanisme d'exception central. Dans le mot 2, les deux premiers octets sont représentés sous la forme ARG2 qui résume les paramètres correspondant à la seconde exception' comme indique ci-dessus. Les deux octets suivants du mot 2 contiennent la classe et le numéro de type provenant du registre AJ, opération 1606, correspondant à la seconde exception.-C'est la seule information particulière transmise sur la seconde exception dans tous les cas. Le troisième mot du message identifie les parametres de la première exception. Cette zone contient les paramètres lies à l-'exception associés à la première exception qui auraient normalement été rangés dans le troisième mot du message ainsi que l'indique la Figure 18a.Ainsi, si une exception est détectée pendant le fonctionnement du mécanisme d'exception central dans le cas des exceptions en mode processus, il se produit une exception échappement, qui signifie que le traitement de l'exception en mode processus (classe 2, type 0) n'a pas réussi, et le message représenté Figure 18b appa ravît. Si cela se produit, un branchement sera à nouveau effectué sur 1600 et à l'opération 1608 la réponse sera NON, étant donné que l'opération 1634 a restauré le traitement des exceptions. Une nouvelle fois, à l'opération 1610 la bascule de traitement d'exception sera positionnée, mais cette fois-ci,#le mécanis- me d'exception central sera en mode système. Par suite, à l'aoperation 1612, la réponse sera OUI (bascule mode système positionnée), selon l'opération 1636 et un branchement sera donc effectué sur l'opération 1642. Ce branchement issu de l'opération 1632 est également exécuté lorsque la première exception s'est produite alors que le processeur central se trouvait en mode système, autrement dit pendant une opération de contrôle système. En conséquence, dans les deux cas, à l'opération 1642, la porte hardware est positionnée ce qui indique que l'on passe au mode transitoire critique. Si une exception quelconque se produit pendant que l'on est dans ce mode, il se produit un incident système, opération 1647, qui permet l'exécution de diagnostics propres au modèle. L'état incident système indique qu'il existe des erreurs graves dans le système de traitement des données Ainsi, est créée une hiérarchie d'exceptions. Cette hiérarchie permet le traitement immédiat des exceptions les plus importantes.Par ailleurs, une pri orité supplémentaire pour une exception en mode système peut être signalée par une opération V simulée afin d'introduire une zone de priorité élevée dans le message destiné au processus en attente. La hiérarchie est la suivante ; exception en mode transitoire critique, mode système, et enfin mode processus. Ceci est prévu car une exception en mode processus n'intéressant qu'un seul processus particulier ne doit pas perturber le fonctionnement d'autre processus ou d'ope- rations de contrôle système. Par suite, une prise en charge immédiate n'est pas nécessaire. Toutefois, pour les autres exceptions, une prise en charge immédiate est nécessaire. Dans l'opération 1644, on accède à l'une des cellules d'exception système représentées Figure 6 entre BAR +8 et BAR +44 de la base du système. Chacune des cellules d'exception système correspond à un numéro de classe. Bien qu'il existe 15 numéros de classes, seules les huits premières classes identifient les exceptions en mode système. Dans le cas de l'exception échappement, c'est la cellule d'exception système n02 qui serait utilisée. Pour les autres exceptions système, lorsque l'exception système est détectée, le numéro de classe et le numéro de type de l'exception sont identifés par l'opération 1606 exactement comme pour les exceptions en mode processus. Le numéro de classe est alors utilisé pour effectuer une indexation sur la base du système afin de sélectionner la réponse appropriée correspont à l'exception en mode système. La cellule exception système comporte un mot ayant un numéro G, D qui, comme l'indique la Figure 12 et ainsi qu'il est décrit dans la demande de brevet intitulée "Synchronisation de processus" utilisant des sémaphores, ci-dessus Figure 17, désigne un sémaphore de message. Sur ce sémaphore, opération 1646, est exécutée une opération V simulée qui fournit le message indiqué soit Figure 18a s'il s'agit d'une exception initiale en mode système, soit 18b s'il s'agit d'une exception échappement. En outre, le positionnement de l'étiquette M, c'est à dire les bits 28 à 31 du mot NOO, indique si le processus'en cours doit être laissé dans l'état prêt/exécution, ou si une instruction de suspension simulée a# été exécutée et si le processus en cours a été suspendu comme dans le cas d'une exception échappement système. Si aucun processus ne se trouve en attente au sémaphore, autrement dit si la valeur SCT du sémaphore de message auquel est appliquée l'oPération Y simulée est supérieure à zéro et qu'aucune liaison de message libre ne soit disponible, autrement dit si aucune file Q/ML/FLS n'existe, l'exception portant le no de liaison de message libre manquante est détectée. Etant donne qu'il s'agit d'tue exception se produisant pendant une exception en mode système, cela provoquera le passage à l'état incident système. Une fois que l'opération V simulée a été exécutée, l'opération 1648 est exécutée pour restaurer la porte hardware afin de faire abandonner au système de traitement des données le mode transitoire critique. Dans l'opération 1650, la bascule de traitement d'exception est restaurée et dans l'operation 1652, un branchement soit sur le commutateur représenté Figure 14 soit sur l'instruction suivante dans le cas ou l'indicateur de présence est à 0, est exécuté Ensuite, les mêmes opérations sont exécutées par le processus recevant le message de l'o pération V simulée, ainsi qu'il a été décrit pour le mécanise d'interrupticn. Ainsi, ce processus résoudra le problème signalé par le message d'exceptioa, et obtiendra les informations nécessaires pour rectifier la situation ou en signaler l'existence, afin qu'il y soit remédié. Ainsi, en mode système, le mécanisme d'exception central utilise la base du système qui comporte des cellules d'exception système correspondant aux huit classes différentes d'exceptions. Chaque cellule comporte un nuiero de segment GO qui permet la sélection d'une réponse appropriée pour chaque classe d'çY*~ç- tion système. Ce mode de signalisation est possible, qu'un processus ait ou non la disposition du processeur central, et permet 1'utilisation de mécanisme indépendants pour prendre en charge les exceptions. Fonctionnement du mécanisme d'erreur machine. Outre le cas exception fonctionnelle et le cas exception interdite, existe le cas d'erreur machine. Si une erreur machine est détectée par le hardware de l'un des éléments du système de traitement# des données, il y a exécution de 110 pération 1700 Figure 17. Ceci permet la mise en oeuvre du mécanisme d'erreur machine. L'action exécutée par le mécanisme d'erreur machine à l'issue de son intervention dépend du positionnement de ses bits ME et RS, du maque de contrôle hardware représenté Figure 2, en 208. En outre, cette action varie selon que l'o pération pouvait être relancée ou non, dans le cas où elle pouvait être relancée de la réussite ou de l'échec de cette relance. Le mécanisme d'exception machine comprend deux aspects ;premièrement la prise en charge des erreurs du processeur central et deuxièmement la prise en charge des erreurs en mémoire principale. La mémoire principale détecte les erreurs dans les données transférées depuis le processeur central ou vers celui ci, et ce au moyen de bits redondants. Bien que la mémoire principale corrige automatiquement certaines erreurs, dans le cas où il y a bit multiple ou erreur non corrigible, elle fait signaler par le processeur central la classe appropriée d'exception machine. Dans le cas d'une erreur du processeur central ou d'une erreur de mémoire principale, deux phases de fonctionnement sont mises en oeuvre. La première phase du mécanisme essaie d'éliminer l'erreur (relance pour les exceptions processeur ou utilisant de codes correcteurs d'erreurs) et dans la seconde phase, le mécanisme signale le résultat de toute tentative au mécanisme d'exception central sous le contrôle d'informations contenues dans le masque de contrôle hardware. Il est à noter-qu'une distinction est établie entre une erreur et une exception car une erreur peut générer ultérieurement l'exception signalée au mécanisme d'exception central. Ainsi, une fois que l'erreur hardware est détectee, et que le mécanisme d'erreur machine l'a prise en charge, une exception peut être signalée au mécanisme d'exception central. Le mécanisme d'erreur machine représenté Figure 17, opération 1702, masque les autres erreurs machine. Par suite, si d'autres contrôles indiquent que d'autres erreurs machine se sont produites, elles sont ignorées car on a remarque que les erreurs machine ont très tendance à se répéter. S'il n'existait pas de masque, on risquerait de tourner sur une boucle sans fin ce qui n'est pas souhaitable. Ainsi, dans la réalité, les erreurs machine sont masquées pendant le fonctionnement du mécanisme d'erreur machine. Les erreurs machine sont masquées jusqu'au point où soit les instructions sont effectivement relancées soit l'état erreur machine est adopte. L'opération 1704 demande si l'opération peut être relancée ou non. D'une façon générale, toutes les instructions introduisent certaines informations, exécutent des tests de validité portant sur les autorisations d'accès et les zones de données, et exécutent éventuellement certains calculs dans les registres de travail de la mémoire auxiliaire sans modifier le contenu des cellules de me- moire principale ou des registres généraux. Ultérieurement, l'instruction modifiera le contenu de certains registres généraux ou de cellules de stockage tout en exécutant éventuellement des calculs ou des opérations de contrôle supplé- mentaires. Avant l'exécution de la modification, l'instruction est dite dans sa phase initiale.Si une exception est détectée pendant la phase initiale d'une instruction, l'instruction peut être considérée comme n'ayant pas été exécutée et elle peut être réexécutée une fois que la cause de l'erreur a été supprimée. Si, une fois qu'une instruction a modifié les registres généraux ou la mémoire principale, une erreur est détectée, l'instruction ne peut être considérée comme réexécutable mais comme interrompue. Dans l'opération 1704, un bit de relance (voir 1001 Figure 10b ; le bit 5' est le bit de relance bien que cela ne soit pas indique) du bloc de contrôle de processus est testé. La relance en cas d'erreurs machine qui se produit pendant une opération propre à un processus est sous le contrôle d'un bit de relance de l'octet en fonction du bloc de contrôle de processus du processus en cours re présenté Figures 4 et 10. Lorsque 1-e bit de relance est à 0, toutes les erreurs machine sont traitées comme si elles ne pouvaient faire l'objet d'une relance. Par ailleurs, aucune relance ne sera tentée si le processeur se trouve déjà dans l'état erreur machine, autrement dit si le premier bit de masque de contrôle hardware a la valeur "1". Ainsi lorsque le seuil de relance est atteint, autrement dit lorsque la modification des registres a lieu, le bit de relance se trouvant dans le bloc de contrôle de processus prend la valeur binaire 0, validant ainsi un branchement sur l'opération 1706 grâce auquel le bit O du masque de contrôle hardware est testé. Si ce bit est égal à "1", cela indique que le système se trouve dans l'état erreur machine ; ceci se serait produit si le processeur central avait détecté une erreur machine ne pouvant faire l'objet d'une relance ou avait essayé sans succès une relance en cas d'erreur machine avant la mise en oeuvre du mécanisme d'exception central. Ainsi, si l'opération ne peut faire l'objet d'une relance, la machine est déjà passe à l'état erreur machine dans la perspective d'une seconde erreur machine pouvant empêcher le succès de la correction.Ainsi, dans le cas où une seconde erreur machine se produit effectivement avant 1 'exé- cution de la correction, il y a passage à l'état incident système 1708. Cependant, dans le cas où l'opération peut faire l'objet d'une relance on exécute l'opération 1710 qui teste la bascule mode système pour déterminer si une opération de contrôle système était en cours d'exécution. Si une erreur hardware s'était produite dans le mode processus, le mécanisme d'erreur machine se limiterait au seul processus qui était en cours d'exécution et pour lequel l'erreur machine s'est produite. Toutefois, si une opération de contrôle système était en cours d'exécution, il ne serait pas possible de considérer que l'erreur appartient au seul mode processus et l'on considérerait qu'il s'agit d'une erreur système. S'il n'y avait pas d'opération de contrôle système, on procèderait par l'operation 1712, à l'extraction du mot processus courant de la base du système en BAR +56 ainsi qu'il est indiqué Figure 6.Dans ce mot de processus courant figure le numéro JP du processus courant. Ce numéro JP sert à extraire le bloc PCB de ce processus-là et, partant, son bit de relance qui, à l'opération 1714, est testé pour déterminer s'il a été positionné ou non. Si une erreur de firmware de diagnostic faisait l'objet d'un contrôle de la part de l'inspecteur ce bit de relance ne serait pas positionne sinon il introduirait une erreur dans le système. Ainsi, normalement, le bit de relance sera positionné et l'opération 1716 sera exécutée. Cette opération est également exécutée si une opération de contrôle système était en cours d'exécution. Au cours de l'opération 1716, le comptage de relance initial et le comptage de relance courant stockés dans la base du système en BAR +52 et représentés Figure 11i sont transférés dans l'unité arithmétique et logique 1317. Le nombre initial est fixe à une valeur prédéterminer correspondant au nombre de relances effectuées en cas d'erreurs machine. Ces nombres sont stockés dans des registres de travail de l'unité arithmétique et logique. Dans l'opération 1718, le comptage de relance courant est comparé au comptage de relance initial. Le comptage de relance courant est soit égal au comptage de relance initial soit inférieur an comptage de relance selon le nombre de fois où l'instruction a été réexécuté; Si le comptage de relance-courant est inférieur au comptage de relance initial, un branchement est effectué sur l'opé- ration 1720. Ceci se produira normalement lors de la première réexécution de l'instruction. Dans l'opération 1720, le comptage de relance courant est augmen- té d'une unité dans l'unité arithmétique et logique 1317 et retransféré dans la zone de base du système en mémoire. Dans l'opération 1722 les opérations qui sont nécessaires pour redonner à l'instruction son état initial sont exécutées. Ces opérations dépendent de l'e- tat d'avancement de l'exécution de l'instruction et son connues. Ensuite, le masque positionné à l'opération 1702 est restauré par l'opération 1724, ce qui permet la détection d'erreurs machine supplémentaires dans le système.Dans l'opération 1726, le bit de relance d'opération qui est le bit 1 du masque de contrôle hardware est positionné à la valeur binaire UN pour indiquer au système que l'instruction n'a pas été exécutée normalement lors de sa première tentative d'exécution. tant donne que l'instruction est désormais prête à être réexécutée et que le mécanisme d'erreur machine a enregistre les paramètres appropriés, 7'opération 17?8 retransfère le contrôle du mécanisme d'erreur machine à la même instruction. Toutefois, si lors de la réexécution de l'instruction, une autre erreur ou la même erreur est détectée, l'opération 1700 sera à nouveau exécutée. Dans le cas où l'opération peut faire l'objet d'une relance, la séquence d'étapes décrite antérieurement jusqu'à l'étape 1718 sera exécutée. Dans l'opération 1718-, le comptage de relance courant peut désormais être égal au comptage de relance initial et un branchement est alors effectué sur l'operation 1730. Dans l'opération 1730, une bascule de la mémoire auxiliaire 1317a sera positionnée. Cette bascule est la bascule de la première série de relances qui indique que la séquence de relances a été exécutée. Pour les erreurs machine une série de deux séquences de relance est toujours tentée par le mecanisme de relance. En cas d'échec de la première séquence de relance, la bascule de série de relance est postionnée en 1732 et en 1734 le comptage de relance courant est à nouveau mis à zéro, pour la seconde séquence de relance. Dans l'opération 1736, un délai d'une durée fixe, liée au modele, est déclenche pendant lequel le processeur central n'est plus disponible pour le traitement normal, ce délai étant de l'ordre de 3 millisecondes. A l'achèvement de ce délai la seconde séquence de relances est lancee, ainsi qu'il a été expose précédemment aux opération 1720 à 1726. Si à l'issue de la seconde séquence de relances l'opération n'a toujours pas réussi, autrement dit si une erreur machine a été détectée, le mécanisme d'exception central recevra les paramètres appropriés indiqués Figure 18a. Ceci est indiqué à l'opération 1730 par la réponse OUI et le branchement sur l'opera- tion 1706, Figure 17. En 1706, le masque de contrôle hardware sera testé pour déterminer si l'état erreur machine existait ou non. S'il existait, on passera alors à l'état incident système en 1708. Toutefois, la réponse, normalement, sera NON et par suite l'opération 1738 sera exécutée et aura pour effet de positionner le bit O du masque de contrôle hardware à la valeur binaire "1".Cette opération sera également exécutée dans le cas où une erreur ne pouvant faire l'objet d'une relance aura été détectée, avec un masque de contrôle hardware différent de "1". Dans l'opération 1740, le registre AJ recevra l'erreur classe O et un nu métro de type indiquant le type d'exception détecté. En ce point, le mécanisme d'exception machine prépare le mécanisme d'exception central à recevoir les pa ramètres appropries. Ainsi, la classe et le type représentés Figure 16 sont po sitionnés. Dans l'opérations 1742, le masque positionne à l'opération 1702 sera restauré, ce qui permettra la détection d'autres erreurs machine. Dans l'operation 1744, la bascule de traitement d'exception sera positionnée pour indiquer que le mécanisme d'exception central a été mis en oeuvre et ensuite un branchement sera effectué sur l'opération 1642 de la figure 16 pour provoquer une exception système.Cette condition provoquera l'accès à la base du système, cellule d'exception système 0, qui indique un sémaphore auquel un processus prêt à prendre en charge le type d'erreur hardware qui s'est produit, à savoir erreur machine classe 0. Ainsi, lorsque le relance en cas d'erreur machine ne réussit pas, le processeur central prend l'état erreur machine, autrement dit le bit 0 du masque de contrôle hardware prend la valeur binaire "1", et le mécanisme d'exception central est mis en oeuvre directement ce qui provoque la génération de l'exception classe O appropriée. La relance d'une opération n'est considérée comme un échec qu'après l'exécution de deux séquences de relance. Ensuite, le mécanisme d'exception central prend en charge l'erreur au cours de la seconde phase d'exécution en fonction de la signalisation effectuée par le mécanisme d'erreur machine. Cette prise en charge a été indiquée précédemment Figure 16. La présente description n'a porté que sur une seule matérialisation de l'invention. Les spécialistes concevront que de nombreuses variantes et modifications peuvent être appropriées à cette matérialisation sans pour autant sortir du cadre de l'invention revendiquée. Ainsi, un grand nombre des opérations in diquées ci-dessus pourront être modifiées ou remplacées par des opérations differentes permettant d'atteindre le même résultat tout en respectant l'esprit de l'invention revendiquée. L'intention est donc de ne limiter l'invention qu'au cadre des revendications. REVENDîCATIONS 1/ Système de traitement de données disposant d'un processus contrôlant le processeur central, d'une fonction de détection d'erreur et de moyens de contrôle adaptés pour l'exécution d'une séquence d'opérations multiples de traitement élémentaires, caractérisé par le fait que ledit système comprend:: - des moyens d'analyse permettant de détecter des erreurs dans ledit système, - des moyens d'indication d'erreur obéissant auxdits moyens d'anal y- se et capables de fournir des informations sur lesdites erreurs s'étant produites dans ledit système, et - lesdits moyens de contrôle obéissant auxdites informations pour identifier le mode de traitement desdites erreurs, lesdits moyens de contrôle basés sur ledit mode validant un programme d'erreur prenant en charge chacune desdites erreurs. 2/ Le système selon définition de la revendication 1 dans lequel lesdites informations délivrées par les moyens d'indication dierreur comportent un numéro de classe identifiant la nature de ladite erreur et un numéro de type identifiant la cause de ladite erreur. 3/ Le système selon définition de la revendication 1 dans lequel ledit mode identifié. par lesdits moyens de contrôle est un mode de traitement par processus s'utilisant lorsqu'un processus contrôle le processeur et que la dernière instruction exécutée pour le compte dudit processus n'était pas achevée au moment de la validation desdits moyens d'indication d'erreur. 4/ Le système selon définition de la revendication 1 dans lequel ledit mode identifié par les moyens de contrôle est un mode de contrôle du système s'u- tilisant lorsqu'une opération de contrôle système est en cours d'exécution. 5/ Le système selon définition de la revendication 4 dans lequel ledit mode de contrôle du système identifié par les dits moyens de contrôle est validé même Si un processus se trouve avoir le contrôle du processeur central. 6/ Le système selon définition de la revendication 1 dans lequel ladite erreur détectée par les moyens d'indication d'erreur est une erreur machine 'drue au système de traitement, lesdits moyens de contrôle comportant des moyens de relance desdites opérations qui précédaient ladite erreur machine et dans lequel ledit système comprend en outre: - des moyens de comptage du nombre d'appels au moyen de relance - des moyens obéissant à deux séries de relances de ladite erreur machine pour valider lesdits moyens dindication d'erreur. 7/ Le système selon définition de la revendication 6 dans lequel ladite erreur machine est considérée comme survenant soit en mode de traitement de processus soit en mode de contrôle du système. 8/ Le système selon définition de la revendication 1 dans lequel lesdits moyens d'indication d'erreur sont validés lorsque lesdits moyens de contrôle sont en train d'exécuter ledit programme de traitement de i'erreur précédente - lesdits moyens de contrôle obéissant à ladite seconde erreur pour changer ledit mode, et - lesdits moyens de contrôle mettant également un terme audit processus ayant provoqué ladite erreur initiale. 9/ Le système selon définition de la revendication 3 dans lequel lesdits moyens de contrôle obéissant auxdites informations valident un mécanisme de déroutement pour prendre en charge ladite erreur dans ledit mode de traitement par processus, ledit mécanisme de déroutement imposant ltarrêt dudit processus à l'instruction dans laquelle erreur a été détectée ; ledit mécanisme de déroutement générant un appel de procédure. 10/ Le système selon définition de la revendication 9 dans lequel ledit mécanisme d'exception de processus de déroutement comprend en outre - des moyens de stockage desdites informations associées à ladite erreur dans un bloc PCB de contrôle dudit processus, ce bloc étant enregistré en mémoire centrale du système - des moyens obéissant audit processus de stockage pour exécuter une instruction de simulation de préparation de pile et d'entrée, lesdits moyens diexécution validant ainsi lesdites informations relatives à ladite erreur à traiter. 11/ Le système selon définition de la revendication 3 dans lequel lesdits moyens de contrôle obéissant auxdites informations valident un mécanisme d'interruption qui prend en charge ladite erreur dans ledit mode de traitement par processus, ledit mécanisme d'interruption assurant lléchange dudit processus exécuté avec un nouveau processus. 12/ Le système selon définition de la revendication Il dans lequel ledit mécanisme d'interruption comprend en outre : des moyens de stockage desdites informations associés à ladite erreur dans ledit bloc PCB dudit processus, et - des moyens obéissant auxdits moyens de stockage pour suspendre ledit processus et exécuter une simulation dropération V, ledit nouveau processus obéissant à ladite simulation dropération V pour prendre en charge ladite erreur. 13/ Le système selon définition de la revendication 4 dans lequel lesdits moyens de contrôle obéissant auxdites informations valident un mécanisme d'interruption prenant en charge ladite erreur dans ledit mode système. 14/ Le système selon définition de la revendication 1 dans lequel ladite erreur est une exception fonctionnelle qui étend et complète les possibilités existantes dudit système en permettant la prise en charge d'un évènement ou d'une condition que ledit système ne prend pas en charge actuellement. 15/ Le système selon définition de la revendication 1 dans lequel ladite erreur est une exception interdite indiquant que ledit événement ou ladite condition détectée était incorrect, ladite exception interdite mettant un terme à lBexécu- tion dudit processus. 16/ Le système selon définition de la revendication 1 comprenant en outre - des moyens de masquage d'une classe erreur prédéterminée dans ledit système, lesdits moyens de masquage neutralisant lesdits moyens de con trôle validés par lesdits moyens d'indication d'erreur à la suite de l'exécution dudit programme pour la prise en charge de ladite erreur. 17/ Le système selon définition de la revendication 13 et comprenant en outre : - des moyens obéissant auxdits moyens de contrôle en mode système pour positionner une porte indiquant un état critique, et - lesdits moyens de contrôle obéissant auxdits moyens dlindication d'erreur validant la condition incident système.