Brevet FR2289004A1 — publié le 19760521

HISTORIQUE Domaine de l'invention La présente invention concerne les systèmes informatiques en général et plus particulièrement un système et une méthode permettant de contrôler les processus dans un contexte de multiprogrammation/multitraitement. Description de l'état de la technique Les ordinateurs sont passés successivement, sur le plan de la technologie, de la première génération, caractérisée par les tubes à vide, à la seconde génération, caractérisée par les transistors, et à la troisième génération, caractérisée dans l'ensemble par les circuits intégrés. Ces différentes générations de technologie ont été accompagnées de différentes génération 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 (ou en direct) online, 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 lot s dans lequel les travaux étaient exécutés essentiellement en série Les systèmes hardware/softw'are de la troisième génération sont également 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 être prises en charge au fur et à mesure quldles 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 intrasystème et intersystème seront nécessaires tant sur le plan du hardware que du software. 2. "Le système sera contrôlé principalement 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 Entrée et non pas des instructions enregistrées. Le développement de cette possibilité dépendra de la soumission dinformations en temps réel. Le retour d'information aura donc une très grande importance. Des interactions adéquates entre interfaces intergiystème et intrasystème seront vitales. Les relations entre données (bits de communication) et programmes (bits d'information) devront être défi nies avec soin. L'existence de registres à décalage multiples, de mémoires mortes économiques et de grande capacité et d'éléments semiconducteurs mult, onc tions fabriqués 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 opérations spécifiques. Ces bascules seront positionnées par lwsnsertion en parallèle ou en série-parallèle de bits sur un sous-ensemble de conducteurs aboutissant à chaque bloc logique ainsi qut 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 dauto- 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 contrôle, les informations dlexploitation 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 apparamment instantanée de iBorganisa- tion diun 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 réduite, voire éliminée. Cette caractéristique est étroitsement liée à la précédente. La mise au point de la conception du système 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 des données intersystème 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'objet nir le temps de réponse nécessaire en sortie. Dans le présent contexte, le temps réel n'implique par llentrelacage 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 contraries imposées par les temps de réponse demandés. 5. "L'extension du système sera facilement réalssabfe. La conception du hardware et du software sera modulaire sur le plan fonctionnel La puissance de calcul pourra être modifiée sans refonte du système Ceci n'implique pas que le jeu d'instructions sera variable. Toutefois, des sousensembles hardware emboîtés seront disponibles pour faire penint aux sous-ensembles sofware emboîtés. En fait, Irembonement 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 contien nent couramment des macros emboitéesqui assurent des fonctions de communica tion 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 7mpbXsion (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 a été relativement simple, le travail ou le programme étant considéré comme l'unité élémentaire de traitement. Pour tout travail ou toute transaction lancé par l'uitlisateur, un programme était généralement lancé et se déroulait pratiquement san interruption jusqutà l'achèvement du travail ou de la transac tion en question. De nombreux travaux s-imples 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 les plus diffici les nécessitaient cependant des opérations multitâches et créaient d'autres processus au fur et à mesure de leur exécution. (On notera qu'un processus est un concept impliquant l'exécution d'une certaine acti#vité et ne doit pas être confondu avec le concept de programme qui est une descritpion d'activité pouvant être utilisée par un ou plusieurs processus On peut dire qu'un pro cessus ou un processeur exécute un programme. Voir Glossaire). L'idée de considérer un processus comme unité élémentaire de traitement a fini par s'imposer dans le contexte multiprogrammation/multitrai ~tement des ordinateurs de la troisième génération. Dans un tel contexte où de nombreux utilisateurs demandent à ê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, Is communica tion avec des processus ou leur intercommunication ainsi que le contrôle et l'affectation des ressources à ces processus compte tenu notamment des impé rat ifs 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. Ca. Hauch et B.A. Dent intitulé "Mécanisme de pile des 8-6500/ B-7500" - Actes dela Spring Joint Computer Conference de l'AFIPS, 1968, pp. 245-261, Thomson ; Washington D.C. et dtun article de J. G. Cleary intitulé "Traitement des processus sur Burroughs 8-6500" Actes de la Quatrième Conférence Informatique Australienne Adelaide, 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 procédures de programmes, des tableaux de données -et 'état du processus en cours la pile fonctionne comme une zone de mémoire selon le principe dernier entré, premier sorti 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 diun programme en cours d'exécution. 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 contrôle de la multiprogrammation et du traitement en parallèle. Toutefois, les techniques de mécanismes de piles exposées dans l'article ne sont pas totalement satisfaisantes pour les ordinateurs de la quatrième génération principalement parce qu'elles assurent pas une protection suffisante-de l'information 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 IIACM 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 système permet à un 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 contrôlés par un système dxex- ploitation qui utilise des primitives (pseudo-instructions) émises par le processus et par l'utilisation dtun 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 KIT -Known Item Table- qui pointent vers le même élément de table AIT -Active Items Table- 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 l'évènement se produit.Par suite, le système diexploitation crée un élément dans une file d'attente d'évènement associée à llévènement qui identifie le processus demandeur attendant la notification. En ce point, le processus demandeur peut continuer à s'exécuter ou il peut se suspendre en émettant une primitive BLOCK. On dit que I lé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ême primitives. Les informations pe4vent alors être transférées diun pro cessus à l'autre ou les processus peuvent être associés d'une quelconque autre façon pour exécuter une tache donnée.' D'autres 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 niof- fre pas un historique dynamique et ordonné du programme en cours d'exécu tion mais introduit certains concepts de multiplexage et de gestion d'évène- ments par software. Cette technique rassure pas non plus la protection dtun processus vis-à-vis diun 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 d'un système hardware/ firmware (ou matériel/ensemble de microprogrammes) qui assure un adressage et une translation efficace des processus, offre les strUctures d'information identifiant l'état du processus et permettant en outre, au processus de contrô ler ces états en assurant une protection vis-à-vis des autresprocessus et -dieux-mêmes grâce à des niveaux de privilèges et qui assure une commutation efficace des processus ainsi qu'une synchronisation avec les autres processus ~et permetwtaux utilisateurs qui ont écrit leurs programmes de façon modulaire de passer d'un module de programme à l'autre. Ees~impératifsQ ainsi que d'autres et les problèmes qui s'y attachent pour la mise au point d'ordinateurs qui exécutent efficacement les fonctions demandées ainsi que quelques suggestions relatives à l'obtention de ces fonc tions, sont exposés dans une mémoire de Butler W. Lampson intitulé Scheduling Philisophy for Multiprocessing System" publié dans lgACM 11 (5). Toutefois, les suggestions données dans cet article ne semblent pas résou dre les problèmes. OBJET DE L'INVENTION L'objet principal de la présente invention est d'obtenir un système et une méthode améliorée pour le contrôle de processus dans un contexte de mùl t iprogrammation/mul t i traitement. Un autre objet de l'invention est de fournir un système et une métho de pour le contrôle de processus qui réduisent le coût d'exploitation. Un autre objet de l'invention est de fournir un système et une méthode pour le contrôle de processus dans lesquels l'état du processus et les informations de contrôle sont centralisés. Un autre objet de l'invention est de fournir les structures hardware/ firmware pour le multiplexage des processus. Un autre objet de l'invention est de fournir un processeur virtuel ayant une vitesse nulle. Ces objets de llinvention, ainsi que d'autres, apparaitront dans la description dun exemple de réalisation préféré en liaison avec les dessins annexés. EXPOSE DE L'INVENTION Dans un contexte de multiprogrammation, les processus ont quatre états possibles : exécution, prêt, attente et suspension. Un processus se trouve à l'état d'exécution lorsqu'il a le contrôle du processeur. Llétat prêt équivaut à l'état d'exécution à cette différence que le processus nia pas le contrôle du processeur. Un processus est à l'état attente s'il ne peut se poursuivre avant la survenance d'un évènement particulier. Un processus suspendu est un processus qui a été arrêté pendant un certain temps et qui peut être repris ultérieurement. Chaque processus de l'ordinateur est associé à une structure hardware appelée bloc de contrôle de processus (PCB) qui sert de processeur virtuel, dont la vitesse est nulle, et qui contient les informations de contrôle nécessaires au processeur logique clest-à-dire Ensemble des ressources hardware et des informations de contrôle nécessaires à llexécu- tion d'un processus. Le processeur virtuel (PCB) est substitué au processeur réel (CPU) lorsque le seul travail du processeur est d'attendre learri- vée d'un signal qui lui sera envoyé par le processus à l'arrivée du processus ou après celle-ci.Les cas dans lesquels un processus ne commence à utiliser un processeur que comme dispositif d'écoute sont les suivants a) lorsque le processus passe de llétat d'exécution à l'état deatten- te ou b) lorsque le processus passe de l'état d'exécution à l'état suspension Dans les deux cas, le processeur est abandonné et le bloc PCB lui est substitué. L'adresse absolue d'un bloc PCB est définie par deux entiers J et P, parfois appelés nom logique du processus. A une adresse absolue con nue du firmware est implantée une table appelée table J. L'e:lémebrt noj de appelée table la table J contient l'adresse absolue > Pj, d'une table/P. L'élément nOp de la table P contient l'adresse absolue du bloc PCB définie par le nom logique (J, P). 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 à la description détaillée ci-après qui devra être lue parallèlement à la consultation des plans. La figure 1 est un schéma par blocs d'un système multiprogramma ble matérial#sant l'invention. La figure 2 est une représentation schématique de différentes structures hardware utilisant II invention. La figure 3 donne l'explication des abréviations utilisées pour les zones de stockage réservées des registres décrits 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 lxin- vention. 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 des processus du segment GO. La figure 9 est un schéma éclaté d'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 j'la à 1 ir sont les schémas des structures de la base du système. La figure 12 est un schéma des systèmes deadressage 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 à 14i représentent les schémas de fonctionnement du commutateur firmware. DESCRIPTION DETAILLEE DE L'INVENTION La présente invention repose sur l'utilisation de l'équipement dé- crit après dont la coordination sera assurée par un système d'exploita- tion 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 dwentrée/sortie (IOC)- 105. Chaque sous-système périphérique est constitué d'une unité de contrôle de périphériques (PCU) 106i diun certain nombre d'adaptateurs de dispositifs (DA) 107 et d'un maximum de 256 périphériques dtentrée/sortie 108. Le sous-système de stockage 102 est constitué de 1 à 4 modules de mémoire à semiconducteurs ayant une capacité unitaire comprise entre 32 et 512 kilooctets. 1 - SOUS SYSTEME PROCESSEUR Dans le sous-système processeur roi, 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 10C 15 contrôle tous les échanges d'informations entre le sous-système 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 110 et le contrôleur roo 109. 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 calcul) et les lectures en mémoire (introduction dans la mémoiretampon). Le processeur central comporte également l'unité de contrôle d'adresse 131 qui contrôle l'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 temps 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 principale 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 recherché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é ex traites 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 me- moire morte 130 implantée dans l'unité de calcul (se reporter à l'ouvrage intitulé Microprogramming : Principles and Practices de Samir S. Husson publié 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 n1est 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 centrål assure l'émulation de système autres que le présent système. Les émulateurs 112 sont des éléments du firm- ware, 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 dentrée/sortie peut normalement prendre en charge jusqu'à 32 unités 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 microprogrammé autonome qui diminue la charge imposée au processeur central 104 en assurant le contrôle des périphériques- drentrée/sortie 108 pendant l'exécution des opérations dientrée/sortie. Pour cela, unité de contrôle de périphériques exécute les instructions contenues dans un programme de canal. Ce programme fait exécuter à llunité~)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 quXel- les 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 à 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-système périphéri que 103 sont les suivantes : 1. Transformation des instructions issues du processeur cen tral en une série d'ordres susceptibles d'être exécutés par le périphérique concerné. 2. Tassement et éclatement des données en fonction de la forme utilisée par le processeur central ou le périphérique-,ap p, ié. S 3. Signalisation au processeur central de l'état du sou tème et des périphériques placés sous sa dépendance. 4. Lancement et traitement des procédures de détection et de réparation erreurs. 5. Possibilité de diagnostics on-line d'un périphérique sans perturber les possibilités d'utilisation en commun des péri phériques du processeur de périphériques en question. Une unité de contrôle de périphé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 enterez 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 selon la taille de l'ordinateur. Les modules de mémoire sont organisés selon un entrelacage quadruple ce qui fait que, l'accès aux quatre modules s'effectue séquentiellementdle module 1 contient les 8 premiers octets, le module 2 les 8 octets suivants, etc.). Lientrelaç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 retirés de l'utilisation sans détruire pour autant l'adressage contigu. La mémoire principale 102 utilise un support capacitif constitué de microplaquèttes à 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 hard ware 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 regis tre BAR est initialisé au moment de llinitialisation 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 dwentrée/sortie qui définissent la confi guration des sous-systèmes pér#iphérlques,le firmware nécessaire à la com mande du-processeur central ou des microprogrammes 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 système. Limplantation des microprogrammes en mémoire principale -ou en mémoire dépend de la confi guration du système et des applications dont lé 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 dl instructions. A. FORMATS DE DONNEE S Les informations sont transférées entre la mémoire et le processeur central par mulliples 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 enrésuite que dans le présent contexte le mot donnée ne stapplique pas aux informations servant à la parité ou à la correction des erreurs. B, OCTETS Les bits constituant un octet sont numérotés de 0 à 7 de la gauche vers la droite. Les octets sont traités 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. REPFRESENTATIOIS DES DONNEES Toutes les données sont sous forme binaire, mais elles peuvent être interpré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 chatte. Le jeu de caractères alphanumériques est représenté par le code+EBCDIC. 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écutivement à partir de zéro; chaque nombre représente l'adresse de Iloctet. On considère aucun groupe octets consécutifs est aligné au demi-mot au mot, au mot double ou au mot quadruple si l'adresse de l'octet gauche diun 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é dlinformation 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 n0 déposée le même jour et intitulée "Développement d'Adresse Segmentée≈dont le cesssionnaire est le même que celui du pré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 chattes de bits. Le processeur central 104 contient 16 registres généraux de 32 bits numéros GR0 à GR15. Les registres généraux GR8 à GR15 peuvent également s#ervir de registres d'index. Lorsqu'ils sont utilisés comme registres d'index, ils sont référencés X0 à 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 (E3R) ont le même format que les compteurs d'instruction IC et que les registres de pile 202-203. Les registres de base sont utilisés 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 utl#eslr,egistres scientifiques (SR) sont installés en option pour les calcul#des nombres binaires en virgule flottante. Il existe 4 registres scientifiques de 8 octets qui sont référencés SR0 à SR3. Les registres scientifiques ont le format 204-205 de la figure 2. l. 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 -diétat (STR) 207 est un registre de 8 bits qui enregistre les évènements intéressant la pro cédure en cours d'exécution tels que par exemple, dépassement de capacité négatif provoqué 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 diunepile à refoulement associée avec la pro cé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 adresse (BAR} 206 est un registre de 28 bits qui spécifie adresse absolue ra plus petite en mémoire principale accessible parsffitware. 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 in - formations sur l'état de la machine. J. FORMAT D'INSTRUCTION It 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 dtoctets, Les instructions occupent des positions de mémoire consécutives. L'adresse de I toctet de gauche est un multiple de 2 et correspond à l'adresse de ltinstruction. 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ésentent un ou plusieurs opérandes. Un opérande peut être un désignateur de registre, un désignateur de déplacament,une syllabe 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érieu rement par une série dtétapes de travail au moyen dun langage de contrôle de travail. Une étape de traVail est une unité de travail à laquelle sont affec tées des ressources-hardware. Une étape de travail comporte plusieurs taches. La tache 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 correspondent 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écuteen réalité à un moment donné). Un groupe de processus est un ensemble de processus associés nécessaires à ltexé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 Itexécution 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 ensemblende 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 dtune é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'exécution. Une autre caractéristique 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 J 503. Cette table contient un élément pour chaque étape de travail se trouvant dans le système. Chaque élément de la table J 503 désigne une table P 504 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 J 505 indexé par le numéro J par l'intermédiaire de la partie arithmétique 506 de t'unité de calcul 111 (figure 1) permet d'accéder à un élément de la table J 503. Cet élément contient un pointeur de table P qui, lorsqu'il est indexé 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 utili sant 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 décrivons 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 hardwaré 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 lXirrégula- rité des besoins en mémoire, la mémoire est affectée en segments de dimen sions variables et l'affectation de la mémoire peut être restructurée pendant l'exécution dtun processus. Il en résulte aucun 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écri vons 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 à des segments say rattachant par llintermédiaire d'un système de descripteur de segments. En accédant à un descripteur de segment, un processus peut obtenir l'adresse dtun 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 dune 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 N 73 42706 déposée le même jour intitulée "Protection des informations dans un ordinateur multiprogramme/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 maximum 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 t6 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 transIatés#par le système d'exploitation ; un processus doit donc connaitre 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 renferment cette information et qui portent le nom de mots d'espace adresse référencés ASW0-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 chatte de pointeurs et- ie 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 dioctets diespace 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 lton 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 descrip teur 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 princi pale 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 adresse mémoire du segment dans le descripteur de segment qui est le seul endroit où 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émoi re principale ou qu'il devra éventuellement être translaté en mémoire prin memoire, cipale. Pour les détails de la segmentationivoir Demande de brevet n0 déposée le même jour et intitulée "Développement d'Adresse Segmen tel ; L'ordinateur décrit ici assure la protection des procédures et des données en interdisant toute interférence entre processus ainsi que ltutili sation réciproque de leur espace adresse de façon inappropriée. Cette protec tion est réalisée en restreignant l'adressage au moyen de la segmentation mémoire et dun système en anneau. Les tables de segments isolent llespace adresse des divers proces sus du système. Les processus utilisent toujours une adresse segmentée pen dant 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 hard ware vérifie que 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 espace adresse dlun 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 enti té 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 qulil nty a pas de conflits d'adresses. Ainsi, la segmentation protège les programmes utilisa teurs contre toute interférence réciproque et le système d'exploitation vis à-vis'des programmes utilisateurs. Les segment s 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 classés d'anneau sont numérotées de 0 à 3. Chaque anneau représente un niveau privilégié du système, le niveau 0 (anneau le plus interne) ayant le privilège le plus élevé et le niveau 3 (anneau le plus externe) le moins élevé. A chaque procédure du système est affecté un numéro panneau 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 dxun 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 autorisé. 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 spécifient 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 instruction de procédure est exécutée, le numéro 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 maxiimum de numéros 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 0 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 0 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 dune 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 spéciaux appelés segments de pile. Un segment de pile est constitué d'un certain nombre d'éléments consécutifs appelés supports de pile 701 (figures 7A et 7B) qui sont affectés dynamique ment à chaque procédure. Le premier support de pile est chargé au sommet du segment et les supportssuivants sont chargés par dessus. Le dernier sup port 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 daris 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 communi cation 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 emboués suivants créent des supports supplémen taires.Chaque sortie de l'une de ces procédures appelées entraîne llélimi- nation drun support de pile dans la pile. Ceci permet de conserver l'histo- rique 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 ntest donc pas nécessai re 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 softw are, 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 proces sus 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 dientrée/sortie pendant le traite~ ment de travaux associés et à 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 pour 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 zone état qui définit l'état actuel du processus correspondant. Un processus est à llétat d'exécution lorsqu'il dispose du processeur central. Cet état entraîne la fourniture diun 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 con servie 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 nia pas la disponibilité du processeur central car il nia 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 à l'état attente lorsqu'il ne peut se poursuivre avant l'arrivée drun é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 Ilé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 qutun processus suspendu n'est pas actif et qu'il ne peut ni recevoir notification d'évènements ni utiliser le processeur central. La suspension dtun processus s'effectue dans les conditions suivant tes: (1) Par l'exécution d'une inStruction diarrêt (à la suite de l'achève- ment 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 lwarrivée d'une exception provoquant le revoi au système d'exploitation. B. COMMUTATION DE PROCESSUS Les processus passent d'un état à autre soit volontairement en cours de déroulement soit involonairement sous lteffet 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 (quiseront décrites plus loin) pour manipuler les processus qui sont à 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-g. Un dispositif 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 également un élément appelé mot de file de processus interne (IPQW) qui identifie le début 805 de la file prêt 803c-803g du segment GO 802. Ainsi, le commutateur peut examiner tous les processus prêts en consultant la file prêt 803c-803g, Lorsque te processus en cours d'exécution change 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 liarrivé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 parti culiè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 près 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 syn chronisation 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 (Iiopération émettrice est souvent appelée opéra tion 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. Llopé- ration réceptrice examine un sémaphore spécifié et reçoit le signal.Si un signal est présent, le processus récepteur continue à slexécuter. Toutefois, s'il nly a pas de signal 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 à lwétat attente dans la file du sémaphore jus quia ce qu'un autre processus renvoie un signal à ce sémaphore particulier. Un sémaphore peut donc garder un signal jusqulà 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 envoyé le message. -Ùn message porte le nom du processus émetteur. Il en résulte que de nombreux processus peuvent envoyer par l'intermédiaire dtun seul sémaphore des informations portant le nom de lté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 donné que les sémaphores et les files qui sty accumulent sont utilisés par différents processus, Itensemble 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 orienté vers un sémaphore. Les adresses 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 Irétat d'un processeur central. L'adressage diun bloc PCB s'exécute ainsi qutil 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 0 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 0 ils augmentent de 8 octets. On considère que les emplacements de mémoire sont positifs à partir de 0 de haut en bas alors qu'ils sont négatifs à partir de 0 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 à Itemplacement de référence 0 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 0 à 16, ce derniere#clus, contiennent 4 mots principaux de processus PMW0 à PMW3, chaque mot PMW comportant 4 octets Le mot PMW0 occupe les octets 0 à 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 10b, 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 niest 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 qutit nly a pas stockage du registre scienti du registre fique de la machine et que la zone de stockage/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 compatille est utilisé ou non par le processus ; un 0 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 utilisé. Les autres bits de l'octet fonction sont 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é i002 servent à définir le niveau de priorité du processus associé à ce bloc de contrôle de processus. Cha que processus reçoit l'un des seize niveaux de priorité qui permet dzordon- ner les processus qui se troUten concurrence dans les cas suivants (a) sélection parmi les processus prêts du processus à exécuter (b) range~ ment des processus dans des files. Les priorités vont en diminuant de 0 à 15 et pour un niveau de priorité donné, on applique le principe premier entré, premier sorti . Les quatre bits suivants 1009 de l'octet priorité 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 associé au bloc de contrôle de processus 400. Le bit A zone active 1010 reçoit la valeur binai re 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 lessous-états suivants du processus: (a) lorsqu'elle contient 00 le processus est inactif (b) lorsque~ le 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émaphores (Q/PR/S) ; (d) lorsqu'elle contient la valeur 11 le pro cessus est en train d'être exécuté par le processeur. La zone MOI (milieu d'opération) 1013 a la valeur 1 lorsquwune interruption se produit et est prise en charge pendant I 1exécution d'une instruction, ctest-à-dire avant Itachè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 PMW0 contient le numéro de décor étendu et sert lorsque le sys tème est en mode émulé. Le mot DWI est stocké dans les octets 4-7 du bloc de contrôle de #processus. Le détail du mot PMWI 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 nla de signification que dans le contexte d'un multitraitement, sinon cette zone est à zéro. Le deuxième 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 utilité 1022 lorsqu'un processus se trouve dans un état différent de ceux mentionnés ci-dessus. Le mot PMW3 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 PMW 3, 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 diaucun décor étendu. La zone DETA 1025 est adresse absolue de la table décor étendu en unités de 16 octets et nta de signification que si la zone DETSZ n'est pas à zéro. La table décor étendu est constituée des éléments DETSZ. Chaque élément a une longueur d'un octet. Le DEXTième élément de la table définit la possibilité qu'a le processus de exécuter dans le mode décor étendu DEXT. Lorsque le DEXT me octet est à zéro, le numéro de décor étendu ième DEXT n'est pas autorisé alors que si le de DEXT octet est à 1le 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 10a). Les octets 16 à 23 du bloc PCB 400 contiennent deux mots d'espace adresse ASWO et ASW~7 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 indiqué figure 10h. La taille du tableau de mots décrivant des tables de segments est définie par le nombre de mots de tables de segments dtun 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 lOi. Ce mot d'exception contient un pointeur (SEG, SRA) 1029 renvoyant à une table de classes d'exceptions qui définit liaction-à entreprendre à la suite drune 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 processus n'est pas en train de s'exécuter et ce mot est représenté plus en détait Figure 10j. Sur cette figure, les bits 0 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 associé à 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 à 0, sinon il se produit une exception "PCB incorrect"; Les octets 32 à 35du bloc PCB 400 coniLennent le mot ICW contenu du compteur d'instruction parfois appelé mot ICC; La figure 10k-donne ie détail du mot ICW dans lequel la zone TAG 1033 doit contenir la valeur binaire 00 (les valeurs différentes de 0 sont interdites dans le compteur d'insu truction). La zone anneau courant 1034 qui occupe les bits 2 et 3 définit le numéro d'anneau 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'adresse relative de segment (SEG, SRA) 1035 qui définissent l'adresse de l'instruction suivante à exécuter La zone MBZ des octets 36 à 39 doit être à 0. (On remarquera que la zone MBZ indique toujours une zone qui doit être à o). Le mot MBZ est testé chaque fois que accès au bloc PCB s'effectue à partir du nom J, P. -Si cette zone n'est pas à 0 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 0, 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 0 pour les comptages de temps lorsque le bit mode de comptage du mot PMW 0 est positionné. Ces mots sont implantés 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 premièrs octets au-dessus de 0 dans le bloc PCB- contient la tranche de par le processeur temps effectivement consacrée/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 diexécution, la valeur du compteur de processus est chargée à partir du mot RTO. Le mot double RUA comptage dlexé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 à O. Toutefois, les mots CET, RTA et WTA (qui seront décrits plus loin) existent dans le bloc PCB que si le bit mode de comptage du mot PMW 0 se trouve à 1. Ils ne sont mis à 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 Iié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 trouvé à 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 ltun 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 d a resse et son accès s'obtient par l'intermédiaire du registr/BAR qui peut faire objet d'une lecture et non d'une écriture. Le registre BAR se trouve endessous d'une zone da 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'étape de travail et un numéro de groupe de processus (J, P) intéressant le processus an cours d'exécution.A partir du nom logit;u'e du processus J, P on obtient l'adresse absolue du bloc PCB correspondant. La taille et 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 parle 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 Jll 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 1 lb. Chaque élément de table J définit l'adresse absolue d'une table P 1205 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 0 et 255 pour indiquer le nombre dlélé- ments de la table P. Une exception t dépassement de la table Ptl se produit si P est supérieur à PTSZ. Chaque élément de la table P 1205 définit l'a- dresse absolue dun 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 lorsquil a la valeur binaire -O et la p ré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 tableau vide se produit). Les bits 1 à 7 de l'indicateur de table P (figure 1 il) doivent Etre à 0, 1106 sinon il se produira une exception élément de table pt 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 1 nid. 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épasse- ment de la table Glg 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 1 le et 11f. Tous les descrip teursXde segments G sont directs et en conséquence le bit indirect 1, 1111 doit être à 0 sinon une exception descripteur de segment incorrect se produira. L'indicateur de présence P 1110 est une zone de 1 bit qui, lorsqut 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ôlé que si ce segment est défini (autrement dit P = 1) sinon il est ignoré.La zone U "indicateur=utilisé" 1113 indique s'il y a eu accès ou non à ce segment. Si le bit U a la valeur binaire 0 cela signifie que ce segment nia 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 nia 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'L se produira.La raison en est qu'un seg- ment 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 diun segment 1214 est définie dans le descripteur de segment G de la figure 1 le 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 1 lof, 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 utilisée comme descripteur de segment G comme dans le cas présent. La zone MBZ 1118 doit être à 0 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éfi nissant le nombre d'octets du segment et la taille du segment est considéré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 implantés entre BAR+8 et BAR + 44. Le format des mots #####cellule exception système EXC est représenté figure 1 1 g. 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 figurant dans 9 emplacements de mémoire classe -- un pan/diexception 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 précédemment et elle contient le nom système GD dtun sémaphore qui sert à transmettre des messages à des processus particuliers lorsqu'unie 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/prêts (Q/R/RDY) ainsi qu'on peut le voir figure9 > 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 à 0, 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' l li. 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 etlà zone comptage relance courant 1127 servent à contrôler le nombre de tentatives dtexécution automatiques d'une instruction avant que se produise une erreur machine qui donnera lieu à la condition d'exception l incident machinez. Ces deux zones sont chargées à la même valeur par une opération re-initialisation comptage relance (non représentée ici). Le mot de processus courant (RPW) représenté figure 11j est implanté dans la position BAR+56 de la base du système 600 et sert à stocker le nom du processus courant ainsi que sa priorité dans le cas d'une architec ture monoprocesseur. Les zones NFS 1128 et 1131 sont des zones de stocka ge et peuvent être utilisées selon les besoins pour une fonction quelconque mais en général,ellés ne sont pas utilisées par la base du système. Le ni veau 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 qutun 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 monoproces seur est rangé dans la zone J, P 1133. Un mot pointeur de table diabsolutisation 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 diabsolutisation 1135 définit la position de la table d'absolutisation (non représentée). La taille de la table dabsolutisation 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 I 1m 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-implanté un mot, représenté figure~ 1 ton, qui indique le numéro de canal (CN) 1140 du dispositif utilisé 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 dtun dispositif utilisé dans l'ordinateur sont indiqués par un mot type de dispositif hardware (figure 1 io) zones 1143, et 1144, la zone RSU 1142 étant réservée au software. Ce mot est implanté dans la base du système en BAR + 76. Un mot similaire ayant un type de format similaire et représenté figure 11P, contient le type et le sous-type du dispositif utilisé lors du chargement initial du système. Ce mot est im plante en BAR+80. Lorsqu'on appuie sur la touche RELANCE d'un ordinateur, on simule Ilaxécution 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 donné figure 1 lq. 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 diun 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 1 li. 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'ad- ressage et l'accès d'un segment utilisateur, d'un segment système ou d'un segment de file de processus à ttétat prêt Q/PR/RDY. La mémoire principa le 1200 comporte une zone 1203 réservée à l'usage du hardware. Un registre 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 I 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ément recherché dans la base du système. Figure 12, le registre BAR 1202 pointe vers lé mot de table J (JTW). Le mot de table J, comme on lsa vu précédemment, posséda un poin teur dirigé##vers la table J 1204. Par indexation sur le numéro J représen té figure 5 on obtient un élément de table J 1216. L'élément de table J com porte 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 adresse absolue du bloc de contrôle de processus 1206. Comme on lia déjà vu, le bloc de contrôle de processus PCB 1206 comporte 2 mots d'espace adresse ASWO 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 espace adresse, le mot ASW 1 1 dans le cas présent, qui possède un pointeur de tableau de mots décri vant 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 à I iu n 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 utilisé pour introduire l'un des 256 éléments dans la table de segments 1210 où se trouve un descripteur de segments. Le descripteur de segment est alors utilisé pour accéder à un segment utilisateur 1211. (Pour plus de détails se reporter à la demande NO déposée le même jour intitulée Segmented Address Development dont 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 à un segment système 1214 qui est utilisé pour stocker les sémap#hores, 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 disposi tion du système et par indexation dans la table G, on obtient un descripteur de segments G qui sert à l'adressage d'un segment système 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 unité de contrôle. Bien quelle soit représentée à part, l'unité de contrôle est an fait incorporéa au processeur central. Elle comprend une unité de commande de mémoire morte 1301, un captateur de contrôla de mémoire diinterface CIA 1302 et les sous unités annexes, le chargeur de mémoire morte CSL 1303 et unité de chargement et de contrôla CLU 1304. L'unité de commande de mémoire morte CSU 1301 reçoit des microinstructions provenant du chargeur de mémoire morte CSL 1303 par l'inter- mé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'exté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é (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: Itunité dtémulation 1316, l'unité arithmétique et logique 1317, l'unité de pointage d'instruction t318, l'unité de contrôla d'adresse t319 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, registre 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 mémoire 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-instrucrion 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 centralisur laquelle nous reviendrons plus loin). En procédant à un regroupement d'remplacements 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 positionné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. DIA 1302 communique avec 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 adresse hardware#sert généralement à développer l'adresse début de séquences divers reurs ou à la séquence d'initialisation. 'L!unité de gestion de données DMU 1321 assure ltinterface entre le processeur central 1306 et la mémoire principale et/ou la mémoire tampon re a présentées figure 1. Cest/l!unité de gestion de données qu'il incombe de détecter l'unité qui contient les informations dont les autres unités ont besoin et d'en autoriser ltintroduction dans les registres du processeur central au moment approprié. Ltunité 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 ltinstruc- tion 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 d'instruction normalement inutilisés. Lkinité de pointage'décode également chaque instruction et-en indique la longueur et le format aux autres unités. L'unité de contrôle adresse ACU 1319 communique avec les unités IFU, ALU, DMU et CSU par ltintermédiaire de l'adaptateur CIA. L'unité ACU 131.9 a la charge de tous les développements adresses dans le processeur central. Toutes les opérations de l'unité ACU y compris les transferts vers l'extérieur,. de ltexté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 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 conserve l'adresse de base des 8 segments de mémoire utilisés le plus récem#ment 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'adressa de base du segment a déjà été développée et stockée. Si l'adressa 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 ltadresse 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 dtune 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 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 (parfois appelée mémoire locale). Elle est essentiellementcons- titué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'ordinateur. Le processeur central comporte également une unité de synchronisa- tion 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 la second système de synchronisation génère les impulsions de synchronisation pour les opérations de unité fonctionnelle à lgintérieur du processeur central. La figure lac donne le format du mot de mémoire morte 1325. Le mot de mémoire 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 1331 (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 adresse suivante. Les six prgeemigssultasdduutersftre KS 1337 sont utilisés conjointement avec la zone BJ 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 dtinterruption 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, orl utilise microun branchement pour provoquer un sous-retour depuis un sousiprogramme. 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 chargé en émettant une commàhde de mémoire morte qui chargera dans le registre KR 1346 Adresse de mémoire morte actuelle se trouvant dales le registre KS 1337 plus la valeur 1 fournie par ltincrémenteur 1338. La possibilité d'utilisation dlun sous programme à un niveau d'embortage 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 transféré dans le registre KR. La possibilité d'utilisation d'un sous programme à 3 niveaux diemboitage est fournie par le registre KU 1348; et la possibilité d'utilisation au quatrième niveau d'emboitage est autorisée par la 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 Ilincrémentaur 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ôla de séquence généré 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 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 dinterruption KA 1339. Une adresse générée par hardware sera rangée dans le registre adresse de la mémoire morte. Certaines interruptions générées par hardware/firmw are sont prioritaires lorsque la bascule de bloc dlinterrup- tion (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 dkinterruption pour les séquences qui sontS > us le contrôle du firmware. Les séquences qui sont sous le contrôle du hardware générant automatiquement la restauration de la bascule de bloc à lgi,sue 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, i teffacement des erreurs effaçables par hardware et l'exécution d'un chargement de la mémoire morte suivie diun balayage de la mémoire morte sous le contrôle du hardware. L1initialisation 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 ointerruption. Un signal entrée panneau de maintenance provoque le branchement de l'unité CSU sur Adresse pré-établie 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é). 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 unité CSU sur l'adresse binaire 2. Cette séquence 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 chargement. Dans l'état chargement, l'unité CSU peut être chargée par le chargeur de mémoire morte CSL 1303, Unité IOC 1305, la mémoire principale 102 ou le panneau de maintenance 1355. Lorsque le chargement steffectue à partir du chargeur CSL, un balayage automatique est déclenché à lti sue 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 micro-opération soit en positionnant ltinterrupteur balayage sur le panneau de maintenance. Un signal de balayage de mémoire morte provoque le branchement de l'unité CSU sur une adresse binaire 0. Un balayage de mémoire morte est placé sous le contrôla du hardware pendant la duréede la séquence.Pendant le balayage, l'horloge système 1320 est hors fonction et il résulte qu'aucune commande ni aucun test n'est exécuté. A l'issue de la séquence balayage, le hardware transfère le contenu du registre retour d'interruption KA dans le registre d'adresse KS, lihorloge système est mise en fonction et le firmware reprend le contrôle Un signal d'erreur hardware provoque le branche#ment de l'unité CSU sur l'adresse binaire 4. Dans le mode de traitement normal, une erreur hardware détectée 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 à entreprendra.En mode diagnostic, les conditions dterreurs qui peuvent être détectées par hardware sont accessibles aux micro diagnostics. Ces microdiagnostics contrôlant l'action à entreprendre. Un signal d'erreur software provoque le branchement de la mémoire morte sur l'adresse binaire 1. Cette adresse est le début dune séquence de signali sationdlerreur 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 etL également représentées 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 llun 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 dtune constante. La zone "données vers busl 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ôtant 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énérer des sous commandes de micro-opérations. La zone P 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'adressa. 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érant 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 à Iiintériéur du processeur central et non pas en un point cenl tral 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 regroupé en un point central. En outre, le décodage est exécuté à llintérieur de chaque unité pour éviter les problèmes de synchronisation qulentraineraient les différences entre les longueurs des câbles. En outre, en décodant les sous-commandes à l'intérieur de chaque unité, les signaux qui sont caractéristiques de certaines conditions existant à ltinté- rieur de l'unité fonctionnelle et nécessaires à la génération de certains si- gnaux de sous-commandes n'ont pas à être renvoyés à liadaptateur 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 ype a, b, c, d q, r. Un décodeur/de micro-opération 1359 reçoit les com mandes d'un mot micro-instruction. La zone provenant du mot micro-instruc tion est décodée et active une des lignes s, t, u, ...g..y, z. Une matrice est constituée en couplant l'impédance de lignes de contrôle pré-déterminées aux aux lignes s, z aux points des lignes Lors du décodage d'une zone issue -d1una 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 o à W représentent la 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 por tes ET 1360-1365. D'autres signaux d'entrée peuvent également être couplés aux portes ET 1360-1365 y compris un signal de synchronisation t provenant de unité de synchronisation centrale.En conséquence, lorsque chaque si gnal de synchronisation t est appliqué, les portes dont tous les-autres si s gnaux rentrée sont appliqués seront validées et fourniront des signaux de micro-instructions à des unités fonctionnelles prédéterminé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 appliqué à ces circuits séquentiellement.Il en résulte que Ja 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 grec ques r à > ) représente une matrice de commutation- permanenta permet tant de fournir des signaux de micro-opérations 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é dune fonction modifiable en spécifiant simplement la séquence de micro-opérations nécessaires. Normalement les données sont écrites 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 1 343. Une bascule de contrôle (non représentée) précise si c'est la moitié supérieure ou la moitié 'lnf#heare du tableau qui doit être écrite. Les données provenant de Unité de chargement et de contrôla CLU 1304 parviennent aux unités CIA/ CSU par l'intermédiaire du bus de maintenance QMB 1344 et sont mises en tampon par la registre de stockage local YO 1343 avant d'etra introduites dans le tableau de mémoire morte 1333.Le registre de stockage local 1343 est utilisé à la fois comme registre de lecture et é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 filesde processus et de passerdiun processus à 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 effectivemerit au niveau d'un sémaphore (après une opération V, une simulation d'opération V relative àllunité IOC ou au traitement des excep- tions).De plus, il met en file 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 dtinstructions en mode natif après la "restitution" d'un processus s'exécutant en mode natif ou après un "contest" si la processus en cours continue à se dérouler et à s'exécuter en mode natif. Il fait également appel au firmware "décor étendu pour (a) un appel provisoire pendant le rangement diun processus sjexé- 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 slexé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 niest en train de s'exécuter, Il existe plusieurs façons d'entrer dans le commutateur et dien sortir qui sont les suivantes (1) La procédure d'initialisation (SlP) permet l'entrée en dernier ress3rt(Voir demande de brevet ne 7342704 intitulée "Procédure d'initial lisation du Système tI 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 llexécution diun processus et l'instruction de suspension y met fin. (3) Les opérations P et V permettent d'entrar dans le commutateur L'opération 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 n0 déposée le même jour et intitulée "Opérations 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 à axé- 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 re- gistres hardware, la mémoire 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 à Itexécution 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 dela 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-opération 1360, 1361 etc. pour extraire le mot IPQW de la base du système 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 (tiTW) 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 prises à llétat-prêt (Q/PR/RDY). Si les bits 16-31 du mot IPQW sont à o,/ 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 à 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é qutil n'existe dans la file des processus à ltétat prêt aucun processus attendant d'utiliser le processeur, la machine se met à Itétat marche à vide 1406. En revanche, si un processus est en train de s'exécuter dans la machine, mais qutaucun 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/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.(Nota : 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 la processeur central sans omises ; il ne faut toutefois pas oublier que les fonctions intermédiaires décrites précédemment continuent à être utilisées). Jusqufici on a déterminé aucun processus se trouvait en attente dans la file des processus à l'état prêt.Avant d'entreprendra quoi que ce soit , il est nécessaire de déterminer si un processus est en train de exécuter dans le processeur central. Ce point est déterminé au bloc 1410 de ltorganigramme 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 où 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 alors d'exécution de labase du sytème du bloc PCB 400. On détermine/ 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 NJ P, le processus CJP conserve le contrôla 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 décor étendu l';nstruction suivante est alors exécutée en mode émulé (décor étendu) et dans le cas où il ne s'exécute pas dans le mode décor étendu línstruction suivante est alors 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 drexécution C JP 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 debnierentré premier sorti ainsi que le numéro de priorité et en commencant 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 GIP contenues dans les registres généraux, les registres de base, les registres scientifiques, le registre T, les registres dté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 1420. Le nouveau processus NJP est alors prêt à être introduit. On accès 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/PR/RDY, le nom sk trouvant dans la liaison de processus PL est alors placé dans le mot RPW, bloc 1424. Il en résulte que le nouveau processus NJP issu de la file des processus à l'état prêt devient le processus CJP, a la possibilité de contrôler le processeur central, n'attend plus dans la file Q/PR/RDY et doit dont être retiré 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 file des processus prêts Q/PR/RDY est mise à jour par le sous-programme firmware UQLK 1425a. Le numéro JP du processus qui vient d'être retiré de la machine est alors placé dans une liaison de processus de la file.Q/PR/RDY car il nia plus le contrô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 lgon range ('ancien processus dans une file des processus en attente et étant donné aucun processus (le nouveau CJP) a le contrôle du processeur central, Isindicateur de disponibilité est mis à 0, 1427 ; en revanche, si aucun processus CJP n'avait le contrôla du pr#cesseur central, l'indicateur de diponibilité serait mis à i.A ce stade, l'affectation du processeur est achevée et un nouveau processus a possession 1I du processeur central alors que ancien processus a été mis dans la file des processus à l'état prêt ; toutefois, le nouveau processus niest pas encore prêt a- être exécuté car ie hardware du processeur central 1306 figure 13a en ltoccurence les registres généraux 1307, les registres de base 1308, les registres scientifiques 1309, le registre T 1310, - lesregistres d'état 1311 et le compteur d'instruction 1312 doivent recevoir des informa- tions de contrôla issues du bloc de contrôle du nouveau processus. En conséquence, la 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 0. La zone MBZ du mot PMW 0 est contrôlée 1433 et si elle ne contient pas la valeur binaire 0 cela entraine une exception ilPCB incorrect". En revanche, si la zone MBZ du mot PMW 0 est à 0 il y a accès au mot la zone PMW 1, 1434. On contrôle alors/MB Z 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 I remplacement appro- prié 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 sa zone est supérieure à 8, le bloc PCB est incorrect ; mais si la zone STWSZ 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 à 0 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 à 0 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 ia 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 rangé dans les registres généraux de la machine 1307.Toutefois, avant d'extraira le contenu des registres scientifiques on contrôle l'octet fonction du mot PMW 0 pour déterminer' si le mode scientifique est utilisé ou non 1451.Si le mode scien tifique 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 Octet fonction du mot PMW 0 pour déterminer si le mode de comptage est utilisé 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 comptages existent dans le bloc PCB et le mot RTA est mis- à jour.Le firmware détermine alors si le numéro DEXT est mis à 0 ou non 1454. S'il n'est pas mis à 0, cela indique qu'il/peut que la machine se trouve dans le mode émulé (utilisation du décor étendu} et lzon contrôle alors le numéro DEXT du mot PMW 0, 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 0 ctest que la machine est en train d'utiliser le mode émulé et elle passe à F. Reve- nons au bloc de décision 1454; si la zoné DEXT a la valeur binaire 0 c'est que le mode natif est utilisé et la machina 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 à llétat d'exécution. Jusqu'ici (a) ou bien un nouveau processus NJP a été introduit pour prendre contrôle du processeur central alors qussil y avait un ancien pro cessus 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 central et 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 dune liaison de processus PL de la file Q/PR/RDY a été rangé dans le mot RPW ce qui a réalisé ainsi l'échange des positions des deux processus et donné le contrôle au processus NJP devenu alors CJP, le contrôla ayant été retiré à l'ancien CJP. Ensuite, on a accédé au bloc PCB du processus NJP et les informations nécessaires à I texé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 gavait 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 processus 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 CJP a eu ou non le contrôle du processeur central et s'il y a eu une liaison de processus libre (FPLS) elle a été extraite et mise en file d'attente et le processus CJP y a été écrit. Toutefois, si aucun processus CJP nia eu le contrôla du processeur central, t'octet état du mot PMW 0 du processus à nouveau NJP est mis à jour, 1460, et l'on détermine/s'il y a eu ou non un CJP dans la machine, 1463.Si aucun CJP nia eu le contrôle du processeur, la'liaison de processus NJP (qui était dans la file Q/FR/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'attenta 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 processus CJP) implanté en BAR+56 de la base du système est'mirs à jour en plaçant dans le mot RPW l'identification du processus NJP, bloc 1465.L'indicateur de diponibilité est mis à 0 dans le cas où il nly avait pas eu de processus CJP. Ensuite, l'indicateur de présence est mis à 0, 14-67, et l'Associateur de segments (AS 132 figure 1) qui est une mémoire associative est effacé 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 exécuter dans le processeur et non par le système diexploitation. Le firmware continue en CAB 1480 et le bit de déroutement asynchrone AS est contrôlé pour déterminer s'il a ou non la valeur 1, 1481. Si ce bit AS a la valeur 1, on détermine -alors, 1482, si le numéro danneau de processus PRN est supérieur ou égal au bit de déroutement asynchrone ARN. (Les bits AS 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 AS et ARN sont extraits du mot RPW implanté en BAR+56 de la base du système). Les bits AS et ARN implantés en BAR+56 du mot RPW sont restaurés étant donné que ltopérat ion suivante, 1484, consiste à lancer un programme de déroutement asynchrone qui prendra en charge les conditions ayant provoqué 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, ur#snomalie sera signalée alors quelle existe pas, et on lancera systématiquement le programme de déroutement asynchrone 1484 qui ne slexécutera paso Retenons aux blocs de décision 1481 et 1482.Si le bit AB niest pas positionné ou si le bit AB est positionné mais que PRN ne soit pas supérieur à 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 à 0 et s'il est à 0 c'est le mode normal de la machine qui est utilisé, 1487. Toutefois, s'il nies pas à 0, c'est le mode émulé qui est utilisé 1486. La présente description nia illustré qu'un mode de réalisation de l'invention. Les spécialistes concevront facilement que de nombreuses variantes et modifications peuvent être apportées à cette réalisation sans sortir pour autant de l'esprit et du cadre de l'invention revendiquée. Demandes connexes - "Buffer Store invention de CURLEY, DONAHUE, MARTLAND, FRANKLIN, déposée aux U.S.A. le 5 Octobre 1972 sous le NO 295.301 par la Société Honeywell Information Systems domiciliée aux U. S. A. - "Variable Masking for Segmented Memory", invention de MARTLAND CURLEY, déposée aux U.S.A. le 5 Octobre 1972 sous la NQ 295.303 par la Société Honeywell Information Systems domiciliée aux U. S. A. - Override Hardware for Main Store Sequencer", invention de DONAHUE, déposée aux U. S. A. le 5 Octobre 1972 sous le NO 295.418 par la Société Honeywell Information Systems domiciliée aux U. S. A. - "Main Memory Sequencer, invention de DONAHUE, CURLEY, FRANKLIN, MARTLAND, CORNARO, déposée le 5 Octobre 1972 aux U.S A. sous le NO 295.331 par la Société Honeywell Information Systems domiciliée aux U. S. A. -"Main Memory Reconfiguration", invention de CURLEY, FRANKLIN, MARTLAND, DONAHUE, CORNARO déposée aux U. S A. le 5 Octobre 1972 sous le N 295.417 par la Société Honeywell Information Systems domiciliée aux U. S A. -tEProtection des Informations dans un ordinateur multiprogrammable/ multitraitement", invention de BRADLEY, FRANKLIN, APPELL, BIENVENU, LEPICARD, de RIVET, déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le N 73 42706. -"Appels de procédures et Opérations de piles, invention de BRADLEY, FRANKLIN, APPELL, BOGAERT, MASSUART, déposée en France simultanément à la présente demande par la Compagnie demanderesse sous les 73 42705. -"Synchronisation des Processus utilisant des sémaphores", invention de BIENVENU, CARRE,# VERDIER, déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le N 73 42691 - "Développement d'adresse segmentée", invention de BIENVENU, déposée en France le 16 Mai 1973 par la Compagnie demanderesse sous le NO 73 17765. - "InstructionsP P e V sur sémaphores pour synchronisation des Proces- sus, invention de BIENVENU, CARRE, LUU, VERDIER, -déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le Ne 73 42697. - "Bloc de contrôle des Processus", invention de BIENVENU, CARRE LUU, VERDIER, déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le N0 73 42689. - "Base du système, invention de CARRE, LUU, de RIVET VERDIER déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le Na 73 42698. - 'Système de Gestion des Processus pour un processeur central" invention de CARRE, LUU, de RIVET, VERDIER, -déposée en France sjmultanément à la présente demande par la Compagnie demanderesse sous le NO 73 42694. - "Gestionnaire de Mémoire Virtuelle", invention de CARRE, H1OT, MICHEL, ROLLAND, déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le NO 73 42707. - Protection de Itinformation dans un système de multitraitement de l'information mettant en oeuvre un concept d'anneaux pour représenter les différents niveaux de privilèges entre processus" invention de BRADLEY, FRANKLIN, APPELL, LE PICARD, de RIVET déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le N07342706 - "Instructions de degestion de Processus pour processeur de données", invention de CARRE, LUU, de RIVET, VERDIER, déposée en France simultanément à la présente demande par la Compagnie demanderesse sous le NO 73 42692. - "Instructions d'initiali,sation de sémaphores pour synchronisation des Processus", invention de BRADLEY, FRANKLIN, LUU, de RIVET, déposée en France simultanément à la présente demande par la Compagnie demande-~- resse sous le NO 73 42696. GLOSSAIRE Adresses absolue Clest l'adresse physique d'une information dans la mémoire centrale. Développement d'adresse C'est la fonction Hardware qui agit sur un certain nombre d'éléments diadresse pour calculer I 'adresse absolue qui localise un objet en-mémoire centrale. Adressage Localisation d'un objet par des moyens virtuels, physiques et logiques. Espace adresse C'est ensemble des adressés logiques segmentées correspondant à un processus que le CPU peut-transformer en adresse absolue durant ltexécution de ce processus. Mot d'espace adresse Clest l'un des 2 mots se trouvant dans le bloc de contrôle du processus qui permet de pointer la table de mots de table de .segment, Le tableau des mots de table de segment définit les tables de segments associées au processus. Syllabe adresse C'est une adresse logique définie dans une instruction et par le Hardware CPU comme entrée dans le développement d'adressa. Analyseur Traducteur C'est une partie du coupleur statique qui premièrement communique un ensemble de langage de contrôle à la liaison, puis, si le langage de contrôle ne contient pas d'erreur, le traducteur/analyseur conver tit cet ensemble en table ou autres struc tures utilisables par le coupleur statique. Traitement asynchrone- C'est liactivité simultanée de plus diun processus. Mémoire auxiliaire Mémoire rapide de faible capacité, utili sée par le Firmware. Registre de base C'est le premier élément de ltadressage de segment qui est indiqué par un nombre dans chaque syllabe adresse. Registre d'adressas C'est la registre Hardware qui définit ltadresse la plus basse accessible au software (limita entre zone Firmware et zone software) Appel Voir procédure d'appel - appel intérieur appel extérieur. Unité centrale C'est la partie du calculateur qui inclut les circuits d'interprétation et d'exécu tion des instructions. Canal C'est le moyen de communication entre le sous-système central et un sous-système périphérique. Il y a 2 types de canaux, physiques et logiques. Un canal physique est la connection Hardware entre llIOC et la PCU (Unité de contrôle de périphérique} Un canal logique est un chemin de comme nication logique entre la mémoire princi pale et un dispositif périphérique particu lier. Entrée de commande du canal~ C. C. E. Instruction dans un programme de canal. Mot de commande de canal - C. C. W. C'est un élément d'entrée de commande de canal Deux mots de commande de canal constituent une entrée de commande de canal. Programma du canal C'est une séquence d'instruction qui pro voqua une opération spécifique d'entrée ou de sortie à exécuter par un dispositif périphérique. Coda complémentaire C'est un code dont certaines instructions complémentant le code opératoire pour définir la fonction de llinstruction. Unité de compilation C. U. C'est le module simple 1'objet code" qui résulte de la compilation ou de l'assem- blague d'une procédure dans l'un quelcon- que des langages du processeur de haut niveau. L'unité de compilation n'est pas une unité d'exécution Si elle est couplée. Concurrence Simultanéité apparente. Champ de condition C'est un champ de 4 bits dans une instruc tion, chaque bit du champ correspond à une valeur du registre d'état 0 et 1. Indicateur de présence C'est une structure Hardware localisée dans une mémoire auxiliaire qui indique qu'une nouvelle entrée a été placée dans une file diattente avec éventuellement indication de son niveau de priorité. Espace d'adressa de données C'est ensemble des adresses logiques enregistrées, accessibles à un processus à travers la gestion de données ; il com prend 4 éléments : les champs logiques, les enregistremsnts logiques, les pages de base de données et les classements. Descripteur de données- Crest une-structure d'information qui est utilisée dans l'adressage indirect décri- vant un ensemble de données. Décor Il s'agit de caractéristiques fonctionnelles de l'architecture d'un système informati que. Mode décor étendu C'est un mode dropérations permettant l'opération du système en mode autre que le mode natif. Descripteur C'est un champ de 32 bits ou 64 bits util-i sé dans le développement d'adresse. C'est un pointeur parmi plusieurs dans le mode d'adressage de l'invention. Bloc descripteur C'est un bloc de données contenant un nombre quelconque ou une variété quel conque de déclarations de descripteurs à l'exception des descripteurs de sémaphore ras. Aucune autre donnée ntest permise. Adaptateur de périphérique - D. A. C'est un ensemble lectronique qui adapte un appareil à un contraieur de périphé rique. Interface adaptateur de périphérique - D. A. 1. Il s'agit d'un interface entre un adaptateur de dispositif et le contrôleur de périphérique associé P.C.U. Contrôle de -dispositif C'est une entité software qui manipula les caractères spécifiques de dispositif. Commutateur C'est la partie Hardware ou Firmware qui contrôle la communication des proces sus dans le processeur central. Commutation C'est l'action de changement du processus. Déplacement Clest un élément d'adressage direct dans lequel l'information est définie par un positionnement relatif soit par rapport à la base du segment, soit par rapport à la position courante du compteur d'instruc tion. Adressage dynamique C'est l'adressage qui résulte du calcul, durant l'exécution, des références défi nies à l'intérieur du groupe de processus. Editeur C'est une partie du coupleur statique qui met en page et sort certaines ou toutes les informations qui résultent du couplage dans une procédure particulière. Adresse effective. C'est l'adresse logique (par opposition à I ladresse physique) qui consiste en un numéro de table de segment STN-et dans une adresse relative: Mode émulé C'est l'opération diun calculateur permet tant dinitialiser un autre calculateur et apparaissant comme travaillant dans un environnement informatique différent du mode natif. Exception Une exception se produit lorsque le Hardware Firmware~ détecte l'existence d'une condition quelconque qui a été déterminée comme nécessitant un traite ment particulier. Evènement C'est quelque chose qui est observé dans le système par le processus et qui peut être intéressant pour un autre processus. Firmware Ensemble de microprogrammes permet tant de commander et contrôler une unité logique (unité centrale ou périphérique). Nom G.D. C'est le nom utilisé par le Hardware/ Firmware pour repérer un sémaphore. Le numéro G est le numéro d'entrée dans la table G contenant le descripteur de ce segment, D est I adresse relative dans ce segment. Segment G Clest un segment contenant des sémapho ras qui peuvent être adressés par un nom G.D. Table G C'est la table utilisée pour la localisation en mémoire lorsque le développement G. D. est utilisé. Commutation C'est un moyen de contrôler Rentrée des procédures dans un segment par utilisa tion des descripteurs de procédure. Registre général C'est un registre général à 32 bits dispo nible pour l'exécution de processus- et qui généralement contient des suites de don nées binaires. Certains registres géné raux peuvent être utilisés pour lgindexa- tion (GR 8 à OR 15). Index Clest une structure de données qui est conservée et manipulée par le système, la structure est visible pour l'utilisateur seulement en terme de clés, lesquelles sont présentées dans le but de rendre dis ponible ou de positionner un registre spécifique. Indexage Modification dune adresse par addition algébrique du contenu diun registre d'index. Registre d'index d'est un registre général utilisé pour l'indexage (GR 8 à OR 15). Indirection C'est un mode d'adressage dans lequel une adresse est utilisée à la place d'une donnée effective pour obtenir une autre adresse. Indirection base vers registre C'est une forme diindirection dans laquelle un descripteur de données définit un numé ro de registre de base et un déplacement à appliquer au contenu du registre de base. Descripteur indirect de segment C'est un type de descripteur de segment qui contient des informations pour adres ser un autre descripteur de segment et non pas un segment. Instruction C'est l'unité diexécution du processeur central visible pour un programmeur. Compteur dlinstruction C'est un registre associé avec un proces sus en exécution qui contient I tadresse segmentée de l'instruction en cours d'exécution ou d'alimentation. Entralaçage C'est un accès séquentiel au module de mémoire permettant de'réduire la temps accès dans la mémoire. Interruption C'est une discontinuité d'un processus dans un système due à la manifestation d'un évènement. Processus interrompu C'est un processus qui est activé en réponse à une interruption. Appel intérieur C'est un appel qui se produit lors de l'exécution d'une procédure dans un numé ro d'anneau et lorsqu'unie autre procédure est appelée à être exécutée dans un anneau de-niveau inférieur. Contrôla d'entrée et de sortie C'est une unité qui permet le contrôla de base dun sous-système d'entrée et de sortie, Processeur d'entrée et de sortie C'est un processus de système. potentiel- lament asynchrone qui traite essentielle ment le mouvement des données entre une mémoire périphérique ou un dispositif d'entrée ou de sortie et la mémoire prin cipale. Les tables J.P. Ce sont des collections d'adresses logi ques permettant de localiser les blocs de contrôle de processus. Travail C'est l'unité de travail pour un système. Langage de contrôla de-travail CBest un langage qui permet de décrire un travail et ses composantes. Etape de travail C'est la subdivision principale d'un travail conduisant à l'exécution diun pro gramme défini par un état du langage de contrôle de travail J. C. L. Table des étapes de travail C'est unetable du système utilisé pour marquer la première partie d'un nom diun processus et pour localiser la Table de groupe de processus. Module lié C'est la sortie d'un couplage statique. C'est aussi un groupe consolidé d'une unité de compilation dont les références croisées ont été isolées par la liaison statique. Linking Couplage Voir couplage statique. Canal logique Voir canal. Processeur logique Ensemble des ressources hardware et des instructions nécessaires à lfexécu- tion diun processus. Mémoire principale ou contrôla Il s'agit dun ensemble de mémoires adressables à partir duquel les instruc tions peuvent être exécutées ou à partir duquel les données peuvent être changées directement dans des registres. Contrôleur de bandes magnétiques C'est le sous-système périphérique relatif aux dispositifs à bandes magnéti ques. Contrôleur de mémoires de masse C'est le sous-système périphérique rela tif aux dispositifs de mémoires de masse. Gestion de la mémoire Il s'agit d'un sous ensemble dun système opératoire pour l'allocation, la transla tion et le vidage de la mémoire physique. Message ' C'est une information transmise d'une source ou vers une destination qui niest jamais classées. Microinstruction Mot de mémoire de contrôle qui commande une fonction hardware particulière. Microprogramme Voir firmware Multiplexage Clest la division d'une ressource hard ware talla que la mémoire, habituellement dans le temps. Programmation multiple. C'est l'exécution simultanée de 2 ou plusieurs programmes par un seul calcu I ateur. Mode natif Clest-Il opération diun calculateur avec ses propres instructions. Déplacement C'est l'adresse relative au segment au quel commence la partie adressée du segment. Système d'opération C'est un software de base conçu pour utiliser efficacement les programmes des utilisateurs. Appel extérieur C'est un appel qui se produit lorsqu'une procédure exécutée dans un certain nu méro panneau, appelle une autre procé dure à exécuter dans un niveau d'anneau supérieur. i Unité de contrôle périphérique C'est un processeur indépendant qui gère des appareils périphériques et permet d'exécuter les programmes canaux pour réaliser des opérations dientrée et de sortie. Interface de sous-système périphérique C'est un interface standard utilisé pour le transfert et le contrôle entre les contrôleurs périphériques PCU et le contrôleur d'entrée et de sortie. Canal Physique Voir canal. Structure physique des données C'est une définition complète de I gorga- nisation de données telles qu'allas sont enregistrées physiquement dans les sup ports. Entrée et sortie physique C'est la partie du système d'exploitation qui centralisa le contrôle, le transfert des états entre la-mémoire et les disposi tifs périphériques ou terminaux. Mémoire physique C'est la partie Hardw#are utilisée pour la mémorisation des données, elle est composée de différents types de support d'enregistrement et d'un hardware d'en- registrement et de lecture Opération P C'est une instruction de machine qui per met de réclamer ou prendre une ressource (mise en attente si la ressource n'est pas disponible). Instruction privilégiée Il s'agit d'une instruction devant être exécutée dans l'anneau ZERO. C'est une fonction software ou algorithme qui peut être exécutée par le processeur sans simultanéité. Exemple sous-programme Fortran, programme Cobol ou procédure interne PL/1. Appel de procédure C'est un mécanisme pour créer un support de pile à l'intérieur d'un segment de pile. Description de procédure C'est un mot contenant la position et le point d'entrée d'une procédure. Procédure segment Ce type de segment contient des éléments qui représentent une procédure, des procédures ou une partie de procédure Processus C'est l'exécution ou donnée d#instr;uçtIon non simultanée par un processus ce~iitral ou un processeur d'entrée et de sortie. C'est aussi un programme et l'ensemble des éléments nécessaires à sa réalisation. Espace adresse Il s'agit des adresses de mémoire qui peuvent être référencées par un processus particulier. Bloc de contrôla de processus C'est une structure de données définie physiquement et reconnaissable qui con tient # les informations nécessaires pour caractériser Il'état du processus à un mo ment quelconque. Groupe de processus C'est un ensemble de processus qui habituellement sont nécessaires à l'exé cution d'une étape de travail simple. Constructeur de groupe de processus C'est la partie du coupleur liaison statique dont les actions produisent le module couplé. Chargeur de groupe de processus C'est une disposition du système dex- ploitation qui place les résolutions finales dans un module couplé pour créer un groupe de processus exécutable puisqulil charge le groupe de processus dans la mémoire et commence son exécution. Table de groupe de processus Voir table P. Lien de processus Clbest une entrée dans une file de proces sus prêts ou en attente. Etat de processus C'est la condition dynamique dtun proces sus du processeur central qui peut être par exemple en "exécution", "prêt", en attente ou llsuspendut. Commutation de processus Voir dispatcher. Synchronisation de processus Ce sont les fonctions qui coordonnent Inactivité asynchrone des processus. Ces fonctions impliquent généralement des sémaphores et des opérations P~et V. Processeur C'est une unité capable de recevoir des données, de les manipuler, de fournir des résultats et de contrôler des séquen ces d'opérations. Programme Clest la spécification de la procédure et de l'information assoclëe-nécessaire pour résoudre un problème Par exemple, l'en- semble ordonné des instructions qui sont exécutées par le calculateur et qui opère sur des données pour réaliser un travail d'utilisateur ou une partie de ce travail. Exécution dsun programme C'est l'activité d'un processus en accord avec des spécifications de programmes. Protection C'est la fonction qui permet d'éviter les interférences de processus ou le partage espace adresse dune manière illégale. Table P C'est une structure donnée contenant des entrées, chacune d'elle pointant llorigine d'un bloc de contrôle de processus. Les entrées dans la table P pointent llensem- ble des PCB comprenant un groupe de processus. La table P est aussi appelée table de groupe de processus. Q/PR/RDY C'est une file de processus à l'état prêt. File C'est la liste ordonne d'entités atten dant des informations, des processus ou des disponibilités. Etat prêt C'est un état de processus auquel aucun processeur n'est associé, mais possèdant toutes les ressources pour passer à l'état "exécution". Adresse relative C'est la position d'un objet quelconque par rapport à un autre. Translation Mouvement de segment d'une position de mémoire centrale à une autre position incluant l'ajustement de toutes les réfé rences de sa localisation antérieure. Retour C'est la fonction et les opérations néces saires pour reprendre l'action d'une p ro cédure au point suivant immédiatement le point où est entré une autre procédure. Anneau C'est une donnée de protection d'un seg ment qui restreint les accès de lecture, d'écriture et d'exécution diun processus pour un segment donné. C'est encore un niveau de privilège d'un processus pour iire, écrire ou exécuter. Restitution (rollingin) C'est la réalisation de l'opération néces saire pour donner le contrôla diun pro cesseur à un nouveau processus. Rangement (rolling out) C'est la réalisation des opérations néces saires pour retirer le contrôle dsun pro cesseur à un processus. Etat d'exécution C'est l'état dynamique d'un processus (connecté au processeur central - CPU) qui est en cours d'exécution. Mémoire de travail C'est la mémoire composée de 256 posi tions placée dans l'unité arithmétique pour mémoriser les informations de commande du processeur central. Elle est aussi appelée mémoire locale (voir mémoire auxiliaire). Emploi du temps Détermine les séquences opérations. Registres scientifiques C'est le registre à 64 positions utilisé pour manipuler des nombres binaires à virgule flottante. Il y a 4 registres scien tifiques dans l'invention lorsque le systè me est muni d'option scientifique. Segment C'est un espace de la mémoire centrale considéré comme une unité. Segmentation Utilisation de la mémoire par division de celle-ci en groupements logiques appelés segments et non en mémoire linéaire. Base de segment Ctest Adresse absolue de l'origine du segment. C'est l'un des champs d'un mot de descripteur de segment. Descripteur de segment Cest une entrée dans une table de seg ment définissant les caractéristiques d'un segment ou permettant de pointer un seg ment. Adresse segmentée Voir adresse effective Numéro de segment C'est llidentification d'un segment parti culier consistant en un numéro de table de segment (sélectionnant l'une des tables de segment du processus) et une entrée dans la table de segment choisie. Adresse relative diun segment Durant le développement de adresse c'est la valeur finale qui doit être ajoutée à la base de segment pour obtenir lWadres- se absolue. Table de segment C'eSt une table contenant les descripteurs de segment utilisés pour établir la possi bilité de communication diun processus avec ses segments. Entrée d'une table de segment C'est un élément diurne table de segment. Chaque entrée de table de segments est un descripteur de segment. Mot de table de segment C'est une entrée dans un tableau de mot de table de segment pointant les tables de segments d'un processus. Le tableau est pointé par I gun des 2 mots d'espace adresse dans le bloc de contrôle du pro cessus. Sémaphores Ce sont des structures de données utili sées pour contrôler les communications entre les processus. Bloc de sémaphore Clest un bloc de données contenant seule ment des descripteurs de sémaphores. Pile C'est un mécanisme qui accepte, mémorise et restitue les données sur la base dite, LIFO (dernier entrée, premier sorti). Une pile contient un certain nombre de portions contigües appelées support de pile. Air- Activité de pile C'est le point de support de pile courant qui contient un pointeur pour les zones de mémoires actives, le compteur d'instruc tions diappel, l'espace paramètre et les variables locales et sommairement les données les plus courantes pour l'exécu- tion de la procédure appelée. Les mots de base de pile C'est un groupe de 3 mots dans le bloc de commande de processus qui contient Ita dresse segmentée des segments de pile pour les anneaux 0, 1 et 2 associés au processus. Elément de pile C'est la partie contigüe du segment de pile contenant les données mémorisées pour l'appel d'une procédure simple. Opérations de pile Ce sont des opérations pour extraire et introduire les informations de la pile. En pratique c'est la manipulation des poin teurs utilisés pour référencer les infor mations contenues dans la pile. Débordement de pile C'est un essai d'introduction de plus d'in- formations dans la pile qu'il y a de placé disponible. Ceci est détecté par hardware. Registre de pile Voir registre T. Segment de pile C'est le segment d'un processus associé à une pile. Liaison ou couplage statique C'est l'étape intermédiaire entre la com pilation d'une procédure de source et l'exécution de cette procédure. La liaison traite les références externes relatives à cette procédure. Registre d'Etat C'est un registre de 8 bits qui spécifie état de la procédure en cours d'exécu tion. Echange Dégagement de l'espace de mémoire occu pé par un segment en écrivant ce segment dans la mémoire secondaire. L'écriture effective de la seconde mémoire peut êtr;e suP#erimuiasa i le segment nia pas été modifié la dernière fois ou il a été lu. Synchronisation Etablissement d'une relation temporelle pour l'exécution des processus. Base du système C'est la région fixée dans la mémoire centrale qui agit comme une phase de base pour toutes les structures d'infor mations. Tâche C'est la plus petite unité de travail con sistant en un simple courant d'instruc tions non simultanées. Registre T C'est un registre hardware visible du software qui contient Adresse segmentée du haut de la pile'de procédure. URC Contrôleur de périphériques Ce sont les éléments du sous-système périphérique relatifs aux unités dienre- gistrement tels que les lectures de cartes et les imprimantes ligne par ligne (périphé riques relativement lents). =Groupe de processus utilisateur Ctest la représentation interne d'une étape quelconque de travail par opposi tion à un groupe de système de processus qui- existe indépendamment diun travail quel conque. Indicateur de disponibilité C'est une structure Hardware qui indique que le processus qui a le contrôle du processeur central à arrêté celui-ci. Il est localisé dans un registre auxiliaire du processeur central. Mémoire virtuelle C'est un concept d'adressage qui permet à un programmeur de coder indépendam ment de la taille physique de la mémoire. Le dispositif de gestion de la mémoire virtuelle gère automatiquement lféchange des segments entre la mémoire principale et la mémoire secondaire. Opération V C'est une instruction de machine dévelop pée pour signaler liapparition d'un évène ment. Une opération V-OP opère sur un sémaphore particulier. ABREVIATIONS ACU Unité de contrôle d'adressa ALU Unité arithmétique et logique AS Syllabe adresse ASW Mots d'espace adresse BAR Registre de limite d'adresse BCD Nombre binaire codé en décimal BR Registre de base CCE Entrée canal de commande CCU Unité de commande de canal CMRN Numéro d'anneau maximum de llopérande CCW Mots de commande de canal CET Temps d'entrée à l'état courant CIA Adaptateur de contrôle d'interface de mémoire CJP Processus en exécution. CPU Processeur central CU Unité de compilation CSU Unité de mémoire de commande D Déplacement DMU Unité de gestion de données DA Adaptateur de dispositif périphérique EAR Anneau d'adresse effective EXW Mot diexception GR Registre général GTW Mots de table G IC Compteur d'instruction IFU Unité d'extraction (ou de recherche) d'instruction I/o ' Entrée/sortie IOC Contrôleur dientrée/sortie IPQW Mot de file de processus interne IR Registre d'indexage ITBB Indirection par rapport au registre de base ITS Indirection vers le segment J Travail JCL Langage de commande de travail JTW Mot de table J LCT Table de canaux logiques LPFO Dernier entré, premier sorti LSU Mémoire locale ou mémoire de (travail) MBZ Doit être mis à zéro MOS Semi-conducteur oxyde-métal MAXR Numéro d'anneau maximum auquel une procédure peut accéder. Est trouvé dans le descrj'~teur de segment. MSC Contrôleur de mémoire de masse MTC Contrôleur' de bandes magnétiques NFS Etat non-fonctionnel NPRN Numéro dianneaudu nouveau processus NJP Nouveau processus remplaçant le processus en cours d'exécution PCB Bloc de contrôle de processus PCT Table de canaux physiques PCU Unité de commande de périphérique: URC, MTC, MSC. DCU Unité de contrôle de périphériques PL/1 Langage de programmation. 1 PMW Mot principal de processus Q/PR/RDY File de processus à l'état prêt RD Lecture de l'anneau RHU Réservé pour l'utilisation Hardware RPW Mot de processus courant RSU Réservé pour l'utilisation Software RTA Comptabilisation du temps à l'état prêt RTO Temps résiduel SBW Mot à la base de pile SEG Numéro de segment SKW Mot de pile -r SEGEp Segment qui contient le point d'entrée tel qutil est trouvé dans le descripteur de procédure. SEGpD Segment qui contient le descripteur de procé dure. SR Registre scientifique SRA Adresse relative de segment STE Entrée dans une table de segment STN Numéro de la table de segment STR Registre d'état STW Mot de table de segment STWA Tableau de mots de la table de segment T T (Registre de pile) URC Contrôleur de périphériques "lents" WR Anneau d'écriture WTA Comptabilisation du temps d'attenta. REVENDICATIONS 1. Dans un ordinateur multiprogrammable comprenant un processeur central (CPU) disposant dun ensemble de processus dans lequel un desdits processus s'exécute (ce processus a la contrôle dudit processeur), certains autres processus dudit ensemble étant dans l'état prêt, attente ou suspension, ledit état prêt étant un état dans lequel le premier processus sélectionné parmi lesdits autres processus est en mesure d'obtenir le contrôle dudit proces seur lorsque ledit processeur devient disponible, ledit état d'attente étant un état dans lequel le second processus sélectionné parmi lesdits autres processus exige la survenance dfun événement prédéterminé avant que ledit second processus sélectionné desdits autres processus ait la possibilité de prendre le contrôle dudit pr acesseur lorsqulildevient disponible, et ledit état suspenslon étant llétat dans lequel un troisième processus sélectionné desdits autres processus a été rendu inactif, ledit ordinateur possédant en outre, une mémoire virtuelle, un processeur virtuel contrôlant les états desdits processus comprenant (a) des premiers moyens, dans ladite mémoire virtuelle ayant un format prédéterminé, lesdits premiers moyens servant au stockage d'informations utilisées pour le contrôle des états desdits processus, et, (b) des seconds moyens dans ladite mémoire virtuelle servant à liadressage desdits premiers moyens. 2. Le processeur virtuel selon revendication 1 inclus dans lesdits seconds moyens, des troisièmes moyens fournissant le nom et l'adressa du processus en cours d'exécution. 3. Un processeur virtuel selon revendication 2 comprenant dans lesdits seconds moyens et commùniquant avec Ipsardçlte troisièmes moyens, des quatrièmes moyens pour stocker une premièrelpredéterminée de l'adresse du processus en cours d'exécution. 4. Un processeur virtuel selon revendication 3 comprenant en outre dans lesdits seconds moyens et communiquant avec lesdits quatrièmes moyens, des cinquièmes moyens pour le stockage d'une seconde partie prédéterminée de l'adresse du processus en cours d'exécution. 5. Un processeur virtuel selon revendication 4 comprenant des sixièmes moyens communiquant avec lesdits quatrièmes et cinquièmes moyens pour combiner lesdites première et seconde parties prédéterminées de liadresse du processus en cours dtexécution. 6. Dans un ordinateur multiprogrammable comprenant au moins une mémoire virtuelle, un processeur central (CPU) communiquant avec ladite mémoire virtuelle, un système d'exploitation permettant la création et la suppression de processus, un processus sélectionné desdits processus étant dans l'état d'exécution (c'est à dire ayant le contrôla dudit processeur), dieu~ tres processus sélectionnés parmi lesdits processus étant dans l'état prêt, attente et suspension, ledit état prêt étant un état dans lequel un premier processus sélectionné parmi lesdits autres processus est en mesure d'obtenir le contrôle dudit processeur lorsque ledit processeur devient disponible, ledit état d'attente étant un état dans lequel un second processus présélaction- né parmi lesdits autres processus nécessite la survenance d'un événement prédéterminé avant que ledit second processus présélectionné parmi lesdits autres processus ait la possibilité de prendre le contrôle dudit processeur lorsqu'il devient disponible, et ledit état suspension étant un état dans lequel un troisième processus prédéterminé desdits autres processus a été rendu inactif, un processeur virtuel contrôlant les états desdits processus et comprenant:: (a) des premiers moyens ayant une structure prédéterminée et associés à l'un des processus prédéterminés desdits processus pour conditionner l'état dudit processus prédétermirié parmi lesdits processus (b) des seconds moyens communiquant avec ledit système d'exploita~ tion pour fournir le nom et l'adresse sélectionnés dudit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens (c) des troisièmes moyens adressés par lesdits seconds moyens pour fournir une première partie prédéterminée de l'adresse desdits premiers moyens (d) des quatrièmes moyens--adressés par lesdits troisièmes moyens pour fournir une seconde partie prédéterminée de Adresse desdits premiers moyens ; et, (e) des cinquièmes moyens associés auxdits troisièmes et quatrièmes moyens pour combiner lesdites première et seconde parties prédéterminées de adresse des premiers moyens afin d'obtenir adresse absolue desdits premiers moyens. 7. Le processeur virtuel selon revendication 6 comprenant dans lesdits premiers moyens, des moyens permettant de diriger l'exécution dudit processus sélectionné parmi lesdits processus, en mode natif, en mode comptage ou en mode scientifique. e. Le processeur virtuel selon revendication 7 comprenant dans lesdits premiers moyens, des moyens permettant d'indiquer la priorité dudit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens. 9. Le processeur virtuel selon revendication 8 comprenant dans lesdits premiers moyens, des moyens indiquant ltétat dudit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens. 10. Le processeur virtuel selon revendication 9 comprenant dans lesdits moyens-dlindication état, des premiers moyens d'indication de sous état indiquant que si ledit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens est actif ou non (état d'exécution prêt ou attente). 11. Le processeur virtuel selon revendication 9 comprenant dans lesdits moyens d'indication d'état, des seconds moyens d'indication de sous état indiquant si ledit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens est suspendu ou non. 12. Le processeur virtuel selon revendication 9 comprenant dans lesdits moyens d'indication d'état des troisièmes moyens d'indication de sous~ état indiquant si. ledit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens a été interrompu ou non pendant l'exécution. 13. Le processeur virtuel selon revendication 9 comprenantdans lesdits moyens d'indication d'état, des quatrièmes moyens d'indication de sous-état indiquant si ledit processus prédéterminé parmi lesdits processus associés auxdits premiers moyens se trouve ou non en mode émulé. 14. En combinaison avec un ordinateur multiprogrammable comprenant au moins une mémoire virtuelle, un processeur central (CPU) communiquant avec ladite mémoire virtuelle, le processeur ayant un ensemble de registres généraux et de registres de base pour stocker les informations relatives au fonctionnementen mode natif du processeur, un ensemble de registres sciantifiques#pour stocker les informations relatives au ftnctionna- ment en mode scientifique dudit processeur, un registre d'instruction stockant l'adresse de l'instruction suivante. à exécuter dans ledit processeur, et un registre d'état stockant les informations relatives à l'état dudit processeur, ledit ordinateur ayant en outre un système d'exploitation créant ou supprimant des processus, un processus sélectionné parmi lesdits processus étant en cours dtexécution. (c'est à dire ayant la disposition du proc esseur d'autres processus sélectionnés parmi les autres processus étant dans l'état prêt, attente ou suspension, ledit état prêt étant un état dans lequel le premier processus sélectionné parmi lesdits autres processus est en mesure d1obte- nir le contrôle dudit processeur lorsque celui-ci devient disponible, ledit état d'attente étant un état dans lequel un second processus sélectionné parmi lesdits autres processus exige la survenance d'un évènement prédéterminé avant que ledit processus en attente ait la possibilité.de prendre le contrôle du processeur lorsqu'il devient disponible, et ledit état suspension étant un état dans lequel un troisième processus sélectionné parmi lesdits autres processus a été rendu inactif, un processeur virtuel contrôlant les états desdits processus et comprenant:: (a) des premiers moyens ayant une structure prédéterminée et associés à un processus prédéterminé desdits processus-pour diriger l'état dudit processus prédéterminé desdits processus; (b) des seconds moyens, communiquant avec ledit système drexploi- tation, pour fournir un nom et une adresse sélectionnés dudit processus prédéterminé desdits processus associés auxdits premiers moyens (c) des troisièmes moyens adressés par lesdits seconds moyens pour fournir une prem#ière partie prédéterminée de l'adresse desdits premiers moyens (d) des quatrièmes moyens adressés par lesdits troisième moyens pour fournir une seconde partie prédéterminée de l'adressa desdits premiers moyens;; (e) des cinquièmes moyens, associés auxdits troisièmes et qua trièmes moyens, pour combiner lesdites première et seconde parties prédéterminées de l'adresse des premiers moyens afin d'obtenir l'adresse absolue desdits premiers moyens ; et, (f) des sixièmes moyens, dans lesdits premiers moyens, pour stocker le contenu dudit registre d'instruction. 15. La combinaison selon revendication 14 comprenatit des septièmes moyens dans lesdits premiers moyens, pour stocker le contenu desdits registres généraux. 16. La combinaison selon revendication 14 comprenant dans lesdits premiers moyens, des huitièmes moyens pour stocker -le contenu desdits registres de base. 17. La combinaison selon revendication 14 comprenant dans lesdits premiers moyens, des neuvièmes moyens pour stocker le contenu desdits registres scientifiques. 18. La cpmbinaison selon revendication 14 comprenant dans lesdits premiers moyens des dixièmes moyens pour stocker le contenu dudit registre d' état. 19. La combinaison selon revendication 14 comprenant dans lesdits premiers moyens, des onzièmes moyens pour indiquer si ledit processus sélectionné parmi lesdits processus peut s'exécuter en mode émulé. 20. La combinaison selon revendication 14 comprenant dans lesdits premiers moyens des douzièmes moyens pour indiquer si lesdits premiers moyens sont en mode émulé ou non. 21. Une structure de données associée à un processus prédéterminé parmi l'ensemble des processus de l'ordinateur pour déterminer llétat dudit processus associé à ladite structure de donnée dans lequel ledit processus prédéterminé parmi lesdits processus peut se trouver à l'état d'exécution, prêt attente ou suspension, ledit état d'exécution étant l'état dans lequel ledit processus prédétermin parmi lesdits processus a le contrôle dudit processeur, ledit état prêt étant un état dans lequel ledit processus prédéterminé desdits processus exige la survenance diun évènement prédéterminé pour pouvoir prendre le contrôle dudit processeur et ledit état suspension étant un état danc lequel ledit processus prédéterminé desdits processus a été rendu inactif, ladite structure de données comprenant: (a) des premiers moyens fournissant un nom et une adresse sélec tionnés dudit processus prédéterminé desdits processus asso ciés à ladite structure de données; (b) des seconds moyens adressés par lesdits premiers moyens pour fournir une première partie prédéterminée de l'adressa de la dite structure de données ; (c) des troisièmes moyens adressés par lesdits seconds moyens pour fournir une seconde partie prédéterminée de l'adresse de ladite structure de données; et, (d) des quatrièmes moyens, associés auxdits seconds et troisièmes moyens pour combiner lesdites première et seconde parties prédéterminées de l'adresse de ladite structure de données, afin d'obtenir l'adresse absolue de ladite structure de données. 22. La structure de données selon revendication 21 comprenant dans ladite structure de données, des moyens permettant de diriger l'exécution d'un processus sélectionné parmi lesdits processus, en mode natif, en mode comptage ou en mode scientifique. 23. Le processeur virtuel selon revendication 22 comprenant dans ladite structure de données, des moyens permettant d'indiquer la priorité dudit processus prédéterminé parmi lesdits processus associés à ladite structure de données. 24. Le processeur virtuel selon revendication 23 comprenant dans ladite structure de données, des moyens permettant d'indiquer l'état dudit processus prédéterminé desdits processus associés à ladite structure de données. 25. Le processeur virtuel selon revendication 24 comprenant dans lesdits moyens d'indication d'état des premiers moyens d'indication de sousétat indiquant si le processus prédéterminé parmi lesdits processus associés à ladite structure de données est actif ou non ( état d'exécution, prêt ou attente). 26. Le processeur virtuel selon revendication 24 comprenant dans ladite structure de données, des seconds moyens d'indication de sous Etat indiquant si le processus prédéterminé parmi lesdits processus associés à ladite structure de données est suspendu ou non. 27. Le processeur virtuel selon revendication 24 comprenant dans ladite structure de données, des troisièmes moyens d'indication de sous-état indiquant si le processus prédéterminé parmi lesdits processus associés à ladite structure de données a été interrompu ou non.