Academia.eduAcademia.edu

Commutation numérique et temporelle:Tome Premier : Étude des fondements théoriques

1985

Institutional Repository - Research Portal Dépôt Institutionnel - Portail de la Recherche researchportal.unamur.be University of Namur THESIS / THÈSE MASTER EN SCIENCES INFORMATIQUES Commutation numérique et temporelle Tome Premier : Étude des fondements théoriques Author(s) - Auteur(s) : Evrard, Marc; Vangaver, Rudy; Trigaux, Benoît Award date: 1985 Awarding institution: Universite de Namur Supervisor - Co-Supervisor / Promoteur - Co-Promoteur : Link to publication Publication date - Date de publication : Permanent link - Permalien : Rights / License - Licence de droit d’auteur : General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal ? Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Bibliothèque Universitaire Download date: 23. Jun. 2020 Moretus Plantin FACULTES UNIVERSITAIRES NOTRE-DAME DE LA PAIX - NAMUR (BELGIQUE) I NSTITUT D'INFORMATI QUE COMMUTATION NUMERIQUE ET TEMPORELLE Tome Premier : Etude des fondeme n ts t héoriques Promoteur Mémoire présenté par J. Eruni n Marc EVRARD Rudy VANGAVER Benoît TRIGAUX e n vue de l ' obtention du grade de LICENCIE ET MAITRE EN INFORMATIQUE ANNEE ACADEMIQUE 1984 - 1985 Nous t e nons tout d'abord à remercier Monsieur le Professeur Jean Brunin qui a accepté de diriger ce mémoire et qui nous a permis, par ses conseils et critiques, de mener ce travail à son terme . Nous exprimons égaleme nt toute notre gratitude à Messieurs Schmerber de la société Ericsson J. Zandberg de Ericsson de Ericsso n (Rijen, Pays-Bas) ( Zwijndrecht , Pays-Bas) (Bruxelles) , et A. van Dijck pour l'excellent accueil que nous avons reçu dans leurs implantations de Rijen et Zwijndrecht. Nous remercions aussi Monsieur J. Pierson des F ac ulté s Universitaires de Namur pour l'aide qu'il nous a apportée dnns le choix d'une impl6mentation adéq uate, et Monsieur J. Davenport de la société Logica à Londres pour l'apport de documentation concernant les réseaux numériques. Enfin , notre plus vive reconnaissance va à Monsieur Doumic Triga u x , Madame Dominique Vangaver - Gilles et Mademoiselle Catherine Brion pour l'aide irremplaçable qu'ils nous ont apportée dans l a réalisation de ce mé moire. TABLE DES MATIERES. Chapi t re premier: Les réseaux . 1 . LES RESEAUX COMMUTES . V 1.1 Définition 1.2 Types de réseau commuté 1.2 . 1 Première famille: Transmission de la voix 1 . 2 . 1 . 1 Le réseau téléphonique A. Architecture A. 1 Division géograph i q u e A.2 Organisation en ét oil e D. Compos nts D. 1 Les commutateurs n . 1 . 1 Types de commutateurs D. 1 . 2 Commutateur traditionn e l B. 1 . 3 Commutateur processeur D.1.4 Commutateur num6rigue et tenporel D.2 La transmission B. 2 . 1 Les réseaux urbains D. 2 . 2 Le réseau interurbain A. Le câble chargé D. Principe du multiplexage e n fréquence C. Application au multiplexage tél éphonique D. Supports utilisables par les mu ltiplex analogiques D. 1 Câble à paires symétriques D. 2 Câble coaxial D. 3 Faiseaux hertziens E . Transmission numérique et multiplexage tempo re l F . Hiéra rc hie et systèmes de transmission numér i que a 1.2 . 2 Seconde famil l e : transmission des données 1 . 2 . 2 .1 Le r ésea u téléx A. Caractéristiques B . Types de commutat e urs 1. 2. 2. 2 Les rés ea ux de commutation de circuits de et de paquets A. Leur techn i que de commu tation B. Caractéristiques messages 2. EVOLUTION DU R.T . F. VERS LER . . I.S . 2 .1 Introduction 2.2 Le r é s e au numérique intég r é 2 .3 Evolution de s s e rvices 2 . 3.1 Les nouve aux services 2.3.2 Cara ct é risti q u es de s r é s ea u x mu l t i-services 2.4 Evolution d u r é s ea u 2.5 Le s t e r mina u x 2. 6 La t ran s mi ss ion Chapitre deuxième: Les commutateurs. 2. LES COMMUTATEURS . 2.1 Desc ri ption géné r ale T 2.1.1 Fonctionnalité 2 . 1 . 1 • 1 Introduction 2 .1.1.2 Types de li aisons 2 .1.1.3 A. D. C. Implantation des commutat e urs Commutation urbaine Commutat ion interurba ine e t int ernationale Commutation rurale 2. 1. 1. 4 I mpa ct du trafic 2.1.2 Caract éris ti q u es 2 . 1 . 2 .1 R6seau de c onnex ion 2 . 1 . 2 . 2 !1odu l e de relation 2 .1. 2.3 A. B. C. D. E. F. Unité de com~ande Acqui~i tion des é v ~ne men ts Comma nde des éq ui pements Gestion de l a connexion Tr ad uction Taxation Explo itat ion e t maint e nanc e 2 .2 Composants 2 . 2 .1 Réseau de connexion 2 . 2 .1.1 Introduction 2.2 .1. 2 Systèmes manuels 2 .2.1.3 Syst èmes a utoma ti q ue s A. Système s rotatif s Q . - système pas à pas b . - sys t è me â enregistreu r B . Systèmes crossbar C. Systèmes é l e ctroni q ues T a.- commutation spatiale b .- commutation temporelle 2.2 .1 . 4 AXE-10 : le r ésea u de connexion numérique A. Etab lis sement d 'un appel local a.- l e sous-syst ~me d ' abonnés b .- l e sous-système de commutation de groupe b .1 module de commutation tempore ll e b . 2 module de comm utation spatiale B . Etablissement des autres types d ' appel 2 .2.1. 5 ITT 1240: le r~seau de connexion numérique A. Principes et caractéristiques a.- Topologie rep l iée b . - Uniformité des modules de commutation c.- Corn. mande à l ' origine d.- Performances e t sécurité B . Module de commutation numé riqu e c . Structure du RCN a .- Première étape : configuration mini ma l e b .- Deuxièm_ é tape c.- Troisi è me étape d .- Quatri ~me é t ape e .- Cinquième é tape : confi g uration maximale D. Etablissement d ' un chemin dans l e RCN a .- Ad resses- Résea u b .- Algo rith me de sélection b . 1 sé lection de l' é tage de réflexion b .2 recherche libr e b . 3 recherche dirigée c .- Ord r _s 2.2 . 2 Organes de commande 2 . 2 . 2 .1 Aspects A. Fonctions a .- Fonctions de commutation b . - Fonctions d ' exnloitation et de maintenance B . Caract é ristiquesa .- Contraintes b . - Conséquences T 2.2.2 . 2 Techniques A. Application A.1 Exp lor ateur ou scanner T A . composition de l ' ensemble 1. Processeur 2 . ..:.xp lorateur B. fonctions C. types d ' exp lorateurs 1. par sondages ou polling 1. a en mode synchrone e t de façon continue 1 . ben mode asynchrone ou synch ron e arythmique 2 . par interruptions D. comparaison 1. sondage asynchr one 2. interruptions 3. conclusion E . spécificité de l' exp loration en commutation 1 . fonctions et contraintes 2 . princ i pe e t fonctionnement A. 2 Les Automates fin i s A.2 . 1 Déf init i on A.2 .2 Les états internes d ' un automate f ini A. 2.3 Les fonctions de transition A.2.4 Exemp les d 'automates A. 2.5 Application au comDutat eu r B. Système D.1 A. B. C. V d ' explo i tation Gei,tion clu t emps Introduction Spécific it é du caractère aléatoir_ Horloge temps-r 6e l et compt e ur d 'int ervalles B. 2 Gestion des processus B. 2 .1 Définition B. 2 . 2 La simultanéité B .2 . 3 Le scheduli n g et l e context switching B. 2 . 4 Gest ion des processus dans l e 1 2~0 a . Fonction synchrone et asynchrone b. Caractér isti ques d 'une FMM c. Me ssages d. Structure d 'une FMM e . Partie supGrviseur d'une FMtl f . Partie application d ' une FMM B.3 Gestion de la mémoire A. Introduction B. Allocation dy nam i que de l a mémo ire 1 . Réservation 2 . Libération 3. Allocation de cadres ou pages C. Al loc ation avec préem?tion T V T B.4 Communication et synchronisation en tr e processus E A. Ma c hines finies à messages 1. Rappe l sur l es aut omates 2 . Aut omat es e n coDmut ation 3 . Signalisation 4. Cont e nu d 'un message B. Communicat ion entre les processus 1 . Combinaison automates et processus 2. Transmission de messages 3 . Propri ét ~s des me ss ages e t scheduling des tâches 4. Identification du p roc ess u s et acheminement des message s C. Communication entre mod ul es de bas niveau D. Communic ation dans 12 40 et AXD 1. Type s de blocs software 2 . Supports de communication ( i ) l\.rchitecture fonctionnelle et physique du software (ii) Description des supports de communication ( iii ) 11ét!1odes d ' acheminement 3 . Déroulement d 'une communication B . 5 Files d'attente l\.. Principes B. Files d 'attente et scheduling dans AXE10 C. Files d'attente et scheduling dans le 1240 E C. Hardware C. 1 Les interruptions V C . 1 .1 Principes g~n~raux a . Registre des interruptions b . Interrupt table c . Les états machine d . Schéma général des interruptions C~ 1. 2 Gestion des interruptions en temps réel a . Interrupt tabl e b . Traitement des appels à des modules de l ' OSN c . Traitement des interu9tions provenant des device , clock , et erreur C . 2 Processeurs multiples a . Introduction b . ITT 1 240 1 . Unités l v 0icielles et processeu rs phy~iques 2 . Réseau de communication entre processe urs 3 . Critique c . AXE 10 1. Unit&s logici e lles et processeurs physiques 2. R6seau de communication entre processeurs 3 . Critique D. Exemp l es d ' interfonctionnement entre modules D. 1 Intcrfonctionnemcnt au niveau de l' app lication a. Description générale du segment de procédure b . Version 1240 b .1 Modules concernés b.2 Sous - phases c . Version AXE 10 c . 1 Modules co. cernés c . 2 Sous-phases D. 2 a. b. c. Interfonctionnernent entre application et OS Situation env isag6e pour l ' exemple Conception du schéma Déroulement de s é véne me nts E E 2.3 Architecture des commutateurs 2 .3.0 Introduction 2.3 . 1 sp:cifications élémentaires d 'un commutateur 2.3 . 2 Emplac e ment du syst ~mc de contr8le 2 .3.3 Principe de découpe architecturale 2 . 3.4 Les grandes fonctions 2.3 . 4 .1 Contr8le des lignes d ' abo nn é s 2 .3 . 4 . 2 Contr8le des circuits de jonction 2 .3.4.3 Connexion et commutation 2.3 . 4 . 4 Services ha rdwa re 2.3.4 .5 Contr8le des comm unications 2 .3.5 Confi gura tions E Chapitre t r oi sième : Le proto type 3 . 1 Spécifications E 3 . 1 . 1 Application t[l éphoni q u e 3.1.2 Séquence ext e rn e 3.1 . 2 .1 S6quence générale 3. 1. 2 . 2 Séquence détaill6e 3.1 . 2.3 Séquences pa rticuli è r e s 3.1.3 Taxation 3 . 2 ~ nalys e fonctioonelle E 3 . 2 . 1 Découpe fonctionnelle 3 . 2.1.1 Nivea u x d ' ana l yse 3.2.1. 2 L ' app lication 3 . 2. 1. 4 Le système d ' exp loit ation 3 .2 . 2 Ba s e de données 3 . 2 . 3 Dynamique d u sys t ème 3 . 2 . 3 . 1 Séquence ordinaire 3.2 . 3 . 2 Déroutements 3.2 . 3 . 3 Relâchements forc és 3 . 2 . 3 . 4 Relâchements norma ux 3 . 3 Analyse or ga ni q ue 3.3 . 1 Architecture E 3.3 . 2 Syst~me d ' exp loit a tion 3.3 . 2 . 1 Gestion des processus A. Introducti on V B . Notion de processus C. Découpe du système e n processus D. Fonctionnement du système E . Moni t eur temps r§e l E .1 mon i teur temps réel E . 2 gestion des multiprocessus F . Scheduler F . 1 Rôle d u sched uler F . 2 Critère s de sélection d ' un processus 3 . 3 . 2 . 2 Gestion d e la mémoire T A. Introduction B. Typolog i e des ressources mémoire a . le bloc de message : BLC-MSG b . l e bloc de con t exte : BLC-CTX c . le bloc contrôleur de tâche : BLC-CTL-TCH d . le bloc contrô l e ur de temporisation : BLC-CTL-TMP C. Organisation de l a mémoire libre D. Primitives de t raitement des BLC-MSG E . Pr i mitives de traitement des BLC-CTX F . Primitives de traitement des BLC - CTL -TCH G . . Primitives de traitement des BLC- CTL-TMP H. Pro cédures de traitement des file s de b l oc de mémo ir e li b r e 3.3 . 2 . 3 Gestion des messages E T 3 . 3 . 2 . 4 G6rant du t emps A. Introduction B. Programmation de procédures péri o d iques C. Contrôl e de séquence et d ' e rreurs par tem porisa tion a .- typolog ie d es demandes de te~porisation b . - cr éa tion de temporisation c . - gestion des temporis a tions d . - expir~tion de t emporisat ions e . - annnul a tion de t e mporisation 3 . 3 . 3 Application 3 . 3 . 3 .1 ILS ( interface ligne / syst ème ) A. Scanne r l es lignes B. Gérer l e s tables C . Trait e r l e s événements D. Primiti v es ILS E . Fonctions ILS F . Procédures ILS T 3 . 3 . 3 . 2 Col i g V 3 . 3 .3. 3 Cocom V 3 . 3 . 3 . 4 Gestion de la taxat i on 1. Modu l e principal TAXAT 2 . Procédures 3 . Base de do nn ées 4 . Co n tenu de s message s E 3 . 3 . 3.5 Base de donnée s E 3.4 I mp l éme ntation 3 . 4 .1 Introdu ction 3 . 4 . 2 Operating system : XINU 3 . 4 . 2.1 g estion des pro c essus A. Sch ed uli ng e t context switching A.1 l a table des p roc essus A. 2 l' état des ~rocessus A. 3 séle c ti o n d ' un processus prêt B . La suspension et l a r éac tivation des pro c ess us C . La cr éa tion e t l a t e r minaison des pro c ess us D. La coordination entre les pro c essus E . Dia gramme des états des pro c essus dans Xinu V 3 . 4.2 . 2 Gestion de l a mémoir e T 3 . 4 . 2 . 3 Gestion des messages E 3.4 . 2 . 4 Géra n t du temps A. Cyc l es de scanning H. M clif i ciltion cl e lé1 rr i 1'lili v c ~lccp 1 0 T 3 . 4 . 3 Applicatio n 3 . 4 . 3 .1 ILS A. Introductio n B . Modul e Scan C . Module BCL a . S c a nning b . Acc ès I3EL c . Acc ès 13 SL d . Proc éd ur es utilit a ires T 3.4 . 3 . 2 COLIG A. Architecture fonctionne ll e d e l ' automate COLIG 13 . Automat e colig B .1 Supervision d e l ' au tomat e B . 2 Autom a t e COLIG V 3.4 . 3 . 3 COCOM V 3. 4 . 3. 4 TAXAT E 3. 4 . 3 . 5 Base de données . E REMARQUE Les lettres indiquent les responsabilités· de telle sur t el l e p arti e d u d ocu~ent . V E T Van Gaver Rudy Evrard Ma rc Trigaux Benoît. pers onne INTRODUCTION Parm i l es nombreuses. branches de l'info rmatiq ue mo de rn e , l ' ~tude des r é se a ux télématiques es t c er t a ineme nt une voie d ' a v e nir où beaucoup de re c he rch es e t d ' amé liora tions resten t à faire. On assis t e depuis plusieurs années à l ' é cl os i on de r é s ea ux a voc ations d ive r ses , transmission de d o nnée s , t é l é comma nde , envoi de textes et d ' i mages e t bien d ' autres encor e . Qu e l q ues anc~tres comme l e tél~phone e t l e télégraphe tent ent éga l eme nt de se mode rni ser pour r épondre à l' é volution qua lit ative et quan tit at ive des b e soi ns actue l s . De man i ère générale c ependant , on constat e un c er tain manque de coordination dans c e tt e conjonction de mouvenen ts. Des organismes internationaux comme l e essa i ent constammen t d ' établir des C. C. I.T . T . standards acceptés par l e plus g ran d nombre , ce qui d oit perme ttre un e harmonisation des sytèmes , et de ce fait l ' int e rconnexi on e t la coll a bor a tion e ntre réseaux . Une norme par ticuli ~rement intéressante publi ée p ar l e C. C.I . T . T . à ce su j et es t cell e traitant d u R. N. I . S. ou Résea u Numé riqu e avec l ' Int égrat ion des Serv ices . Dans sa phase f inal e , c e conc ept est c e lui d ' un r é s eau unique et transparent , capab l e de transmettre n ' importe quel type d ' informati on , pourvu que c e lle-ci soit n um é risée . Avec u n t e l r éseau , il n ' y aura plus de s épa ration entre r&scaux a vocations diff& r e nt es , ma i s un s e ul réseau comb ina nt les services anciens corne l e tél ép hone , et l es services nouvea ux comme la transmission de do nn ées . Le premier chapitre de ce mémoire est cons acré a cette é vol ut ion hist ori que e t te chni q ue des réseaux . Da ns l e deux i ~me chap itre nous avons réduit not r e c hamp d ' inve s t i gati o n a ux commut a teurs numé ri ques . Ce ci c o mpo r te pl u sieu r s a pe cts : 1• Le s comm ut ateu r s é t a nt de s sy s t ème s en temps rée l , no u s a vons d û cela l es p robl èmes q u e e nvi sagé t e chniques s oul e v a it , et l es utili sées p ou r y répondre . 2. La comm utatio n e ll e -même se fait au moyen de l a mi se en con nec tion de c a nau x num é ri q ue s , et e st contrôl é e par la s i g nalisatio n . 3. En t emps que système informati q u e d e contrôl e de proces sus ph y sique , l es comm u t at e urs ont de s arch i tectur e s tr ès p a r ticuli è r e s , o ù l e log ici e l es t é t r oit ement li & a u ma t é riel . Le t r o i s i ème chap i tre est u ne a na l yse complète d ' un comm u tateur t 5 l ~phon i q ue 11umér i que loca l écrit en l a n gage C po ur u n micro-or d ina t e ur basé sur un mi c ro- proc esse u r INTEL 8 0 86 . Toutes l e s not i ons th6o ri q u es vu es a u c hap itre 2 sont r epr i ses e t app li q u ée s . "Si le commerce est le coeur d'une économie, on peut dir que les télécommunications sont pour une économie et une société leur véritable système nerveux . " Le président de la banque mondiale. CHAPITRE 1 LES RESEAUX COMMUTES 1. LES RESEAUX COMMUTES. 1 . 1 Définition. Nous d és ignons par r é seau commuté l' e nsem b le d es moye ns mis-en-oe u vre pour permettre à des usagers distants d' é ch a nger entre-eux des informations avec un délai aussi court que possible. 1 .2 Types de réseau commuté . Les types de réseau commuté sont classés en deux g randes famill es . D'un e part, celle qui recouvre la transmission de la voix et d ' autre part, celle qui recouvre la transmission des donn é es . 1 . 2 . 1 Première famille: transmission de la voix. 1 .2.1.1 Le r é seau t 6 l é phoniq ue. A. Architecture. ~:~_Divi s ion_géographique. La division géog raphiqu e est hiérarchis é e en z ones, secteurs et réseaux. La zone est caractérisée p ar le fait que tous les secteu rs et réseaux passent par son centre po ur établir la plupart des liaisons internes et toutes les communications extérieures à la zone. Le secteur est une aire de taxation. Le r é seau est une aire de raccordement de l'usager. A.2_Dr~ani satio n_en_ é t oi le. figure A.2 . 1 l egende • c e ntre de raccordeme n t . c e n tre de se c te u r. c e ntre de zone. ~4.tt • N Il t câ b les locaux ou de rac cor deme nt. jonctio ns u rbaines. câ b l es de jon c tions. ,.,.~.: c~bles inte rurb a ins. La figure ( A.2 .1) indique les principes de base pour l'organisation du r éseau t é léphon i que. La c e l- lule é lém e ntaire é tant l a zone de di st ribution dan s chaque zone, le r é s ea u t é léphonique est étoilé autour d'un centre de zone . Des centres de secteur lui sont connect és . A ceux-ci, tou jours en étoile , sont reli és les centres de raccordement. 2 B. Composants . Mat ériel l e ment , le r é seau t é l é phonique est constitué - des postes d'abonn é qui assure nt la con v ers ion de la paro l e en signa ux é l ec triqu es et r é ciproq uem e nt. - des commutateurs qui assurent la concentration du trafic des abonnés r at tach é s et l'aigu il lage des com mun icatio ns. - des supports de tr a n smissio n. B.1 Les commutateurs . ~:~:~_Typ es_de _ c o mmutateurs . Il existe tr o is typ es de c om mu tateur: traditionnel à processeu r, n um é riq u e et temporel . 8 .1 .2_C ommutateur_traditionnel . ( première génération) Il est de nature éle ctro-m a gnétique et mécaniq ue à logique câb l ée . Il e st co n sti tu é d e c herch e ur s e n éta g es mett ant en r appor t l'a bon né appelant av ec un e nr egist r e ur qui lui tran s met l e ton d ' invi t atio n à e nv oyer l e s chi ffre s de l' appel é , reçoit le s chiffres et transm e t ceux-ci v e r s chac un de s é tag es de sé lect i on po ur r é aliser une liaison locale. Dan s l e cas d'un ap p el r ~ gional ou in te rurbain il exis t e , en pl us, un e procédure de sig nalisation. B. 1 .3_Co mm utateur_à _ processeur . se conde g é n é ra ti on ) Ces commu tat e urs ont le même rôle q ue l es commutateurs traditionnels. Cepe n dan t, ils con stit uent un premier pas ver s la transmission n umérique et l'int ég r a ti o n des organes. En o utre, il amène des avant a g es non-n ég ligeables pour la t é l ~p h o nie : i . la r ~d uction du mat é riel en passant de l' é lectro-m ag nétique à l ' é lectronique. ii. l'a ccro issem e nt de la fiabi li t é de s o pé rat i ons. 3 iii. l e dév e lop pe me nt d e s se rvices fournis dû à la so u p l es s e rappor t de l a p rogram ma tion par au fi g eage des circuits câblés. Les caract é ristique s d e c e tt e co mmut a tion à proc es s e ur sont : 1. les li a i so ns sont r é alisé e s à l'aide de matri c es en g r i lles s pa tial e s. 2. le s c i rcuits de co mmande sont élect ~oniques et tendent d e p lu s e n plus vers l'intégration . Ils sont modulair e ment fonctionnels. La r é duction de leur vitesse de fonctionn e ment permet d'en r é duire le nombre. 3. le multiplexage de l' é chantillonnage des circuits e st possible. En d'autres t e rmes, chaque organe es t simultan é ment à la dispo- sition de plu s i e urs a p pels. B .1 .4 _ Co mmutat e ur_nu mérigue_et_t e mp orel ( troisième g é nération Ce poi nt sera d é t a illé dans le chapi t re s econd de c e p remi e r syllabus. B .2 La t Ean sm ission. B .2.1 L e s r é seaux urbains. L e s li g n e s d e rattachement d'a bo nné ou les circuits de j onction entr e l es c ommutateurs d'une même z one urbaine sont constitués le plus souvent p ar d e simples paires d e conducteurs métalliques. S ur le p lan pratiqu e , p l u s i e u r s pair . s de conducteurs sont r é unies e nt re - e lles pour constituer un câble. B .2.2 Le r é seau interurbain. A. L e s câ b les ch a rgés . La pr i ncipale limitation du câble de type urbain es t son affaiblis s ement inversément pro p ortionnel à s on diamètre. Dr p our des raisons économiques l ' on a intérêt à ut i liser d e s câbles de faible diamètre. Le câble 4 doit alo rs être chargé, c ' est à d ire que l'on amplifie le signal tous les X mètres . 8 . Principe du multipl exane en fréquence . -------------------------~--------------Chaque signal t élép honique occupe une bande cie fréq uences n omi n a lement fix é e à ( 0 -4 000 ) HZ . De nombreux supp o rts filaires et radio- é lectriques permettent en fait de trans me ttre dans une b a nde beaucoup plus étendue ( plusieurs mégahertz ). Il était donc tentant de mettre en oeuvre des systèmes utilisant le principe du multiplexage en fréquence : s ur un même support physique, on transmet en pa ra llèle plusieurs communications tél ép honiques, chacune d ' elles se voyant allouer à l'intérieur du spectre de fr é quence t.rans mis une plage de fréquence diff f rente . G._A eplication_au_mult ip l 0 xa ge _t é léphoni9ue . On con s titu e d' abord le gr o upe p rimair e de base qui cont ie nt 12 vo i es dans la bande 60 à 1 0 8 KHZ . Le groupe secondaire est con s titué de 5 groupes primaires 312- 55 2 KHZ ). Les groupes secondaires sont regroupés par paquets de 5 da ns la bande 812 - 2044 KH Z pour constituer le groupe tertiaire de base. Enfin, on obtient le groupe qu a tern ~ ire de base en regroupan t aires ( 8516-12 . 388 KHZ 3 group e s terti- ). D._Supeorts_utilisdbles_ear_les_multiplex_analo9iques. D.1_Câble_à_e a ires_sim é trigues. - diamètre assez important. - bande passante de 500 KHZ. - la diaphonie est àretenir comme un désa vant age à l'utilisation de ce support . D. 2 Câble c oaxial. le plus ut ilisé en transmission à lo ngue distance. 5 - bande passante de 6 MHZ à 6 0 MHZ D.3 Faisceaux hertziens. - emploi accru dans les dernières années - bande passa nte de 4 GHZ et d e 6 GHZ, cependant des systèmes à 7 GHZ et 11 GHZ sont en développement po ur pallier à la saturation progressive des deux autres systèmes. E._Transmission_numérigue_et_multiplex~ge_temporel. Outre la représentation analogique d'un signal télé phonique ,il exis te une autre façon de représenter-donc de transmettre et de commuter- sous la forme d'une s uit e d'éléments binaires. On démontre ,en effet , qu 'u n signal à bande limi- tée peut être représenté par la suite de ses échantillons prélevés à une fréquence de 2 W au moins. La voie téléphonique peut être reconstituée à partir d'échantillons prélevés tous les 1/2 W 3 1/2 W = 1/2x4x1 = 125 micro-secondes. • Comme l'illustre la figure (V.1) , l'amplitude de chaque échantillon est codée par un mot de B bits, ce qui permet la distinction entre 256 niveaux. La suite des symboles binaires à transmettre a un débit de 64 Kbit/s . Le bruit de quantification est l'erreur que l'on commet en assimilant l'échantillon au niveau le plus proche parmi les 256 possibles. En ce qui concerne la transmission,on multiplexe dans le temps les différentes voies (fig.V.2): entre deux échantillons successifs d'une même voie, on dispose de 125 micro-secondes pour transmettre les mots de B bits qui représentent les échantillons pour les autres voies. Le multiplexage consiste donc à affecter,à l'intérieur d'une trame, signal unitaire; un intervalle de temps à chaque les différents échantillons entre- lacés sont émis successi vement, la voie i sentant toutes les 125 micro-s e condes. 6 se pré- Signal basse fréquence filtrage J Echantillon Q l u a n t l L Int é gration +4 +2 -- - D J. f i Dé codage -2 C a t -4 l Co dage ( 4 bits) 41--- A - --.i----- -101-1 -t-.3 & --.IMol'--- C ___.., -10-,0000,1 +1. FIGURE V.1 - -1 Principe de la modulation rar impulsion et codage (MIC). 7 VOIE 1 / 12 5 1 VO 1 E 2 ~ -------- , s ------ ------ --- --- VOIE 30 / 1'1/ -s!~::! ·i(I 125 )J..S ig nal MIC V. T. VOIE VOIE \ VOIE 30 2 V. T . = Verrou illë-1ge de trame ( ide ntifie le début de la trame) FI GURE V. 2 : Principe du multipexage te mporel MI[ . 8 ---• V. T. VOIE F._Hiérarchie_et_systèmes_de_transmission_numérique. Le multiplex primaire à 30 voies est regroupé par ensembles de 4 pour fournir un multiplex du second ordre de 120 vo ies à 8,448 Mbit/s . Le multiplex tertiaire (1 920 ) comprend 16 signaux à 8 Mbit/s multiplexés à 140 Mbit/s . 1 .2.2 . Seconde famille : transmission des données. 1 . 2 . 2.1 . Le réseau télex . La tél é graphie est une technique de transmission d'informations éc r ites par les moyens de téléc ommunications: le réseau tél é graphique commuté,ou résea u télex, assure en effet la connexion temporaire entre deu x téléimprimeurs qui sont des machines à écrire télécommandables . A. Caractéristiques. De même qu'en téléphonie, la partie du réseau la plus proche de l'abonné e s t constitu a de paires métalliques. La vitesse de transmission est de 50 bauds. Le codage utilisé est le C.C.I.T.T. à 5 moments. La procédure X 20 régit la commutation, les échanges et la signalisation. B. Types de commutateurs. Ce réseau, à l'instar du réseau téléphonique , est form é de commut ateurs d'architecture traditionnelle et à processeurs . Les messages de données d ' un abonné à un autre sont de nature alphanumérique , ils sont transmis d'un télétype à un autre et sont commutés vers l'adresse souhaitée en traversant un ou pl u sieurs commutateurs. Le réseau télex est international . La tendance prochaine sera de substituer les com mutateurs traditionnels par des commutateurs à architecture à processeurs . 9 1 .2.2.2. L es réseaux de commutation de circuits, de mess a ges et de paquets . Pour ces trois types de réseaux commutés nous avons choisi une présentation comparative. A. leu r technique de commutation. / /_ "ll _ - i - - - --- - L - ·, "" t s f,4 R B L1 f:', K Î\ Cl .~ . /1[~,- (,E. S,.., , Tc1'1,..,{, 10 - Ar PfL B. Caractéristiques. Ces trois types de réseau sont caractérisés par des procédures et/ou protocoles . Réseau Procédure R.C. X21 Circuits Protocole (20) ESC , HDLC R.C . Messages XJ, X28, X29 R . C. Paquets X25 L ' architecture de ces trois réseaux est le "maillage~ Une caractéristique fondamentale du R.C.C . est la réservation, pour la durée de la communication , d'un chemin physique entre les deux abonnés . Ceci n'est pas d ' application dans les deux autres cas : pour le R.C . P. , il existe un circuit VIRTUEL entre les abonnés; pour le R.C.M., le message est remis au r éseau qui se chargera de l'amener à l'abonné appelé . On peut aussi les caractériser sur base de certains critè r es. 11 Services Circuits Critè r e In i tial Dél ai q qs sec. Paquets D. 1 à qqs * Messages qqs s. ~------------------* Comm u n ic a ti on é t abli e .o . qqs s q qs a -- -- + D Co mmunication b id ire ctionn e lle c on v ers ion s p o ss ibl e s * - oui 1 à h. * oui code s OUJ. oui v it e s s es Asservi s sem ernt à l a vi tess e destin at a i r e OUJ. . Emissio n v ers des t i n a t aire indisponib l e e nvi sa geab le Rendement élevé des l ig n es oui selo n nature du traf i c Mémoi re n é ce s sa i r e D 12 f a ible, r a pide important e ,., l e nt e 2. EVOLUTION DU R.T.F. 2.1 . VERS LE R.N.I.5. Introduction. C'est dans le courant d e s années 70, que furent introduits séparément la transmission et la commutation numérique. Au cours de la présente décennie, elles ont fusionné pour donner naissance au réseau numérique intégré (R.N. I .) dans lequel les connexions établies par les commu tateu rs numériq u es seront utilisées pour la transmission de signaux numériques relatifs à un seul service, tel que la téléphonie. Dans le même temps, de nombreaux réseaux privés , pour données, ont été réalisé s au moyen de circuits loués pour servir les grandes entreprises. Plus récemment, on a vu la création du réseau à commutation de circuits et du r éseau à commutation de paquets, cette foi s po ur ser v ir toutes les entreprises. Prochainement, l'expansion des se rvices de données touchera les entreprises individuelles et les abonnés résidenti e ls. Cette expansion peut être réalisée de deux manières. Premièrement, les réseaux de donnée s peuvent être dtveloppés et assurer une large couverture comme le RTF Secondement , les services téléphoniques et non téléphoniques peuvent être assurés par un réseau unique qui serait déri v é du réseau téléphonique existant. Cette seconde sol ut ion est appelée le Réseau Numérique avec Int égra tion des Services. (voir figure V.3) 13 IN TR ODUCTION DE SYSTEMES DE COMMU TATI ON NUME RIQU E INTRODUCT I ON DE SYSTE MES DE TRAN SM IS SI ON NUM ERIQUE _,,.,,------·- ( R.N.I. \\ /-- / / I NTRODUCTION DE LA NUME RI SA TI ON DU RESEAU LOCAL RESE AU X SP ECIALI SES donn ées , SMS , R. N. I. S . phase initiale ... ) R. N.I. S. phase de maturité - INTRODUC TI ON DES RESEA UX A LARGE BANDE R. N.I. S . phase finale FIGUR E V. 3 Scénario rl ' é voluti on du fl . f\J . I . vers le R. N. J . S. 14 Cependant les performances du réseau analogique tendent à restreindre l'utilisation de ces nouveaux services.(ta bleau V.T.1) Le R.N. I., par contre, permet une utilisation tout à fait satisfaisante de ces services grâce à son débit de 64 Kbit/s.(tableau V.T.2) En outre, les commun i cations à grande vitesse entre ordinateurs et certaines communicatio n s d'images (visiophone et vis ioco nférence) n é cessïtant une bande passante beaucoup plus grande devront être mises en oeuvre dans les réseaux à large bande. Tableau V.T.1 - Limitation de vit esse d'un réseau analogique . ---- --- Débit binaire du réseau analogique Service Temps de tr ans miss ion pour 1 page Temps de transmission souhaitable (secondes) (secondes) ( Kb it/s) (Kbit/s) Videotex 1,2 10 1 9,6 Télétex 2,4 1D 2 9,6 5 64 Télécopie ·• Débit nécessaire - 2,4 - - -- - - 1 20 - ·- 15 --- - Tableau V. T . 2 - Services candidats à l'intégration Service Bande passante Parole numérique (64 Kbit/s) --------------------------------------Téléphonie Données Texte Téléphone Données à commutation de circuits Télex Image Données à commutation par paquets Liaisons spécialisées Liai so ns spécialisées Liaisons spécialisées Recherche d'informations (par analyse et synthèse de la parole) Télémesures Videotex Transferts financiers Télécopie Recher che Recherche Recherche d'informations d'informations d'information s Boîte aux lettres Boî te aux lettres Courrier électronique Co urrier électronique Surveillance Alarmes Large bande (64 Kbit/s) Musique Communications à grande vitesse 16 Téléconférence Visiophone Télédistribution 2.2. le réseau numérique intégré. L'évolut ion vers le R.N.I.S. tr o uve sa première étape dans la réalisation du réseau numérique intégré. La transmission et la commutation numériques sont intégrés, gistré. la commande s'effectu e par programme enre- Le R.N.I . dispose d 'une signalisation sur voie commune et d'une transmission à 64 Kbit/s de "central local origine" à "central local terminal" . A remarquer que la transmission entre abonné et central local est toujours analogique .( figure V.4) L'étape suivante v ers le R.N.I.S. est la possibilité d'utilisation directe des 64 Kbit/s par l ' usager. La ligne de raccordement sera, rique. par conséquent, numé- La signalisation locale sera plus évoluée et on pourra procéder à l'intégration des services dans 1~ R. N. I. (figure V. 5) 2.3. Evolution des services. 2.3.1. Le nouv e aux ser vi ces. Des services de données existent déjà , on y trouve les réservations, opérations financières, ou enco- re la consultation de ba n ques de données. De nouveaux services so nt déjà prévus . Le service de télécopie qui consiste en la trans mi ssion et la reproduction, par u n terminal é loi- gné , de toutes sortes de graphismes ,manuscrit s ou imprimés. Le service de télétex q u i ------- permet a ux terminaux d'abonnés d' écha nger des correspondances de façon entièrement automatique. Ces term ina ux offrent toutes les facilités de manipulation de la cor r es pondance : mise en page ,im pression ... Le service de videotex permet la recherche d 1 infor- -------- mations par un dialogue avec une banque de données en utilisant des récepteurs de télévision ordi na i res ou des terminaux spécialisés . 17 num é rique num é rique 1 1 ;-·ê entr a l ' local a na log i que 1 1-ce ntra l local centre de transit 1 - 1 c om mut. ·- - - - - commut. commut . emporel empore l 1 1 r,1 _.;l--t- .tht / s ,_ _ _. ligne d'abonné 1 rocess . process [ pr • cess L • 1 FIGURE V. 4 numérique o-. 1 .e-1-- /. -_ - -- ' - numériq ue 1 Télécopie n, bomm ut . y ~ '-f ique ~entral lac .. ' P. /; Ci-0 /· .- \ \ :i c h é ma d u R . N • I . 1 1 E num 64 t empo r e l Kbit / s ce ntral lac . Té l é phone ommut. 1 , 1 ......- 94 ~ -- 1 t empore Kbit/s l 1 64 Kbi t / /0 --- 1 1 ! _ t/ I_ •• - lprocess·.-r ligne d I a bon n ,~ l - - '> FIGURE V.5 1 p ro cess .. \ 1 < Sch é ma du R. N.I. 5 . 18 . .. _ 1 Té léphone numérique / ligne d ' abo nné Données 2.3.2. Caractéristiques des réseaux multi-services. 1. Gestion simplifiée pour l'administration. Il va de soi que la gestion d'un seul réseau est plus simple que la gestion d'une pluralité de réseaux aux caractéristiques différentes. 2. Pour l'abonné, surtout l ' abonné résidentiel, il y aura des avantages de coût et d ' usage puisque une seule ligne d'accès sera nécessaire au lieu de lignes séparées pour le téléphone, et les données . le télex En outre , l'intérêt d'un service croît avec le nombre de ses abonnés et le réseau R . N.I.5. offre l e maximum de connexités pour tous les abonnés. 3. Les investissements seront mieux utilisés. (figure V.6) La figure V. 6a montre les investissements nécessités par un réseau téléphonique sous la forme d'une surface rectangulaire T déterminée par le nombre d'abonnés téléphoniques et le coût par abonné. Les réseaux de données n é cessitent des investisseme nt s plus faibles D , D parce 1 2 qu'ils désservent seulement un petit nombre d'abonnés, à un coût s upérieur par ligne. La figure V.6b montre la situation lorsqu'il y a un gr and nombre d'abonnés aux ser vices de données; les nouveaux investissements dans les réseaux de données, indiqués par les rectangles A et B , deviennent comparables aux investissements da ns le réseau téléphonique. La figure V. 6c représente le cas du R . N.I.5. la croissance des réseaux de données es t et les nouveaux abonnés, connectés au R.N.I.5 . On ne peu t arrêtée non t élép honique s , sont (rectangle A'). affirmer à priori qu'il n'y aura pas de coût supplémentaire B' téléphoniques ordinaires . 19 pour les abonnés a. Inv es ti sseme nt s actuels dans le r ~ sea u Télex ·- C 0 Donné e s ~ ~ r Téléphone fs0 n ~ 1 Nombre d ' abonnés b. I nvestisse me nts .,,,,,---- futurs avec réseaux séparés Nou v eaux a b onnés T é le x No uveaux abonnés Donn ées Nouvea ux abonnés téléphoniq ues ✓ c. Invest is se ments futurs avec r éseau intégré Abonnés multiservices Co ût additionnel p our abonnés té léphoniques No uveaux abonnés t é lé p honiques [ ' FIGURE V. 6 20 Ce coût doit être le p lus faible poss ibl e pour accroître le succès économique du concept de R. N.I.S. Les in v es tis sements dans le R . N. I.S. (A '+ B '+ C ') sont beaucoup plus faible s que dans de s rés ea ux séparés (A+B+C) 2.4. Evol ution du r éseau. La réalis a tion du R . N.I . S . p asse néce ss airem e n t réalisation du réseau numéri que int é gré. par la Ensu i te il é vo l uer a à pa rtir de celui-ci pendant une période de transition qui durera une ou deux d é cennies. Les nouv ea ux services doivent donc êt re comp a t ibles avec les communications à 64 Kbit/s . Durant la période de transition, l'in t erfonct io nn ement entre les servi ce s amenés par d'autres réseaux doit être prévu. C'est la raiso n pour laquelle les c oncept s de catégories de fonctions de réseau et de degré d'intégration ont été introduits. Deux cat é gories de fonctions de r ése au s on t en v isagé es: les fonctions de base relati v es à des communications com mutées e n mod e c ircui t à 64 Kbit/s qui seront offertes par tous le s c entres l oca u x; cette catégor i e permet le ser vi ce de té l épho n ie et é ventuellement des services de données à commutati on de circuit . - les fonctions additionnelles relatives a u x ser vic es qui n écessi tent des re ss ources qui seront disponibles uniquement en certains noeuds du réseau ou dans des sous-réseaux spécialisés. Trois étap es prin c ip a l es sont envisagé es dans l'évolution du R . N.I. - vers le R . N.I. S. Intég ration minimale. La pro cédure norm ale es t un appe l ut i lisée pour établir téléphonique direct mais une connexion i mmédia te est utilisée dans le central local pour l'ét abli sseme nt d'un appel de données . 21 Par cette connexion les terminaux de données ont accès aux fonctions du réseau qui contrôlent l'établissement des appels de données en accord avec le s Avis existant du C.C.I.T .T . ( par exemple: X21, X25) - Intégration moyenne. Dans ce cas, un protocole commun est utilisé pour établir un chemin servant à la fois à la téléphonie et aux données. Ce protocole contient des indicateurs de services qui permetten t au central de traiter les fonctions de commande d'a p pel selon les nécessités d ' un service donné et de diriger cet appel vers le r éseau spécialisé correspondant. - Intégration totale. Un protocole commun et une procédure commune de commande des appels sont utilisés pour établir l'appel et commander les services supplémentaires qui ont un objet commun. Dans l ' idéal, les plan s de numérotage et d ' acheminement seraien t communs. Seules les facilités qui sont applica- ble s à un service spécifique seront traitées séparément. Lorsque l'intégration totale sera réalisée, les abonnés pourront utiliser toutes sortes de terminaux spécialis és ou multi-fonctions connectés au central local par une seule ligne d ' abonnés numérique . • 22 2.5. Les terminaux. Les caractéristiques hétérogènes des terminaux réels obligent la définition du concept de terminal virtuel qui est un modèle définissant un terminal abstrait en termes de fonctions logiques qui peuvent être réalisées différemment sur différents terminaux réels; par con- séquent un terminal virtuel est un terminal réel muni d'un adaptateur de procédures. Les informations sont échangées entre terminaux virtuels en utilisant une procédure de terminal virtuel qui assure par conséquent l a co mp a t ibi lité entre les terminau x réel s . Term inal r ée l Terminal r é el 27 adap t at o rod~ oc . . - Prot ocol e de te rminal - - - - virtuel ,....,......,..t-a....,t....i~o-n~ de transp . Protocol e de transpor t 15 tation u de transp. Télécom municat 23' ~ --a aptat org1€oc . Deux type s de terminaux sont intéressant pour l'évolu tion du réseau: le poste téléphonique numérique et le terminal multi-fonctions. L'évoluti on technologique est telle q ue les terminaux d ' abonnés disposeront de pl u s en plus de puissance de traitement e n vue de satisfaire à tous les nouveaux services . Tab leau V.TJ - Fonctions possibles des terminaux multi-services prof es sionnels et résidentiels Terminaux prof e ssionnels : - Machines à dicter qui a ff i ch ent les messages sur un écran Distribution de courrier électronique avec la possib ilit é de voir les messages sur un écran et d ' imprime r seuleme nt les plus importants - Archives élec t ro n iq u es - Syst è mes d 'e ntrée de données (claviers, analyseur d'images) - Terminaux i nfo rmatiques Terminaux ré sid entiels : Communica tion de personne à personne (t élép honi e ) - Distra c tion (jeux vi deo , ser v ice , videotex) Publication impr e ssion chez l'abonné d e journaux et de magazines Système de gestion et d e commande des appareils ménage rs, ordinateur i ndividuel pour le budg e t fami- lial et les calculs d'impôt s - Enseignement : terminal de calculateur combiné avec un sys t ème d ' affichage Correspondance le service videotex avec boîte à lettr es de messages pouvant remplacer la correspondance écrite utilise un clav ier et des possibilités graph iques (télécop ie ou terminal de télécriture) - Système de trans ac tions permettant les réservations et les ac hats ainsi que les mouvements f in anciers correspondants. 24 2.6. La transmission. L ' utilisation partagée de liaisons de transmission par plus d'un service, en utilisant le multiplexage temporel, es t réalisée e n pr e mie r dans l'évolution Les abonnés connectés au R.N .I. 5 . peuvent disposer des R . N.I. des types suiv ants d'accès: - un accès réservé à un service pa ~ ticulier - un accès alternatif à deux ou plusieurs services - un accès simultané à plusieurs services indépendant s . Pour offrir tous ces services, une liaison numérique allant jusque chez l'abonné sera nécessaire . Trois t echn iques principales existent pour la transmission num é rique entre le central et l'abonné sur une se ule paire: transmission ping-pong ou par salves qui consis te en un e séparation temporelle d e chaq u e direction de tran s mission entre l e central et l ' abonné. - séparation en fréquence - su ppress ion d'écho . EN CONCL USION L'évolution actuelle des caractéristiques des commutateurs téléphoniques associée à l ' é volution de leurs lignes de transmission devrait déboucher vers la création d'un réseau polyvalent valable pour la tél ép honie et les données. On comprend, dès lors, l'intérêt du regroupement de ces services dans un seul réseau, que ce soit pour des ar- guments économiques ou pour des avantages plus qualitatifs. Cependant, il n'est pas impossible que l ' on tende vers le pluralisme des réseaux. 25 CHAPITRE 2 LES CO MM UTATEURS 2 2.1 COMMUTATEURS DESCRIPTION GENERALE 2.1.1 Fonctionnalité 2.1.1.1 Introduction Les commutateurs, comme nous avons pu le font partie voir dans le chapitre précédent, intégrante de tout réseau de télécommunication. Imaginons un instant un réseau de n abonnés démuni de tout systeme de commut a tion. Pour interconnecter nos n abonnés deux à deux, il nous faudrait établir pas moins de n(n-1 )/2 liaisons directes. A partir du moment oQ n prend une dimension réaliste, l'absence de commutateur ne l'est plus du tout. Celu i-Ci suppose un nombr e de liaisons tel qu'il suffit de raccorder chaque abonné au commutateur, c'est-à-dire n liaisons dans notre exemple . Le commutateur a donc pour rôle d'assurer la concentration du trafic des abonnés rat t ac hés et d'aiguiller des communications. Plus pr~cisément, l'ensemble des commutateurs dans le reseau aura comme fonction d'établir à l'aide des informations fournies par l' a bonné demand eu r une connexion temporaire entre ce demandeur et le demandé désigné par la numérotation. On peut remarquer que certaines lignes peuvent être spécialisées pour l'écoulement du trafic arrivée ou départ, une ligne ordinaire étant dite mixte. Il est de plus possible de réaliser un faisc eau d e ligne s groupé e s pouvant tout es être atteintes sous le même numéro d'appel, l'aiguillage étant effec tué automatiquement vers une des lignes disponibles. 26 2.1.1.2 Types de Liaisons ., Les types de liaisons temporaires assures un commutateur sont les suivants : par - liaison entre deux lignes d'abonné rac cordées au même commutateur. On parlera alors de communication locale ; .- liaison entre une ligne d'abonné et une jonction vers un autre commutateur. Si le choix de la jonction peut dépendre du numéro d'appel formé par l'abonné, le commutat eur est dit "à autonomie d'acheminement ". - liaison entre une jonction provenant commutateur et une ligne d'abonné d'un - liaison entre deux jonctions provenant commutateurs distincts (figure T1 ). figt..r.rE! ~r, : t'Jv.:peB de· de autre deux Z-'MZiia01-&. up-_p,e,l aarta.,,:t de a~ 2) a.pp•el ~n.trcu'ï,t· da1t1,B b 1) 3) ,, ap_pel (Ù t:,-·ay\.B'it d',ac.-rut 4) a.p_p-el loca,E danB a ,a. Ce tte distinction est basée sur la différence de densit é de trafic que supportent une ligne d'abonné ( 1/10 d'heure chargée ) et une jonction entre commutat eurs ( 7/10 d ' heure chargée ). 27 Des différents types de liaisons que nous venons de voir, découlent les définitions ci-après - un commutateur univers el assure les quatre types de liaison ; - un commutateur de rattachement d'abonnés assure les. trois premiers types de liaison c'est-à-dire ceux ou a u moins une ligne d'abonné est impliquée ; - un commutateur de transit assure liaison de commutateur à commutateur. uniquem ent la A présent que nous disposons de commutateurs dont les caractéristiques sont connues, restent les problèmes de leur utilisation concrète au coeur de zones d'abonnés plus ou moins denses et dont le trafic répond à différents critères. 2.1.1.3 Implantation des Commutateurs A) Commutation Urbaine A l'origine, la population des abonnés urbains se caractérisait par un nombre relativement faible mais très concentré d ' abonnés, ce qui permettait l'utilisation d'un seul commutateur. L ' expansion des villes et l' e ngou e me nt pour l'utilisation de certains réseaux à amen e r à devoir utiliser plusieurs commutateurs . Leur nombre croissant, ceux-ci ne furent pas r e liés d e ux à deux mais bien connectés un commutateur de transit. Ceci configuration en étoile (figure T2). J'4i..9,urE! T2 : 28 res.ea:u i?'ln.. donnait etoile à une B) Commutation Interurbaine et Internationale Pour mettre en relation différentes villes , il suffit de relier deux à deux les commutateurs de transit que l'on trouve dans les centres urbains . La configuration du réseau devient maillée (figure TJ). fig-u -r e T3 : -re.siea.u. n,,a'iiUe Pour les communications internationales à longues distances est prévu un niveau supérieur de commutation regroupant toutes les communications d'un pays dans un centre de transit international vers un autre centre de transit international. C) Commutation Rurale Le problème de la mise en relation de centres comprenant un faible nombre d'abonnés, relativement concentrés et éloignés de tout autre centre d ' importance, est d ' ordre plus économique voire sociologique- que technique. En général, seront utilisés soit des petits commutateurs éloignés assurant les communications locales et délégant ses autres fonctions à un centre plus important auquel il est relié, soit un simple concentrateur reliant les abonnés distant au moyen d'une seule ligne au commutateur principal (figure T4). 29 con c-entrcteur· '7,,' ',,,,.>- .,,,,,,,,,,.,,.. .,,...,,.. \\ ·------------ // f~ig·u1-•~ T-4 : ·re s~?cx:u, cc,n,mut.ott!Llr 1 l'--....., ........ a~1Jc~,c c 0?1,c eri:tir.a.t-e·1..ir 2.1.1.4 Impact du Trafic Les performances d'un commutateur influent directement sur la qualité du service que l'on veut garantir. Or, ces performances pourront être ajustées en fonction du trafic en faisant varier deux paramètres fondam e ntaux déterminant le dimensionnement d'un commutateur le nombr e de lignes raccordées et le nombr e maximum de communicatio n s a dmi ses si mult a ném ent . La mesure du trafic quant à el le, sera basée sur deux principes régissant les liaisons temporaires sur un réseau commuté: - l e s appels ap parais sen t à d es instants que lconques e t indépendants les un s des autres ; - les communications ont des durées variables dont la durée moyenne e st connue. 30 2.1.2 Caractéristiques Les fonctions spécifiées précédent seront réalisées par fonctionnels qui suivent : au paragraphe les modules 2.1.2.1 Réseau de Connexion Une liaison physique n'est possible que via la transmission de courant porteur d'information au sein du commutateur. Connecter une voie entrante à une voie sortante de telle façon que les signaux portés par la première se retrouvent identiquement sur la seconde est ré a lisé par d e s équipe me nts a ppe l~s globalement réseau de connexion. 2.1.2.2 Module de Relation Un commutateur agit en réponse à des demandes faites à distance. L ' établissement des communications nécessite donc d e s échanges d'informations pour lesquelles le commutateur doit disposer de fonctions de dialogue avec l'extérieur: ce sont les fonctions de relation. L'ensemble des procédures qui échanges est appelé signalisation. régissent ces 2.1.2.3 Unité de Commande Celle-ci traite des informations de signalisation de manière à assurer les différentes opérations de commutation. Ces traitements peuvent être regroupés en grandes fonctions. 31 A) Acquisition des Evénements Les différents événements sont détectés par l'in termédiai re d'un explorateur activé à une cadence dépendant de la durée des événements à déte cter . B) Commande des Equipements L'UC peut positionner dans différents états l es équipements supportant l e s ressources du système. C) Gestion de la Connexion L'UC va déterminer et établir pour appel un itinéraire dan s le réseau connexion . un de D) Traduction Le numéro de l'abonné demandé n e pe ut ê t re utilisé directement pou r commander les opérations de commutation e t doit, pour ce faire, être préalabl e me nt traduit. E) Taxation Le servic e rendu par le ré sea u de tél écommunica tion doit être facturé aux abonnés selon différents principes . Les commutateurs doivent donc permettre l'élaboration de données nécessaires à la facturation d es communications qu'ils établissent. F) Exploitation et Maintenance Le commutateur impératifs suivant : doit assurer l es deux - gérer ses équipements en fonction de la d ema nde et de l'évolution du trafic e t du reseau; ~ - maintenir la qualité du service offert à un nivea u satisfaisant (figure T5). 32 tlql.1~! lncf\Ad114d d<e 11.,. ben-,,l na u>: ou c:onrnu ta t..111, ,.. _,u c=!--------r--1 da CXlflNDde,n O<>llo.at. .t dl 11Mb utl0ti d'lnfonnol:ioM bUI de tn:ntm~• Ion unit•• d~ cc,rrmar~~ :f'iÏ,f,1'.U.:Y-E? 7'5 . bloo~r .for1,c1ti:onr.tef..s d "u'.n. c o r.n.rn'l.t ta te1..1.,r Les fonctions de connexion e t de commande seront développées dans les paragraphes suivant tandis que la fonction de relation fera l'objet de travaux a nn exes . Alors qu'en commutation élec tro-mécan i que classique les fonctions de commande étaient réa lisées en logique cablée, elles sont actuellement centralisées dans un ordinat eur sous forme de programme enre gistré dans une mémoire. En effet, ces fonctions sont d'analyser des événe ments extérieurs émanant d'une multitude de sources indépendantes, de l e s interpréter comme demandes de communication déterminées et d'en déduire les actions à entreprendre. Tout ceci peut être décrit au moyen d'une succession de choix élementaires dans un programme à déroulement conditionnel. Avec l'apparition d'ordinateurs dotés d'une très grand e puissance de traitement, la centralisation à outrance des fonctions de commande semble favorisée. Deux difficultés majeures tempèrent cett e tendance: 33 - la dimension du logiciel difficile à maîtriser ; rendrait celui-ci - en cas de défaillance de l'ordinateur unique, la panne serait complète. Ces arguments donnèrent naissance à troi~ types de structure de commutateur relatifs a l'importance accordée à chacun des arguments . a.- Organisation Dispe rsée Les étages de sélection de lignes peuve nt être placés à distance et constituer des centres satellites, le centre principal gardant la commande centralisée. b.- Structure à deux Niveaux Les centres satellites (locaux) sont munis d'organes de commande spécialisés d'une puissanc e limitée aux fonctions d'établissement des appels. c.- Commande Décentralisée Partage des fonctions entre des proc e sseurs spécifiques e t un processeur de contrôle à l'intérieur d'un même commutateur. 34 2.2 COMPOSANTS Dans le commutateur, on distingue deux ensembles - les organes qui assurent effectivement l a liaison temporaire entre deux abonnés et q u i constituent le réseau ( ou matrice ) d e connexio n; - les équipements communs qui aident à la mise en place du réseau de connexion e t qui ne sont occupés que pendant une partie du temps de la communication et qui appartiennent à l'unité de commande. 2.2.1 Réseau de Connexion 2.2 . 1. 1 Introduction L'évolution chronologique et technologique des commutateurs a débuté en 1878 à New Haven aux Etats-Unis avec un premier système manuel de commutation. Depuis lors, l ' évolution des commutate u rs vers l'électronique , parallèle aux déve lo ppements des systèmes de transmission, fut beaucou p moins rapide que ces derniers . A l'heure actuelle, le débat sur l a commutation se développe autour des deux pôles que sont l' électronisation et l ' informatisa ti on . Le dernier né de cette comm un ion est l a commutation temporelle qui permet une symbiose d e plus e n plus poussée entre la trans mission et la commutation de par l'identité entre les signaux utilisés dans les deux applications . Ces développements, pour être utilisables à l'échelon international , ont fait l'objet de nombreuses nomenclatures . 35 2.2 . 1 . 2 systèmes manuels Une opératrice se tenant devant un tableau répond aux appels des abonnés , établit les communications demandées à l ' aide d ' un cordon et les libère quand la communicati o n est termi n ée . 2.2 .1. 3 systèmes a u tomatiques A) Systèmes rotatifs a.- Systèmes pas à pas Le composant é l éme n taire de ce type d e système est le sélecteur . Celui-ci comprend dix niveaux . A chaque niveau , se trouvent dix sorties autre sélecteur ou vers un abonné . vers un Quand ce dernier compose le premier chiffre du numéro , chaque impulsion émise par le cadran provoque l ' ascension d ' un niveau d u sélecteur relié à l'abonné . Pendant que le cadran revient au repos , le sélecteur tourne autour de son axe vertica l et s'arrète sur la première sort i e li b re . L ' abo n né compose alors son deuxième chiffre qui p rovoque de même la montée du sélecteur relié à la sor t ie choisie précédemment , e t ensuite , la recherc h e d' u n niveau libre. Ainsi de suite jusqu'à la connexion à l'a b o n né demandé (figure T6 ). Un avantage de ce système est qu ' un é t age déjà mis en place est transparent à la numérota t ion ultérieure de l ' abonné. Par contre , le plan de numérotation est dépendant de la structure du réseau , ce qui a conduit à la conception du système à enregistreur . b.- Système à enregistreur Le numéro de l'abonné est reçu directement dans un enregistreur. Ce l ui-ci fait appel à un traducteur qui lui donne les éléments pou r acheminer l'appel à travers les sélecteurs . 36 •:ib,or,r.. dorncmdo a bc~n ne, d ern•:in d•,u r con::l<:,n ---11111- 7ê==1 ==- , c::-- INl.â~lr de 5 §~~l.-L L.__E::::3 e•ir.~:ëür dt1 cerrtuines m llfl'ers eê~~t1 .... ê:=:: # -,;rëc;:Gïu r d• diaolna, ---;_r4• '" 11 11 eoleic:-te ur· d'ur,ltH• L'abonne demandé a le numéro 75845. On remarque déjà ici la distinction e ntre le "réseau de connexion" représenté par les étages de sélection et l'"unité de commande" représent ée par l ' enregistreur et l e traducteur (figur e T7). c,t>onne ot>onI1e, dernondeur dorncnde n~gœ1 c:on:lon 7~== ~~ :~êêJ--[, • .. c--- L !)C:--~-L C---i ---fl,§1~11----s-e. .l;Î.~,r . ..~~:ü,· • (/ J d~ c e,,tol n•ts ml 111 eris 7( ') "::r- c_:-:-:.;_::J _:._14-- ~ d lz ai nuis • • °' ~ :Htle,cl:eur· c:1'1Jnlt.e11 ~ __ -~~;~Ur· enre.;il11treur ti-o d lJC te,u r L'abonné demandé a le numéro 7584. 37 ,mmt~. j Le se ul inconvénient reste que les contacts établissa nt l es communications se déplacent sur des distances importante s . Les systèmes crossbar inventés par Bertulander en 1917 vont tenter d'y remédier. B) systèmes crossbar Ces systèmes sont basés sur des sélecteurs appelé s "crossbar" car leur pr inci pe consiste à mettre en place, à l ' ai d e d ' électro-aimants, d eux barres croisées, l'une hor izo ntale, l'autre verticale, séparées au repos de qu e lques millimètr es , à l ' intersection desquelles un contact e st établi. Contrairement au système système crossbar offre l ' ava ntage de conjuguée une e ntrée e t une sortie connectées s i il exis t e a u moins un entre elles . rotatif, le l a sélection peuvent ê tre chemin libre C) Sys t è mes élec t ro n i ques a . - Commutat io n spat i a l e Le principe régissant la commutation spatiale consiste à éta blir physique ment un chemin continu entre la ligne entrante et l a ligne sortante . La rec herche d ' iti n éraire p ermet d'obtenir un chemin de proche en proche en connectant bout à bout des éléme nts de voi e au moyen de points d e connex ion à d eux états : passa nt ou bloqué . Lorsque le che min continu est établi, il permet le passage direct des sig naux d e l a ligne entrante à la ligne sortant e et es t consacré à une seule communication pendant tout e la durée de c e ll eci. Les points d e connexio n sont disposés comme l es lignes e t colonnes d'un tableau (matric e de c onnexion ) pou r q ue chaque ligne puisse être conne ctée à chaque colonne par un point de connexion commun. 38 Le s matrices sont rangé e s en étages adjacents conne ctés entre eux . Cette technique est très voisine du système crossbar utilisé en commutation électro-mécanique. Elle en diffère de par la nature d e s sélecteurs utilisés, de par la taille des matrices et de par l'arrangement des étages de sélection . b.- Commutation temporelle rne,rrro/ nt de c>Otitrole --..-······- . -;·· .. -- .---] [ c:r_j · - · -· -~--L-o..-! ... - --· l,_:!'11_ ~ ·~-----trcarr"' s crt-::i r,t. • r - · ·.. . ·.... - : L--.J !~---·-~ E~\S~~~ <}---"12 0 fiJJ·u .r e ........ _,!__ ___J ~·, T8 : '°Jp-eratSO"n T Au t e mps i ,l'information de l'IT 2 de la voie entrante est transférée dans la mémoire de parol e . Au t e mps i+7,5 , l'information de la mémoire de parole est transférée dans l'IT 13 d e la voie sortante. Les voies entrante et sortante ne sont ni aligné e s, ni synchronisées . 39 La commutation temporelle s'applique, non plus à des lignes entrantes et sortantes individualisées ( correspondant à une voie ou une communication), mais bien à des lignes où circulent des trames de 32 intervalles d e temps (IT), 30 de ces intervalles correspondant à 30 voies multiplexées dans le temps. Le probl~me consiste à tra~sférer les informations véhiculées d a ns l'IT d e la tr ame entrante qui correspond à l a voie entrante indiquée dans un IT donné d 'une trame sortante donnée. Une table de correspo ndanc e maintient la relat ion entre l es positions temporelles dans la trame entrante et dans l a trame sortante. Il s'agit de la mémoire de contrôle. rr 1T i+.3 "tl"a1-ne 1 1 C::L:J._:J==---1 :J=--~---' -tro rr,e .2 c- , :r=:J==1--- ----"1) J. '' t r· d rn '' ~~ IT i• -l~ IT 1+2 IT 1• ~1 IT t r 0 rn e 4 Les liaisons numériques étant synchronisées et alignées, il reste à transférer l'information d e l'IT i+2 de la tram e 3 à la trame 1. Pour ce faire, au temps i+2 l e point de connexion x devient passant. 40 Les trames n'étant pas nécessairement synchrones, un changement d'IT (opération T) est nécessaire. Cette opération réalise le déphasage voulu en faisant séjourner dans une mémoire temporaire (mémoire de parole) le temps convenable l'information transportée par la voie entrante de manière à la synchroniser et à l'aligner avec correspondant à la voie sortante {figure TB). l'IT Le commutateur temporel fournit l'accessibilité totale, sans blocage. Malheureusement, il est limité en capacité par la technologie disponible. Les gros réseaux devront être des réseaux à étages réalisés par assemblage d'opérations Tet d'opérations S. Cette dernière est une commutation spatiale. Une fois les IT synchronisés et alignés, il suffit , dans une matrice, d e rendre passant le point de connexion mettant en relation les trames d es lignes entrantes et sortantes (figure T9). 41 Le Réseau de Connexion Numérique 2. 2. 1 • 4 AXE - 1 0 La version du Réseau de Connexion (RC) réalisée dans l'AXE 10 est du type commutation temporelle. Nous étudierons ici le sous~système de commutation de groupes qui contient le réseau de commutation de groupes. Nous verrons également les tenants et aboutissa nts de c e lui -ci au travers des sous-systèmes d'abonnés e t de jonctions (fi gure T10 ). ,::on n•e>:l<>n s ,. ·,ein1 le,s '· •Jt>on nos • ou • ·-• ya:t. m • de I OUl•-11yutml'l• •ou • - • )lllt.m• .',, 'eomrTI•Jtatlon _, ,, / d' ,:Jbe>nn as ' ' d,e du .,.... Jc,n e·tl<>r,o jJl"OLlp . . 1 Les développements pré-cités se repose nt sur l'explication du déroulement des quatre types d'appels évoqués déjà précédemment : l'appel local, l'appel sortant , l' ap pel entrant e t l'appel de transit (figur e T11 ). •c<>mm1Jtoteur abonne, .A -·----• --.+----. ......................... ,. . :? -- -- ......... _;: ,..~ ... ,~ abcnnu B ,..-#· '-:~. ~_, .:"-~ 3 ',' - - - - - - · - ·••• ·•·············••4----- ;"'i.g1.1..re T't 1 : le& ...i t.wu1ia ·t.- appe.l local 2.- a1~pel sorto1'\t. :3.- appe,I en-tro1'lt 4.- appe~ de tr,::inEiit 42 d.'a:pplll c•or, r,e >< 1o ,,ai v,sr-a l-ee1 a ut:res: c,or,i m u·to tuu n1 A) Etablissement d'un Appel local a.- le So us-système d'Abonnés Chaque ligne d'abonné est reliée au commutateur v i a un modul e de "joncteur d'abonné" (LIC). Ce module réalise des fonctions comme le courant de ligne , la détection du décrpchage, la connexion de sonneri e ou la conversion analogiqu e /num é rique grâc e à un CODEC . Qu and l ' appe l est détecté par le module LIC, le syst è me de commande ordonne l'allocation d'un "Intervalle de Temps" (IT) dans la liaison numérique à 32 voies qui connecte le sous-système d'abonnés au sous-systèm e d e commutat i on d e groupes (figure T12 ). ___1 - - - - - - - - - - - t.•IC ..._ LIC Tt2 [ os~; . Pe nda nt l ' h e ure ch a r g ée , un e lign e d'abonn é n' e st utilisée en moyenne que de 6 à 10 % du t e mps. Sous ces conditions, il n'est pas économique me nt possibl e d'allouer à chaque abonné une voie de parol e sur la liaison MIC. LS:M abonne O abonna 1 at»,,,.. 1~r, 1 LIC 1-- 1 LIC L 1 UCL ~ - r,~ 43 T.S --l JTO::::' Ces voies MIC peuvent être mieux utilisées si un grand nombre d'abonnés partage nt un nombre relativement faib l e de liaisons numériqu es . Cela es t réalisé grâce à une commutation temporelle entre l e module LIC d e l'abonné et le "Joncteur Interne " (JTC) utilisé pour connecter un IT d'a bonné ave c une voie de parole libre . 128 a bonnés pe uvent ê tr e reli és à un module de commutat ion spatiale TS et un joncteu r interne , forman t ainsi un "Mod ul e de Lignes" (LSM (figure T13). Un nombre maximum de 16 mod ule s LSM peuvent être interconnectés au trave r s d'un bus commun ( TSB) pour former une unité de 2048 abonnés appelée "Groupe de Modul es d'Extension" ( EMG). Dans ce cas, le nombre de liaisons MIC reliant le modul e EMG à GSS dépendra du traf ic. Habituellement, les liaisons MIC ne sont connectées qu'à quelques uns d es modul es LSM. Un abonné connecté à u n modu le LSM n'ayant pas de liaisons MIC se verra connecté via le bus TSB à un module LSM bénéficiant d'une liaison MIC . De la même manière, un abo nn é peut être connecté à une autre liaison de module LSM si son ·propre LSM a une liaison MIC dont toutes l e s voies sont occupé es (f igure T14). U» •-J 1 __ L.Slw+-2 1 L!il./t-1 1 l.SM-0 ~;e , - ✓/ ./ li - d: _; i 'T!: . JTc1 GSS - ·lwtC: DAC Un ou plusieurs modul es EMG formeront sous-système d ' abon nés . le Dans le cas d'un appel local, une fois l'abonné appe l é déterminé, de la même manière qu e pour l' abonné ap pelant , un e voie d ans une des liaiso n s MIC du modul e EMG de l'appelé est réservée pour la suit e de l'échange, à partir du GSS vers le mod ul e LSM . 44 b.- Le Sous-système de Commutati on de Groupe Jusqu ' à présent ,l e chemin n'a pas encore été étab li entre l es voies numériques des deux abonnés . Le modu l e GSS sélec tionne, connecte et déconnecte les chemins de parole. Ce module est réalisé à partir de Modu les de Commutation Temporelle (TS ) q ui contiennent des mémoires pour les échanti llons de parole contenus dans les v oies entrantes et sortantes , ains i que des ~ odul es de Comm ut at i on Spatiale ( SP ) qui consistent en matrices 32 * 32 . Le mod ul e TS est di vi sé en de ux parties i dentiques le "Module Entrant" ( ME ) e t le "Module Sortant 11 ( MS ) • b .1 MODULE DE COMMUTATION TEMPORELLE Chaque partie comporte une mémoire de parol? ( SS) ou les échantillons MIC sont e ntreposés dans des intervalles de temps choisis arb itrairement à l'intérieur d'une trame, a; moyen d ' une "Mémoire de Commande" (CS). Les mémoires SS et CS conti ennent chacune 512 cellules correspondant au nombre de voies entrantes dans le module TS, à savoir 1 6 jonctions de 32 vo ies chacune . Pendant chaque IT, la cellu l e indiquée dans la mé moire d e commandG e st lu e dans la mémoire de parole de 1E (figure T15) et écrite da ns la mémoire d e parole de MS . fT ,-, pc1ruie, Cl ~ ---··- l - ~ - - - - t - ~ ~,, 41 CS .xt.,T\.11 porc:>l•e 41 0 b UIU ,,_ ni ~jp ======;a::: L__ _ _ _ _ _ __, 511 S!3 trarTI•t Connexion de la voi e dans l ' IT externe 4 1 v e rs le module SP pendant l'IT interne 85 . 45 b.2 MODULE DE COMMUTATION SPATIALE A un module SP peuve nt être connectés 32 modules TS, ce qui représent e un nombre d'abonnés pouvant être servis de 16.348. Chacun de ces modules TS est connecté au module SP via un bus entrant (BE) pour ME et un bus sortant (BS) pour MS, une connexjon éta nt unidirectionnelle. Le modu l e SP es t utilis é pour commuter les bus entrant v er s les bus sortant . A chaque colonne de points de connexion correspondant à un bus entrant est assignée une mémoire de commande (CSC) ayant 512 cellules. Chaque cellule correspond à un IT interne et contient l'adresse du point de connexion sur la colonne qui doit devenir actif pendant l'IT spécifié, l'IT interne de la voie entrante étant nécessairement le même que celui de la voie sortante. La recherche des chemins libres dans le réseau de connexion est effectuée par l e processeur central. Le résea u est à accessibilité totale entre toute e ntr ée et toute sortie {figure T16). Au ssi longte mp s qu e l es informations contenues dans l es mémoir e s d e commande sont maintenues, la même séquence de commutation temporelle et spatiale s e ra exécutée cycliquement, tr a me après trame. Le chemin de parole inverse, de l'abonné appelé à l'abonné appelant, est établi par la "méthode antiphase" . Dès qu'un chemin libre de l'appelant à l'appelé e st trouvé pendant un IT interne, un chemin libre de l'appe lé à l'appelant est garanti une d e mi trame plus tard, c ' est-à-dire 256 IT plus tard. On peut égaleme nt modules SP en une matrice 4 conne cter ainsi 128 modules TS, 65.536 voies. interconnecter 16 4 permettant d e * ce qui représente B) Etablissement des autres Types d ' Appel En fonction du type d'appel, la nature des modules auxquels seront reliées les voies entrante et sortante sera différente. L'ensemble des modules périphériques au GSS e t autres que ceux du 46 "Sous-système sous-système d'abonnés font partie du de Jonctions" (TSS) . .. .. T!S 0 s•· 41~ ui:- ··§1 su "'""' ..... 1 L__I BS 0 ---- . ; T'S 31 ~j ~; 114 ~·"' ; ; -- --.)</ / // // .. c•· ·- • • • a~§ t,E: 51 815 BE 0 Cf! • L •AS . csc· C!iC C> c•· .. __-->~/ ', ' / ',' ',,, '><' / ./ ',' // ', ,. )</ BE 31 / // / c•· es ------31 f-ig ·ur,-a T f {; : 171,,ocl,,.,1,.le S'P Connexion e ntre la voie entrante 41 du module TS O vers la voie sortante 114 du module TS 31. Le chemin est établi pendant l'IT interne 85. Essentiellement trois types de joncteurs sont utilisés dans le module TSS. Les communications en provenance de ou vers un autre commutateur seront connectées, si la jonction est numérique, à un "Joncteur d'Echange" (ETC) capable de transmettre simultanément 30 conversations. Si la jonction est analogique et que nous sommes en présence d'un appel sortant, un "Module Joncteur Sortant" (OTC) sera saisi. Si, par contre, l'appel est entrant , un "Joncteur Entrant" (ITC) sera utilisé . Dans ces deux derniers cas, un CODEC servira d'interface entre les joncteurs OTC et ITC et le module de commutation de groupes GSS. 47 31 L'appel de transit peut être c o nsidéré comme une successi on d'un appe l entrant e t d'un appe l sortant et utilisera les modules correspondant à l a nature analogique ou digitale des jonctions entrante et sortante (f igure T17) . Q~l ETC ,~ r'IIJ M erlqu•• . ,rt1"1:1"i- llun•• numerlque• - • nrt:.ant•• - 11\Jn N, Cll'IOl•~lqu. . entrantM COOEC: ITC: CCIOEC: ore 48 11\in .. , lil~n .. , CJl'IOl•~lqu- a,:ino nwa - 2.2.1.4 ITT-1240 A) Le Réseau de Connexion Numérique Princ ipes et Caractéristiques a . - Topologie repliée Cette topologie consiste à s t ructurer le Réseau de Connexio n Numériq ue (RCN) en é t ages . Cette config ura tion possède deux atout s majeurs . D'abord , la connexion util i se si possible un nombre minimum d'étages . Ceci permet de réaliser beaucoup plus efficacement les connexions locales sans pour autant freiner le s autres (f igure T18 ). UlL/-, __ Jl_J( ·---c::onnexi,:,r, locale De plu s, tous les raccordements étant situés du même côté, l'extension du RCN est re ndue possible par sim pl e ajoùt d' étages . Ces deux caractéristiques, rapidité et souplesse , offrent au système 1240 un avantage par rapport à la commutation traditionnelle TST ou STS qui oblige toute connexion à traverser le réseau complet . Cett e structure repliée donne au système ITT une grande éche ll e d ' adaptation étant donné la gamme de capacités qu'il pe ut supporter : de moins d e 100 à plus de 10 0 .000 modules terminaux connectables. 49 Un système traditionnel, tout en couvrant une gamme plus restreinte, doit être plannifié à l'avance pour une capacité maximale déterminée. b.- Uniformité des Modules de Commutation Le RCN est composé e ntièrem e nt de petits .modules de commutation numérique identiqu~s. Chacun d'entre eux comporte de la commutation spatiale et temporelle. L'uniformité des composants de base assure au système une souplesse telle que la maint e nanc e et la fiabilité, grâce à l'ajoùt et au retrait de s modules selon les besoins , sans modification du reste de la structure, deviennent maximales. c.- Commande à l'Origine Da ns les commutateurs traditionnels, un proc e ss e ur c e ntral et d e s proc e ss e urs périphériques supe rvis e nt l'achemineme nt des messages à travers le r é s ea u. Dan s l e système 1240, la commande est total e me nt r é parti e c e qui signifie que les ordres vi e nne nt d e s modul es d e mand e urs. Ces derniers déterminent les chemins à suivre dans le réseau et donnent au RCN les commandes qui permettent de l'établir . Le RCN ne fait qu'interpréter les ordres reçus et ne possède aucune intelligence autonome. d.- Performances et Sécurité De par la structure en plans du réseau, la probabilité de blocage est très faible, de l'ordre de 10-3 en charge normale . Une multiplicité de connexions entre deux modules donnés est possible , offrant ainsi une sécurité et une qualité de service exceptionnelle. 50 B) Module d e Commutation Numérique Ce module est l'unité fonctionnelle de base du rés eau . I l consist e en une carte enfichable de circuit intégré portant 1 6 circui t s d'accès interconnectés par un bus multiplexé dans le temps. Cha que circuit d'accès est connecté à un e ligne entrante et une ligne sortante comprenant chacune 32 canaux MIC de 16 bits (f igure T19) . clrc:uit r mk: [ clrc:uit --+----1 d 'c cce,s r J .._d_'o_o...=_f!_s__,·T--r--•- _ e, m le b u • r · rl"lk: [_ -tt-1---1 J4'Qurw ~r- cl rc~Îtj d 'a c,::e,s . clrc.ult r -] j'<Joceu 1:.T---.- ·- mie T :t n Le Module de Commu ta tion Numérique (MCN) est capable d'établir et de maintenir un chemin sur lequel on peut transférer des informations de n'impo rt e quel canal du côté réception d'un e quelconque des 1 6 jonctions MIC vers n'import e que l cana l du côté transmission d'une que lconqu e des 16 jonc tions MIC sortan t es . C) Structure du RCN L'o rga nisation du RCN du 1 24 0 étant assez complexe , nous en visa ge ons dans ce tte étude un e descript ion évolu t ive qui, partant d'une configuration minimale, arrive en cinq étapes à la config u ration maxima l e . Cette é volution p rendra corps par l'adjonc tion de modules de commutati on num ériq ue s ' e nchaînant à la s t ructure existante et cela, pour augme nt er la capaci t é d e traitement du commut ateur et donc de l'adapter aux changements de l'environnement. 51 Configuration Minimale a.- Premi ère Eta pe Dans cette version , pourront être connectées au réseau RCN un nombre maximum de 60 lignes d ' abonné. Ces lignes s on t raccordées à un Module Terminal de Lign es (MTL) assura nt l'int erfa c e intel l igent entre les a bonné s et l e RCN . Chaque MTL e st connecté à une paire de Modules de Commutation Numérique (MCN) appelés Commutateurs d'Accès (CA). Sur c hacune des deux jonctions ci rcule une tram e MIC de 32 canaux dont 3 0 voies de parole. Sur l'ensembl e des deux jonctions, nous avon s donc 60 voies de parole corres ponda nt aux 60 lignes raccordées au MTL (f igure T2 0). 5-0 ligne • ______ J : -_,- - ------·······•···-·····=~ ..,. f. module terTT'1lnal de, llgn,n ....__ _ _ _ _ _ _ _ _ __. palre, ,:te, _,/ // fonc-tlc,ns d'ent:{"1e Nous avons vu précédemment qu 'un MCN possédait 16 circuits d ' accès. Dans u n commutateur d'accès, nous trouvons 12 circ uit s d ' accès du côté du MTL e t 4 du côté du r éseau ( figure T21 ). vuna 1:2 MTL r- == = = _- O 12 c::om m utab1ur 1·1 d'ooc,.• ~ vent I e FtCN ,~ Ainsi, avec notre seule paire de CA , nous pouvons raccorder 12 MTL, c ' est-à-d ir e 720 lignes , les 4 circuits d'accès côt é résea u restant provisoiremen t libres et inutilisés. Les informations en prove nanc e des 1 2 MTL pou rro nt ê tre commutées vers un que l conque de tes 12 modules . 52 c:01-n m utat:e ur • On perçoit déjà ici la notion de structure repliée car une connexion peut déjà a v oir lieu au niveau des commutateurs d ' accès qui sont , comme on le verra plus loin, le premier étage du RCN . b.- Deuxième Etape Ma paire de CA pouva n t commuter 720 lignes risque de s'avérer insuffisante. Dans ce cas , de nouvelles pair e s de CA sont ajoutées . Mais ces paires , pour pouvoir accéder les unes aux autres, nécessite l'adjonction d ' un deuxième étage de commutation . Nous entrons , avec ce deuxième étage , dans le commutateur de groupe auquel sont reliés les commutateurs d'accès (figure T22). CA e-toge 1 Il Il est important de noter que , suivant l a topologie repliée , une co n nexion ne se fait via le Commutateur de Groupe ( CG ) que si les deux inter l ocuteurs sont reliés à d es CA différents . Un l'étage deux a et 8 tournés peut do n c y représente 48 2.880 lignes . module de commutation n umérique de 8 circuits d ' accès tournés vers les CA vers les é t ages supérieurs du CG . On co n necter 4 paires de CA, ce qui paires de jonctions d ' entrée et donc 53 c.- Troisième Etape Lorsqu'un commutateur de groupe avec un seul MCN devient insuffisant , un étage numéro 3 est ajouté au CG. Un MCN de l ' étage 3 posséde la même configuration (8 circuits d ' accès de part et d'autre) qu'un MCN du deuxième étage. 8 de ces derniers, formant ainsi un groupe, pourraient être connectés à un MCN du troisième étage. La solution retenue sera quelque peu différente pour répondre à des critères de sécurité et de performance. En effet, le nombre de lign es raccor d ées devenant fort important ( 23.040), un MCN d'étage 3 risque d ' être débordé et de créer un blocage s'il est seul responsable d'un groupe d'étage deux. Pour cette raison, 8 MCN d ' étage 3 seront connectés à 8 MCN d'étage 2. La version maximale de cette étape correspond à un groupe (figure T23). d.- Quatrième Etape Lorsqu 'u n groupe (étages 2 et 3) arrive à saturation , un quatrième et dernier étage également composé de MCN est ajouté à la structure en place. Les MCN d'étage 4 ont leurs 16 circuits d'accès tournés vers l'étage 3 (figur e T24). 54 1 €i MCN c:irc:uit:s d'etoge 4 ---J'i:g·u.re T24 .: t~ircv.it:, d 'a.eenir d'un. ~(ClV d:'ie 1tci11a ·"- Un groupe de 8 MCN d ' étage 4, c'est-à-dire pourront donc supporter deux 128 circuits d'accès, offrant le même nombre de groupes d'étage 2 / 3 circuits d ' accès . configuration Pratiquement, dans la maximal e , nous trouvons 16 groupes d'étage 2/3 supportés par 8 groupes d'étage 4. Dans ce cas, le circuit d ' ac c ès X du MCN Y du groupe Z d'étage 2/3 sera raccordé au circuit d'accès Z du MCN X du groupe Y d'étage 4. Le commutateur de groupe qui reprend a présent les étages 2 , 3 et 4 e t le commutateur d'accès qui repr end les paires de MCN décrites en 3.1 forment la configuration maximale de la quatrième étape (figure T25). e.- Cinquième Etape Configuration Maximale Malgré la multiplicité des c h emins offerts par la structure décrite dans le paragraphe précédent , une telle configuration peut être facilement débordée si le trafic devient important . On pourra donc doubl e r, tripler ou quadrupler un plan de commutation quel qu'il soit. Un plan correspond à l ' une quelconque des étapes décrites dans les paragraphes précédents. Un plan de groupe correspond à la figure 8. 55 eorTll'nuta'teur e 01'TI m u1:a teiu r de group,, d'ace~•• etci go 2 ~------.-.>. 1 ""j ;J ~:::::::::::::: ~:-::-:- _ _ _ _- . J____ \".... , , , , ' .. - - - - .- - - - - - - 1 '., -- --j: .-:.-_-.-.~- -~- -~.-:---.-- ::-:. ..L~ .' . A 1:) I ' , •.~:::::..- ·-··-· -- -\/..;/'" · - - -..-!i''.i,'~ 1 AI C:DJ.::·.-.-::::::·.::::c,::,:1 , r"L_ ·:~"l 1 j ~-----~·;:·- , ' 1 _,-.,• ---- "".. .. ' ' I h. ·\..... :·:· •• -1.___ ___. :' •... i t 1 1 : 7 \ ... -- "] / / .___ _ _ _ _G_·R_o__,,,u_P""'.E~O--------' ... - \./ • ,' , ' '.. \ 1. .. 0 r ----------.J .....: · - . _ ' r-----u---. -- _,. . _ /. . ___1 l~:-·.-::,·' 1 1== :: : ~- .. -- -- -- .. - -- "] 1.. 1 ·--:~•--~·:- -- O 1::::::···-·;::-:1 1: .,. , ,, ,,.- 7 -- - -----..... GROUPE 0 ,--------------;::==~-·-··· _,.''__ ,, ., --.---r. -- -- -, 1:) '.7 G;RQUPE: 11~ figure T25 .. Gf-!OUPE 7 de ·gra1-..tpe Ces plans de commutation ne sont pas interconnectés entre eux et sont reliés directement aux commutateurs d ' accès . Un e connexi on pe ut donc s e faire indépendemment via l'un ou l'autre de ces plans, ce qui accroît considérablement la capacité de trafic du RCN (figur e T26). La configuration maximal e avec 4 é tages complets et 4 plans e st caractérisée par l es chiffres suivants - chaque plan de commutateur d e groupe comporte 320 module s ; - le commutat eur d'acc ès comporte 512 paires de MCN; - l'ensemble du RCN comporte ((4*320) + (2*512)) 2.30 4 MCN; - le commutate ur d'accès offre 6.144 paires de jonctions d' e nt rée e t don c autant de modules terminaux de lignes; 56 - la capacité dépasse 100.000 lignes ou 60.000 circuits. 1 etage - [------! -----::-__..-- ~· ----- cornrnut. -~ [ d'1:ic:ces . ------- ---- - - ------,\ ------. \\ \ ---===::S ,~ornrTl u·toto1..;;:'\ de qroupe - ,,-_---- plan 0 ;;r---- '-----------~ /// // // 1,1/ ,----------, \ \~ /,Ï ~V \ - \ ., \ '-----------~ IÎ~~ \----------, r-----j---~f \~~~ ~----------, \_ ______ ~--~~ ----~~ ----------\ [ -------- ---~------~---------1 - \ . ------ '---- '---- ~ ~~~~~~-----. .f"ru1"'E1 Jr~?t!J .. C?Cl7\1"gu.ra..t;k,n 1:i:.u,1m ~ J ~, ;p tu,1.1r ,t,! •!:01-n1,:n.u.t,a. to1.1.1'"u ct,r !1'>'"cn1.101! D) Etablissement d'un Chemin dans le RCN a.- Adr e ss e s - Réseau Tous les modules terminaux de lignes (MTL) sont identifiés par une adresse ABCD. A sélection d 1 un MTL (0 -11 ) à partir commutateur d'accès. d 1 un B: sélection d 1 une paire de CA (0-3) à partir 1 d un MCN d'étage 2. C: sélection d'un MCN d'étage 2 (0-7) à partir d'un MCN d'étage 3. D sélection d'un groupe d'étage 3 (0-15) partir d'un MCN d'étage 4. 57 a' b.- Algorithme de Sélection L'algorithme de sélection doit répondre deux critères : - être rap i de; - ne pas aller plus loin que nécessaire les étages du RCN. ... a dans b.1 SELECTION DE L'ETAGE DE REFLEXION Les adresses ABCD de l'émetteur et A'B'C'D' du récepteur sont comparées (figure T27). Si [);;z:ro• c·· ,_,1 0==0 et c·· ....,1 1 c.~ c 1 eî et D==D' C==C BrfB' 1 Si D ==D 1 et: C=C et B=B' 1 Alc,r·s eta ÇIE~ 4 Alc,rs; etaç,E~ 3 Alc,n:: etaçrE~ 1 b.2 RECHERCHE LIBRE Un chemin est établi à partir du MTL appelant via des MCN quelconques sur des jonctions quelconques jusqu 'à un MCN de l'étage de réflexion. Ce MCN est appelé point de réflexion. b.3 RECHERCHE DIRIGEE Un chemin est établi à partir du point de réflexion via des MCN quelconques sur des jonctions déterminées par l'adresse ABCD de l'appelé, jusqu'à ce MTL appelé. 58 c.- Ordres Quatre ordres de sélection de chemin sont utilisés : X: recherche libre dans le CA vers l ' un des 4 plans; Y : recherche libre dans le MCN d'étage 2 (3) vers l'un des 8 MCN d ' étage 3 (4); N sélection dirigée d'une des possibles sur base de A ,C et D; 8 jonctions NZ sélection dirigée d'une des 2 possibles sur base de B. jonctions 59 2.2.2 Organes de Commande 2.2.2.1 Aspects A) Fonctions · Dans un commutateur, on désigne sous le vocable "organes de commande" l' e nsemble des équipements qui exécutent les fonctions les plus "intelligentes". C'est là que se trouve la "logique" plus ou moins complexe du système, là que se prennent les décisions. (figure TS) equlJ-"nt1nl: lndf\ildLMal btni,I no U>: ou corrrnu to t•·'"' dal li;r• c::i------ oc>li..at.e .t chb-fbutlon -i d'fntvrmat-Jo~ ___ _________________ _..._ __[ L_J unltt, tn:rwm)n Ion de O<lfT'fflClrtdo T5 .. bloo~, .f,ortcti:onr.ters d "·u/.n. c,orn..rnu, ta te·u:r Par nature, les fonctions de commande reposent d'abord sur l'existence d'une fonction de mémorisation qui contient à chaque instant les données caractérisant l'état de tous les éléments matériels ou logiques, du système. 60 Le passage d'un état à un autre de chacun de ces éléments est le résultat d'actions conditionnelles d'automates qui analysent et modifient l'état en fonction d'événements extérieurs. En effet , la mise en oeuvre des fonctions de commutation nécessite le transfert d'informations entre un abonné et un commutateur, ou entre deux ou plusieurs commutateurs. Ces informations échangé es au moment de l'établissement et de la rupture des connexions constituent la signalisation. Ces signaux correspondent e n fait aux différentes phases de la communication. Un e ligne d'abonné diffère d'une jonction entre commutateurs par le mode d'échange des informati ons c'est-à-dire par la signalisation. a.- Fonctions de Commutation Les fonctions " traitements des appels" sont d'abord des "fonctions d'acquisition" des événements se produisant sur les lignes d'abonné et les jonctions entre commutateurs à travers des explorateurs ou scanners. Ce sont ensuite des "fonctions de distribution" pour commander l ' émission de signaux vers ces lignes ou jonctions. Entre l es deux se plac e nt des fonctions internes. Ces dernièr es ont pour but l'"analyse des signaux" r eçus , comme la traduction, les "d écisi ons" concernant la progression des appels comme l 'achemineme nt et la "fonction de connexion" qui assure la sélection, la mise en place et le relâchem e nt des itinéra ires dans l e réseau de connexion. Comme nous le verrons plus loin, à toutes ces fonctions s'appliquent des contraintes de temps réel de l'ordre de quelques dizaines ou centaines de msec, soit en raison de la natur e même des signaux, soit en raison de normes de qualité de services à assurer ( durée d e la présélection par exemple ). Leur éxécution néc es site la mémorisation de l'état instantané des éléments mis en jeu, de leurs interconnexions permane ntes, de la situation de chaque appel en cours, ainsi que des informations permettant d'interpréter la numérotation et les signaux reçus ( tableau de tr a duction, catégories des abonnés etc . . . ) 61 Enfin, un haut degré de parallèlisme es t requis, pui sque l e nomb re d'appels en co u rs d e traitement peut atteindre plusieurs centaines . La puissance, en commutati on, des organe s de commande se mesure d'ailleurs par le nombre d'appels qu'ils sont capables d e traiter pa r unité d e temps. b.- Fonctions d' exploitation et de maintenance L' exploitat io n et la ma intena nce désignent les fonct ions qui permettent - d'une part, d e gérer, c 'est- à-dire d ' ajouter,de modifi er , de supprimer les élémen ts matériel s ou logiques constituant le commutateur e t s es accè s , de surveiller son fonctionnement e t de me su rer son trafic ; - d'au tre pa r t, de détecter et de localiser l es défaillances des équipeme nt s . Ce s fonctions "accessoires" d e support représentent maintenant typiquement plus des d eux tiers du volume des autom a t es logiques . B. Caractéristiques L' unité de commande, après avoir été réalisée dans un premier t e mps en logiqu e cablée , se trouve, dans l es commutateurs mode r n e s, sous la forme de programmes e nr egi str és . Mais, c es programmes , de par la natur e même des fonctions à réaliser , doiv ent supporter des contraintes sévères leur imposant une conc e ption spécifique . a.- Contraintes a. 1 L'apparition d' un nombr e aléatoire d'évé nemen ts à des moments aléatoires , nécessite une "puissance de traitement en temps réel" qui peut être représentée par l e "nombre maximal d'appels à l' heure chargée" que le sys tème de commande est sus c e pt i bl e de traiter avec des normes fixées de qualité de serv ic e . 62 On peut distinguer pl us ieurs niveaux de temps réels - Le s contraintes en te mps réel l es plus sévères s o nt liées au traitement de la signalisation la p récisi on exigée sur certains signaux est de l'ordre de dix msec ; - Un deuxième niveau concerne l e - reste des programmes de traitement des a ppels . Les délais de réponse aux actions d es abonnés doivent rester inférieurs à des valeurs d e service l ' ordre de la seconde pour que l e off er t soit jugé satisfaisant ; - Le troisième niveau co rrespond aux tâches d'exploitation et d e main t ena nc e , pour l esquelles les dé l ais de réponse r e quis peuvent v a rier e ntr e plusieurs secondes et p lu sieurs dizaines de minut es ou plus. a .2 La permanence du serv i ce peut repré s e nt ée par l a disponibilité D du système: être TMF D = TMF = TMR avec TMF = TMR = temps moyen de fonctionnement pann e s; temps moyen de répara tion; entre Les p an nes pouvant su rve nir prov iennent de défaillances du matériel ou du logiciel e t la dispon ibi lité peut être améliorée de la man ièr e suivante - en augmentan t TMF par une plus grande qualité d e composants utilisés ou en apportant une redondance aux équipements par une dupl icati on par exemple ; - e n diminuant TMR p ar une amélioration de la maint e n ance du système du point de vue Hardware grâce à des p rogra mm es d e test et d e loc al isation a utoma tiqu e d es défaillances e t du point de vue Software grâce à des programmes de reconfiguration automatique. Mais p lus fondamen t aleme nt , dans un commutateur , a lo rs qu'un certain nombre d ' a ppels mal traités est to lérabl e , l'arrêt compl et du système 63 c'est-à-dire l'impossibilité pour tout d'aboutir, est considéré comme catastrophique. appel C 'est ainsi que la maintenance et l'extension de capacité d 'un commutateur doivent être possibles sans arrêter le traitement d es appels ( ce qui est l e cas d'un c ent r e de calcul) mais a v ec éventuellement une certaine dégradation du service . a.3 L'ordinateur de commande fonctionne en doivent multiprogrammation car plusieurs tâches simultanément . pouvoir être entreprises Les tâches les plus nombreuses concernent le traitement des appels avec un processus pour chaque communication en phase de conversation ou en cours d'établissement ou de rupture. Il est donc nécessaire de conserver en mémoire les contextes de ces processus dont un grand nombre, en attente d ' un évènement extérieur , peut être réactivé à tout instant. Chaque fois qu'un événement est attendu pour un appel, la tâche correspondante est désactivée et d'autres relatives à d'autres appels sont exécutées entretemps. Lorsque l'évén e ment attendu survient , tâche initiale est réactivée et le trait ement l'appel se poursuit. la de a.4 De nombr euses données doivent être maintenues et traitées par le logiciel opérationnel . Ces données peuvent être classées en deux grandes catégories : - Les "données permanentes", peu fréquemment modifiées, décrivent le matériel du commutateur et son environnement. - Les "données temporaires" , dont la durée de vie est celle d'une transaction , décrivent l'état des ressources, des liens temporaires entre c es resso urces et les informations particulières à la transaction. 64 b . Cons équences b. 1 Les programmes de commutation sont organisés en plusieurs niveaux de priorité et sont optimisés pour répondre aux contraintes de temps réel tout en assurant la coexistence dans un même organe des fonctions de commutation, d'exploita~ion et de maintenance. b.2 Un logiciel de défense chargé de faire face aux fautes matérielles et logicielles est introduit pour répondre â· la contrainte de permanence du service. b.3 Le logiciel devra procurer des facilités d'expl o itation tant en ce qui c o ncerne le logic i el opérationnel proprement dit que le logiciel de support. b. 4 La gestion de la mémoire devra ê t re optimisée de mani~re â diminuer les c o ûts , qu'il s'agisse de mémoire de programmes ou de données . Ces caractéristiques spécifiques au logiciel de commutation seront implémentées grâce aux o u tils fournis dans les paragraphes suivants . 65 2 .2.2. 2 Te c hniques A. Ap plicati o n A. 1- Ex p l ora t e u r o u Scanner A. COMPOSITION DE L ' ENSEMBLE 1. PROCESSEUR Celui-ci est à la d is positi on de x Unités (U ;i=1 à N) en pseudo-simultanéi t é . i 2 . EXPLORNI'EUR L ' exp l orateur proprement di t pa l pe cycliquement les bornes ou les tam ons d ' état e t /ou de données des n unités , de façon à gérer les échanges entre le processeur et chacune de c es unités. L ' cxplorat ur peut être de nature spatiale (fi gure T28) ou de nature temporelle ( figure T29). Dans ce dernier cas, deux exp lorateurs synchronisés sont utilisés et la trame d ' un e voie commune contient autant d'intervalles de temps IT que de bornes ou d ' unités . uni"tet 1 processe1.J r unito N fig·ure .. or9one~, de - de,chsic~n T2B .. e.:t-p lorcx:teur sp a.ti.al B . FONCTION - La fonction de scanning consiste à gerer les é changes de données e n entrée ou e n sorti e , ceuxci -tant trait&s p~r l e pr oc esseur . 66 unite ,f, , 1 ~unite MU LTIP LEXEIJ R - unite N \ , TZ9 _ / lJnita N' .. erp lora.tErur ten·iporel. Ces é changes peuvent être unidire ctio n nels , le plus souve t dans le sens des unités v e rs le processeur, pour perme t tre à c e dern i er l 'acquisition de ses d onnées et la r Gali sation des traitements adap t és aux Organes de Décision t els q ue : Computer , Pr oc essus indu s tri el ou au tr e ; Enregist rement sur périph&rique , Pro g r amme rée ntrant, • . • Ces é c ha n ges peu ve nt être éga l emen t b i directionnels d t e lle sor te que l ' on parlera - d ' opération \ŒITJ:: ou d ' 6m i s'°'ion d n processeur vers uni t és ; le sens - d ' ooératio n READ ou de récepti on dans le unité~ vers proc esseur . sens C. TYPES D' EXPLORATEUR Les types d ' exp lorat eu r selon la mani~re d on t ils op ~re nt . son t ven t i l és 1. PAR SONDAGE OU POLLING 1 . a e n mode sync hron e et de f açon continue L ' exp lorateur teste s ucc ess ivement le niveau de pot e ntiel ( hau t / bas r eprésen tant l e 1 / 0 en log iq ue po sit i ve et l ' inverse en logiqu e négat ive) de chaque borne ( o pération READ ). Le process e ur enregist r e ces va l e ur s en m~moir e et l es compare aux va leurs enregistrées lors du passage précédent . Le résulta t des comparaisons lui permettra de pr e ndre u ne dé cision concrétisée par une ac t i on . 67 L'utilisation de ce mode est surtout adoptée pour le cas où des informations multiples sont contenues dans des impulsions ou d es créneaux de potentiel c'est-à-dire des informations de type STIMULI. Si test le temps nécessaire pour tester chaque borne et si N est l e nombre total de bornes à explorer, la période ou temps mis pour effectuer un cycle complet (t pour deux passages sur la même borne) vaudra N*t. Da ns ces conditions, - N*t devra être strictement inférieur à la durée du créneau le plus faible dans l e spectre afin de ne pas manquer l'information qui y est contenue. 1.b en mode asynchrone ou synchrone arythmique à chaque unité es t contenue dans un tampon T qui comportera au minimum un bit d'état (1/0 si T est vide/plein) ou un byte d'états si une analyse plus fine doit être faite . Dans ce mode, l'information relative La fonction essentie lle de cet ex plorateur sera de t es t er le bit d ' éta t et d'opérer un transfert de donné es selon l'algorithme de la figure T30. a,,..et tninafert du p r o - u r i. t.ampo n v.- • m arret 1.\ 1 r pi,.., tni nafert du t.r.2n'\pon Clpllf'crtlon fit v.-e i. procM•ttUr ~ T30 : ccptora.tf.on. <iA• f>,0~11 L'utilisation de ce mode d' e xploration est adopté lorsque l'information est contenue dans des MESSAGES à un ou plusieurs bytes successifs et non plus dans des créneaux de potentiel étant donné que la période synchron e (t) des passages successifs 68 sur une borne quelconque es t variable e t ne peut donc calibrer l ' info r ma tion. 2. PAR INTERRUP TIONS Une interruption : - es t générée si u ne opération READ c ·' est-à-dire un transfert d'une unité vers le processeur ou si une opération WRITE c'est-à-dire un transfert du process eu r vers une des unités est demandée; - est sollicitée par transfert de l'adresse de la borne à positionner pour un e opération R/W sur l'une o u l ' autr e pile FIFO Rou W (t em p s de transfert sur la pil e et mis e à jour des pointeurs t ). j Entre les int e rr up tion s , l 'une ou l'autre routine (R/W) effe c tue r a l es opératio ns successives, adresse après adresse , borne aprés borne (t e mps d'exécution : t ). T Si le t e mps d'att e nt e avan t le trait e ment dépasse un temps limite tl (qu i pe ut se tradu ire en une haute u r limite de la pile) il pourra mettre en péril, sinon le bon fonctionnement du système , du moins ses performances. L'utilisation de ce mode d'ex ploration es t adoptée lor s que l ' information est contenue d a ns de s MESSAGES , d 'a utan t que pour l e cas de plusieurs bytes, le traitement de l ' interruption et le DMA so nt automa ti que s . D. COMPARAISON Nous a llons ét udi er l es cas o~ il y aura lieu de choisir entre l ' exploration par sondage asynchrone et l ' exploration par int er ruptions. 69 1.SONDAGE ASYNCHRONE Soient N: l e nombre total de lignes; x: le nombre de lignes actives ; t t : temps de test d ' une ligne ; tTRT t emps de traitement d ' une active ; ligne Alors le temps total pour une exp loration est t *N + t *x. t TRT 2. INTERRUPTIONS Soi e nt x : l e nombre d'interruptions ou de lignes actives ( en READ ou en WRITE ); ti temps de positionnement de l'interruption et temps de trait eme nt de celle-ci; Alors l e t e mps tot a l pour un t *x . e xploration est i 3. CONCLUSION La figure T31 nous montre que le choix s'exprime en fonction d'un nombre de lignes actives . L'exploration par INTERRUPTIONS sera préférée lorsque - l e temps de traitement d'une interruption ti est faible ; - le temps de test d'une ligne tt est élevé ; - le temps de traitement d'une ligne active tTRT est élevé . L'exploration toujours préférée lorsque t i <= t t + t TRT 70 par INTERRUPTIONS sera .' ~.,...,., . lt-lTI:RRUF'TlON!S (1) t l SONDt,GE SYNCHRONE (S) ! l ~/·- - - - ·--·-. . " ! 7 1 t .N 1 xi•---11 - t-r,:...,- --"~-----6-----~~----;> O i><: if~ >< !(-----·---)(-1-------·-·,~ ' 1 5 ~ TSf : oo,,npœrc:iriatOR • • • ~ pœ1" -~.ru_J:>t(.ona -,t pœT' .aondoQ., O&S1,tn.o.l1:ro,'18 L'exploration par sondage ASYNCHRONE sera préférée lorsque - le temps de traitement d'une interruption ti est élevé; - le temps de test d'une ligne tt est faible; - le temps de traitement d'une ligne active tRT est faibl e . L'exploration par sondage ASYNCHRONE toujours préférée lorsque t TRT i t = O et t t . sera > D. SPECIFICITE DE L'EXPLORATION EN COMMUTATION 1. FONCTIONS ET CONTRAINTES L'exploration est la fonction par laque lle l'Unité de Commande (UC) receuille les différents évè nements générés par l'environnement du commutateur . Cet environnement constitué des périphériques que sont les ressources et les équipements de ligne, est en général passif, c'est pourquoi l'UC doit elle-même receuillir les différentes informations nécessaires aux différentes phases du traitement d'un appel. 71 Il s'agit donc de traduire en un signal logique utilisab l e par l'UC, un signal ou un code analogique ou numérique apparaissant sur une ligne d'abonné ou une ressource . Le s signaux receuillis associés éventuellement avec des informations complémentaires fournissent à l ' UC l'état logique dans lequel se trouvent la ligne et la conversation . Après avoir traité ces données , l'UC sera à même de réagir sur la périphérie par l ' envoi d'ordres. Cette o pération constitue l a distribution. En plus de cette fonction de base d'interface électrique entre l'équipement de ligne et l'UC, l'Explorateur de Lignes d'Abonnés ( ELA ) se voit confi e r des tâches nécessitant un certain degré d'autonomie comme la détection des changements d'états. Ce travail autonome est d'autant plus intér~ssant qu 'il soulage l ' UC d'une fonction très simple mais répétitiv e e t, par la même , couteuse e n t e mps . En fait, l e nombre d ' évène ments arrivant pendant un cycle d' e xploration est extrêmement faible. 2. PRINCIPE DE FONCTIONNEMENT 2.a Le principe de fonctionnement de l'ELA est d'explorer un à un, cyclique ment, tous les abonnés dont il a l a charge . Lorsqu'un changement d'état est intervenu sur l'abonné examiné, il interrompt son exploration, en avertit l'UC, puis il reprend son expl oration à l'endroit où il s'était arrèté. Pratique me nt, sont utilisés. deux type s de signalisation Dans la "signalisation par changement d'état", l'explorateur communique chaque changement d ' état qu'il détecte à l ' UC qui prendra les dispositions voulues . Après la conversion électrique des signaux réalisée à l'entrée du commutateur par des adaptateurs de signalisation , la détection des changements d'états est une opération logique combinatoire pour le temporel - très simple a' réaliser. 72 Dans la "signalisation par état " , l 'explorateur dé te c t e l'éta t de la l igne qu'il communique à l'UC. Cet t e transmission sera reno uve lée jusqu ' à ce qu'une modification ait été apportée so it par l'abonné, soit par l'UC . 2. b L'explorateur doit aussi pouvoir interrompre ce travail autonome pour répondre à une demande de l ' UC concernant l ' éta t d ' un abonné dont el le l ui fo u rnit l' identificateur. Un e foi s l a réponse fournie, l'exploration autonome reprend là où elle s ' était arrètée. 2.c Le cadencement de l ' explora ti on peut être adapté au type d'événeme nt à superviser de façon à n e pas al l onger outre mesure l e travail de l'explorateur ou de l ' UC. La réception de la numérotation en téléphoni e , par exemple , impose une pér iode de temps relativement cour t e entre deux cycl es d' exp lorat ion, si l'on ne ve ut pas perdre un quelconque des changements d ' états qui peuvent être séparés de 3 0 ou 40 msec. On trouve donc pour ces points , des cycles d'exploration espacés de 5, 10 ou 20 ms ec suivant l es sys t èmes. Par contre, d e s événements tels que déc rochage ou raccr ocha ge d ' abonnés n e n éces sit e nt pas une exp l ora tion à cadence rapide puisque les fonctions qui s ' ensuivent autorisent d es temps d e réponse re l ati v ement longs (quelques centa i nes de milliseco nd es ). Des cade n ces d e 80 ou de 100 msec sont suffisantes pour l ' expl oratio n de ce type d' événement. 73 A.2 Les Automates finis. A.2.1. Définition. L'automate fini est un être mathématique pour lequel la réponse à un événement extérieur dépend de cet événement et de l'état interne de l'automate. Un automate fini a un nombre fini d'états internes possibles. Les événements sont susceptibles de faire passer l'automate d'un état à un autre. L ' automate fini est entièrement déterminé par la donnée de ses fonctions de transition qui fournissent le nouvel état et la réponse,ceci en fonction de l ' ancien état et de l' é vénement reçu. A.2.2 . les états internes d'un automate fini. L'étude des automates finis permet de donner un support th é orique à de nombreux développeme n t s liés à l ' informatique: étude des circuits, des algorithmes, des langages formels, des techniques d e compilation, . .. etc. L'étude propos é e se limite à v oir un automate comme une boîte noire comportant des en t rées et des sorties. Nous représentons les entrées ou événements par la lettre E ; les sorties ou réponses par la lettre 5. Nous regardons l'automate à des instants successifs discrets : t, t+1 , t+2 , Un événement E à l ' instant t, noté E(t) produit une réponse S à l'instant t+1, notée S ( t+1 ) . 5 ( t+1) dépend de E ( t) mais aussi d'une fonction du temps H(t). S (t+1) = F [H(t), E(t)] ( 1) Pour parvenir à définir les états internes ou états d'un automate, il faut que H(t) réponde à deux hypoth èses : 74 - le première est que la fonction H(t) est com- plètement déterminée par l'histoire de l'automate antéri e ur à l'instant t. - la seconde est q ue l'automate est constitué d 'un nom bre fini d'éléments, donc d'un nombre fini d'éléments de mémoire, de telle sorte qu'il ne peut se s ouv enir d'une histoire arbitrairement longue, ni faire des distinctions parmi un nombre arbi t rai remen~ grand d'histoires différentes. Ceci veut dire que la fonction H(t) ne peut en réalité prendre qu'un nombre fini de valeurs distinctes qu'on appelle ETATS INTERNES ou ETATS de l'automate. Les au tomat es vérifiant ces hypothèses sont appelés AUTO MA TES FINIS. A.2.3. Les fonctions de transition. - - - - - - - - - - - - - - - - - Soit Q{t) : l' é tat d'un automate fini à l'ins- tant t, l'équation (1) = S( t+1) s ' écri t (2) F ce q ui exprime que la réponse d'un événement E(t) ne dépend que de l ' éta t à l'in stant t et non de l'histoire antérieure. De même , l ' éta t tant t+1 Q(t+1) de l'automate à l'ins- ne peu t rieur Q(t) dépendre que de son état anté- et de ce q u'il reçoit de l'extérieur à savoir E (t). Sinon, l'automate pourrait dis- tinguer dans son comportement ultérieur deux histoi res ayant abouti au même état Q(t) ceci étant contraire à l'hypothèse. Q ( t+ 1 ) Les é quations ( 2) = G [Q(t) , E ( t) De l à l ' : (3) et ( 3 ) pe rmettent de cal culer étape par étape le comportemen t d'un automate fini pour n'importe quelle suite d'événements E ( t) , E ( t+1 ) , E ( t+2) , à par tir de l'instant t. 75 qu'il peut recevoir ~ ~ -----------------------, Les fonctions F et G sont les FONCTIONS DE TRANSITION et se représentent sous forme de tables de transition ou sou s forme de diagrammes de transition. Considérons un automate à deux états possibles ( o ou 1) en fonction de ces états, il pro- duit une sortie de même valeur que l'état modifié suite à l'arrivée d'un événement (o ou 1). En voici la table de transition événement 0 état(t) état(t+1) 0 0 : sortie(t+1 0 0 0 0 0 En voici le diagramme de transi tion Les flèches repré s entent les t r ansitions entre états . Au départ de chaque flèche , une pre mière information indique les valeurs d ' entrée qui ont entraîné la transition; au milieu de la flè che, une deuxième information indique les valeurs de sortie prod uites. Par e x emple , la flèche supérie ure du diagramme indique que s'il est à l'état o et reçoit une entrée o , l'automate retourne à l ' état o en produisant une sortie o. 76 ~-~·~ · _Aep!i~ a !i~n_a~x_c~m~u!a!e~r~ · la notion d'automate fini est très utile à la conception d'un commutateur numérique et temporel . En effet, ce type de commutateur est programmé , ce qui signifie que l ' on a besoin d'un outil informatique particulier(l'automate) pour pr e ndre en compte et répondre aux é v é n ements survenant de la ligne de l ' abonné, détectés par scanning . La réponse (sDite d ' instruc- tions à exécuter) se rapporte à l' état d u commutateur après la détection de l ' événemen t . Une large illustration est donnée dans le second syllabus oD l ' on détaille les analyses fonctionnelles et organiques pour une séquence téléphoniq u e. Ces analysent c o ntiennent , en outre, deu x automates. 77 B) Système d'Exploitation a.- Gestion du Temps A. INTRODUCTION Dans des applications classiques , l'utilisation du tem s peut habituellement être organisée en détail iors de la conception des programmes . Ce n'est pas le cas des systèmes en temps réel pour lesqu e ls des évé neme nts arrivent à des moments qui ne peuvent ê t re connu exactement a priori . Par exemple , les durées de flux d'entrée /sorti e, et en particulier des réf é rences à des fichiers~ acc~s aléatoire , ne sont pas connus exacteme nt . Les messages des opérateurs humains sont entrés à des temps dépenda nt des événements humai n s . La séquence des types de messages ou des fonctions à réalise r peut être i mprévisib l e . A cause de ce manque de pré visibilité , l'ordinateur ne peut suivre un cycle d ' é v énements répétitif mais doit all ouer l e t emps aux différen t es unités selon les besoins . Ce tte al location de temps peut être faite de maniè r e simple , pé riodiqu e ou peut être tr ès comp l exe avec un haut degré de multiprogrammation et de recouvr e me nt d ' opérations . Dans certains syst6mes pour l e squelles l'utili sation de l'unit é de t rait ement ne nécessite pas un timing severe , il n ' est pas nécessaire d ' é laborer l e timing des opérations en détail . Néa n moins , sur d ' autres systèmes comme le s commutateurs , le timing est extrêmement précis et important , ce qu i nécessite une atte ntion accrue aux problemes d ' a llocation du temps . B. SPECIFICITE DU CARACTERE ALEATOIRE Comme nous l'avons évoqué , pour des applications informatiques conventionnelles, le programmeur a défini l'utilisat ion du temps (et de la mémoi r e ) en d"tail lors de la conception des programmes . Sur la plupart des systèmes on/line , il ne pe ut le faire c ause du caractère aléatoire des évé nements . a 78 Ainsi, imp révisi b l es les temp s suivants sont B. 1 Les moments auxque l s l es événements e xt e rnes se pr od uis en t . ?ar exemple , le momen t o ù un abonné téléph o nique décroche son combiné . B. 2 Les moments où on t li eu l es interruptions d ' h orloge . Une horlo ge peut être initia Ïis ée pour que l'ordi nateur exé cut e une acti on à un moment donné et elle peu t int e rrompre l e programme en cours en un poi nt q u e lconque . B .3 Les temps de réa l isatio n d 'in stru ctions d ' en tr ée / sortie , en particulier et po ur rappel , l es a cc ~s à des fichiers organis&s a l 6ato ire me nt. Sur u n système en temps réel , l es messages arr iv a nt à l'ordina t e u r en pr ovenance d ' opérateurs humains ou d ' ap par ei ls automatiques n&c ess itent une réponse rapi de . L ' a ll ocation du t emps , de l a mémoire centrale , d es canaux , des p6r iph ér ique s et autr es ressour es doivent , po u r ce fa i re , 6tre contr8 l és rapide • ent par le syst~mc d ' exp loitatio n . C. HORLOGE TE'1PS-I EEL l~T COMPTEU D ' I :'rfERVALLES La rn.::ijorit6 ùes systèmes en tem s r éel e t beauc ou p de systèmes on /lin e ma is pas t emps rée l ont une horloge temps r ée l ou un compteu r d 'int ervalles , tout en sac han t qu e c e rtains de ces systèmes n'en on t pas besoin. Cer tains ordinateurs , par cont r e , ont une h orloge temps r ée l et un compteur d ' intervalles séparé . D' autres ont même plusi e urs compte urs d' intervall e s. De tels méca nisme s de timing foncti onnen t norma l ement , indépendernment de ce que fait l'ordinateur . L 'horloge temps r ée l peu t être "lue " par l ' ordinateur , ce qui permet i celui-ci de conna îtr e le temps écou l 6 depuis l a de rn ière initialisation de l ' horloge . Le com pte ur d 'intervalles peut être initia lisé pa r l' ord inat e ur pou r calc uler , at t endre un interv al l e de t emps don n é , au terme duquel , le compteur d ' intervall es int rrompt l ' ordi na t e ur . 79 Ces serveurs types de fonctions : C.1 d on ner l ' he ur e d e l a sont utilisés un calc uler quatre journée . Ceci permet à l ' ordinateur d'indiquer certains messag e s , par exemp l e . C. 2 pour inter v a ll e l'heure sur donné . de L ' ordinateur pe ut devoir exécuter une certaine action si un événement n ' apparait pas pendant un certain intervalle de temps , par exemple, si un abonné téléphonique , ap rès avoir décroché son t é l éph one , ne forme pas un chiffre dans les 30 secondes . Dans un système en temps partagé , il peut être n éce ssaire de rendre le contrôle au syst6me d ' exploitation tou t es les 200 msec e t assurer ainsi des temps de réponse normaux à chaqu e utilisateur . C.3 l a n ce r des ac tio ns à d es mome n ts donné s . L ' ordinateur peu t avoir à envoyer un certain message à un e heure du jour particu li ~re . Pé riodiquement , il va exp lorer une table d ' actions ~ exé cut e r en fonction d 'une heure p r éc is e . De même , l ' ordinateur peut décider , penda nt son traitement "si j e udi pr ochain , à 1 6 heures, tel ou t el événeme nt n ' a pas été reçu, un messag e d ' erreur doit être envoyé '' . Il doit alors me ttre c e nouvel év é nement dans la t ab l e . Parfois, une interru p tion d ' horloge est utilisée pour lancer une action , : laquell e une haute priorité sera donnée par l e système d ' exp loi tat ion . C.4 comme "ch ie n de ga rde ". Pour protéger l'ordinateur de mauvais fonctionnements , surtout de la part des programmes , un timer "chien de garde " est nécessaire , aussi bien d'ailleurs e n ce qui concerne la protection de la mémoire. C'est particulièrement le cas des systèmes multi-tâches . Si un des rrogr ammes commenç a it à boucler , cela pourrait empêcher l ' exécution des autres tâches en attente . Un com p t e ur d ' interva l les peut alors être ini t ialisé , comme dans la figure T32 , chaque fois que la routine de scheduling est appelée . Il calc ul e un temps donné , disons 500 msec , à moins qu'il ne soit réinitialisé ava nt l ' é coulement de ces 500 msec par un retour au scheduler. Si 500 msec s ' écoule n t s ans que le contrôle ait été rendu au scheduler , soit quelque chose ne va pas , soit un prog rammeur a dés obéi aux regles , et une interruption 80 est lancée . Cornme pour une violation d e protection mémoire , le contrôl e e st alo r s donné à un programme prioritaire gui trait e ra l e problème. d'cJpl)l/.wUo n ; --.......,,_~. ou prc1wamm• de lonc•~ ~ : Si la machine a un compteur d 1 intervalles , il est possible de programmer son utilisation de manière ~ réaliser toutes les opérations mentionnées ci-dessus . Il est p l us facile , néanmoins , d'util i ser une horloge et un compteur d 1 inte r valles séparé. Quand plusieurs périodes de temps doivent ~tre calculées en parallèle, plu s ieurs compteurs doivent être utilisés. Si un seul compteur est disponible , le programme du système d ' e xp l oitation appe l é Gé rant du Temps contrôlera les différents timers en parallèle . 81 B.2_Gestion_des_processus. B.2.1 Définition. Nous désignons par processus toute suite d'actions obtenues par l'exécution d'une séquence d'instructions (un programme) dont le résultat constitue une des fonctions de l'operating system ou une des fonctions de l'utilisateur. Remarques - un processus peut entraîner l'exécution de plusieurs programmes - un programme ou module peut être impliqué dans plusieurs processus - le processus étant une suite d'actions, il est essentiellement dynamique. - le programme étant une suite d'instructions il est essentiellem e nt statique. B.2.2 La simultanéité. La survenance d ' événements aléatoires provenant de l a lign e d'abonn é entraîn e la nécessité de réponses rapides de la part du système. Cette vitesse de réponse ne peut être obtenue que par la simultanéité dans l'exécution d e s processus représentatifs des réponses. Cette simultanéité consiste en une exécution en parallèle des processus. Elle n'est réelle que lorsque l'on dispose d'un nombre de processeurs supérieur ou égal au nombre de processus. sinon, on parle de pseudo -simultan éité. Dans notre étude, nous sommes confrontés au second cas, ne disposant que d'un seul processeur pour implémenter notre maquette. Cette pseudo-simultanéité peut être obtenue e n basculant le(s) processeur(s) d'un processus à l'autre. Si le basculement est réalisé à des intervalles suffisamment courts, le système donne l'illusion de la simultanéité. 82 Le sy stèm e d'exploitation doit posséder des fonc tions de sélection de processus (après le bas- culement) et de sauvetage du contexte dans le qu e l l e processus se tr o uvait lor s qu'on a bas- culé. Le context switc hin g et l e sc heduling consistent à interrompre l e p ro cess u s couranf, en sa uvant suffisamment d ' i nformations qui permettera à ce proce ss us d ' être r é a ctiv é par après, et activer un autre proc essus sé le ctionné d a ns l e souci de respecter le principe de simultanéité . Le système d'exploitation doit ut il iser une structure de données org a n i sée , la ta ble des processus po ur r é aliser ces deux fonctions . Ce tte table contient toutes l es informations concernant le s processus qui permette nt à l ' operayin g s ystem d' e ffectuer les opérations de con text switchi n g et de sche dul ing . Elle p e ut ê tr e vue c o mme une lis t e ch a î n é e de descripteurs de p rocess u s . Un desc r pteur de pro ce s su s contient: l'é t at du processus qui p e ut être ACTIF s'il est exé cut é sur le p roce sse ur; ACTIVABLE si u n processeur peut lui être allou é ; NON ACTIVABLE da n s les aut r e s cas . - la p riori té du process us. En effet , il est i nt éres sant de po uvoir fournir po ur un processus u ne prio rit é qu i v alorise l'intérêt que l'on porte à voir l ' exécutio n d' un proces sus pl utôt qu ' un a utre. - l ' environnement volatil e . Le proces s us avant d ' êt re int er rompu a positio nn é l es registres de la machine 83 à certaines valeurs. Si on v eut pouvoir le r éa ctiver à partir de l'endroit d e l'interruption, il est n é cessaire de stocker ces registres . Dans l'impl é me ntation de n o tre maquette, nous appliquons les princip e s d 'un e gestion de processus en mon o proces s eur. Il nou s par a ît int é res s ant de présenter une gestion de pro c essus en mult i -processeur comme celle qui est impl é ment ée s dans le commutateur 1240. A. Fonctions synchrone et a synchrone . Tout e s les fo n c t ions ex é cut é es par un s ystème qu e lco n que p euvent être s é par é es en deux caté gorie s principales, soit: - les fonct i ons synchrones ou de n a ture séq uentielle ; - l es fonction s as y nchrones ou de nature si mu l tan é e . Un rroc es s u s s y nch r o n e , l or squ ' il e s t act i v é , p rovoque un arrêt des activités du processus en cou r s, processus q u i l ' a activé. [et a rrêt est ma int e nu jusqu'à c e qu e le processus sy nch ro n e ait t e rmin ~ s o n exécutio n. A ce moment le processus r F. nvoie la commande du processus d'activation. Contrairement au processus synchrones, lorsqu'il est acti vé,l e processus asynchro n e est capable de poursuivre son exécution en parallèle avec le processus d'acti vation. Un conséquence immédiate é vidente, dérivant d'une structure software fourni s sant la possibilit é d'une exéc ut ion parallèle, est que les processus activ é et activant peuvent rési der dans des processeurs physiquement sépar é s . Il sera é vident qu 'un résultat important, dérivant d e l'aptitude à utiliser plus d'un proces se ur pour une 84 tâche donnée, est la p ossibilité d'amélioration du ren- dement du syst ème . Pour des processeurs synchrones , on voit qu ' il n'y a pas de gain de rendem e nt en plaçant le pro cessu s A et le processus B dans des processeurs différents. contr e, Pour des processus asynchrones par il pou rrait y avoir des avantages signi - ficatifs. Les processus de fonctions as ynchrones dans un système sont indépendants de tous les autres pro cessus dans ce système quoiqu 'ils doivent n at urellement communiquer avec d'autres processus. Un processus asynchrone dans un système pe ut être activé par un processus n'importe où dans le systèm e . Pour ce faire , le process u s d'activation doit connaître de façon explicite l'idendité du proc ess us asynchrone. 85 FONCTION SYNCHRONE code PRO~SSUS ~ co-de code PROCESSUS B ......_ A TOUJ OURS UNE SO RTIE GARA NTI E 1 1 • 1 / 1 cod e PROCESSUS PROCfSSUS ) codG cod e FONCTION ASYNCHRONE B N'A PAS DE SORTIE GARANTIE B. Caract~ ri sti que s d'un FMM Une FM M: - est une entité as ync h ron e ind f pe nd a nte. - es t - doi t - peut nécessiter des para mètres d' e ntr é e en relation avec so n a c t i v ati on . - possè de un e n semb le fini non vi de de messa ges d'entr ée . - possède un ensembl e fini non v ide de mes sages d e sortie . - r ép on d à tout mess a ge d'entr ée en pé riode d'a ctiv ation un iq ue ment. - pe ut être activé ind j finiment . - peu t uniqu eme nt être désactiv ée contrainte et non fonctionnelle(la dé sactivation peut se pro du ire par d éfa ut d u système. - peut ac tiv e r d ' autr es FMM. - le comportem e nt fonctio nnel est complè tem e nt sp • cifi 6 en termes de séq u e nc es de mess ag es (reçus e t émis) . un "black box" vu de l'ext é rieur. être ac t ivée pou r fonctionner. C . Messages Un messa ge e s t un moyen d ' intercommunication en tre objets asynchrones . Un messa ge: - peut porter de l ' info r ma tion . - est cré é par un e opér a tion de tra n smi ssion de messages . cesse d'exis t er sans aucune r ~ ponse , si di rig 6 v ers u n e F MM non active ou non exist a nte . - existe j usqu ' à l'a ccep ta ti o n explicite par la FMM d e destination s ' il est act if. - pe u t - peut être prioritaire par rapport à d ' autres messages . ê tr e mis en file d ' attente. 87 D. Structure d ' une FM M. Dans des systèmes à temps réel un g ran d nombr e d ' appareils identiqu es fonct i onent en p a rallèle et de façon asynchron e , par exemple des jo n ctio n s , de s r écepte u rs de chiffres , de s appareils de s i g nalisation , d e s un i t é s de commande de mémoires auxiliaires . On devra souvent fair e exécuter pa r l e systÀme un cer t Hin n ombred'actions pendan t la même pé r i ode de temps mais pa s néce ss airement au même mome nt, par exemple , le chargement . Un e FMM pe ut être CJ n çue pou r la lo g ique qu i ctionne sur l ' un des appareils ci - dess u s es t fon- et qu i utilis ée pour effectuer les op ~r ati o ns en para - llèle sur un certai n nombre de ce s mêm e s app ar eils . Néa n moi n s, chaqu e app ~reil sé paré n ~cessitera des données diff ére nt e s . La str uctur e la pl us l ogi qu e à utiliser po u r t el système es t un une s tructure dont le p r ogramme commun définit la séquence logique des op é r a tions . Une aire de donn ées est a ss ociée à ce p ro g r amme p our contenir les données nécessaire s à s o n exé c ution. Un programme commun et son aire de données est a ppe lé un proces s us lorsqu ' il e s t exécuté. Une FMM construite de cette faç on est appel ée u n mu ltiproc e ss u s FMM et l a logiq u e est di v isée en de u x p a rties : - un e pa r tie super v iseu r une par t ie ap pl ica t io n. Deux mu l ti p r ocess u s peu v ent être basés s u r tie application ; u n process u s simple e s t la p a r - b a s é s ur la pa rtie supervision dont la fon c t ion est de con trôler les processus d ' application . Les processus ind i viduels d ' un e FM M rnulti p rocess u s fonctionnent de faço n as y nch r one les uns par r ap p ort aux autres . D'autres FMM dont la foncti on est telle qu ' elle ne r e qui e rt pas de processus multiples sont considé rées comme des FMM mo n oprocessus . 88 Déf i n. du proces . Proces s us Do n n ée s du proces . MONO PR OCESS US FMM Par tiè SUPERVI SEUR Pr ocessus Processu s 1 ... Pa r t i e SU PERVI SEUR Dé f i n it du proces . Donn ée s du pr o ce s . Dé f i n. du p roces . Do n nées du pr oc e s 1 - - i- Pro c ess us 2 Don n é e s du .__ proce s . - Processu s 3 .___ 2 Do nné e s du proc e s . 3 Part i e AP PLIC AT ION Parti e MUL TI PRO CE SSUS FMM APPL I CAT ION E. Partie supe rv i seur d 'u ne FMM la pa rtie superviseur a les caract é ristiq u es suivantes: - elle con si s te u n iquement en un processus simple . - elle a un poi n t d ' e ntr ée défi ni au mome nt de la production du software. Ce point d'entr é e es t u t ili sé par l ' operati n g system pour la réception du message d ' i n iiia l isation. elle peu t envoyer et recevoir des messages. Elle a les fonctions s u ivante s : - elle reçoit tous l es messa g es de base en v oy é s à la F MM et soit l es absorbe, soit les transforme e n me ssage s dirigés vers les processus d ' a p pli ca t ion n ou v ellement cr éés . - si n écess air e , elle c ommande la c r éation de processus d'ap pli cation dans le FMM; à cette fin , elle gère tous les aspects de la créatio n de la pa rtie application y comp ris, en cas de nécess ité , la détection de s urchar ge et la réponse à donner à l'enre g i s tr eme nt e t le compte r e n du d e s statistiques de cr éati on de pr ocessus. - elle effectue la gestion des ressources eppar te n a nt intrinsé que men t ~ la F MM . F . Parti e app l ication d ' une FMM La partie app l ication d ' un e F MM a les caractéristiqu es suivantes : - ces processus doi v ent être cr éé s à la demande d e la partie superviseur . La limite supérie u re d u nombre s t atique ou dy n amique des proces s us qu ' elle compre n d est modif i able. - ces proc e ssus peuvent e nvo y er et recevoir des messages dirig é s. - ces p rocessu s p e uvent envoyer mai s non rece v oi r des mes s a g e s de b ase . - un process u s peu t 90 se t e r min e r. B.3- Gestion de la Mémoire A. INTRODUCTION Dès l'in sta nt o ù le p ro gramme à exécute r par un ordinateur n'est pas e nti è i eme nt et défini t ivement chargé da ns l a ~ém oire pour toute la durée de l'exploitation , se pose l e prob l ème de gé r e r les demandes d ' allocation et de désa ll ocation de s p lac es e n mémoire. Néanmoins, la logique et la comple x ité de l a ge st i on de la mémoi re déco ul ent des objectifs généra u x assi gn és au système d ' exploita tion, objectifs déterminés en fonct ion des exige nc es de l'application. ét é En comm utati on, ces exigenc e s on t longuement déve loppées dans les points pré c éde nts et ont conduit nat ur e ll eme nt 'des choix q uan t à la a' politi q ue de gestion de l a mémoire , q uant l'allocation des bl ocs mémoire . En effet , c e rtaines politiques peu vent être rej etées immédiatement de par la nature radicalement oppo s ée aux exige nces basées sur le temps réel . Ains i, l'allocation unique e t statique pa r processus d 'u ne part de mémo ire préa l ablement d&finie est inad-quat . Cette m6 thod e s u ppose que l e découpage de la mémo ir e défin i a p riori par rapport aux processus convi enne s u ffisammen t . Or, en commutation , les demandes des p r ocessus sont imprévisible s et fréquentes , renda nt cette méthode d i fficile à ma îtri ser . De même , une a lloca tion permane nte, c ' est - à-di r e sa n s préemp tion, où l e process u s garde l e ou les blocs de mémoire reçus jusqu'à ce qu 'il n' en ait p lus besoin , n ' est pas envisageable. En conclu si o n , nous ét udierons de u x grandes cla sses de systèmes de gestion de l a mémoi re compat i bles a vec notr e type d ' appli c a tion. Ces classes sont : - les systèmes à a llocation dynamiq ue de la mémoire; avec - les systèmes al location a' préempti o n . 91 B. ALLOCATION DYNAMIQUE DE LA MEMOIRE Nous avons b esoi n d ' algorithmes de réservation et de libération de blocs de mémoire de taille v aria bl e à partir d ' un e plus grande zone de stockage , où c e s blocs consistent e n ce llules mémoire contiguës . Ces techniqu es sont généralement appelées des algorithme s d'allocation dynamique de mémoire . 1. RESERVATION Suppo sons l ' é t at de la mémoire partitionnée en blocs r éservés , c ' est- à-dir e utilisés, et en blo cs libres ou dispo nibl es (figure T3 3 ) . ~ b l<>c re scarve [] bliJ1: 1ib,r,e Le problème es t : a .) comment représenter l'espace libre partitionné? b) é t an t donné une certaine représentation des espaces libr e s, comment trouver un bloc den cell u les libr es contiguës et l e réserver ? La réponse à la qu estio n (a) es t, bi e n s Gr , d'établir une liste de l' e space disponible. Le s blocs disponibles sont li é s en tr e eux : l e premier mot de chaque bloc con tien t un flag ind iqua nt s ' il est libre ou non , l a taille du bloc, un pointeur vers le bloc suivan t dans la list e libr e et , éve ntuell eme nt, un pointeur vers le bloc précéd e nt (figure T34). Les blocs libres peuvent être reliés par ordre de taille croissant ou décroissa n t , par ordre d' a dresse e n mémoir e ou e n ordr e aléa toire. 92 flog to!l le 1 1 tien 1 ovo nt .,..,., <Jrrlor., Pour la question (b), si no u s voulons n cellules contiguës , nous devons repére r un bloc de m = n cellules libres et réduire sa taille à m - n . Il peut y avoir plusieurs blocs den cellules ou plus et la question devient quel bloc choisir? Deux méthodes apparaissent tout de suite : la première (first -fit a l gorithm) consiste à rechercher le premier vide convenable c'est-à-dire un bloc li br e de tai ll e m supérieure à la demande n; la seconde (best-fit algorithm ) co n siste à recherc h er le vide qui convienne le mieux à la d ema nde c'est-à-dire le plus petit bloc libre de taille m1 supérieure à la demande n. n <= m 1 <= m ( 2 = ••• < = rn j Cet te dernière méthode nécessite une recherche dans toute la liste des blocs libres avant qu 'une décision soit prise. Elle apparait naturellement comme une bonne pol itique étant donné qu ' e ll e garde disponible les plus grands blocs possibles pour une utilisation future . Néanmoins , cette méthode soulève plusieurs objections : - e lle est relativement l en t e , lenteur dûe à une longue recherche; - elle tend à augmenter le nombre de blocs très petits, ce qui n' e st év id emment pas souhaita bl e . 2. LIBERATION Considérons maintenant le problème inverse comment retourner des blocs vers l ' espace libre losqu 'on n'en a plus besoin? Nous allons tenter de résoudre ce problème par la technique du "Garbage Collector". Cette technique utilise dans chaque bloc un flag d' état (figure T34). Quand un bloc est libéré, on met simplement à jour le flag d ' état. Tant que de l ' es pace libre peut être alloué aux demandes , on ne 93 fait ri en . Quand c e n' est plus l e cas , le Garbage Collecter renvoie vers l a liste des blocs libres tou s les blocs occupés dont le flag est dans l'état l i br e . Cette t echni qu e apporte bea ucoup de le nteur l orsque la mémoire est pr esque tout e occupée . De plus le phénomène suivant en es t une conséquence . Suppos ons deux blocs adjace nts disponi bl e s dont l'un d'eux n'est pas encore dans la liste libre (figure T35.a ). :I _ E2fil:·:·:·:· ___ m~~~~~~~~~~~~~~ ti;;;":;;;":~~~~~~~~~~::ili.~ :r~1LS. b .,1 __ -i:: ·:·:·:·: ·:·:·:·: Qfil ,~~I : b•~ utlUu : b• CKJ cfl• pun11>l 11 et: e,i--d,1h c...-11 dt1 la l l•t:. llbl"II : b •oo d lapc,n1ble d,2n a la ri.t • trl>ro ... c or~, ,g •1·MEJ'1'1. c e G~n:rbat.1•i d-u. Collec·t·o -r Si l 'on réserve une section du bloc disponible de la li s t e libre, la situation ris que de devenir telle qu'illustrée par la figure T35.b . Si main te nant, le Ga rbage Coll e cter intervient, nous aurons deux bloc s l i bres séparés comme le montr e la figure T35 .c . Le s frontières e ntre l es zones disponibles et réservées ont t e ndan c e à se perpétuer d ' e lles-même s, et la situation e mp ire avec le temps. Par contre , si nous reto u r no ns dans la liste libre les blocs dès qu'ils sont l ibérés et si nous r assemblons les zones libres adjacentes, nous a urions obtenu la situation d e la figure T36. Pour contourner cette difficulté, il est possible d'utiliser en même temps qu e l e Garbage Collec t or , un tassement de mémoi re qui con siste à ras s embl er l 'un à la suite de l'autre les blocs 94 réservés, de sorte que tous les blocs disponibles se retrouvent ensemble pour ne plus former qu'un seul grand bloc lo rsque s'exécute le Ga rbage Collector. ---r ............. [E............ TSt, .. a. T3t3. b f.;.·.;[.13 bic:><:: LJtili'se CJ blo,:: c:Uspc::,nlble, ,:k:ms le:, 1is:t,s lit1re .fi~7•u,ru 1'86 : sc>l'.1.(.ïh:cn1, ci~u. p·ro blern.e cl'u. ('.; a:r-b a:g e C -0 l,l(J o 1tor 3. ALLOCATION DE CADRES OU PAGES La mémoire es t allouable par morc eaux de t~ille fixe, ap pelés cadres ou pages. Toute demande de mémoire est formulée en nombre de cadres. Pour que cette méthod e ait un avantage fondamental sur les précédentes, il faut que l'emplacement des cadres alloués soit indifférent , de telle sorte qu'on puisse allouer des cadres n'importe où, et notamment, des cadres non-adjacents. La gestion de la mémoire est réduite à une comptabilisation des cadres libres et occupés au moyen d'une table de booléens. Malgré la simplicité de cette méthode, un problème reste cependant à résoudre : celui de la taille du cadre. Choisir une petite taille de cadre est intéressant car on alloue dans ce cas que ce qui est n écessaire à l'avancement du processus. Mais cela entraîne une lourdeur dans la gestion de la correspondance e ntre référence et adresse , et d e nombreux transferts entre la mémoire principale et secondaire. Il faut donc trouver un compromis . 95 Toute fragmentation de la mémoir e n'a pas disparu. En effe t, l e besoin e n mémoire du proce ssus doit être exprimé en nombr e entier d e cadres le dernier cadre n ' e st donc que rarement rempli. E~ moye nne, l e dernier c a d re de toute demand e es t a moitié utilisé : à tout moment la perte vaut ND* TC* 1/2 ou ND est le nombre de demandes sa tisfa ites , TC est la taille du cadre. Tout e n gardant l e s principaux a vant a ges du syst ème d' all oc a tion d e pages, le problème du choix de la tai ll e du cadre peut être résolu par la méthode des jumea ux . 4. METHODE DES JUMEAUX autre approche d'allocation Cette mémoire est très rapide et dynamique de pa rt i cu lièreme nt adaptée a ux applications en temps rée l, c o mme c ' est le cas pour la commuta tion . Un bloc ne pourra avoir une taill e que de 2k cellules, k étant un entier . Si une d emande ne correspond pas à une puissance de 2 cellules, un bloc de la puissanc e de 2 j u ste supérieure à la demande sera allouée, fournissan t ain si un espace s uppl éme ntaire non utilisé. L'idée d e cette méthod e est de garder une liste libr e différente pour cha que taille de bloc 2k , 0 ~= k ~= m. L'ensemble d e l a mémoire a une taill e de 2m cellules. Au démarrage du système, le bloc entier de 2m cellules est disponibl e . k Lorsqu'un bloc de 2 mots es t demandé, et si aucun bloc de cette taille n ' est disponible , le plus pet it bloc d e taille = 2k+ 1 sera pa rtagé e n deux blocs de même longueur. Ce tte opération s e ra répétée jusqu'à l ' obtention d'un bloc de longueur 2k. Quand un bloc e st partagé en deux blocs égaux, ceuxci sont appelés des " blocs jumeaux ". > L'efficacité et la rapid ité de c e sys t è me vi ennent du fait que si l'on connait l' adresse d'un bloc ( c ' est-à-dire l ' adresse de son premier mot), on connait l'adresse de son jumea u par une simple opéra tion combi n a t oire sur l a représenta t io n binaire des adr esses . 96 De plus, cette méthode offre une garantie contre les recherches dans une longue liste libre . C. ALLOCATION AVEC PREEMPTION systèmes ont été Deux classes de envisagées - sans préemption: le processus garde la ou les parts reçues jusqu'à ce qu ' il n ' en ait plus besoin; - avec préemption l es parts reçues par un processus peuvent lui être enlevées au profit d'un processus prioritaire. Dans ce dernier cas, une question doit être posée: le processus perdant une partie ou toute son allocation de mémoire est-il de c e fait tué ou pourra-t-il ultérieurement se poursuivre? Cette dernière solution est celle réalisée dans les systèmes en temps réel : lorsqu'un processus est bloqué en attente d ' un événement , la mémoire qu'il a acquise est remise à la disposition de tout autre processus jugé prioritaire: Dans ce systèmes, les processus suspendus doivent conserver le contenu des parts de mémo ire qui leur sont enlevées aussi, le gérant avant de réallouer c e s zones , recopie- t -il leur contenu sur une mémoire de réserve ou mémoire secondaire . Tout système à préemption sans destruction de processus est composé de deux niveaux de mémoire : - une mémoire principale où sont chargés les éléments les plus importants pour l ' exécu tion des processus les plus suscep tibl e s d ' être exécutés; - une mémoire secondaire où se trouvent les copies des zones perdues en mémoire principale par les proce ssus jugés les moins prioritaires. Ce système de va-et-vient e n tre les deux mémoires (swap-in, swap- out) existe avec des méthodes d ' allocation à parts variables et à pagination. 97 2.2.2.2.B.4. Communication et sync hronisation entre processus • Combinée ave c la techniqu e des automates , communication e ntr e proc es su s e st un outil fondamental pour logique d u commutateur Elle est le vecteur principal la signa l isa ti on. la la de Le fonctionnement int erne global du commutat e ur fera l'objet d ' une procha ine se ction (D) • On s e l imi tera ici à voir comment la communication complète l es notions d ' a utom a t es et de processus pour réa lis er la signalis a tion. Les points suiva nts seront traités dans la suite a) Les automa t es vus comme machines finies à messages • se place au niveau de l' app lication qui est de r éaliser signalis a tion. On la b) La commu nication entre processus se place au nivea u de Pour des raisons d ' efficacité (contraintes du temps 1 1 O.s. rée l),il est intéressant d ' imp l émenter l e s modules software sous forme de processus (ou de tâches : cf B. 2 .). c) La communication en tr e les modules de bas niveau spécial . c as d ) La communication dans l es sys t ème s AXE 1 0 e t 1240. ~ Machines Finies à Messages . ~ Rappel sur l es automates . Un automate dans sa version générale contrôle un système qui peut se trouver dans des é tats différents. L ' automa te tient à jour cet état et d ' autres in forma tions sur le système contrôl é . Dans chaque état , d es événements peuvent survenir qui provoqu ent une r éa ction de l' a utoma t e . Cette réaction se fait en deux t emps : (1) Exécution d ' un certain nombre d 'act ions • (2) Passage à un autre état . 98 é Lat événe11c.1n t 3c bon p.ré.,0nt 1 _,{ y , ,_ ri , Î' .. .. . .. . ... . .. . ... . .. J .. . n .. . éta t suivant .. ') c.... n .. .. .. .. . ... Fig E1. a utom ate général a.2) Automates en commut at ion. En commutation , la notion d ' automate convient particulièrement bien pour l e contrôle des abonnés , des circuits interurbains, et des communications e ll e s-mêmes e n tre interlocuteurs . En effet ce s "objets" ont bien un certain nomb re d'états et le passage en tre é tats se fait suivant une l o g ique bien définie . Cette logique est la signalisa tion . Dans ce l es a ut omates subissent deux adaptations importantes : - Les événements sont provenance d'autres modules . des réce ption s de contexte , messages en -Les actions comprennent non seulement des mises-à-jour d'informations sur l e système contrôlé, mais aussi et surtou t des envois de messages à d'autres modules . De plus, c es automates ont un n ombre fini d ' états. machi ne état : De la sorte , un automate de commutation finie à me s s ages . Il a la forme suivante devient une pour chaque -Li s te des messages pouvant être r e çus. -mises -à-j our des informations s ur l e syst ème contrôlé. Ces informat ions proviennent part i e llement des informations contenu es dans l e message . -Liste des messages à envoyer . - Etat suivant de l ' automa t e . 99 message action message état état pr ésent reçu envoyé suivant 1 ... m1 2 m7 ... ... 3 mB m2 m5 2 m4,m23 3 ... ... ... 4 . .. ... ... . .. . .. ... .- . . ... ... n ... . .. ... ... 4 4 Fig E2 . Ma chine finie à messages. a . 3 ) Signalis<ltion . ; La logiq ue de sig nalisatio n dev i en t d onc un e s eq uenc e d ' enclenchements d ' automates . Cette séquence comporte à cha que étape un ou p lusieures bra nches alternatives prévues et s pécif i ée s dans une procédure de signalisation. 100 / m7 / 1/7 Automate 1 EP ES L1R llŒ e 1 e2 mJ () J m7 rn6 e2 Pl m2 .- m2 -- - - -- - . Automat e 2 EP rn6 î ES h'iR - - - - - - - - -- - !Vlli - - ;i Automate J EP bù - - hfü l>il li ' - - - - - -- - 1.i;p : e8 état présent BS : état suivant - - - - - )l - m4 e 1 O eu mb nt C : :1 Ill./'.: C r _ :1 U messag e envoyé e : état m : message lvl l{ : - -· h : rn4- Fig E3 . Signa l isation et automates . NOTE Il faut spécifier la destination du message . Cela être indiqué soit dans le message lui-même soit l'ordre d'envoi. Ce point s e ra examiné plus tard . peut dans Un exemple de signalisation est donné au point D. a.4) Contenu d'un message . En ce qui concerne les automa t es (niveau application) , les informations contenues dans un message sont les suivantes : - uméro de message (celu i-ci peut implicitement désigner un destinataire ). -indication de l'abonné appelant ou appelé concerné. -divers r e ns e ignements sur les abonnés. -heure et date . -catégori e s , •. . 101 ~ Communication entre processus. ~ Combinaison automates et processus. On a v u e n B.2 l'utilité des processus pour l'exécuti on des modules de commutateur. On vient également de s'échangeaient des messages qu i modifiant leur état. voir comment les automates é taient autant d'événements Dès lors si chaque automate est exécuté sous forme d'un process u s indépe ndant, l' é change de messages entre automates devient une communication e ntre processus. b.2) Transmission de messages . Dans l ' O.S en temps réel, on dispose de primitives de gestion des éc hange s de messages entre processus . Les deux principales sont l'envoi de messages , et la réception de messag~s . On v a ex trair e ici l' essent i e l du mécanisme d'échange. ' par apres Deux systè mes particuliers seront examinés (ITT , ERICSSON). L ' utilisation de deux primiti v es au li e u d'une seule pour transmettre un message vi e nt du fait que les processus ne sont pas tous e n cours d'exécution au même moment et qu 'il s travaillent indépendamment l'une de l'autre. P1 P2 ,~ sg 1 1 1 P1, P2 : PROCESS US j 1 Fig E4 . Transmission immédiate d'un message. 1 02 P2 P1 RBCiPT I O} BNVOI msg nsg pool de P 1 , P2 : PROCESSUS mes s a 0 es Fig ES . Transmission désynchronisée d'un message. L'opération se passe e n deux temps avec un délai variable e ntre e nvoi et réception. Le pool de messages est la zon e intermédiaire ou' les messages envoyés attendent d'être reçus. JJJ.. Envoi d'un message. (i) Le proce ssus émetteur doit tout d ' abord disposer d'un bloc de mémoire dans lequel i l pour ra place r son mess a ge . Il obti e nt ce bloc par appe l au module O. S gérant l a mémoire.(cfB.3). ( ii ) Le processus place ensuite les informations composant le message dans le bloc mémoire mis à sa dis position . ( iii ) Le process us envoie le bloc message dans l e pool des messages où il attendra d'être reçu par l e processus destinataire. 1 03 ges tion mémoire obtention d ' un bl oc mémo ire BM demrinde de J3M pl a cement msg envoi de BM ~ écri ture du message dans l e bloc BM envoi du me ssap;e dans le no pool de ms gs Fig E6 . Envoi de messa g es . Se lon l es systèmes , il peut y avoir un e s e ule primitive r éa lisant la séq uence complète , ou alors p lusi e urs opérations succe ssives . NOTE fil Réception d 'un message. ( i) Le proce s s us r écepteur se met en attente d'un message . (cf fonctionnement d e s automates réception d ' un message= é v é nement déclencheur) . (ii) (iii) ( iiii) Chaque fois que l ' O.S do it lancer une nouvelle tâche , il prend un message dans le pool (voir les pr obl èmes de priorités et les tâch e s ne consistant pas en des auto mates ). Et il le met à dispositi on du process u s destinataire. Le processus automate. ) est lanc é ( enc l enchement Le bloc mé moire est libé ré gestionnaire de la mé moire. 104 et rendu d 'un au gestior mémoire libération du bloc Bl',J P2 .Lioera-cion 1 - - ~an::ment ;;: P2- - - recep-cion attente msg ,~ séle c tion du message poo l d e msgs F i g E7. Ré c e ption d ' un message et processus récepteur. lancement du Remar q ue s (i ) La mise en attent e est provoquée par P2 lui-même un change ment d'état de systématiquement apr è s l'automate. ( ii) La r é c e ption du messag e et le lancement de P2 fait e par le moniteur aidé du scheduler . ( iii) est La libération du bloc et la restitution au gestionnair e de la mé moir e se fait normalement automa ti quemen t par l e monite ur, mais ce n'est pas indispe nsable . 1 05 b.3) Priorités des messages et scheduling des tâches. Ces notions ont été abordées en B. 2 mais il est d'en rappeler ici les points fondamentaux . utile Lorsque plusieurs processus son t en attente de messages et que tous ces messages attendus sont présents dans le pool , le scheduler doit décider quel message prêts à être reçus , acheminer à son destinataire, et par conséquence quel processus puisqu'un processus est activé · lorsqu'il reçoit un activer, message . On voit donc ~ quel point l'envoi de message et le scheduling de tâches sont étroitement reliés . Pour cette raison , les messages seront affectés de priorités diff i rentes établies en fonction de la priorité de la tâche destinatrice. A ces différentes priorités correspondront en fait plusieurs files d ' attentes de messages (voir B. 5 à ce sujet) . b . 4 ) Identification du processus et achem inement des messages . Les identificateur exemple : processus pe ut être ont un identificateur (ID). hiérarchisé de manière à préciser Cet par - L 'organe sur lequel le processus tourne. - Le module software constituant l e code exécuté par le processus . -L'identification du process us lui-même . Différents types de messages et de méthodes d'acheminement peuvent ainsi être dégagés . On verra plus loin comment ce problème est traité dans 1240 ET AXE. El Communication e n tre modules de bas niveau. Bien que cela ne soit pas à proprement parler de la communication entre processus indépendants , il faut cependant mentionner ici un autre type d ' échange de données ou commandes entre modules . En effet , les modules automates tels que décrits plus haut ne se justifient que pour implémenter des fonctions de contr8le de haut niveau. 106 Ils sont par contre inadéqua ts et peu performants pour des fonctions de bas niveau qui sont routinières et doivent s'exécuter sans délai . Le principal exemple de ce genre de fonctions est le scanning des lignes et circuits (voir A. 1 ) . De manière géné rale , tous les modules software de bas niveau très proche du hardware tombent da n s c tte catégorie . Les comm unic ations avec ces modules se réduisent don c à des mécanismes beaucoup plus rudimentaires appels de procédures, interruptions. On verra à l a s ec tion suivante comment ITT et ERICSSON ont réalisé c es fonctions. ITT nomme ces modules "machines de support de systèmes '' (SS M) t andis que ERICSSON l e s considère comme du "software régional ". 31. Communication dans 1240 et AXE. La description software tel l e qu'elle fortement de la méthode prot ot ype COLO/S. AXE néanmoins différentes en générale de la communication entre blocs a été donnée ci-dessus se rapproche employée dans le 1240 , et aussi dans l e 10 utilis e des notions voisines , mais ce qui concerne notammen t l e s automates. L'accent est mis sur les pr incipes communs au-delà des différences r lativement supe rficiel l e s de vocabulaire ou de représentations. Les points suivants seront abordés : 1. Types de blocs software. 2. Support de communication . 3. Dé roulem e nt d ' une communication . d . 1)Types de blocs software. (i ) Les modules de haut niveau. Les modules de contrôl e de haut niveau réa l isent fon ctions complexes et non routi n ière ( e x: analyse numérotation) . des de * Du point de vue app lication, ces modules sont des suites de peti tes séquences d ' instructions, chaque s éq uence traitant un cas part i culier de contrôle . 1 07 BLOC Fig E8. Composition d'un bloc de haut niveau. Les sequences ont le format général sui vant: - Récept ion d 'u ne communication. - Exécution de certaines opérations (par exemp l e : mises -à-jour de BD ). - Envo i d ' une communication . séquence i --- récept ion opérations envoi Fig E9 . Composition d 'une séquence . Une différence importan t e existe ici entre 1240 et AXE. Le s b locs 1240 sont d es automates ( FMM) tels que décrits plus haut . Cela signifie qu'à tout moment l'automate est dans un état détermin~ . A ch aq ue éta t de l ' a utomate correspond une et un e seule séquence d'instructions. Et à la fin de chaque séquence , on spécifie quel nouvel é tat l ' automate doit prendre . Les blocs AXE , sont par contr e de si mp les suites de séque nc e s non enchaînées ent r e elles . 108 Ce détail a une i mportanc e que l ' on explicitera p lu s bas : lorsqu'une communication arrive à un bloc 1240, l' état présent de l'automate détermine automatiquement que ll e séquenc e doit être a c tivée. Par contre, dans AXE, la communication d oit spécifier elle-même à quelle séquence du bloc elle s ' adresse . * du point de vue O.S, ces modules doivent être exécutés pour des communications simultanées e ntre de nombreux abonnés. C'est la raison de l'utilisation de processus . Bien qu ' exprimées de manière différente , les méthodes 1 240 et AXE sont très semblables . -1240 parle de processus d'a pp lication contrôlés par un superviseur. Il y a un superviseur par automate , et un processus d ' application pour chaque exécution particulière de cet automate (voir B. 2 ). -AXE par l e d'une unité software globale comprenant un code commun, des données connues et des données individuelles propres à chaque tâche particulière de contrôle . C ' est dans ç es données indivi due ll es que l ' on retrouve implicitement la notion de processus . (ii) Modules de bas niveau. Les modules de bas niveau i mplémentent des fonctions routinières rapides et re lativement simpl es ( par exemple scanning de lignes automatiques conçus de manière différente) . Ils sont des modules de haut niveau ( auss i bien au niveau hardware que software) pour des raisons de clarté et d ' efficacité. -1240 les appelle SSM : machines de support au système . -AXE les classe dans l e software 11 régional II c'est-à-dire affectation particulière à chaque unit é hardware . Ces modules sont e n fait des ensemb l es de petites procédures qui peuvent être e ncl e nch ées très rapidement . Le système de communication est donc différent de celui utilis é pour les module s de haut niveau (voir plus loin ). d . 2 Supports de communication. On a parlé plus haut de "messages 11 envoyés entre module s de haut niveau, et de "moyens " de communication rapides entre modu les de bas niveau et modul es de haut niveau . No u s allons voi r comment ces modules ont été conçus dans 1 240 et AXE Des références seront faites à l ' architecture de ces systèmes. Pour plus de renseignements , voir 2.3 . 109 ill * Architectures fonctionnelle et physique du software. 1 240 - Les blocs fonctionnels principaux du 1240 sont appelés "él éments de contrôle" (CE). Ils se composent d'une combinaison v ariable de trois types de modules : -SS M ou machines de support de système • -FMM ou machines à nombre fini de message s • -bases de données . Les SSM conti ennent des procédures activables par interruptions software, ce qui e st un moyen rapide de communication . Les FMM sont des automates que l ' on <lct iver en l eur envoyant des messages. peut r·· --1 1 ' COL : SLS '---- .J SM Fig E10. exemple de CE 1240 lignes d 'abonnés • contrôle des - Les blocs physiques du 1240 correspondent exactement aux blocs fonctionnels. Il faut cependant préciser que chaque bloc physique tourne sur un processeur indépendant (archit e ctur e fortement répartie ). Tous les EC et leur processeur sont connectés à un même réseau de connection numérique (DSN). 11 0 OE Fig E11 . conception archi t ectura l e du 1 240 . De plus les commutateurs sont reliés entre e u x des circuits • · Commutateur 1 CE CE Commutateur 2 CE - - CE Fig E12 . interconnection de commutateurs 1240 . 111 vi a Il y a par conséquent un problème d ' achem i nement des messages suivant qu ' ils connectent deux modules d'un m~me EC, de deux EC différents appartenant au m~me commutateur , ou de deux EC apparte nent â des commutateurs différents . Cette question est examinée en (ii) . * AXE. - Les bloc s f o n c tionnels de AXE (appelés tels quels par ERICSSON) sont composés de trois-parties : hardware [S W régional j lsw centra l Fig E13. conception architecturale de au niveau fonctionnel. AXE Le software central contient les modu l es de niveau (FMM du 1240). ha ut Le software régional cont i ent des rout i nes de bas niveau (SSM du 1240) de contrô le d ' unités hardware . Le hardware , le software régional et software central sont appelés "unités f o nctionnelles" . 11 2 - Les blocs physiques de AXE sont très différents blocs fonc tio nne l s . HW HW SW/R SW / R des HW S\'//R sw,c Fig E1 4 . conception archite ctural e de AXE nive a u physique . au Le software central es t en fait physiq uement si tu é sur un s eul processeur central. Par contre , chaque unité d e s oftwar e r ég ional dispose de son p ropre p ro cesseur régiona l. On voit donc q u' à l e différence du 1240, tous l es messages de ha ut niv e au s ' é change nt à l'int ér ieur d'un même processeur . On les appe ll e cependant "externes" car ils s' écha ng e nt e ntre blo cs fontionnels différents. Les signaux de bas niveaux en t re software régional et software central sont appe l és quant à e u x " interne s" car ils s'échangent à l'i n t érie ur d 'un même bloc fontionnel, même si physiquement, ils sont transmis entre deux processeurs différents. (ii) Description des supports de communication. * 1240 ----L' ac tiva tion des SSM se fait par interruption software .Le mé cani sme sera e xplicit é en D.1 . Rappelons seulement qu'il permet un changement de contexte et une activation de procédure très rapides et prioritaires. - Une communicatio n adressée à une FMM se fait au moyen de messa ges. Les messages comportent les renseignements principau x suivants : 11 3 pour le param è tre "type de message ", voir la section sui vante à propos de l'achemineme nt. NOTE En-tête Sous - en -tê te Acheminement Longueur du texte Fla gs Pr iori t é Type de mass age Numéro de me ss ag e Durée l im i te Fivfü, des t inat a ire Process u s d'stina t aire Processus sourc e Corps . . . texte . . . Fig E15. structure d ' un message dans le 1240. Il fau t me ttr e e n éviden c e l e fait q u e l e messager ne spécifie pas qu e lle séquence d 'instructions de l a FMM doi t être exécut é e . En effet , l a FFM mai ntient elle-même l'état de l ' automate et sait par cons équent qu e ll e s é q ue nce ex é cuter . 11 4 * AXE - Les messages e nvoyés aux unités r égi onales comportent pr in cipale ment : . un numéro de bloc (BN). une référence à la fonction à exécuter. - Les une signaux envo yés a u x unités c e ntrales compor t e n t en-tête . • un numéro de bloc ( BN ) r é f é r ença nt biunivoquement un bloc . une localisation de si g nal (SL ) permettan t de situer la séquence d ' instruction à exécuter (voir d.3 ) un nom de si g nal permettant de préc i ser sa pr iorit é ( vo ir B.5 ) et un corps comprenant des données . (iii) Mé t hodes d'acheminement. * 1 240 a ) Sans e ntr er dans trop de détails , on peut disting uer deux param~ tr es réglant l ' a chem ine men t : - La nature BASIC et DIRECTED du messa g e . On a exp li q ué en A.2 et n .3 q u ' un automate peut être " instancié " pour chaqu e tâch e au que l il s ' applique. Dans c es d ifférente c o nditions , il faut lui adjoind r e un superv is e ur c a pabl e de créer des process u s d ' a p p lic at ion e t d e cana liser les messages vers les processus d ' application des tinataires . . BAS IC: l orsqu'il n ' y a pas encore de processus d'app licatio n c réé pour une tâche donné e , ce message est envoyé au superviseur . Celui-ci s e charge alors de créer un nouveau processus d'application et de lui transmettre le message . DIRECTED lorsqu'il e xis t e un process u s d ' application pour la tâche d o nnée , on pe ut s ' y ad resser d i re c temen t en faisant référence a u numéro de processus. 11 5 rnJ SPV --~réation de TED ~ , ; r c c essus ~ .. . .. ... ! (2) (1) (a ) e nvoi de message pour la première fois. ( b ) envoi de message par l a suite . Fig E1 6 . message BASI C/DIR ECTED. - les tabl es et paramèt res d'acheminement. Il exis t e une sc ri e de t a bles gérées par le mod ule de ges tion des systèmes : mes sa ge numbe r T ., ty pe / FCB T ., discr imina tor T ., e tc . Suivant l ' a cheminement d é siré , le mes sa ge s e ra envoy é av e c d es paramè tres VI A, FOR , I NTO , ONTO, ou des combinaisons de c e ux-c i . ~ Les voies d ' ac h emi n ement . circuit virtuel ACE TCE . . • 60 • . . • 8 • •• TCE TCE . • 60 •.• . . 60 .•. ACE •• 8 •• TCE .• 60 ... F i g E1 7 . Voi es d ' acheminement de message s . 11 6 Il y a deux sortes de noeuds dans le 1240 : de commutation Les TCE él6men ts de contr8le t erminal , auxquels on peut connecter jusqu'à 60 lignes d'abonnés. - Les ACE: éléments de contr8le auxiliaire , auquels on peut connecter jusqu ' à 8 TCE , c'est-à-dire 480 lignes d'abonnés . Entre chaque ACE et les TCE q u i y sont connectés, une li aison de données est établie de mani~re permanent e à l'initialisation du syst~me . Entre deux ACE, on peut établir à la demande des chemins virtuels, ne subsistant que pour la durée d'une communication. Il n'y a pas de lien dire ct entre deux TCE. Les différentes possibili t és sont donc les suivantes : d'a c heminement ACE TCE TCE Fig E18 . local à un même ACE. ACE ACE TCE TCE Fig E19. en tandem via les ACE. 11 7 * AXE Et a nt donné q u e t out l e soft wa r e central est situé dan s l e mê me p r o c esse ur , l e s p ro b l ème s d ' acheminement ne se posent pas . Tous les signaux sont e nvo yés s a ns probl~me aux blocs destinataires via le u r BN . L ' e nvoi à une un i té régi o na l e e s t l e même à ceci près que l' on passe par l e b us d es p roc es s e urs régiona u x (voi r C. 2 .). d.3 ) Déroulement d 'u ne commun i ca t ion . q ue ce l a a é t é d it p lu s h a ut, il y a d eu x Ai ns i primiti v es principa l es qui s ' appe ll en t i ci TRAN SMIT ( e nvoi d e message ) et MSG - WA I T ( at tent e de r é ce p tion de mes s age ). * TRANSMIT se base sur une assembleu r appe l ée MSG- SEN D. pro c é dur e en lan g a ge MSG - SEND c o mmen c e par s auv e r tous l e s reg istres couran t s de la m c hin e p l us un c o de (61 ) q ui es t la rGfé r e n c de la p r imiti ve c1 exé cut e r. Ensuit e , un e i n te rrup t i o n sot fwa r e est lanc ée . Son num é ro es t 48 , c e l a indiqu e qu ' il s'a g it d'une i nt e rruption pour ex~cutio n d 'une pr i miti v e . La p ri mi t iv e suivantes : f a it appel a ux t rois proc éd ures • SEND-MSG-IlUF pour envoyer un buffe r de message • . MHC-ROUTE-nSG pour effectuer l 'a c heminement mes"'agc . du Q-ON-READY pour placer le buffer de message s ur la fi l e " prê t c "( cf H. 5 ). D'autre part , lorsq u le message v oyag en tr e de u x ~; d c c o 11 t r ô l c J i f f Gr e n t s , 1 e NI I ( ge t i on du réseau ) fait appe l J la procédure message-re c e i ve d . ~ 1 /, m(' n t Enfin , il faut signaler q u' i l es t fa i t appe l à l a procédure ( du géra nt de mémo i re ) DM - MB - Q-OFF , p ou r ex tr a i re u n b u ffe r de message de l a fi le d e s bu f f e rs , en vue d ' y placer l e message' en voyer . 11 8 Gest i on de la mémoire BI,:- MB - Q- OFF '"Ij f-'· Gestion des mes sages ; I/IHC-ROUTE - MS G SEND-MS G-BUF Q-O N- READY lQ t=:l N --.. 0 O' Pl (D (D ::J ::J (a) < < 0 0 f-'· f-'· ~ t-' ~ (D I.D ::J 0 rr- 0 l'i Pl (D Q, (D C X n t=:l . t-' Gestion de la mémoire BM- MB- Q- 0Fl<' Gestion dei: message s . MHC - .. . SE ND- ..• Ges t ion du réseau - - - - - - -- --- o., f-'· H, H, ro, l'i (D ::J rr- (Il (b) Gestion du réseau --- --- - - - - - - - - -- Gestion de me s sages MSG-REC Q- ON- READY * MSG-WAIT Cette prim itive est du ressort du gérant des processus. Elle a pour effet de met t re u n processus dans l'état " attente d e message ". Gormalement , t8t ou t~rd un message arrivera pour lui et sera pr ioritaire lorsque le scheduler (primitive MHC-FIND-WORK ) cherchera un nouveau processus à lancer . Lorsq ue c ' est le cas , la primitive d u BM . BM-MB-QON-TAIL est appelée pour restituer l e buffer à la mémo i re libre. Ens uite le processus destinataire est activé . Gec:,tion de~ processus Gestion de la mémoire Scheduler MHC- .. • DISPATCH B ·1- MB- •• • Fig E2 1. r écep tion d ' un me ssage e t processus destinataire . (ii) AXE * Structure de la mémoire dans CP . Il y a quatre mémo ires : - mémoire mémoire mémoire m~moire de de de de programme ( PS ). d o n n ées ( DS ). réfé r e nc e ( RS ). registres ( RM ). 1 20 Processus Desti nataire lancement du DS PS RS donnée s CJ / progr. LI / ~ --- -- ,,t:., --- / données LI / ~ progr .C J orogr . TS lecture/ écriture ~ -- -- -- RM données TS Fig E22 . ty pes de mémoires d u CP. Chaque p rogra mme s e trou v e dans un segment de PS et ne peut adresse r da n s OS que les données qui lui appartiennent . La RM pa lli e cette r estri ction en éta nt commune à t o ut le système. * Envoi d ' un signal . Instruction SEND du l a ngage PLEX . Le dé roul eme nt est l e suivant: (1) Le programme d ' app lication origine du signal d ép lace les donn é es formant l e corps du signal, de sa zone en DS vers une zone en RM . Le nom du signal y est également placé. (2) L'O.S est a ppel é pour transférer le signal de l a RM v e rs une file d'attente (vo ir B.5). * Récepti on d'un signal._ Lo rs que le moniteur v eu t l an cer un tiche, il extrait u n signal d e la file d ' attente. Ce signal a pour but de fair e exéc ut er une séquence particulière d'in struc tions d'un programme particuli er , en lui donnant accès à s es données pro pres . Po u r c ela , le signal porte deux paramètres : BN e t SL. On dispose d 'une RS composée d e de ux parties : table de r éfé rence e t la ta ble d ' adres s e s de base. 121 la L'entrée numéro BN de la table de référence donne deux adresses d e base . - L'adresse de départ PSA du programme voulu dans la PS. En ajoutant SL, on obtient l ' adresse de d é part de l a s é que nce voulue du programme . - table L'a d r e ss e dans la de d é part BSA, programme d'adress e s de base concernant le voulu. Ch acune des adresse·s de ce bloc référence une variable ou un bloc de données dans DS a ppartenant au programme voulu. Le sch éma E23 re p r e nd tout le mé canisme . Le monit e ur p r oc è de d e l a mani è re suivante Trans fe rt du signal en RM . (2) . Reche rche des zones comme expliqué de ssus (au moyen du module RSH ). (3) Lanc e ment du programme . (1) 122 ci- ~ LJ 1--:j 1-'· lQ t::l PS l RS DS éférences 1\.) w données du progr . ~ (D\ () (D __. l\..) w 'Cl rr 1-'· 0 ;:l able des adresses de base Q., C données du progr . ;:l tn 1-'· lQ ;:l Ill 1-' Bloc d'adresses de base , . , du progr . ~ -;~ donnees du progr . 2.2.2.2.B.5. Files d'attente. tl Principes. La notion de file d'attente existe dans tous les OS multiprocessus. Les files contiennent par exemple des processus dans divers états (libre , actif , suspendu, •• • ) qui attendent d ' être traités. En particulier, les processus dans l ' état "prêt " attendent d'être exécutés (état "actif") . Dans le contexte d'un nombre limité de processeurs physiques, les proces s us ne peuvent en effet pas être exécutés simultanément. Dans le cadre d'un commutateur, les c o ntraintes du temps réel font que l'activation des processus de haut nivea u (1240 : FMM; AXE: software central) dépend de l ' apparition d'événements signalés par des messages (1240) ou des signaux (AX E ). Il y a à tout moment de nombreux messages ou signaux e nvoyés entre les modules du commutateur . La réception de chacun d'eux signifie l'activation du processus destinataire. Etant donné +es limites de capacité de traitement CPU, cette activation ne peut se faire simultanément pour tous les destinataires . Par conséquent, les messages ou signaux sont stockés sur des files d'attente. Dans le cas d'un commutateur en temps réel , les files d'attente de messages prennent donc la place des files d'attente de processus prêts. En c e qui concerne l' activati on de procédures de niveau, cel a se fait soit par files d'attente (AXE) soit interruption software sans file d'attente (1240). bas par De tout cela émerge le problème du choix du prochain processus à lancer . C'est le scheduling , lié aux questions de priorité et de précédence chronologique. 124 processus émetteurs processus destinataires îil C' ' d ' attente l de mec sn.gr~s 4 1 5 2 J 6 3 proc ess 1 c prioritaire F ig E24 . F i l e de mess age s e t scheduling de processus. !ù_ Files d' a ttente et schedul i ng dans AXE~ Les file s d'att e nt e so n t appelées "JOB BUFFERS". Il y en a qua t re appe l ée s respe ctiveme nt A, B, Cet D, d e priorité d écro i ssa n t e . Dans c h a qu e buf fe r, et retirés en tête. les signaux sont ajoutés en queue Le scheduling procè de comme suit: 1. Choisi r vide. le buff e r de plus haute priorité 2. Prendre l e signal en tête de buffer et lancer le processus destinataire. 1 25 non B C Fig E25. Files d'attente dans AXE. El Files d'attente et scheduling dans le 1240. Les files d'attente sont appelées "READY QUEUES". en a huit numérot é es de O à 7 et de priorité décroissante. Il y Le scheduling des processus se fait comme dans AXE. 0 .___ - 1 2 J - ,-- 4 5 6 ~ Fig E26. Files d'attente dans le 1240. 126 7 127 . ~~!_Interruptions. a) Registre des interruptions . Les interruptions sont classées en quatre catégories: - asynchrone, tributaire d ' une erreur - asynchrone, non tributaire d'une erreur - synchrone, tributaire d'une erreur - synchrone, non tributaire d'une erreur . De plus, elles peuvent relever du système o u du programme . Elles sont rassemblées e t classées par priorité décroissante dans l'INTERRUPT TABLE. b) Interrupt table. CONDITION D' INTERRUPTION PRIORITE ASYN . 1 et ERR. baisse de tension 1 contrôle machine 2 - 3 4 5 ASYN. -- et ERR . 6 - et ERR. t Il Il lti 1, Il Il V) Il Il n°4 Il " " n°5 ),.. V> 7 8 1-u 9 \J 1 0 -1 5 q;;: " ":) canal sélecteur 1 -5 l::: canal multiplex - --- --- - horloqP. de décompte de temps 18 pupitre non affecté 1 9-20 22 - -- - -- 24 appel superviseur -- - -- lti erreur d ' adresse donnée erro n ée 26 t z 27 ~ C> "' division erronée 28 ~ Q.. mantisse nulle 25 .l:: - débordemen t d'exposant exposant trop faible 29 30 - opération pri v ilégiée code opération inconnu 23 et ERR . n°6 17 21 SYN. n°2 n03 non aff e cté \f,l 16 SYN. signal externe n°1 4..1 lu :> débordement décimal 31 ~ débordement en virgule fixe 32 t: mode test. ~ c) Les états machine. Une machine se trouve toujours dans un des quatre états suivants éta t P1 état de traitement de programme, Cet état de fonctionnement est celui où le programme d ' application est interp rété et exécuté. - état P2 état de traitement d e s interruptions Cet état est employé par l'exécutif et quelques programmes systèmes . Il exéc u te les opérations req u ises pour traiter une interruption. - état PJ état d ' analyse des interruptions . La machine passe automatiquement dans cet état lor s que se produit une interruption (excepté pour incident ou baisse de tension). Cet état a nalyse la cause d ' interruption et sa prio rité. Il lance alors en P2 la routine appropriée po ur traiter l ' interruption . - état P4 état machine (état d ' incident HWD). Cet éta t est la n cé en cas d ' incident machine ou de baisse de tension. d) Schéma général des interruptions. Quand un des 32 interrupts possibles est détecté par le hardware, un bit est automatiquement posi- tionn é dans l'lnterrupt flag ~egister . Ces dem a ndes sont comparées au co n tenu de l ' Interrupt ~ask ~egister de l'état lancé. Ce registre (un par état) autorise ou non cette interruption . En P1 , toutes les interruptions sont autorisées par l'exécutif . En P2, sont permises, les interruptions pour erreurs de programme ou erreurs de machine. En PJ, sont permises, les interruptions pour erreurs de machine. En P4, aucune interruption n ' est autorisée . 12 8 Lorsque la demande est autorisée, le contrôle est donné à P3 . L'unité centrale exé cute des instructions séquen t ielle ment . Elle trouve l'adresse de l'instruction suivant e à ex 6 cuter dans les bits 8 à 31 du p . counter . Ce program c ounter est un registre de 32 b its s i tué dans la mémoire bloc-note Il y a un p . counter différent po u r c hacun des états. Lors d u passage à l'état P3, nous utiliserons le p .counter de PJ . La rou t ine d'analy ~e de s interruptions stocke les registres générau x R0, R1 et R2 de l'état P dans une zone du programme utilisateur: l' ESA (Executif Storage Area ). Ces registres so nt respecti v e ment l'I MR, l 'I SR et le p.counter de l'état P1. C ' est la phase de sauve tage d e l ' état P3. El le permet au programme utilisateur de continuer l à où il s'est arrêté en cas de r e to ur ult érie ur à l'état P1. L'lnterrupt table est a lor s co nsult ée p our trouver l'adresse de la routine q u i v a traiter cette interruption. La consultati on s u r vi en t au terme de l a phase d 'analy se de l'interruption de l'état PJ . L'adresse est chargée dans le regis tre 6 de P3. Ce registre est aussi le p.cou nt er de l'état P2 . L' é tat P2 est alors lancé par une instruction privilégiée qui ne peu t être utilisée que par les programmes -syst èmes . 129 ANALYSE PJ P1 USER•S ISR PC IFR ESA ACCESS INTERR UPT TAB LE (p3 ) ( PJ) sa u vetag e a n a ly s e BRANCH TO INTERRUP T ROUT I NE P2 P2 EX TERNAL SIGNAL SELECTOR MPX CONSO LE REQUES T ELAPSED TIME CL OCK P3 130 SVC a) Interrupt ];abel. CONDITION D'INTERRUPTION PRIORIT E 1 primitive 2 device 3 clock 4 interface 5 memory management 6 ev e nts 7-17 erreurs b) Traitement des appels à des modules d e l'OSN. En l'état P1 e xécution du programme utilisateur. Chargement sur le stack de l ' état P1 d es param è tres et du numéro de l a fonction dont on requiert les services. En l'état PJ SAUVETAG E : lors de l'exécution de l'instruction INT PRI MITIVE, qui e s t une demande d'interruption, les p.counter, code segment register et flags de l'état P1 sont sauvés sur le stack d e 1 1 atat P1. Ensuite les actions suivantes sont prises: 1) le masque d'interruption de l'utilisateur est sauvegardé et le masque courant est mis sur celui de l'DSN. 2) trois variables sont utilisées pour enregistrer le type de job en cours : - type_du_job_actuel - type_du_job_précédent - type_du_job_suivant A l'entrée de cet état la valeur du job actu e l est stockée dans type_job préc é dent et d a ns type_job_suivant. 1 31 Le job actuel sera l'exécution de l'OSN. 3) l'environnement de l'utilisateur est sauvegardé : sp,ss,bp,bx,ds 4) é tablissement de l'environnement de l'OSN 5) orientation de Bp ver s les paramètres dans le User stack . ANAL YSE : l'analyse porte sur les informations sauvées par le programme utilisateur en l'état P1. Au moyen d'une table qui contient les num é ros des fonctions possibles et les adresses de départ des procédures effectuant ces fonctions, l'état P3 peut transmettre à l'état P2 l'ad resse de départ de la procédure à exécuter . Les paramètres sont trouv é s dans le stack de l'état P1 . En l' état P2 : exéc uti o n de la procédure . Enfin , une restauration de ca qui a é t é sau vé en l'état P3 doit être effect u ée avant de rendre la main a u programme utilisateur. c) Traitement des interruptions provenant des device, clock et erreur. En l'état P1 exécution du programme utilisateur. S urvenance de l'interruption. En l' é tat P3 SAUVETAGE : sauvetage des p.counter cs et flags de l'état P1 sur le stack de cet état. La première partie de la procédure de traitement sert à sauver le registre AX sur le stack; AX contient le numéro du type d'interruption que l'on do it traiter . 1 32 La seconde partie effectue ces opérations : 1) Sauver l'environnement du processus interrompu dx,cx,es) (sp, ss ,bp,bx,ds,ax,di,si, dan s l'lnterrupt fontrol ~lock associé. 2) Etablir l'environnement de l'DSN. 3) Enregistrer le type de job en cours et mettre le type_de_job_actuel sur OSN. 4) Introduire le contenu de AX dans la variable type_intr qui sera utilisée par l'état PJ (analyse). ANALYSE - contrôle du type du job interromp u. - SI job = processus ALORS 0 état du processus passe de runni ng à interruped 0 détecter le pcb du processus en cours 0 mettre l e pcb s ur interruped 0 détecter l'ICB pour ce processus interrompu 0 positionner un flag sur ACTIVE pour cet ICE SINON °positionner un flag d' EVENT 0 contrôler le type d'interruption. 13 ] 2.2.2.2.C.2. Processeurs multiples. tl Introduction. Dans tous les systèmes informatiques se pose le problème des performances telles que rapidité d'exécution des instructions, promptitude à réagir à des événements extérieurs et capacité de gérer rapidement de multiples contextes • Dans le cadre du temps réel, ce problème devient particulièrement aigu, car il est indispensable d'avoir d'excellentes performances, sans quoi le système se met en retard sur le monde réel qu'il doit contrôl er . A côté des techniques logicielles complexes visant à améliorer les performances, un moyen matériel apparemment simple et immédiat subsiste: la multiplicité des processeurs physiques. Tous les commutateurs commerciaux passent par cette technique, car les exigences sont telles qu'un seul processeur serait débordé. Cependant la manière dont les systèmes multiprocesseurs sont conçus diffère largement sur des points comme: - la correspondance entre processeurs physiques, - l P typ d unités logicielles et r seau de connection entre processeurs On verra dans la suite comment ITT et Ericsson ont procédé. Un essai de critique sera fait, qui tentera de montrer les avantages et désavantages de l'un et l'autre système. ~ ITT 1240. ~ Unités logicielles et processeurs physiques. * Les unités logicielles du 1240 sont les modules automates (FMM) ou de support (SSM). Ces unités sont regroupées en éléments de contrôle (CE) ayant une fonction plus globale. Ce sont : - les TCE : CE terminaux contrôlant des devices, subdivisés en - L/TCE pour lignes d'abonnés SC/TCE pour circuits de services (sonneries, etc - T/TCE pour circuits intercommutateurs - les ACE CE auxiliaires ne contrôlant aucun device, servant simplement de puissance de traitement supplémentaire, subdivisés en - L/ACE pour lignes d'abonnés - S/ACE pour ress ourc es système. 134 * Les processeurs physiques sont affectés à raison de un par CE. Chaque CE est donc à lui seul un organe de traitement, dont il importe de dire qu'il est indépendant des autr es CE. ,ommande Device Contrô l eur 1 +- - - - Bus ~ _I I ,-- 'rI --- 1 1 Bu.., ,_l_ - " mP mém - -- - - v ers rés eau TI : Ternina l InterïacP. mP : .'.icro proc _sseur rném : mé moir e ..___ Fig E27. (a). Schéma d 'u n TCE. TI ---- - - - -~ v Grs rés eau 1 1 mr I~ll.'.J 1 , mem Fig E27.(b). Schéma d'un ACE. b .2) Réseau de communication e ntre processeurs. Tous les CE sont reliés à un même réseau de connection numérique (DSN ) via une interface de t e rminal (TI). On peut se reporter à la section 2.1 concernant la connection. Fig E28. connection entre processeurs 1240. 1 35 Ce qui est important à signaler ici est que celui-ci ne comporte pas de microprocesseur, et est donc entièrement contrôlé depuis les extrémités par les microprocesseurs des CE agissant indépendamment l'un de l'autre mais pouvant communiquer entre eux. b.3) Critique. * Avantages C'est une disposition en prise directe sur l'architecture fonctionnelle. - Le réseau de connection es t standard et indépendant des mouvements de CE. Pas de problème de hiérarchie tous les microprocesseurs sont sur le même pied . - On peut théoriquement ajouter ou retirer des CE à volonté, puisque ce la ne concerne que le microprocesseur contenu dedans . * Désavantages - Une certaine surcharge en communication via le DSN. Absence de maître qui contrôle globalement le commutateur. El Ericsson AXE .l_h E.!.ll Unités logicielles et processeurs physiques. * Les unités logicielles de AXE sont les unités fonctionnelles software qui, combinées chacune avec une unité fonctionnelle hardware, constituent des blocs fonctionnels . (Fig E29) * Les processeurs physiques sont hiérarchisés : il y a un processeur central et de multipl es processeurs régionaux. La logique de répartition a été la suivante. On constate qu'il y a deux grands types de tâches effectuées dans un commutateur: - les tâches non répétitives, "intelligentes", demandant l'accès à des bases de données; les tâches de routine, simples et répétitives, très consommatrices en temps et espace. mais Sur base de ces observations, il a été décidé dans AXE de confier les tâches du premier type à un seul processeur central et de reléguer les tâches du second type à un certain nombre de processeurs régionaux. 1 36 niveau Il faut bi e n voir que si tout le e st situé dans le processeur central, logiciel de haut il est cependant toujours structuré en unités fonctionnelles logiquement associées aux blocs fonctionnels respectifs du système de commutation. Quant a ux proce sseurs r é gionaux (RP), r épa rtis à vo l ont é , cha qu e RP contrôlant soit ils peuvent être - un seul device - plusieurs devices d e même type - plusieurs devices de type différent. Cette répartition e st en performances des hardwares contrôlés. principe guidée De plus, il faut mentionner la différence de de programmation utilisés dans le CP et les RP: par les langages RP: assembleur ASA 210 R CP : assembl e ur ASA 210 Cet surtout langage haut niveau PLEX-C. signaux hardv,ar e lï 4\~D ·,: ~.R:~ Sü}11r·;1 A.tt:S 0 :ŒGIOIV,.L })rog . [ Data 1 1 1 () so Wf' 1•'/ /\ ) Pr og . :t.E C r;:wrH 1\ T, Data Fi g E29. Bloc fonctionnel. 137 ( s i g n aux s o ftware de c.2) Réseau de communication entre processe urs. * Liaison RP-matériel. en modules Les unités physiques sont divisées Un RP peut d'extension (EM), appelés également magasins. contrôler jusqu'à 64 EM. Chaque EM es t une unité possédant s o n propre adaptateur. La liaison RP-EM se fait v ia un bus d'EM, EMB. Ei\iB [,. Fig E30. lia is on RP-EM * Liaison CP- RP . - La liaison RP-CP se fait via un bus d ' RP, RPB. - Le problème de conflit sur RPB est résolu par l'adjonction dans CP d'un module spécial d e gestion de RPB, RPH . (voir Fig E31.) - message de CP vers DP Le message est placé dans le buffer d'outpu t vers RP, BRO . • RPH l'achemine dans l'unité buffer d'input, IBU. RPH interrompt seulement après le RP pour que celui-ci sauve le message dans une zone de sa mémoire de donné es (DS) pouvant contenir j u squ ' à 7 messages. Le RP termine son travail cou rant puis examine le message suivant dans sa DS. - message de RP vers CP : RPH scanne continu e llement les unités buffer d'output , OBU , des RP. Quand un RP veut envoyer un message à CP, il le place dan s son OBU puis continue son travail . Quand RPH trouve un OBU plein, il envoie un si gna l au RP concerné. Celui-ci achemine alors le message dans le buffer d'input de RP, BRI • • Un signal e st envoyé au CP pour qu'il interrompe son travail et qu'il place le contenu de BRI dans sa mém o ire, après quoi il retourne à son travail. 138 RPB CP HP!I DHI Fig E31. Liaison CP-RP. c.3) Critique . * Avant a g e s • - Lie n d i re ct rapid e RP-CP. Répartit i on des processeurs et des langages de programmation suivant des conclusions tirées d'observations sur la nature des charges. - Souplesse de l'affectation e t la répartition des RP. - Rapidité d'un logiciel central entièrement situé dans le même processeur. * Désavantages : - Structure moins limpide que le 1240. - Risques de débordement du CP car multipliable à souhait. 139 il n'est pas 2.2.2.2.D . Exemples d'interfonctionnement entre modules. Dans le but d'illustrer ce qui a été dit jusqu ' à nous allons décrire la dynamique d'un commutate u r p r ésent, téléphonique en fonctionnement. Cela permettra de voir comment les modules interagissent entre eux suivant leur type, et comment cet interfonctionnement réalise globalement les différentes phases de la procédure de signalisation téléphonique . Dans un second point, on examine~a comment les modules d 'os interviennent dans l'exécution de l'application . i:U. Interfonctionnement au niveau de l'application. L'exemple choisi est le segment de procédure compris entre la détection du décrochage sur une lign e d'abonné appelant et la mise en place du système de sorte qu'il puisse recevoir la numérotation. Ce segment sera décrit pour les deux systèmes 1240 et AXE. Il n'est pas indispensable à ce niveau d'avoir une connaissance approfondie de l'architecture logicielle de ces systèmes. Cependant, pour plus de détails à ce sujet , on peut se reporter à la section 2.3. ~ Description générale du segment de procédure. 1. Un abonné décroche son téléphone. 2. Le commutateur détecte le décrochage. 3. Une tâche de contrôl e de la communication est lancée dans dans le commutateur. 4. Des informations sur l'abonné sont extraites des bases de données. 5. Un r é c e pteur de numérotation est affecté à la ligne a ppel ant e . 6. Une tonalité d ' invitation à numéroter est envoyée à l'appelant. 7. Le système se met en attente de la numérotation. !ù_ Vers i on 1240. ~ Modules concernés. LCF DHSSM : LCDH SLS : SIGC PRECC SCDH NH RSIG : : matrice de contrôle de ligne. Un bit (SHD ) indique le niveau haut ou bas sur la ligne. procédures de scanning de ligne . FMM de contrôle de ligne. FMM de signalisation de ligne (60 lignes ) . FMM de contrôle de signalisation pour un groupe de lignes (480). : FMM de contrôl e de communication pour la partie préfixe. FMM de contrôle du récepteur de numérotation. primitives de gestion du réseau de connexion. récepteur de num é rotation. 140 RCN réseau de connection numérique. Not e les FMM ont une partie superviseur et application (voir B. 4, D.3 ). une partie b.2) Sous-phases. Note : on suppose les processus d'application LCDH, SCDH et SLS déjà initialis é s. 1. DHSSM détecte un décrochage sur une ligne via le bit SHD de l a matrice LCF. 2. Messa g e 9832 de DHSSM à LCDH. 3. LCDH lance une proc éd ure DHSSM de retrait de l 'IDLE-SCAN-LIST (l ignes libres). la ligne de 4. Message 9875 de LCDH à SLS. 5. SLS extrait des données-ligne de la base (procédure Q-GET-COL) . de données COL 6. Message 0096 Basic de SLS à SIGC partie supervise ur ( pr o cédure Q-0096-SZE-ORG). 7. Création d'un processus superviseur de SIGC . d ' application SIGC par la partie 8 . Message 9197 de SIGC superviseur à SIGC applica tion. 9 . Message 0310 Basic de SIGC application à PRECC s u pervi seur . 10. Création d'un superviseur. processus d 'application PRECC par PRECC 11. Mes sage 9199 de PRECC superviseur à PRECC app licat ion . 12. PRE CC extrait d es données-abonné d e l a base de donnée s COS. 13. Message 9527 de PRECC à SIGC. 14 . Me ssage 1707 de SIGC à SCDH . 15. SCDH appelle une routine NH de connection ave c L/TCE. 16. Message 0107 de NH v ers LCDH. 17. LCDH fait une dema nd e d ' établisseme nt de chemin au NH . 18 . SCDH fait une première demande d'établissement de chemin au NH. 19 . SCDH fait une deuxième demande d ' é tabli sseme nt de chemin au NH. 20. Message 0115 de SCDH à RSIG. 1 41 21. RSIG met le récepteur en condition active. 22. Mes sage 9824 de RSIG à SCDH. 23. SCDH fait une demande de connection à NH. 24. Mes sage 9818 de SCDH à SIGC. 25. Message 8926 de SIGC à SLS. 26. Activation d'une procédure de scanning DHSSM par SLS. ç~ C' ._:i . ç, (() C.) C':ï C) () (;1 H t---7 H ' ,_.: ' -~ -•' ( ,j (J J . . Orl . u u () ( ) r~ C.'.1 p. ~"-1 ;> r-1 p. P.. H p. Ç)~ P, r·-· ·• ç, ù2 {, / CU H U) ri., (\) > :1-: P. u Cf) C) H ..... ,-- {" f"\ •-~ r:.: , ~- 1 3 - 0 10 - lî'3E~ 1 2 J 4 _ 5 6 7 / o - 020 - BU3Y/ 8 ,r O 10- IDLE / 987 ~ COL S- 050 - RE '-~- ✓ 11 12· 1J c, r ooq HIG c.. - '· c•mrVl•' L , a , S- 01 0 - IDLE CP / 9197. / 0 31 0 3- 0 02 - V/AIT - CASE / ~? 9 10 ,. O')C) '' - C)'JU" '- 1,) CJ-- ~{)\. -IC'T / a~ 1 on Co;_; / S- OJ O- PHE- DI:\L 14 15 1G 17 S- 010- \'JJ\. I T- CASE -c.95 ?7 1707 ;',; - 020 - '.'! -\ I'l' - 0N- LI NE - DGTS ~:;- o 10- / ) 1- - - -, 1 1 cStobl :i r:;c.0rnen t du chemin à ' trav ers l e réseau ilC, 18 19 1 0 115 1 f i , - ; \ . :~ 20 :> 020 - AV-TIUGY / 21 25 26 ~78e~~ '- 2ë 2J 21). \ V- } 'R:SE 81 .. 1 1 1 'K S- (~ëO - J~C'rI VE 1 1 1 1 1 ' - - _ _j ~ 8926 ~ S- 030 - ''iA IT S-050 - DIAL S- 060- DT- Ï1r~ - D Fig E32 . Séquence téléphonique sur 1240. 1 42 El Version AXE~ s_u_ Modules concernés. LI : TS: KR CJ: JT: SC interface de ligne (DHSSM dans le 1240). multiplexeur temporel. récepteur de numérotation (SCDH + RSIG dans le 1240). joncteur combiné (SIGC dans le 1240). terminal joncteur (NH dans le 1240). analyse de la classe d'abonné(SLS + PRECC dans le 1240). RE: fonctions de registres (SIGC dans le 1240). DA: analyse de chiffres (PATED + LSIF dans le 1240). GSS : réseau de connection. c.2) Sous-phases. 1. LI détecte un décrochage appelant. 2. LI vérifie si cet abonné peut téléphoner. 3. Signal de LI vers CJ: demande de SET-UP et de contrôle de la c ommunication. 4. CJ-"> JT GSS. de mande d e r é servation d'un canal MIC entre TS et 5. J T~ CJ a ccu sé d e r é c e ption. 6 . CJ~ SC dema nd e d e r e ns e ignem e nt s s ur la classe de l'abonné. 7. SC.:;> CJ : r é ponse à 6. 8. CJ~LI : demande d e connection de l'abonné. 9. LI?TS conn e ction de l'abonné. 10. LI~ CJ accusé d e réc e ption à 8. 11. CJ+KR d e ma nde d e sé l e ction d'un r é cepteur de numérotation. 12. KR~TS informe r TS du d e vic e KR choisi. TS connecte a lors LI avec ce device. 13. TS~KR: accusé d e réception de 12. 14. KR1>CJ: accusé de réception de 11. e st prêt) (A ce point, le hardware 1 5 . CJ~SC: d e mande d e prépa ration à l'analyse des chiffres. 16. SC~RE: d e mande d e ré s e rvation d'un bloc de registres pour le contrôle de la communication. 143 17. RE~ DA: envoi des informations de base au module d ' analyse de numérotation . 18. DA~RE: renvo i de l'adresse de d épart d'analyse . 1 9. RE_,,. CJ : prêt transmettre. pour l ' envoi de la tonalité d'invitation ... a 20. CJ~LI : mettre la ligne dans l'ét a t réception . 21 • demande CJ?KR transmettre . d'envoi de la tonalité d ' invitation 22. KR: envoie la t onalité à l ' abonné appe l ant . ' Q) s:: s:: 0 ..0 al 0 H U) H 1 2 J 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Fig E33. Séquenc e tél éphonique sur AXE . 144 ... a J.1.1 tl Interfonctionnement entre application et OS. Situation envisagée pour l'exemple. Soient 500 lignes - la ligne 118 est en état numérotation (scanning 10 msec). - la ligne 27 est en éta t conversation 300 msec). - les autres lignes (scanning 100 msec). sont dans (scanning l'état libre Les modules suivants (repris du prototype exposé loin) interviennent dans le schéma: plus Application: ILS : interface ligne-système. COLIG : contrôleur de lignes (un seul processus) . contrôleur de communications (un processus COCOM par communication). TAXAT traitement de la taxation. os GM GX ST gestion de la mémoire. gestion des échanges • services de temporisation È..l Conception du schéma. - La tâch e active est représentée par un trait plein. - Les tâches concurrentes qui pourraient être actives même moment sont représentées par des traits discontinus. au - l'a xe ver t ical du temps est gradué en mil lisecondes. suppose arbitrairement que chaque morceau de tâche s ' exécute une milliseconde. On en - Les modules moniteur et scheduler int ervenant constamment, ils n'ont pas été représentés ici, dans un but de clarté du schéma. El Déroulement des événements. - Le dernier chiffre va être reçu sur la ligne 118. - La ligne 27 va raccrocher. - La ligne 384 va être réveillée. 145 ~ H U)t-=l HO HO . - (\J r"\ ?-~ ~E-i O<I! 00 oo o:>< 00 O<t! 00 08 1 1 1 1 1 1 Scanning numérotation Envoi message 1201 : détection événement sur ligne 118 rattachée à C0C0M1 80 - 85 Arrêt du timer intercréneau et lance ment d'un nouveau timer ( 200 msec) Interruption pour scanning 10 msec 90 288 290 - (dernier c hiffre ) Timer 200 msec arrive à échéance Interruption pour scanning 10 msec (rien à signaler) Envoi d 'un message pour l ' informer de l'échéance du timer 295 C0 LIG é t a blit le chiffre et l'envoie à C0COr 11 . Ce chiffre est le dernier de la série. 300 - Interruption pour scanning 10, 100 et 300 msec Détection d ' un raccrochage sur la ligne 27 en conversation contrôlée par C0C0M2 305 C0LIG le signale à C0C0~2 ( msg 2307) 310 - Interruption pour scanning 10 msec (r ien à signaler) C0LIG, interrompu, est repris C0C0 11 envoie un msg 3202 à C0 LIG 315 - C0LIG l an ce ILS 320 (a ) 146 1 1 1 1 1 1 1 1 1 Scanning numérotation (rien à signaler ) 320 - ST envoie à COLIG un msg 0301 pour envoyer un signal de réveil sur la ligne 384 (déroutement n°7) 325 COLIG crée un~ tâche COCOM3 pour la ligne 384 et lui envoie un msg 2310 330 - Scanning numérotation (rien à signale r ) Fin de l 'envoi du msg 2310 à COCOM3 1 1 Lancement de COLIG sur msg 3 2 02 Activation de diverses procédures ILS 335 - Envoi d'un msg 2304 à COCOM1 340 Scann ing numérotation ( rien à signaler ) Fin de l ' envoi du msg 2304 -~-1 345 - 1 1 Pr écédence chronologique de COCOM2 Lancement de la t axation En voi d'un msg 2307 à CO LI G 350 - 1 1 Scanning numérotation (rien à sig naler) Fin de l ' envoi du 2307 Pré cédence chronologique de COCOM3 Analyse de la base de données , puis envoi d'un msg 3203 pour saisie de l'appelé 355 ,, 1 1 If 360 - Il ,, Début de la phase 7 1 fi ,t 365 366 Scanning numérotation (rien à signaler) Envo i d ' un msg 3203 pour saisie de l ' appelé fi 1, If h ( b) F ig E34. Interfonctionnement OS-application . - - - - - -- - - -- - - -- -- - - - - 147 2.3. Architecture des commutateurs. 2.3.1. Introduction. Dans un système informatique ordinaire, le software est structuré en vue de réaliser des fonctions de calcul et de de données informatisées. On s'accorde alors tr a itement sur la démarche nécessaire pour obtenir une généralement architecture logicielle adéquate. Dans le cas d'un commutateur, · le problème est tout différent car il s'agit ici de contrôler un système physique indépendant de toute notion informatique. Ce système est soumis aux contraintes de la réalité, c'est-à-dire du temps réel sous tous ses aspects. Ces deux éléments, existence d'un système indépendant, et contraintes du temps réel, vont avoir une influence déterminante sur l'architecture du système informatique de contrôle. De plus, ils donnent beaucoup plus de liberté aux principes et à la démarche de conception d'une architecture. Ceci a pour effet que les architectures logicielles des commutateurs existant actuellement sur le marché diffèrent fortement et sont relativement difficiles à comparer, étant donné la multiplicité des critères de distinction. Enfin, il ne faut pas négliger l'incidence de la répartition des multiples microprocesseurs sur l'architecture du logiciel. Aussi bien dans AXE que dans le 1240, il y a une tendance à concevoir globalement une architecture matérielle et logicielle int é grée. 2.3.1. Spé cification élémentaire d'un commutateur. Circuits syst. --- ---- ----- de contrôli> Lignes fig E35. Schéma simplifié d'un commutateur . - Le hardware de commutation 148 doit être en mesure d'établir une jonction entre n'importe quelle paire d'abonnés et /ou de circuits intercommutateurs. de lignes - Le système de contrôl e gère le fonctionnement commutateur et en particulier les points suivants : du . signalisation sur les lignes d ' abonnés • signalisation sur les circuits de jonction • connection numérique des lïgnes et circuits Il gère en plus des fonctions numérotation, de taxation, etc ••• auxiliaires d'analyse de 2.3.2. Emplacement du système de contrôle. Comme on l'a dit plus haut, les choix sont multiples sur base de crit ères software et hardware. Les deux schémas qui suivant illustrent l e s conc epti ons de AXE et du 1240. Circuits hardware de commutation signalisat. système circuits r - - - - - - 1 c trle ctrle du aux1·1 de . connec t ion hdware numérique contrôle signa isa . _ _ _ _ _ _, 1 lignes Lignes fig E36 . Système de contrôle dans AXE. Dans AXE, le système de contrôle est une unité bien distincte à côté du système de commutation. Une partie contrôle directement le système de commutation et une autre effectue les fonctions auxiliaires. Le système de commutation est directement relié aux lignes et circuits. 149 circuit CON1'E CTION .NUMERI QUE lignes terminaux de lignes et circuits circuits ' ---------- ---- ----- fig E37. Système de contrôle dans le 1 240. On voit que dans le 1240 on a placé le réseau de connection numérique au centre du commutateur . La couche sui vante est constituée par le système de contrôle . La dernière couche comprend les terminaux de signalisation reliés aux lignes et circuits. Le point important dans cette structure est que le système de contrô l e est partagé en éléments indépendants affectés chacun soit au contrôle d'un terminal, soit à l'exécution d ' une fonction auxiliaire , et qu'ils ne peuvent communiquer entre eux que via le réseau central de connection. 1 50 Si l'on se reporte à la section 2.2.2.2 .C.2. sur les processeurs multiples , on ve rra qu'il y a une correspondance immédiate entre c e s str uctu res et l'e mplacemen t des processeurs . circu its :.;. connection '- - CP , lignes î 1 hardware de commut a tio n processeurs régionaux fig E38. Structure des pr oce sseurs dans AXE. fig E39 . Structure des processeurs dans le 124 0 . 2.3.3 . Principes de découpe architectural e. Lorsqu'on regarde de près les principes de découpe dans AXE et le 1 240 , on s ' aperçoit qu'ils o nt de nombr eux po int s communs, au-delà des di ffér ences de présentation et de vocabulaire. 1 51 Il marquantes : n'y a tout la place connection compte et la fait que conception deux du diférences ,,. reseau de • la disposition des processeurs physiques. Voyons à présent les principes de découpe dans AXE et le 1240 . ~ AXE . C'est une découpe à cinq niveaux système ni v. 1 système niv . 2 sous-système bloc foncti onnel unité fonctionnelle fig E40. Conception architecturale de AXE. 1. Le niveau 1 système est le système AXE lui-même. 2 . Le niveau 2 système ne comprend que deux modules : APT APZ 3. . système de commutation. système de cont r ôle. Les modules du niveau sous-système reprennent des ensembles de fonctions remplissant un rôle commun . Par exemple: SSS : signalisation sur les lignes d'abonnés TSS: signalisation sur l es circuits de jonction 1 52 4. les é léments Les blocs fonctionnels sont constr uction du fon ctionnels de bas e dans la fonc tion bien logiciel. Ils on t chacun une déterminée à rempli r . Par exempl e : . DA: ana l yse de la numérotation téléphonique ETC échanges sur les circuits de jonction LIC: super vision des lignes d'abonnés 5. Le s unit és fonctionnell es s ont de trois types • hardwar e • software rég io nal • software cen tral Chaque bloc fonctionn e l est composé d'une combinaison q uelconque de une, deux ou trois unités fo nctionnel les . Le software régional est l e software de bas niveau destiné à c on t rôler le har dwar e de très près. Le software central es t le software de haut niveau. Ql. 1240 . système 1240 TCE- ACE CE HW- SSlVI-FMM LCF modules HSSM fig E4 1. Conc ep tion a rchitectural e du 1240. La s tructure du 1 24 0 est plus simple que celle 153 d 'A XE. Il n'y a en fait que trois niveaux contrôle (CE) et les modules. le système, les éléments de Cependant, la figure prése nte un e détaillée, dans un but de comparaison avec AXE. C'est structure ainsi qu'on voit qu'il y a deux grandes plus classes de CE les TCE ou CE "terminaux" chargés de du hardware de commutatio~ contrôler les ACE ou CE "auxiliaires" ne contrôlant aucun hardware, mais apportant simplement un complément de puissance de traitement. Parmi les modules, on voit qu'il y a deux catégories principales : les SSM et les FMM. Les SSM assument les tâches de contrôle proches du hardware tandis que les FMM ont un rôle de plus haut niveau. S:l Comparaison. Il y a une correspondance immédiate entre . sous-système (AXE) et CE (1240) . unité fonctio nn elle de software central (AXE) et module FMM (1240) unité fonctionnelle de software régional (AXE) et module SSM (1240) . Quant à cette dernière distinction, AXE est plus systématique. Pour AXE, un bloc fonctionnel complet est composé des trois parties : Hardware Software software central fig E42 . structure d'un bloc software dans AXE On retrouve ces trois parties dans le 1240, par exemple dans le cas suivant: 154 LCF DHSSM LCDH fig E43. exemple de correspondance de modules 1240 avec un bloc fonctionnel AXE LCF est la matrice hardware de contrôle d'une ligne d'abonné DHSSM LCF est le software de bas niveau de contrôle LCDH est le software de haut niveau de contrôle lignes de des On voit donc la correspondance, bien que l a description des modules 1240 ne soit pas aussi systématique. 2.3.4. Les grandes fonctions. 2.3.4.1. Contrôle des lignes d'abonnés. tl Description. - Déte ction scanning des événements sur les lignes au moyen du - Tenue à jour de tables conservant l'état des lignes et divers renseignements supplémentaires (nature du poste , abonné raccordé ou non , ••• ) - Contrôl e de la signalisation sur les lignes ~ 1240. Un CE est affecté à cette fonc t ion : d'abonnés comprenan t le TCE de lignes DHSSM : SSM de scanning e t mise à jour des lignes - LCDH: FMM de contrôle des lignes - SLS : FMM de logique de signa lisation d'abonnés. Une base de données (COL) y est adjointe. Elle contient des données conce rnant les ligne s. 155 :ëo-:c --:J [ SLS 1 NH lr,cnH 1 fig E44. ITT 1240 L/TCE . !,. _____ LCF La fonction constitue une partie du sous-système ( si gnalisation d'abonnés). Elle est r é alisée dans le module (circuit d'int e rface de lignes). LI TS SSS LIC J T ,___ __ KR fi g E4 5. AXE 10 : SSS. 2.3 . 4.2. Contrôl e des circuits de .Jonction. tl Description. - Signa lisation sur les circuits de jonction. - Gestion des trames d'information sur les circuits. pJ_ 1240 . Un CE e st affecté à cette fonction : le TCE de circuits comprenant : 1 56 - DHSS M: SSM de contrôle du hardware des circuits - TCDH: FMM de contrôle d e s circuits OLS/ILS FMM de logique de circuits input/output. signalisation sur Une bas e de données ( COT) y e st adjointe. jr;o1s 1 SSM jTCDH NH T/TCE . fig E46 . ITT 1 240 Un s ous-systè me est af fe cté à cette fonction : TSS ( s i g na lis a tion de circuits). Il compre nd des blocs différents sui va nt qu e l e ci rcuit es t a na logi q ue o u d i g ital. ETC GS s d i gital ITC analogique OTC analogique CRD CSD fig E47. AXE 10 TSS. 15 7 2.3.4.3. Connection et commutation. a)Description. Cette fonction consiste à effectuer la commutation elle-même , c'est-à-dire la mise en connection de deux canaux. Pour les figures, voir la secti on 2.2.1. !?l_ 1240. Cette fonction est considé rée comme le centre du commutateur et est appelée DSN (r ésea u de connection numérique ). Tous les modules gravitent autour d'elle et doivent passer par e lle pour communiquer entre eux. Le DSN n ' est donc pas sur le même pied que les autres fonctions. Il n'a pas de commande propre: toute la commande est faite par les extrém it és, c'est-àdire par l es autres modules. Le temporell e. DSN est cons t itué uniquement commutati o n de Cette fonction est contenue dans le sous-système GSS (commutation de groupe ). Elle est réalisée en temps-espace-temps. 2 .3. 4.4. Service s h a rdware . tl Description. Ces services comprennent la réception de et l'envoi des tonalités et sonneries. numérotation !2_l 1240. Les services sont réalis és dans un CE SC/TCE ou TCE de circuits de services . RSIG SCDH SSM 1 fig E48. ITT 1 240 1 58 SC/TCE. ... a part le Les services sont compris dans le sous-système SSS avec la fonction de contrôle des lignes . 2.3.4.5 . Contrôle des communications. ~ Description . Cette fonction consiste en une supervision des communications entre abonnés depuis le début ( SET-UP ) jusqu ' à la fin (RELEASE). Elle comprend l' extra ction de données sur les abonnés , l'analyse de la numérotation, la saisie de l'appelé, la taxation, etc ••• Q.l 1240. Cette fonction est reprise dans les CE suivants * L/ACE: ACE de lignes. * S/ACE ACE de système. ~ATED !PRECC 1 <tACOCC j I j jLSIF RELCcl 1 ARM fig E49 . ITT 1240 L/ACE et S/ACE . El_ AXE. Cette fonction est reprise dans suivants : * TCS * CHS : taxation. * SUS : services divers aux abonnés. contrôle du trafic . 159 les sous-systèmes CRS TCS sus TCS, CHS e t SUS. fig ESO. AXE 10 2 . 3.5 . Configurations . Nous présentons moyennes 12 40 et AXE. ~ ici des schémas de conf igura t ion s 1240 . LACE 1 /TCE T/TCE S/ACE SC/TCE fig E51. 1240 Schéma hardware . 1 60 S/ACE S/ACE allocation de ressources analyse de n°tatio:r: 1 1 - 1/ACE r 1/TCE 1 SC/TCE T/TCE fig E52 . 1240 : Structure logicielle. 1 61 Q)__ AXE. Système d e commut ation sss GSS TSS TCS CHS sus - - - Système d e contrôle fig E53. AXE : Architecture. 1 62 - FACULTES UNIVERSITAIRES NOTRE-DAME DE LA PAIX - NAMUR (BELGIQUE) I NSTI TUT D' INF ORM ATI QUE COMMUTATION NUMERIQUE ET TEMPORELLE Tome Second : Conception d'un prototype de commutateur local téléphonique Promoteur Mémoire présenté par J. Brunin Marc EVRARD Rudy VANGAVER Benoît TRIGAUX en vue de l'obtention du grade de LICENCIE ET MAITRE EN INFORMATIQUE ANNEE ACADEMIQUE 1984 - 1985 ' CHAPITRE 3 ' LE PROTOTYPE _h.l Spécifications . 3.1.1. Application téléphonique . Les chapitres 1 et 2 ont donné les bases générales de la commutation en temps réel . Ces notions peuvent s ' appliquer à n'importe quel réseau commuté , qu ' il soit dédicacé aux communications tél é phoniques, à la transmission de données ou à tout autre service de type RNIS . Le futur réseau RNIS devrait d ' ailleurs permettre à tous les services de passer par le même réseau numérique , moyennant l'adjonction de modules de signalisation propres à chaque service. Ce que l ' on va prototype de commutateur décrire dans c e chapitre 3 est un • réduit à l'application téléphonique réduit à la commuta tion locale : pas de circuit interurbain comprenant tou s les l'application e t l'os détails concernant ne détaillant pas le hardware de commuta tion ni la commutation numérique e n el l e -même ; seule la signalisation est traitée reprenant en plus de la communic ation téléphonique ordina ir e tous les services particu liers comme l'appel à numérotation prédéterminée, le réveil, etc ••• Ce système a reçu le nom de COLO/S, LOcal / partie Signalisation". 1 63 pour "Commutateur logiciel de contrôle AT AT BC : Bloc de Contrôle de Lignes AT:Appareil Téléphonique Fig E54 . Schéma général de l'application . Le schéma montre les diff érents éléments du système. Les flèches indiquent les éléments analysés dans COLO/S . Pour fixer un ordre d 'id ées , on peut considérer qu'il y a 500 lignes . De plus, on limite les postes d'abonnés aux seuls postes à cadran. 3.1.2 . Séquence externe . On spécifie l'application téléphonique en décrivant les différents événeme nts gui surviennent sur les lignes d'abonnés et les différentes étapes d'une communication téléphonique qui en résultent. On se limite ici à l'aspect externe du commutateur , ce gui signifie que l'on aborde le problème du point de vue de l'utilisateur abonné . 3.1.2 . 1. Séquence générale. On envisage ici une communication téléphonique complète , non interrompue a vant qu'il y ait conversation en tre les abonnés. Deux lignes sont en communication, une appelante et une appelée . On décrit pour chacune le niveau de potentiel existant sur la ligne (haut/bas), les é vénements qui surviennent, les réponses du système, et les états de la ligne. 164 APPELE APPELANT niveau événement réponse H état iveau événement rép onse H B B libre libre décrochage envoi tonalité numérotation état prénum num fin de numér . postnum s ai sie app elé envoi écho préconv envoi sonne r i e d é crochage conv conversation conv conversation 1°cas: l'appelant rac croche . raccrochage parking libre raccrochage 2°cas: l'a libre e lé raccroche et redéc oche avant 90 sec. raccrochage ins de 90" décrochage J 0 cas : l'a elé raccroche dé fi niti ement. parking raccrochage raccrochage 90" écoulées libre libre fig E55 . Séquence téléphoniqu e externe gén é r ale . 165 Les schémas suivants reprennent les passages d'états Appelé Appelant raccro hage et red'crochage vant 90 sec Fig E56. Transitions d'états de communication. 3.1.2.2. Séquence détaillée. Un certain nombre de contraintes temporelles ( TIME- OUT) sont imposées aux différentes phases de la communication. Passés ces délais, les lignes e n décrochage sont forcées dans l'état PARKING en attendant d'être à nouveau LIBREs à la suite d'un raccrochage. 1. Un time-out de 24 11 est étab li entre le début l'invitation à numéroter et l'envoi du premier chiffre. 2 . La numérotation se passe comme su it : 1 66 de COMMUNICATION décr\hage num\tation fi\ \ / \ / \ \ / \ / \ / \ / NUMEROTATIO,N \ \ / \ I \ 2°chiffre fin 1°c~re \ fin\ \ \ _ _ _.,....q \\ \ / \ 1/ / \ / \ / \ / \ / \ / 2°CHIFFRE : VALEU~ 7 \ \ / / \ / \ / 1>< / 2\ / 1 ( 31 \1 1 r 1 6 5\ 1 50ms50ms •.. 1 \ n 7\ 1 l fin \1 r· Fig E57. Mé canisme de la numérotation. Les chiffres sont codés au moyen de créneaux ayant la formeU-.Avant un chiffre, la ligne est en niveau haut. Le chiffre est une suite de créneaux dont le nombre est égal à la valeur du chiffre lui-même. Dans un créneau, chaque niveau haut ou bas a une durée de 50 msec. Deux chiffres sont séparés par un niveau haut de durée comprise entre 200 msec et 24". 3.1.2.3. Séquences particulières. Il ordinaire un existe à côté de certa in nom bre 167 la communication téléphonique ,,. de sequences particuli è res d'opérations. Ce sont: appels les déroutements particuliers. a' - les relâchements qui interrompent une plus tôt que prévu. .normaux . forcés des services communicati o n l ' appelant raccroche phase de co~versation. avant la le système met lui-même fin à une communicati o n parce que l'appelant ne réagit pas dans les délais prescrits . 3.1.3. Taxation. Le calcul de la taxation se fait en deux temps : -établissement du tarif standard sur critères uniquement géographiques. base de -application différenciée de ce tarif standard suivant des critères non géographiques • .l.l Etablissement du tarif standard. ~ Communications zonales. Une communication zonale est une communication deux abonnés appartenant à la même zone géographique. Le e st d'une unité de taxation pour 160 secondes. entre tarif quelconque Fig E58. Communication zonale. 1.b)Communications in t erzonales d e ~ h Ce sont des communications établies entre deux abonnés appartenant à deux zones géographiques petites et contiguës. Le tarif est d'une unité de taxation pour 160 secondes. 168 petite / , / / / Fig E59. communication interzonale de type A. ~ Communications interzonales d e ~ ~ Ce sont des communications établies entre deux abonnés appartenant à deux zones géographiques contiguës dont l ' une au moins est une grande zone ou appartenant à deux zones petites séparées par une seule zone géographique petite. Le tarif est d'une un ité de taxation pour 80 secondes . grande quelconque / , / / / (a ) 1 69 petite petite ._ - - - - - -- -- -- .... ( b) Fig E60. Communications interzonales de type B. 1.d Communications interzonales d e ~ c. Cette catégorie recouvre .tous les autres cas de communications interzonales. Le tarif est d'une unité de taxation pour 40 secondes. petite grande ---- - - .... (a) 170 plusieurs - - -- qu elcon que -- -- .... ( b) F ig E61 . Communications interzonales de t ype C. l1_ Application du tarif standard. Les critères suivants modifient le montan t ca l culé dans la première phase : -Demi-tarif entre 18h30 et 8h00 , dimanches et jours fériés légaux . -Imputation à l ' appelant communication gratuite. 1 71 ou et à les samedis , l ' appelé, ou 3.2 Analyse fonctionnelle. 3.2.1. Découpe fonctionnelle. 3.2.1.1. Niveaux d'analyse. Etant donné la nature du système, être analysés : deux niveaux doivent a) L'application, devant satisfaire les spécifications données en 3.1.2. b) Le système d'exploitation devant satisfaire toutes les contraintes du temps-réel exposées à la section 2.2. Dans cette section 3.2., on mettra en évidence les grandes fonctions à implémenter. Elles seront décrites avec plus de détails à la section 3.3. 3.2.1.2. L'application. tl Vue générale. Le communateur se présente comme un système de deux couches : contrôle communic.J contrôle communic .2 contrôle communic.1 ,_ . 1 1 -, 1 - ...,1 I 1 -- 'l: 1 ) \ ni \ ,J...,, 1 ..,,J.... ; . . ) -, 1 1 contrôle (les 1 1 4 ligne:s . 7 Fig E62 . Schéma général du commutateur. L'abonné 2 téléphone à l'abonné 4. L'abonné 3 téléphone à l'abonné 5. L'abonné 7 tente de téléphoner à l'abonné 5,mais celui-ci est occupé. 172 Dans la première couche, on trouve un contrôleur de lignes qui surveille en permanence les lignes d ' abonnés afin de détecter les différents événements tels que décrochage, numéro t ation, etc . . . Cette couche se charge également de transmettre les tonalités de sonnerie sur les lignes. La deux i ème couche ou couche de contrôle des comm unications a pour objet de superviser les communications ent r e abo nn és. Un module particulier de contrôle est créé pour chaque communication différente. Chaque fois que la première couche détecte un événement sur une ligne , el l e le signale à la deuxième couche, laquelle prend des mesures en conséquence: mise à jour des informations maintenues sur la communication, et demande à la première couche d ' effectuer certaines opérations sur les lignes. b)Fonctions . Il y a quatre fonctions dans l'application chaque couche de contrôle. 1 COCOM TAXAT COLIG ILS BCL 1 fig E63. Fonctions de l ' application. 173 deux dans * Couche de lignes : - ILS : Interface Ligne-système. Fonction de bas niveau proche du hardware. Elle comprend le scanning des lignes d'abonnés avec des fréquences variables, la gestion des différentes sonneries et tonalités, et la gestion de tables d'information sur les lignes. ILS est un ensemble de procédures interruption software . activées par - COLIG: contrôleur des LIGnes. Automate contrôlant les séquences d'actions et de réponses consécutives aux événements survenant sur les lignes et signal és par ILS. * Couche des communications : - COCOM: contrôleur des COMmunications. Automate contrôla nt le communications téléphoniques. déroulement des - TAXAT: gestion de la TAXATion. Automate effectuant communications. la taxation des 3.2.1.3. Le système d'exploitation. Quatre fonctions sont nécessaires dans l'os : GM Gestion de la mémoire. GX Gestion des échanges . GT Gestion des tâches. ST Services de temporisation. 3.2.2. Base de données . Trois fichiers sont tenus à jour: - FAB Fichier des abonnés, constitué d'enregistrements ABONNE , comprenant les renseignements suivants: • numéro de ligne • numéro d'abonné • indicatif des zones géographiques 174 • • • • • signalétique de l'abonné numéros de déroutement identificateurs de time-outs de réveil type de taxation montant à facturer FGEO: Fichier des zones géographiques, composé d'enregistrements ZONE, comprenant les renseignements suivants: • indicatif de zone • taille de zone • indicatifs des zones contiguës FHIST Fichier historique, composé d'enregistrements HISTO, comportant les renseignements suivants: • num éro d ' abonné appelant et appelé • heure/jour de début/fin de communication indicatif de taxation pour appelé ou appelant ou gratuite • mont a nt facturé 3.2.3. Dynamique du système. On étudiera successivement la séquence ordinaire, dé r outements et les relâchements forc és et normaux. les La structure des numéro s de messages est la suivante: est le yz-ième message e nvoy é par le module w au module x . Les modules sont numérotés comme suit: wxyz ILS COLIG: COCOM: TAXAT 1 2 3 4 3.2.3.1 . Séquence ordinaire . Phase 1 : Décrochage appelant. 1) ILS détecte un événement haut sur une ligne libre. 2) ILS 3) -'> 1201 -'l> COLIG : signale l'événement. COLIG crée une communication. tâche COCOM 4) COLIG + 2301 + COCOM : l'abonné appelant . 5) pour superviser la nouvelle envoi d'informations sur la ligne et COLIG active une procédure ILS qui retire la ligne de libre et la met dans l'état prénuméro tation . 1 75 l ' état 6) COLIG active une procédure ILS de scanning prénumérotation. 7) COCOM consulte la base de données informations sur la ligne et l'abonné. 8) COCOM ~ 3201 chiffres. - - - 1 B 2:1201 _ 5 I L C 6 -. _VB.D. 4 : 2 B01 ,. C 01 0 A ,~..R: ~ 1 . , T C X I 0 A G M T L .__ '--- des contrôle des communies. 3 C 0 s L extraire COLIG : demande de se préparer à recevoir les -)>. contrôle des lignes hardware pour - '--- fig E64 . Décrochage côté appelant. Phase 2 : Invitation à numéroter. 1) COLIG active la procédure ILS de changement d'état qui retire la ligne de l'état prénumérotation et la met dans l'état numérotation. 2) COLIG active une procédure ILS de scanning numérotation. 3) COLIG désactive la procédure de scanning prénurnérotation n'y a plus de ligne en état prénumérotation. 4) COLIG active la pr oc édure d'in vitation à numéroter . 5) COLIG ~ 2302 -)>. COCOM : d'invitation à numéroter. 6) COCOM demande au module ST de l'os l'activation d'un time-out de 24 secondes. 7) ST + 0301 ~ COCOM ILS d ' envoi s'il de la tonalit é informe de l'envoi de la tonalité renvoi de l'ID d'un tirne-out. 176 contrôl e des communies. contrôl e des lignes hardware - B 1 I C ~3 0 L I L ,_-4 C s L 5: L. 23 ST r-~ST •: eV G A C X 0 M A T - - T 0 fig E65. Invitation à numéroter. Phase 3 : Détection des trois premiers chiffres. 1 ) ILS détecte un changement de n i v eau s ur la li gne appelante. 2) ILS . + 2') 3) 1201/1202 ..- COLIG : signale l'événement. COLIG active la procédure ILS qui interrompt tonalité (un iquemen t pour le premier passage). COLIG traite chiffre. ~ 4 ) COLIG 2303 l e changement de niveau en vue d' é tablir la le COCOM : e nvo i d u chiffre détecté . • 5) COCOM met à jour les time-o uts (pr échiffre , inter-c hi ffre). --~- répé ter 3 fois l e s points 1 à 5. hardware - con trôle des lignes 1 B - I ...___ - - 3 4 5 C 0 L -L C L 2 : 1201;2 2' ~ contrôle des communies . s C 0 T A C 0 X I G M T - - A fig E66. Détection des trois premiers chiffres. 1 77 Phase i ~ Analyse du préfixe. 1) COCOM analyse le préfixe. hardware contrôle des lignes contrôle des communies. 1 B I C L L s T C 0 C C 0 L A X A 0 M I G T fig E67. Analyse du préfixe. Phase 5 : Fin de numérotation. 1- 5) reprendre les sous-phases 1 à 5 de la phase 3. Répéter n fois ces sous-phases, n dépendant du résultat de l'analyse du préfixe . 6) COCOM extrait de la base de données le numéro de l'appelé et sa catég orie. contrôle des lignes hardware - r B 2: 1201/ 2~~ 4 : 2 3 0~ C I 0 C L L I L s G - de contrôle des communies. 6 1 ligne - . B.D. 5 C 0 C 0 M - T A X A T fig E68. Fin de numérotation. Phase 6 ~ Fin de la récepti on de numérotation. 1 ) COCOM 2) ~ 3 2 0 2 -> COLIG : demande de fin de réception. COLIG active la procédure ILS de changement de la ligne appelante de l'état numérotation à l'état postnumérotation. 3) COLIG active la procédure ILS de scanning postnumérotation. 178 4) COLIG désactive la procédu re ILS de scanning numérotation aucune ligne n'est dans l'état num é rotation. 5) COLIG-+ 2304 -=a> COCOM : indique qu e la réception est libérée. contrôle des communies. contrôle des lignes hardware si 'J B [) I L . ~ s L ~202 0304 , - C 0 T L C I 0 A X A G M T 0 ZI C ,--- 1: C ~5: 1, ~ fig E69. Fin de la r éception d e numérotation. Phase 7: Envoi du courant de sonnerie. 1) COCOM + 3203 ~ COLIG : de ma nde d e sai s ie d e l ' a p pel é . 2) COLIG ac tiv e l a procédu re ILS de mise de la ligne appelé e dans l' é tat pr é conve rs a t i on, s i c e ll e -ci e st dans l' é tat l i br e . 3) COLIG active la procédure d e scanning pr é conversation. 4) COLIG act i v e la procédure ILS q ui sonnerie sur la ligne appelé e . 5) COLIG ac tive l a p roc é dur e I LS q ui e nvo ie l' é cho de s ur la l i g ne appe l a nt e . 6) COLIG ~ 2305 terminée. hardwa re ~ C - courant de sonnerie contrôle des communies. contrôle des lignes I -- 43 L ,,~5 [' L le COCOM: informe que la saisie de l'appelé est 2 B envoie s ~ C 0 L I G ...__ 1 : 3 203 b:2 :.SU!J C 0 M ,___ fig E70. Envoi du courant de sonnerie. 179 T A X C 0 A T - Phase~..!.. Passage à l'état "stable". e nvoi de données COCOM ~ 3204 ~ COLIG appel ant et appelé . 1) - - C L L s côtés ,---- 1 : 3 204 C 0 L I G I B les contrôle des communies. contrôle des lignes hardware pour - C 0 C 0 M - T A X A T fig E71. Passage à l'état stable. Phase 9 : Réponse de l'abonné appelé. 1) ILS détecte un événement haut sur la ligne appelée. 2) ILS ligne. 3) COLIG active la procédure ILS qui déconnecte la sonnerie la ligne appelée . ~ 1201 ~ COLIG signal e l e changement d'état de la sur 4 ) · COLIG active la procédure ILS de changement de la ligne a ppe lée de l'état préconve r sa tion à l'état co nversat ion . 5) COLIG ~ appelée. 6) COCOM 7) ~ 2306 3205 ~ ~ COCOM : avertit du décrochage sur la ligne COLIG: demande de saisie de l'appelant. COLIG active la procédure ILS de changement de la ligne a ppelante de l' éta t postnum é rotation à l'état conversation. 180 contrôle des communies. contrôle des lignes hardware ,--- ,--- 1 . B ~ 2 : 1201 . 3 I ' L 7 . L s - - C 0 L I A C ~ 5 : 2 30 6 . 6: 3 2 05 C T 0 0 A X A M T C G ~ - f i g E72 . Réponse d e l'abonné appe l é . Phase 10 : Conver s at ion. Pha s e 1 1 : Libéra ti on v e r s l' a v a nt. 1) ILS détecte un événement bas sur la ligne appe l ante . 2) ILS -~ 1202-'>- COLIG : ligne. signale le changement d ' état 3) COLIG -'> 2307 -~ COCOM 4) COCOM ~ 3401 -'>- TAXAT : demande la taxation . 5) COCOM 7'- 3206 ~ COLIG de la informe du raccrochage. demande de l ibérer le s deux c ô tés . 6) Destruction de la tâche COCOM. 7) COLIG active une procédure ILS de changement de .appe l ante de l ' état conversation à l' é t at libre. la li gn e 8) COLIG active une proc é dure ILS de changement de appe l ée de l'état conversation à l ' état parking . la lign e la ligne 9) ILS détecte un événement bas sur la ligne appelée . 1 0) ILS 11 ) ~ 1 202 ~ COLIG : signale 1 ' événement. COLIG acti v e une procédure ILS de changement appelée de l ' état parking à l ' état libre . 181 de - - 1 B 9 I ' - 2:1202 ,7 r 8 L - s 3:2 307 - 4 : 3401 ' r C 0 C ,,5: 3 206 ,0 L,, L C - contrôle des communies. contrôle des lignes hardware L 10:1?0? , I ,~11 ~ G C 0 M T A X A T - fig E73. Libération vers l'avant. Phase 12: Libération vers l'arrière. 1) ILS détecte un événement bas sur la ligne appelée. ~ 2) ILS 3) COLIG 4) 5) 1 202 ~ 2307 ? COLIG : signa le l'événement. -? COCOM : informe du raccrochage. COCOM activ e un time-ou t de 90 secondes l'appelé de redécrocher . ~ ST 9 0 Il 0301 ~ COCOM : pour permettre e nvoi de l'identifiant du time-out a' de • ~ 6) ST + 0302 7) COCOM -to- 3401 ~ TAXAT demande de taxation. 8) . COCOM ~ 3206 ~ COLIG demande de libérer les deux côt és . COCOM : signale que le time-out est expiré . 9) Destruction de la tâche COCOM. 10) COLIG active une procédure ILS pour retirer la ligne appelée de l'état conversation et la mettre dans l'état libre. 11) COLIG active u ne procédure ILS pour retirer la ligne appelante de l'état conversation et la mettre dans l'état parking. 12) ILS détecte un événement bas sur la ligne appelante. 13) ILS 14) 7 1202-:..> COLIG: signale l'évé nement. COLIG active un e proc éd ure ILS pour retirer la ligne appelante de l'état parking et la me ttre dans l'état libre. 182 hardware contrôle des lignes contrôle des communies . ST B ST 2:1202 1 I C L L s C 0 L I G C 0 C 0 M fig E74 . Libéra tion vers l'arrière. 183 ST T A 7: 3401 X A T 3.2.3.2. Déroutements. Déroutement --~ 1 : l'appelé décroche avant l'expiration time-out de 90 secondes durant libération vers l'arrière. du la phase 12.4 de la séquence ordinaire. 1) ILS détecte un événement haut sur la ligne appelée. 2) ILS~ 1201 • 3) COLIG _.. COLIG: signale le changement d'état. 2308 ->- COCOM : informe du redécrochage . 4) COCOM demande à TS de désactiver le time-out de 90 secondes. --~ phase 10 Déroutement 2 : ligne appelée PBX simple occupée. --~ phase 7.2. 1) COLIG ~ 2309 COCOM: signale que la ligne est occupée. • 2) COCOM accède à la base de données et recherche une autre ligne du PBX.( S'il n'y a plus de ligne, voir le relâchement forcé numéro 7). COCOM retire de la base de données le numéro de ligne et la catégorie de l'abonné. 3) COCOM + __ ...,. 3203 ~ COLIG : demande de saisie de l'a pelé. phase 7.2. Déroutement 3 : ligne appelée PBX spéciale. ---. phase 4.1. Suite à l'ana lys e du préfixe, COCOM a encore besoin d'un chiffre de COLIG. Il procède à l'analyse de ce quatrième chiffre. ---i> phase 4. 1 • Déroutement --• 1) 4 : formation d'un numéro prédéterminé ( 12 suivi de 6 ou 9 chiffres suivis de 21 ). phase 4. 1 • COCOM analyse le préfixe et remarque la séquence 12. Il sait alors qu'il aura encore 11 chiffres à recevo ir au maximum avec les deux derniers qui doivent être 21. 2) Enregistrement dans la base de données du numéro prédéterminé et du numéro de l'appelant. --+- relâchement de l'appelant. 184 Déroutement 5. ligne appelée prédéterminée. --~ phase 1.6. COCOM extrait de la base de données les informations concernant la ligne et l'abonné. On y trouvera le numéro prédéterminé de la ligne appelée. -- -• phase 7 Déroutement 6 : Formation d'une heure de réveil (13/hh/mm). phase 4. 1. --• 1) COCOM reçoit le préfixe et s'aperçoit de la séquence 13. Il sait alors qu'il doit recevoir au maximum 6 chiffres dont les deux derniers doivent être 31. 2) Enregistrement dans la base de données de l'ID absolu et du numéro de l'appelant. du time-out 3) COCOM demande à ST d'activer le time-out. relâchement de l'appelant . --• Déroutement 7 : Réveil à une heure déterminée . 1) 2) ST ~ réveil. ~ COLIG: arrivée à échéance du time-out de COLIG crée une tâche COCOM qui va établir une communication entre une ligne virtuelle et la ligne de l'appelant qui désire .le réveil. 3) COLIG-• 4) 0301 2310-,.. COCOM: transmet l'ID du time-out. COCOM acc ède à la base de données de laquelle il extrait numéro de l'appelant qui correspond à l'ID de ce time-out. le --~ phase 7. Déroutement 8: ligne e n observation d ' appels malveillants. --• phase 5.6. Enregistrement du numér o appelant e t de l'heure à s'est effectué l'appel. Déroutement --• 9 : laquelle déroutement du numéro appelé vers un numéro prédéterminé (formation: 14/suite de 6 ou 9 chiffres/41). phase 4.1. 185 1) COCOM analyse le préfixe, s'aper çoit de la séquence sait qu'il ne devra plus recevoir que 11 chiffres au dont les deux derniers doivent être 41. 2) Enregistrement dans la base de déroutement et de celui de l'appelant. --~ données du 14. Il maximum , numero de relâchement de l'appelant. Déroutement 10 : déroutement du numéro appelé vers un numéro prédéterminé. --~ phase 5.6. COCOM extrait de la bas e de données le numéro prédéterminé. --~ phase 6. 186 3.2.3.3. Relâchements forcés. Relâchement --+ 1 . expiration du time-out de 24 secondes avant l'envoi du premier chiffre. phase 2.6. 1 ) COCOM ~ COLIG : demande de libération de l'appelant. 3208 + 2 ) COLIG détruit la tâche COCOM. 3) COLIG active une procédure ILS qui supprime d'invitation à numéroter sur la ligne appelante. la tonalité 4) COLIG active une procédure ILS qui retire la ligne appelant de l'état numérotation et la met dans l'état libre . Relâchement 2 : expiration du time-out de 24 secondes interchiffre dans le préfixe. --~ phase 3.5. 1) COCOM ~ 3208 ~ COLIG: demande de libération de l'appelant. 2,3,4) voir 2,3,4 du relâchement 1. Relâchement --• 3 expiration du time-out de 24 interchiffre en numérotation. phase 5.5. Même relâchement que le 2. 187 secondes 3.2.3.4. Relâchements normaux. Relâchement - -~ 1 : Raccrochage entre décrochage d'invitation à transmettre. et tonalité phase 3.3. En 3.3, un time-out La détection n'est pas immédiate. est positionné. Après 200 msec, COLIG constate que le niveau bas n'a pas changé. Il détec te par conséquent un raccrochage de l'appelant. 1) ST + 2) 0303 • COLIG : expiration du time-out. COLIG active une procédure ILS de changement de appelante de l'état numérotation à l'état libre. la ligne 3) COLIG détruit la tâche COCOM. Relâchement 2 : Raccrochage pendant l a tonalité d'invitation à transmettre. cf. R.N.1. Relâchement 3 : Raccrochage pendant un chiffre. cf. R .N.1. Relâchement 4 : Raccrochage à la fin d'un chiffre avant msec. 200 cf. R.N.1. Relâchement 5 : Raccrochage à la fin d'un chiffre entre 200 msec et 24 sec. cf. R.N.1. 188 Relâchement --+ 6 : Raccrochage entre le l'écho de sonnerie. dernier chiffre et n'importe quelle sous-phase entre 6 . 4 et 9.6. 1 ) ILS détecte un événement bas sur la ligne appelante . 2) ILS~ 1202 ~ COLIG: signale l'événement. 2310 ~ COCOM : signale l'événement. 4) COCOM +- 3220 et l'appelé. ~ COLIG 3) COLIG • demande à COLIG de libérer l'appelant 5) COLIG détruit la tâche COCOM. 6) COLIG libre. demande à ILS de mettre la ligne appelante en état 7) COLIG demand e à ILS de mettre la ligne appelée en état libre • • 189 ~ Analyse organique. 3.3.1. Architecture. ~ Application. Il y décrites dans (COLIG , COCOM est un ensemble a quatre modules implémentant le quatre fonctions l'analy se f onct ionnel le. Trois de ces modules et TAXAT) sont des automates et le dernier (ILS ) de procédures appelées par jnterruption software. COCOM TAXAT COLIG ILS BCL 1 1 fig E75. Architecture de l' application . modules . La figure indique l es seules re lations poss i bles e ntre !ù_ Système d'exploitation. Il y a quatre modules implémentant les quatre fonctions décrites dans l ' analyse fonctionnelle. 1 90 fig E76. Architecture du système d'exploitation. Les relations de module OS à modul e OS, d'application à module OS sont implémentées d'interruptions software. 1 91 et de sous modu le forme 3.3.2.1 Gestion des processus. A. Introduction. D'un point de vue statique, le système peut être vu comme un ensemble de modules fonctionnels. D'un point de vue dynamique, le système apparaît comme un ensemble de morceaux de programme (correspondant plus ou moins aux modules) en fonctionnement parallèle ou pseudo-parallèle. Les processus sont créés et détruits suivant les besoins du moment et se déroulent indépendamment les uns des autres. Toutefois, ils peuvent communiquer entre eux. ~:_Notion_de_proces s us. Un processus est une unité de code (par exemple un module) s'exécutant sur une période bien déterminée , q~i l'identifie parmi les autres processus. Le processus est créé pour s'appliquer à un objet du systè me lorsque celui-ci apparaît; il est détruit lorsque l'objet disparaît. Remarque s : 1) Si plusieur s processus sont basés sur le même cod e et contrôlent des objets de même type apparaissant et disparaissant en même temps, ils peuvent être regroupés en un seul p rocessus contrôlant plusieurs objets. 2) Si plusieurs objets de même type ont des situations dans le temps et des durées de vie différentes, il est préférable de leur allouer des processus différents. ~~-Découpe_du_système_en_processus. Dans le cas présent, l'unité de code choisie comme base pour les processus est le module. La découpe suivante en processus est donc également une découpe modulaire du s ystème.(Tabl. suivant). 192 Processus/ Rôle et objet contrôlé Période de vie Gérer le multiprocessus De la mise en marche Objet : processus jusqu'à l 'arrêt du Module Monit e ur GMT système GI Gérer les interrupts Objet : table des idem interrupts Scheduler Gérer la pr o grammation des processus Objet : liste des idem processus Application ILS Scanner les lignes idem CDLIG Contrôler les lignes idem COCOM Contrôler UNE SEULE Durée de vie de la commun i cation communication Gérer la taxation De la mise en marche TRATAX jusqu'à l'arrêt du système D. S . GT Complément à le gestion idem des processus GM Gestion de la mémoire idem ST Services de temporisa- idem tion GX Gestion de la file de messages en t re process u s idem D._Fonctionnement_du _ système. D 'apr ès le tableau précédent, il apparaît que les objets du système sont : - d'une part les composan t es "statiques" dont la durée de vie équivaut à celle du système global. Les processus y affectés sont donc cré é s à la mise en marche du système et détruits lors de l'arrêt du syst è me. - d'autre part les composantes "dynamiques", c'està- d ire les communications dont la durée de vie et la position dans le temp s sont aléatoires. Remarques : 1) En vertu de B.Rem1, un seul processus COLIG et un seul processus ILS seront affecté s au contrôle de toutes les lignes. 2 ) En vertu de B.Rem2, un proce ssus COCOM particulier sera affecté à chaque communication et ne vivra que le temps de la communication. La figure suivante décrit le fonctionnem ent multiprocessus du système. 1 94 hb rt d e. \'ro c. e. .55US 1') . /4 13 R_+ J).. a ,'. - - .2/ . . .. ( Ji .. ,1 lfi ,., - . C I, • 1./ J_ c; - l 0 - g. 1 - . b ., 4 ' 4 - ~ - 4 1(: ( ocor--/ 1( -1 8- 10 I p 9 R 0 C g E . î $ s 1) "- s i; 4 3 - l ,f ; 1 0 , e. 0 /3 J 1 COM' -'1 f. T $ C OM CO M C 0 11 C Ot( ? 3 ('o I f J. 1 95 b 1 C or/ 9 tn PS E._Moniteur_temps_réel. ~ :~_ Ges tion_des_ i nterruption s . Nous r1ous basons sur le microprocesseur Intel 8086. Celui-ci peut gérer jusqu'à 256 i nterruptions c las sées par priorité . toutes les sortes d'interruptions s'y retrouvent : hardware/software, asynchrone/ synchrone, avec/sans erreur. Lorsqu'on pré voit d'utiliser une interruption n°N, on écrit une routine destinée à la gérer. L'adresse de cette ro u tine se retrouve dans la TABLE D ' INTERRUPTION dans l'élément d'indice N. Cet élément est composé de 4 bytes capables d'adresser toute la mémoire. Lors d'une interruption, le GI sa uve le contexte du processus interrompu et se branche sur la routine d'interruption via la table . (Voir figu re V.7) ~:~_Gestion_des_multiprocessus. Le moniteur gère plusieurs processus e n parall èle A chaque pas sage d'un processus à u n autre, le ' GMT intervi e nt pour lancer l e nouv eau· processus et cloturer le précédent. Le s événements provoquant ce changement de processus sont fin d'un processus, arrêt volontaire d'un proce s sus (pour attente de me s s age p ar exemple), interruption d'un processus par un autre processus prioritaire, ... Dans tous les cas, le GM T fait a pp el au Scheduler (voir po int F) pour sélectionn er le proch a in pr oc essus à lancer. Une except i on cependant appel de primitive lors d'un (voir figure V.7), la primitive est immédiatement l an cée. 196 G. T. Routin e d e l 1 int.primitive Tâche appe lant e X G.I. examen du code de la prim itive Table des I nterru pts cod e primi t stack • G. M.T. / d u cont e xte Module O. S. Pr imi ti ve call/ etur n proc --------~ c/r FI GU RE V. 7 c/ r D Méc anis me d ' appe l de primitives . u e F. Scheduler. F~1 Rôle du scheduler. Le scheduler est le module chargé de sélectionner le processus à lancer lors du passage d'un processus à un autre. Il est appelé par le GMT du moni teur dans tous les cas de changement de processus, sauf dans le cas d'un appel de primitive. Tout processus se trouve à tout moment dans un des trois états sui vants 1) interrompu : le processus s'est interrompu volontairement ou a été interrompu par un processus prioritaire . 2) en attente le processus attend un message (cas des processus automates) 3) prêt : le processus est prêt à être lancé. F.2.2 Priorité des états . Lorsque le scheduler doit sélectionner le processus à lancer, il parcourt d'abord les interrompues; s'il n'y en a pas, il parcourt les processus en attente; s'il n'y en a pas, il parcourt les processus prêts. ~-~-~ ~ é !e~t~o~ ~•~n_p~o~e~s~s_i~t~rEo~p~-- 1) Choix des proces s us les plus prioritaires ( 4 priorités) 2) Parmi ces processus, choisir celui qui a été interrompu le pre mi er chron ologi quement . Les messages envoyés portent une priorité (4 en tout). Le processus récepteur prendra cette priorité après réception du message. 19 8 1) Choix des processus devant recevoir les messages les plus prioritaires . 2) Parmi ces processus, choisir celui qui doit rec e v oir le message envoyé le premier chronologiquement. ~-~ - ~ ~é!e~t~o~ ~•~n_p~o~e~s~s_p~ê!._ Sous réserve de modificati o ns ultérieures, le scheduler n'intervient pas dans c~ cas-ci. En effet, si l'on reprend les troi s types d e modules présentés a u point C, on vo it que 1 ) l e moniteur est lancé automatiquement ; 2) les automates sont touj o urs en attente de messages, ou en ex é cution ou interrompus, mais i ls ne sont j amais prêts; 3) Les modules de support sont constitués de primitives, or le scheduler n'intervient pas dans les appels de primiti ve s . 1 99 3.3.2.2 Gérant de la mémoire A) Introduction Le Gérant de la Mémoi re (GM) est une tâc he du syst ème d'exploitation q ui contrô l e l' affecta tion et la libération de mémoire pour le moniteur , les différentes tâches du sy st ème et les tâche s d'application. Après avoir défini les différents types d ' affectations de mémoire que l'on trouve dans le système , ainsi que l ' organisation des blocs de mémoire libres, nous é tudi eron s l es primi tives constituant le corps du Gérant de la Mémo ire e t qui permettent d'obtenir et d e libérer l es différen ts types ' de blocs mémoire préalablement définis . B) Typologie des Ressources Mémoire a.- le Bloc de Message : BLC-MSG Il s ' agit d ' un bloc de mémoire dans leque l une tâche introduira un messa ge à destination d ' une tâche d ' application automa t e . byte 0 / byte pointeur / 1 --- ---- -- --- -----2 /num é ro messa~e / 3 ---- --- ----------- / / 62 / info rmation / / / 63 b.- le Bloc de Contexte : BLC-CTX Le bloc de contexte est un bloc de mémoire dans le quel une tâche qui v a s'interrompre via un appel de primitive in t r odu it des informations spécif i q u es à c e t te primitive. 200 Dans ce bloc, le Gérant des Interruptions introduira égal eme nt au moment de l 'appel de la primitive les informations qui seront nécessaires à la restauration de l'environne • ent de la tâche interrompue . byt e byte 0 /code primitive / 1 ------------------ 2 /ID de la tâche / / registres n / de la machine / 3 / / / n+ 1 c.- le Bloc Controleur de Tâche: BLC-CTL-TCH Ce la tâch e et exécuti on. bloc de mémoire co ntient l'identité de les informations nécessaires à son byte byte 0 /ID de la tâche / 1 2 / adr début code / 3 -------------------- 4 / pri o rité tâche / 5 6 / état de l a tâche / 7 ----- ---- -- --------- 8 / pte r 10 12 vers BLC -CTX / 9 -------------------/ pter ve rs BLC-MSG / 11 / ID du BLC-CTL-TMP / 13 - -- ----- -- ----- -- --- ---- -- --- ----------d.- le . Bloc Controleur de Temporisation: BLC-CTL-TMP bloc conti e nt les Ce nécessaires a u Géra nt du Temps pour temporisation. 201 informations contrôler la byte byte 0 2 4 -------------------/ ID t emporis ati o n / 1 / 3 / 5 ------ - --- -- ---- ---/ pointeur -------------------tâche / ID de la 6 / délai de t emps / 7 C) Organisation de la Mémoire libre Le Gérant de la Mémoire contr8le une file de ressources libres , c ' est-à-dire non affectées à une tâche, pour chaque type de r essource. Chaque bloc de mémoire d'un type particulier sera relié par un pointe u r vers le b lo c libre l e suivant dans la file . A chaq ue demande d'affectation d 'un b loc, l e Gérant de la Mémoire accède au premier bloc de la file correspondant au type de mé moir e dema nd ée via un pointeur de tête . Il re ste au Gérant de la Mémoire à fournir à la tâche aya nt fait la demande d'affe ctation le pointeur vers le bloc de mémoire . De man i ère systématique , toute libérati on par une tâche d'un bloc de mémo i re verra celuici réinséré en tête de la file correspondant à son type (f igure T37). ~-pte,r BLC-CT)( fig·ure pt<9r _ 1 BLC-Clï< :2 pt•r BLC-CiX TS?' : file des BLC-CTX l-ii!Yres Les files des BLC-MSG , des BLC-CTL-TCH et des BLC -CTL -TMP sont organisées de la même maniere . ... 202 D) Primitives de Traitement des BLC-MSG OBT-BLC-MSG (pter-tâche) fonction : lorsqu 'une tSche demande un BLC-MSG, le Gerant de la Mémoire lui fournit un pointeur (se trouvant dans le BLC-CTL-TCH de la tâche ) vers un BLC -MSG libre. méthode: tache) procédure OTE- BLC-QUE (fil e-blc -msg; pter- RET-BLC-MSG (pter-tâche) fonction: lorsqu'une tâche libère un BLC- MSG , cette tache fournit a u Géra nt de la Mémoire un pointeur (se trouvant dans le BLC - CTL-TCH de la tâche) vers Le BLC -MSG libéré. . méthode procédure MET-BLC-DEB-QUE pter-tache) (file-blc-msg; RET-MSG-QUE-PRT (pter-début-queue-prête; pter-tâche) fonction: lorsque le Scheduler a choisi une tâche en attente d'un message , le Gérant Multi-Tâches appelle la primitive RET-MSG-QUE-PRT. Le Gérant de l a Mémoire retire le message indiqué par le pointeur fourni par le Gérant Mu lti-Tâches dans une des quat re queues prêtes et renvoie à la tâche programmée un pointeur (se trouvatn dans le BLC-CTL-TCH de la tâche) vers le me s sage. méthode t a che) proc é dure OTE-BLC-QUE (queue -prête-n; pter- MET-MSG-QUE-PRT (pter-fin-queue-prête; pter-tâche) fon ction: lorsqu'une tâche désire envoyer un message vers une tâche d'application automate, elle doit d'abord remplir un BLC-MSG demandé préalablement au Gérant de la Mémoire . Ce message ne sera pas transmis tout de suite au destinataire mais prendra place dans une des quatre files d'attente selon sa priorité via la primitive MET-MSG-QUE - PRT . méthode: procédure MET-BLC- F IN-QUE pter-tache) 203 (qu eue-prête-n; E) Primitives de Traitement des BLC-CTX OBT-BLC-CTX (pter - tâche) fonction: idem OBT-BLC-MSG méthode tache) procédure OTE-BLC-QUE (f ile-blc-ctx ; pter- RET-BLC-CTX (pter-tâche) fonct ion: idem RET-BLC-MSG méthode : procédure MET-BL C-DEB-QUE pter-tache) (fil e-blc -ctx; F) Primitives de Traitement des BLC-CTL-TCH OBT-BLC-CTL-TCH (pter)tâche) foncti on : lorsque le Gérant multi-Tâches crée une nouvelle tâche, le Gérant de la Mémoire lui fournit un pointeur vers un DLC-CTL-TCH libre. méthode: procédure OTE-BLC-QUE pter-tache) (file-bloc-ctl-tch; RET-BLC-CTL-TCH (pter-tâche) foncti on: lorsque le Gérant multi-Tâches détruit une tache, il fournit au Gérant de l a Mémoire un pointeur vers le BLC-CTL-TCH libéré. méthode : procédure tch ; pter-tâche) 1ET-BLC-DEB-QUE (file-bloc-ctl- G) Primitives de Traitement des BLC-CTL-TMP OBT-BLC-CTL-TMP (pter-ST) fonction: lorsque l e Gérant du Temps demande un BLCCTL-TMP, le Gérant de l a Mémoire lu i fournit un pointeur vers un bl oc libre. 204 méthode: pter-ST) procédure OTE-BLC-QUE {file-bloc-ctl-tmp; RET-BLC-CTL-TMP (pter-ST) fonction lorsque le Gérant du Temps détruit une temporisation, il renvoie au Gérant de la Mémoire un pointeur vers le BLC-CTL-TMP libéré . méthode : procédure MET-BLC-DEB - QUE tmp; pter-ST) H) Procédures mémoire libre (file-blc-ctl- de Traitement des files de blocs de OTE-BLC-QUE (type-file; pter) fonction: cette procédure a cc ède au premier bloc via le pointeur de tête de la file type-file et le retire. méthode (figur e T38) : pter := pter-début-type-file pter-début-type-file := pterA (pter- ar ) 11 type-file 11 peut représenter une des 4 files de blocs de mémoire libre ainsi qu'une des 4 files de messages prêts • MET-BLC-DEB-QUE (type-file; pter) fonction: cette procédure insèr e e n têt e de la file type-file le bloc de mémoire indiqu é par le pointeur pter. méthode (figure T39) : p terA (pter-ar) := pter-d é but-type-file pter-début-type-file : = pter 11 type-file 11 peut représenter une des 4 fi l es de blocs de mémoire libre. 205 [ ptc!lr . pt~,r-or pter-1etc, : pter-a1• • ..._ •--i ] blc,ç n bloc: .2 hl<>c 1 pter-or •--i • pter-ar bloc 1 bloo .2 pter-ar blcac n bloc: 2 pter-or pter-or --i pter-ar blcac n .--pt-esr- ( .figure T88 .: p·rocedu.re .OTE-BLC-QUE MET- BLC- FIN-QUE (type-file; pter) f onction: cette procédure insère en queue de la file type-file l e bloc de mémo i re indiqué par le pointeu r pter • méthod e ( figure T40 ) : pter A ( p t er -ar) : = pter-fin-type-file pter-fin-type-file : = pter 206 lcir-·teite• 1 el pusr-or blc,c 1 f pt:.r l pter-ar- •--cf pter-oi- blcx: 2 t,toc n phr-oi- phr-oi- bloo 2 tile>e n pt,,r-i::ir T bl<:>c: x ter--tete• 1 ~ ptu--or bloc 1 pt•r-or ptur bloc >< pter-or bloc 1 pter-a,· bloc: .2 ·--cf phr-ot" blc;,ç n pt,sr-o r phtr blo c :c figun-e T39 :- proos-œu.re ME1'-BLC-DEB-QU.E 20 7 ter-tete, -+----a pter-al" pter--or ~--+pter-qu.u pter-or l<l,,i-----+-: pter-QIJet.J~ bl,x, 1 ~-----l bloc; teir-t:etei -1---1.:1 pter-ar- lolox- 1 I< pter--or n---+ i:;,ter-qu.u 1-----.::r, bloc r, n----+- ptltr-queu bloc t~,r-t:ete ---u pter·- orbl~ 1 p.ter--or T.rf.O : pter -qu.,_, bloo r , b loc figure 1< 1< prooe-du.re NET-BLC-FIN-QUE' 208 3.3.2.3 . Gestion des messages . ~ Description. Ce module ( GX: gestion des échanges) e st chargé transfert de messages de n'im porte quel module d'application d ' os vers un modu le automate de l'application. du ou Il y a quatre files d'attente de messages de priorités décroissantes . La s tructur e d'un message est décrite dans le gestionnaire de la mémoire • .!21 Primitive. Nom: ENVOI-MSG Paramètres : contenus dans le message lui-rn@me De scription: Transfert d 'un message de la tâche envoyeur vers une des quatre files d'attente . Le choix de la file d'attente est fa it d ' après le module en vo yeur: ST ILS COLIG COCOM 1 2 3 4 Le message est ins éré en queue de file . -~ Séquence d'envoi d'un message. Supposons que le modu le A désire envoyer un message au module B. ~ Obtention d 'un BLC-MSG . La tâche A doit d 'abord obtenir de GM un bloc de message pour y placer le contenu de contrôle et d'information d u message . Cette première étape se fait via la primitive OBT-BLCMSG de GM qui renvoie un pointeur vers un BLC-MSG . Ce pointeur se trouve dans le BLC-CTL-TCH de A. 209 pt.eur tête BLC-CTL-TCH de A IN pttch pteur tête pteur -ar pteu -ar pteur -ar BLCMSG 1 BLCMSG 2 BLCMSG n file des blocs de messages libres gérée par GM pteur -ar pteur -ar BLCMSG 2 BLCMSG 1 pteur -ar BLC MSG n trtch BLC-CTL-TCH de A fig E77. Obtention d 'un BLC- MSG. c. 2 ) Plac ement d u mes s a g e d a ns l e BLC- MSG. Le modul e A inscrit d a ns BLC -MSG l e cont e nu du me ssage: - n umé ro de me s sa g e - h eu r e d' e nvoi - i n f orma tion à tr a n sme ttr e au d e stinatair e c . 3 ) Mis e du messa g e p rê t e n a tt e nt e . Le module A fait a ppel à la primitive ENVOI-MSG DE GX. La primitive v a chercher dans le BLC-CTL-TCH d e A le pointeur vers le BLC-MSG. 210 BLC-CTL-T CH de A pte ur N BLCMSG 1 p pteur tête pteur - ' - -ar BLCMSG y nième BLCMSG z file des BLC-CTL-TCH de A messages prêts --pteur N BLCMSG 1 Jtrtc hlN pteur tête pteur ueue pteu N - ar . pteu r - ar pteur - ar - ,__ pteur queue BLCMSG z BLCMSG y fig E78 . Mise d u message prêt e n attente. c.4) Transmission d u message a u mo dule B. Ceci est du ressort de GT q ui achemine un me ssage lorsqu'il doit activer une nouvell e tâche . Le BLC-MS G est ensuite r esti tuf i GM par appel i la pri mi tiv e RET-MSG-QUE-PRT de GM. 211 pteur tête BLC-CTL-TCH de B - ..._ BLC-CTL-TCH pttch - p teur -ar pteur -ar BLCMSG 1 BLCMSG 2 BLCMSG j pt eur queue nième file des messages prêts pttchjN pteu r tête pteur -ar pteu N -a r pteur -ar BLCMSG 1 BLCMSG 2 _ _ pteur -ar BLCMSG 3 ..._ fig E79 . Transmission du message à la tâche B. 212 3.3.2.4 Gérant du Temps A) I ntroducti on Le Gérant du Temps est une tâche du système d'exploita tion qui gère les fonctions reliées au temps sur base d 'u ne horloge hardware provoquant une interr uption toutes l es 10 millisecondes. Ces f onctions sont : a) la programmation de proc éd ures périod i ques , b) le contrôle de séquence et d ' e rr eurs temporisation . B) par Programmation de procédures périodiques Les procédures périodiques é tant principalement des primitives du mod ule ILS , la description déta illée du fonctionnement est reprise au point 3.3 . 3 . 1 . Néanmoin s , le Gérant du Temps joue dans ce mécanisme un rôle précis et important . Lors de chaque interruption d ' horloge , le Gérant des Interruptions exéc ut e la tâche du Gérant du Temps . Celle -c i incrémente un compt e ur périodique indiqua nt une e ntr ée dans la t ab le de pr o grammatio n. A cette entrée, se trouvent les procédures d ' horloge qui doivent être exécutées par le Gérant du Temps à cette période précise . Néanmoins, pour ê tr e exécutée , une proc édure d ' horl oge d oit être préalablement active . Le Gérant du Temps effe ctue cette vérification en allant t ester , pour chaque procédure à exéc uter, l'état actif ou inactif dans la t able des statuts ( figure T41 ). C) Contrôle Temporisation de Séquence et d 'Erreur s a.- Typologie des demandes de temporisation Il exis te deux types de temporisation . 213 par :::Ç9 0 00f'r4:.teur JM,r\od lque [-:7 ~1.~. 1 2 > 111t,NTu~.tlc1• 3 d'h-Oliog• 0- T-41 L p r··rn i l i : : 1 1 1 tobl e da pr<)9 ra'11motlo:>n • t L [ , 1°1 OOOUJNI figure ~4 i ::-r+1- N - numoer,owtl-on L - lbr• p - pandng 0 - OOIWen9Qti'c,n 0 - rn ~4 P' C °1 1 :< L .. .....1 ~ 1 0 1 1 : prog·ra.171,,-n,af.-jon a.es procE1du-r,e.s periodiq-u.es La temporisation relative consiste à décle n cher un proc ess u s que lconque apr ~s q ue ce s o it écou l ~ un d6lai de temps , ce dé lai étant indépe ndant de l 'heure à laque ll e il fGt demandé ou de l' heure à laquelle il arrive à expiration. ... La temporisation absolue consiste a déclencher un pr o cessus q uelconque à une heure précise , étant bien entendu q ue cette heure doit @tre supérieure à l'heure à laquelle la temporisation fGt demandée. Toute d emande de temporisation absolue est directement rame n ~e à une temporisation r elat ive e n faisant la différence en tr e l'heure d ' expiration et l ' he u re de la demande, cette différence devenant donc un délai. b. - Création de Temporisation Une temporisation peut être demandée l'aide de deux primit ives du Gérant du Temps . ... a TMP-REL (dél ai ; i d-tâche; id-temp) f o nction : Le Gérant du Temps reconnait une demande de temporisation relative. Pour gérer toute tempo risation , un bloc de con tr ôle de temporisation (BLC-CTL-TMP) est nécessa i re . 214 Le Gérant d u Temps appelle l a primitive du Gérant de la Mémoire OBT-BLC-CTL-TNP (pter-ST). Le G&rant du Temps g~re un e file de BLC CTL-TMP organis6e de mani~re croissante sur l e délai de TMP-REL, le Gérant du Temps calcule l'endroit o~ le nouveau BLC-CTL-TMP doit venir s ' insérer dans la file pour respecter l'organisation croissante. Le Gérant du Temps peut alors fournir le pter-ST · au Gérant de la Mémoire et un identificateur du BLC-CTL-TMP à la tâche demandeur. TMP-ABS (heure; id-tâche) fonction: Le Gé rant du Temps reconnait une demande de temporisation absolue. Le Gérant du Temps calcule la différence entre l'heure de TMP-ABS et l'heure c ourante, obtenant ainsi un délai . Le Gérant du Temps appe ll e la procédure TMP-REL (délai; id-tâche ; id-temp). c.- Gestion des Temporisations d'horloge, suivante: Lors de chaque interruption le Gérant du Temps appelle l a hardware procédure MAJ-TMP (pter-début-file) fonction : Cette procéd ure so ustrait 10 msec du délai de chaque BLC - CTL-T1P de la fil e . Si le délai du prem ier DLC-CTL-T MP re s te diff 6 rent de O, alors il en sera de même pour les suivants et la procédure se termine. Si le délai d u premier BLC-CTL-TMP s'annule, alors le Gérant du Temps passe e n phase d ' expiration de temporisation, puis vérifi e le deuxi~rne et ainsi de suite . c . - Expiration de Temporisation Si le dé lai d'un BLC-CTL-TMP a touché à sa f in, le Gé rant du Temps envoie un message d ' expiration de temporisation à la tâche demandeur via la procédure MAJ-TMP. Cet envoi de message suit la procédure classique décrite dans le Gérant des Echange s au point 3.3.2.3. 2 15 L'envoi du message terminé, l e Géra nt du Temps libère le BLC-CTL-TMP et l e renvoi e au Gérant de la Mémoire via la primitive RET-BLC-CTL - TMP (pterST ). d.- Annulation de Temporisation Pour une raison ou pour une autre , la tâche qui fût à l'origine de la demande de t emporisation garde l e droit d ' annu ler à tout instan t cette tempori sat ion v ia la prim i tive suivante du Gérant Temps . DET - TMP (id-temp) fonction : Cette proc édure retrouve dans la file l e BLC-CTL- TMP dont l'identificate ur est id-temp. Une fois retrouvé, l e Gérant du Temps libère le BLC-CTLTMP et le renvoi e au Gérant de l a Mémoire via la primitive RET-BLC-CTL-TMP (pter-ST). 216 du 3.3.3.1 I.L.S. (Interface Lignes/Système) La fonction du module ILS est d'effectuer le scanning des lignes . Pou r ce faire deux fonctions auxiliaires lui sont confiées : - la ges tion des tables de scanning, - le traitement des évé n e ments dûs au scanning. A) Scanner les lignes. Une ligne sept états suivants : - peut se trouver dans un des libre , pré-numérotation, numér otation , conversation , pr é -conversation, post-conversation, parking . Les diff é rents états sont des "états de scanning". Une ligne ne devant pas être scannée n'aura donc aucun de ces sept états particuliers. En fait , une ligne est toujours scannée, car e ll e est libre lorsque el le n'est pas dans un des autres é tats. A chacun de ces sept états correspond une t a ble d ' un nombre de bits éga l au nombre de lignes dans le système . Le bit correspondant à une ligne particulière sera positionné à 11 1 11 si cette ligne se trouve dans l'état corre sponda nt à la table, à 11 0 11 sinon. A chacun des états de scanning correspond une procédure de scanning. Une procédure de scanning est caractérisée par: - son statut actif ou inactif, - sa fréquence d'exécution, - sa table de scan ning. fréquence d'exécution La peut .' déterminée de la man1ere s tatiqu e suivante : libre scanning 1 00 scanning de numérotation 10 scan ning de pré-n um érotation 10 10 - scanning de post-num érotat ion - scanning de conversation : 300 300 - scanning de pré-conversation .. 217 être msec msec msec msec msec msec - scanning de parking 1 00 mse c : La programmation des différentes procédures se l o n leur fréquence d'exécution sera détermi n ée à l ' a ide d ' une horloge Hardware générant une interruptio n toutes les dix millisecondes, d'une table de progra mmat i on et d ' un compte u r périodique . La t a bl e d e p r ogrammati o n est statique e t compor t e trente entrées . Chaque en t rée , qu i correspond à un mu ltiple de dix mi llis e condes , contiendra l ' identificateur des proc éd u res de scann i ng devant ê tre a c ti v ées lo rsq ue le c ompte ur péri odique i ndiquera c ette e nt rée par ticuli ère . Ce compte u r es t inc rément é de un à c haque i nterrupti o n d ' horl o ge et remi s à zéro to u tes le s trois ce n ts millise condes (fig ur e T4 1 ). 0 :.,c t4 ):, dh~~~uptl•1• ';, ~=.~ N L - nu .... ~ lb s, ,........ ,og. [î}- ': F' L t4 3 : : ' : ': . . : 0 . . : - ··-··- .. : : : '1 ::EEEB---EB : : : ' : on p -- OOl'W.,..otrc,. J>O rid "'' C 0 - oooupe, toblt> de• •latiJbt fig ure T-4 1 : proy•ra,171,,n,af."i, on à.es procectU'r-e.s periodiq-t,UJB Le statut actif ou inactif d 'une procédure de scanning est détermin é de la manière dynam ique suivante s i a u c une ligne ne se t rou ve dans l ' état de scanning correspondant à la procédure , le sta tu t de celle-ci devient inactif. Cette gest ion dy nam i que est réali s ée g rSc e la t ab l e de stat u ts . Chac une des ci nq e n trées d e un bit co rrespond à un e procédure . Ce b i t est mis à 11 1 11 s i l e statut est a ct i f, à 11 0 11 si non. à 218 Résumé . To u s les multiples de dix mil li se co ndes , le c ompte u r périodique est incrément é et i dentifie u n e entrée dans la table de programmation . Chaque procédure de scanning de cette entrée sera exécutée si l ' entrée correspondante de la table des sta t uts l ' indique comme étant active . Procéd ur es d e Sca nn ing Lorsqu ' une des six pr o cédures ( LIBRE , CONVER SATION, PARKING , POST-NUMEROTATION, PRENUIEROTATION , PRE-CONVERSATION ) es t exécutée , e l le commence par parcou rir la table de l'é t at correspo ndant pour s ' informer des lignes à scanner . Pour chacune des lignes à scanner , l a procéd u re accéde au VECLIG correspondant à la lig n e . Si Np 1 Na alors , un événement a lieu. Il reste à détermine r s'il s ' agit d'un é v énement bas, ( Np= 0 & Na= 1 ) , ou d ' un é v énement hau t, (Np= 1 & Na= 0 ). Exemple. tJp Na Np xor Na = \'lx .Np and Wx = Eh Na and Nx = Eb 11 12 13 14 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 Si Eh= 11 1 11 , alors , un événement haut a eu lieu e t la procédure positionne le flag d ' événement haut dans le banc des événements . Si Eb = 11 1 11 , alors , un é v é nement bas a eu lieu e t procédure positionne le flag d ' événement bas dans banc des é véneme nts. la le Procédure de scanning NUMEROTATION . Les chiffres créneaux (figure T42 ). 219 sont codés en nombre de 3 5 • fi.gu:rB 1'- T42 1 00 •tee, . c·odage de.B ch:iJfreS' Détec tion de la fin d'un chiffre: étant donné qu e le nombre de c réneaux pour un chiffre est inconnu, un time-out d e deux c en ts millisecondes est acti v é . Si celui-ci expire avant d 'avoir reçu un nouveau cr é neau , c'est que l ' émissi on du chiffre est terminée. Reconnaissance du chiffre : à chaque passage de la ligne d 'u n niveau haut à un niveau bas, ou d ' un niveau bas à un niveau haut , Np sera diff é rent de Na et un é v é nement se ra positionné . Dans c e cas, la reconnaissnce du c hif fre n'e st pas e ffectué e pa r ILS . Positionnement de l' é v é n ement cfr. la r e connaissan c e d u chif fre . : B) Gérer les tables. a .- Tables d ' é t a ts. - procédure qui e nl è v e un e ligne d'un e des tables d ' états . procédure qui positionne un e li gne dans une des tables d ' é t at . b .- Tables des statuts. - procédure qui active une des de scanning. procédure qui d é sactive proc é dures de scanning. 220 procédures une des C)Traiter les événements. Il existe une proc éd ure de traitement d'é vén ements par types d'évén eme nts possibles. Types d'événeme nts possibles évé nement haut , ( pass age du niveau haut au niveau bas ). é vénément bas, (pass age du niveau bas au niveau haut). Le rôle d e s procédures de traitement d'événements consistera principalement dans l ' e nvoi d'un message vers le module COLIG et auxiliairement dans des fonctions comme positionne r la val e ur de l'état a ntécéd e nt à la valeur de l' é tat présent. D) Primit i ves ILS. CHGT-ETAT (nr-ligne; nr-état-ancien; nr- état -nouvea u) fonction : mettre l a ligne da ns l a tabl e d' é t at nr- é tat-nouvea u, appeler l a procédure ACT - SCANN I NG (nr- é tat-nouve au), appele r la fonction booléenne SIGN- ETAT(nr-li g ne; nr-état-ancien) , s i SIGN-ETAT = vrai alors sinon retirer la li g n e nr-ligne de la t ab le d ' éta t nr- éta t-ancien, appeler la pr oc édu re DESACTSCANN I NG ( n r -éta t-ancien); appe l er une procédure d ' e rreur. ACT-HDW (nr -ligne; nr-appa r ei llage ) fonct ion : activer dans l e VECL I G de l a ligne l'appareillage hardware nr- appare ill age . nr-ligne DESACT (nr-li gne ; nr-appareil la ge ) fonction: de sactiver dans le VECLIG de l a ligne l'appa r e ill age hardware nr- appa reillage . 221 nr-ligne SCANNING (nr- é tat) fonction : pour chaque ligne active dans la tabl e d'état nr-état accéder à VECLIG, si Np 23 Na alors si Np= 1 alors envoyer à COLIG l e message 1201 sinon envoyer à COLIG le message 1202. E) Fonctions ILS SIGN-ETAT (nr-ligne; nr-état) fonction: variable booléenne qui prend la valeur VRAI si la ligne nr-ligne se trouve dans la table d ' é tat nr-état et prend la valeur FAUX sinon. ETAT-OCCUPE (nr-état) fonction : variable bool é enne qui pr e nd la valeur VRAI si il e xiste au moins un e li g n e active dans la table d' é tat nr-état et prend l a valeur FAUX si il n'y en a aucune . F) Procédures ILS ACT-SCANNI NG (nr-état) fonction activer dans la table des statuts la procédure scanning corres p ondant à l' é tat nr- é tat. de DESACT-SCANNI NG (nr-état) fonction : appeler la fonction booléenne ETAT-OCCUPE (n r-état ) si ETAT-OCCUPE= FAUX alors désactiver dans la table des statuts la procédure de scanning correspondant à l'état nr-état. 222 3.3.3.2. Colig. A. Table des transitions. ------------------------- Etat présent Evénement Action msg 1201 msg 0202 repos Etat suivant 1 13 Création d'un processus Cocom Envoi du msg 2301 Activation de la procédure ILS CHGT-ETAT Acti vation d'une procédure de scanning pré-numérotation 2 msg 3201 2 Activation de la procédure ILS CHGT- ETAT Activation d'une procédure scanning numérotation Désactivation de la procédure scanning pré-numérotation Activation de la proc é dur e ILS qui va positionner à 1 le bit 2 msg 1202 3 Traitement du changement de niveau en vue d'établir le chiffre rnsg 020 1 15 Envoi du chiffre détecté msg 2303 rnsg 3202 4 Envoi du msg 2 302 3 4 Activation de la procédure ILS qui va positionner à 0 le bit 2 de l'appelant Activation de la procédure ILS CHGT-ETAT Activation de la procéd ure ILS de scanning post-nurnérotation 223 Etat présent Evénement Action Etat sui vant Désacti v ation de la procédure ILS de scanning numérotation msg 3203 5 msg 1 201 6 Envoi du msg 2306 msg 3205 7 Activation de la procédure ILS qui va retirer la ligne appelante de l'état postnumération et le mettre dans l'état conversation msg 1202 8 msg 3206 msg 1201 msg 3207 9 14 11 Envoi du msg 2304 5 Activation de la procédure ILS CHGT-ETAT - Activation de la procédure de scanning pré-conversatian Activation de la procédure ILS qui va positionner le bit 6 de VECLIG de l'appelé à 1 Activation de la procédure ILS qui va positionner le bit 3 de VECLIG de l'appelant à 1 Envoi du msg 2305 6 7 Activation de la procédure ILS qui va positionner i -1 ~ le bit 6 du VECLIG de l'appelé et le bit 3 de l ' api1elant Activation de la procedure ILS CHGT-ETAT 8 Envoi du msg 2307 9 Destruction du processus Cocom Activation de la procédure ILS CHGT-ETAT (appel a nt) Idem (appelé) ln 224 Î I )._ O À. -10 Etat présent ,0 ,1 Evénement Action Activation de la procédure ILS CHGT-ETAT (appelé ) 0 Destruction du processus Cocom Activation de la procédure ILS CHGT-ETAT (appelé) - ms g 1202 Idem(appelant) 12 Activation de la procédure ILS CHGT-ETAT (appelant) 13 Envoi du msg 2309 14 Création d'un processus Cocom 12 0 msg 1 202 En voi du msg 2310 15 Etat suivant 8 4 Destruct i on du processus Cocom Activation de la proc édure CHGT -ETAT qui va remettre l' app elant dans l'état libre 225 0 B._Dia2ram me_des_transitions. 3.3 .3. 3. Cocom. A. Table des transitions. ------------------------Etat présent Action naissance repos Evénement Etat suivant msg 2301 1 msg 2310 IL - 1 consultation de la base de données pour extraire des informations sur la ligne et l'abonné si appelé pré-déterminé msg 2302 4 2 en vo i du msg 3 201 2 3 demande au service de temps de l'operating system d 'a ctiver un time out de 24 secondes msg 2303 msg 030 2 3 16 Co com met à jour les T. 0 . Cocom proc ède à l'analy se du préfixe -~s u ite à l'analyse 15 , 17 Il continue par l'enregistrement d e n ch i ffres; n d épen d du ré su ltat de l'analyse. Accès à la E. D. pour vo ir si l'a ppelé ne doit pas être i-.-si c ' est le cas dérouté c la s s é o u si l'appelé est malveillant msg 23 04 Envoi du msg 3202 1 B, 1 9 4 msg 2307 20 msg 2305 ms g 2307 msg 2309 20 21 6 20 ' 4 En voi du msg 3203 5 Envoi du msg 3 204 msg 2306 msg 2307 6 Envoi du msg 3205 msg 2307 5 1 9 227 Etat présent Action Evéneme nt msg 430 1 Etat suivant 7 Envoi du ms g 3401 8 Envoi du msg 3206 ou 3207 9 Demande au time se r vice de positionner un T.D. de 90 secondes msg 2308 11 Envoi du msg 34 0 2 msg 4301 10 10 Envoi du msg 3206 11 Désac tivation du T . D. de 90 secondes 8 mort mort msg 2307 7 Envoi du msg 3203 msg 2305 13 13 Envoi du msg 3204 msg 2306 14 14 Cocom sait que la ligne a ppe lant e est la ligne v irtuelle , il dema nde d ès lors une libéra tion vers l'avant . msg 4301 8 12 Accès à la B. D. d e laquelle on ex t rai t le num é ro de l'appela nt Créa t ion du trat ax Envoi du msg 3401 15 16 Déclenchement Enregistrem ent du numéro prédé t e r miné dans la ba se de données Envoi du msg 3207 mort Envo i du msg 3207 mort 22 8 Etat présent 17 Evénement Action Etat suivant ( cas de la formation d'une heure de réveil) Cocom procède à l'enregistrement dans la table de l'identification du time out absolu et du numéro de l'appelant. Activation du processus mort Envoi du msg 3207 18 19 Extraction de la B.D. du numéro vers lequel il faut dérouter l'appelé msg 2304 4 Envoi du msg 3202 msg 2307 20 Enregistre ment de l'heure à laquelle est effectué l'appel et du numéro de l'appelant. msg 2304 4 Envoi du msg 3202 msg 2307 20 mort 20 Envoi du msg 3206 21 Recherche 1 dans la B.D., s ' i l existe d'autres numéros d'appelés pouvant se substituer au premier introduit Si oui Si non 22 9 4 2 B._ Dia9ram me _ de s _ tr a n s itions . ---------------230 3.3.3.4. Taxation. 3.3.3.4.1. Module principal TAXAT. ~ Spécification. Elles ont été données en 3.1.3. !ù_ Appel à TAXAT. L'appel les paramètres. El se fait par l'envoi du message 3401 contenant Paramètres. NUMLIGA : numéro de ligne appelante, entier(1 •• 500) NUMLIGB: numéro de ligne appe lée, entier (1 •• 500) HDEB: heure de début de conversation, entier HHMMSS HFIN heure de fin de conversation, entier HHMMSS JDEB: jour de début de conversation, entier AAMMJJ JFIN: jour de fin de conve rsation, entier AAMMJJ INDCH RG: ind i c a ti f de ch a rg e , enti e r= 1 = 2 = 3 fil Organigramme de TAXAT. 231 appelant appelé gratuit ~1/ , Identification géographique de la . communication (IGEOCOM) , Calcul du nombre d'unités de temps écoulées (CALCUT) Calcul du montant de la facture (CALCFACT) Facturation, c'est-à-dire imputation du montant à un abonné (FACTUR) i, Inscription de la communication au fichier historique (CLASFHIST) f i g E80. Or ga nigramme de TAXAT. tl Tables. Une tabl e d e s tarif s est utilis ée . C'est u n vecteur appe l é TARIF , compos é de 4 records pour les 4 types g é ographiques de communications, comprenant chacun une partie JOUR et une partie NUIT pour le tari f normal et l e tarif r é duit. 3.3.3.4.2. Proc é dure s . ll IGEOCOM. ~ Spécification. Identifier le type géographique de communication. correspond à la première phase des spécifications • ..L.È.l Paramètres. * input: 232 Ceci NUMLIGA comme TAXAT NUMLIGB comme TAXAT * output: TGEOCOM htl type géographique entier = 1 = 2 = 3 = 4 de communication, zonale interzonale type A interzonale type B interzonale type C Algorithme. GET RECORD (fichier:FAB, CLE:NUMLIGA) IGEOZONEA := ABONNE.IGEOZONE GET RECORD (fichier:FAB, CLE:NUMLIGB) IGEOZONEB := ABONNE.IGEOZONE . G~T RECORD (fichier:FGEO, CLE : IGEOZONEA ) ZONEA := ZONE GET RECORD (fichier:FGEO, CLE:IGEOZONEB) ZONEB := ZONE IF IGEOZONEA = IGEOZONEB THEN TGEOCOM := 1 EXIT FOR I := 1 TO 5 IF ZONEA .IZONECONT(I) = IGEOZONEB THEN IF ZONEA .TAILLEZONE = 1 & ZONEB . TAILLEZONE = 1 THEN TGEOCOM := 2 EXIT ELSE TGEOCOM := 3 EXIT FOR I := 1 TO 5 FOR J := 1 TO 5 IF ZONEA.IZONECONT(I) = ZONEB.IZONECONT(J) THEN GET RECORD(fichier:FGEO, clé:ZONEA.IZONECONT(I)) IF ZONE.TAILLEZONE = 1 THEN TGEOCOM := 3 EXIT TGEOCOM := 4 ll_ CALCUT. 2.a) Spécification. Calcul er la durée d'une conversation 233 en unités de temps. L'unit é par défaut es t la seconde. La d ur ée est ventilée en unités à tar if normal et u ni t és à tarif réduit. 2 .b) Paramètres. * in p ut: HDEB, HFIN , J DEB , JFIN comme TAXAT * output: NBUTTN nombre d'unités en tarif normal NBUTTR nombre d'unités en tarif réduit 2.c) Algor ithme. (Utilise procéd ur e ISOLTRANCHE) NBUTTN := NBUTTR := 0 H1 : = HDEB J1 : = J DEB WH ILE ( H1 iê HFIN ) OR ( J1 r JFIN) ISOLTRANCHE ( H1 , HF IN,J1,JFIN,NBUT,TT) IF TT= 1 TREN NBUTTN : = NB UTT N + NBUT ELSE NBUTTR : = NBUTTR + NBUT ll CALCFACT. 3.a) Spécification. Calculer le montant de la fac tur e . 3.b) Paramètres. * input: NBUTTN , NBUTTR: comme CALCUT TGEOCOM: comme IGEOCOM * outpu t : MONTFACT : montant à facturer ~ Algorithme. MONTFACT : = NBUTTN * TARIF.JOUR (TGEOCOM) + NBUTTR * TARIF.NUIT (TGEOCOM) 234 _!l FACTUR. 4.a) Spécification. Facturer la communication à l'appelant, l'appelé éventue llement à personne si la communication est gratuite. ou 4.b) Paramètres. * input: NUMLIGA , NUMLIGB, HDEB , HFIN, JDEB, JFIN, INDCHRG: comme TAXAT MONTFACT: comme CALCFACT * output: néant 4.c) Algorithme . IF INDCHRG = 1 THEN GET RECORD (fichier:FAB, clé:NUMLIGA) ABONNE . MONTFACT := ABONNE.MONTFACT + MONTFACT WRITE RECORD (fichier: FAB , clé:NUMLIGA) IF INDCIIRG = 2 THEN GET RECORD ( fichier:FAB, clé:NUMLIGB) ABONNE . MONTFACT := ABONNE.MONTFACT + MONTFACT WRITE RECORD (fichier:FAB, cl é:NUMLIGB) ~ CLASFHIST. 5 . a ) Spécification. Classer la communication dans le fichier historique des communications . 5.b) Paramètres. * input: NUMLIGA, NUMLIGB , HDEB, HFIN, JDEB, JFIN, INDCHRG: comme TAXAT MONTFACT * comme CALCFACT output: néant 235 &_l ISOLTRANCHE. 6.a) Spé ci ficati on. Isoler un tranc h e de temps entre deux dates et deux heures données suivant l e principe suivant : la tranche est l a péri ode de temps comprise entre la date et l 'heure de début, et le moment le plus proche entre soit la date et l'heure de fin, et soit le plus proche passage entre d e ux types de tarifs différents, soit l'he u re de mi nuit. 6 . b ) Paramètres . * input: H1 , H2 heure de début e t de fin (HHMMSS) J1 , J2 jour de début et de fin ( AAMMJJ ) * o utput : H1, J1 NBUT : heure et jour de f in de la période isol ée nombre période d 'unit és TT : type de tarif= 1 = 2 de temps conten ues norma l r é d u it 6.c) Algorithme . ( Utilise procédures JOURSUIV, FERIE et CALCINT) IF FERIE ( j 1 ) THEN IF ( H2<MINUIT ) & (J1 =J2 ) THEN CALCINT ( H1 , H2 , NBUT ) H1 : = H2 ELSE CALCINT ( H1 , MINUIT , NBUT ) H1 : = 0 TT : = 2 EXIT IF H1<' IIDJOUR THEN IF (H2<HDJOUR) & (J1 =J2 ) THEN CALCINT (II1,II2, NB UT) H1 : = H2 ELSE CALCINT (H1, HDJOUR ,NBUT) H1 := HDJOUR TT : = 2 EXIT IF H1<: HF JOUR THEN IF (H2<HFJOUR) & (J1=J2) THEN CALC INT ( H1 , H2 , NBUT) H1 : = H2 ELSE CALCINT (H1, HFJOUR,NBUT ) H1 := HFJOUR 236 dans la TT := 1 EXIT IF (H2< MINUIT ) & (J1=J2) THEN CALCINT (H1,H2,NBUT) H1 : = H2 ELSE CALCINT (H1,MINUIT,NBUT) H1 : = 0 J1 : = JOURSUIV ( J1 ) TT:= 2 ll JOURSUIV. 7.a) Spécification. fonction donnant le jour suivant celui fourni paramètre . 7.b) Paramètres. JPREC: jour précédent (AAMMJJ ) 7.c) Algorithme. ( Utilis e procédures MOISSUIV et BISSEXT) JOUR:= (JPREC/100 - INT(JPREC/100))*100 MOIS := ((JPREC-JOUR)/10000-INT(JPREC-JOUR)/10000)*10000 ANNEE:= INT(JPREC/10000) IF (JOUR=28)&(MOIS=2)&NOT BISSEXT(ANNEE) THEN MOISSUIV(JPREC ) EXIT IF (JOUR=29)&(MOIS=2)& BISSEXT(ANNEE) THEN MOIS SUIV(JPREC) EXI'l' IF (JOUR=30)& (MOIS=4 OR 6 OR 9 OR 11) THEN MOISSUIV(JPREC) EXIT IF (JOUR=31 )&(MOIS=1 OR 3 OR 5 OR 7 OR 8 OR 10 OR 12) THEN MOI SSUIV(JPREC) EXIT JOURSUIV := JPREC + 1 ~ MOISSUIV. 8.a) Spécification. Faire passer une date au début du mois suivant. 8.b) Paramètres. * input: ANNEE, MOIS, JOUR: entiers à deux chiffres 237 en * output: ANNEE, MOIS, JOUR: modifiés 8.c) Algorithme. IF MOIS= 12 THEN MOIS := 1 ANNEE := ANNEE+ 1 ELSE MOIS := MOIS + 1 JOUR := 1 21. BISSEXT . 9.a) Spécification. Fonction déterminant si une année est bissextile . 9.b) Paramètres. * input: ANNEE: entier à deux chi ffres * output: Bissext = 0 si l'ann ée est bissextile. 9.c) Algorithme. IF (((ANNEE/4=0)& ( ANNEE /100 ~0))OR (ANNEE/400=0)) THEN BISSEXT := 0 ELSE BISSEXT := 1 .l.Ql CALCINT. 10.a) Spécification. Calculer le nombre d ' unités de temps (secondes) deux heures d'un même jour. 10.b) Paramètres. * input: H1, H2 : heures, ent i ers HHMMSS * output: NBUT: nombre de secondes entre H1 et H2 10.c) Algorithme . NBUT := H2 - H1 - 4040 238 entre .l.ll FERIE. 11.a) Spécification. fonction déterminant si une date est un jour férié. 11.b) Paramètres. * input: JOUR AAMMJJ * output: FERIE= 0 si JOUR est férié 11.c) Algorithme. On se sert d'un tableau JFER contenant au MAXJFR jours fériés et en contenant en réalit é NEFJFR . FOR I := 1 TO NEFJFR IF JOUR= JFER(I) THEN FERIE:= 0 EXIT 239 maximum 3.3.3.5. Base de d on nées • .lJ. Fichier des abonnés. - fichier : FAB - organisation: s é qu en ti e l indexé - accès : indexé sur l e numéro de ligne NUMLIG - record: ABONNE it ems : • • • • . NUMLIG entier(1 •• 500) NUMABO e nti er IGEOZONE: entier SI GABO tableau de 100 caractères NUMDER : tableau de 5 e ntie r s ITOREV: t ableau de 5 e nti ers TYPETAX : entier MONTFACT: entier .f.l Fi chier des zones géographiques. - fich i er : FGEO - organisation : séquentiel indexé - accès: indexé sur l'indicatif de zone IGEOZONE - re cord: ZONE - items : 11 IGEOZONE: ent i er • TAILLEZONE : e nti e r . IZONECONT: tableau de 5 en ti e rs Fi chier historique. - fichier: FHIST - organis ati on: séquentiel - accès: séquent i el - record: HISTO - items : NUMLIGA : entier • NUMLIGB : entier HDEB entier HHMMSS • HFIN enti er HHMMSS JDEB entier AAMMJJ JFIN: entier AAMMJJ • I NDCHRG: entier • MONTFACT: entier 240 3.3.3.6. Contenu des message s • .§!1_ ST -• COLIG. 0201 Rôle : Renvoyer à COLIG l'ID du time-out dont il vient demander l'initialisation à une certaine valeur. de Contenu: - ID de la ligne - ID d u time-out 0202 Rô l e : signaler l'arrivée à échéa nce d'un time-out. Contenu : - ID du time-out - ID de la ligne !2)_ ST + COCOM. 0301 Renvoyer à COCOM l'ID du time-out dont il vient demander l'initialisation à une certaine valeur. Rôle Contenu de ID de la l igne - ID d u time -out 03 02 Rôle: Signaler l' a rrivée à 6ch~ance d 'un time- out Contenu: - ID de la ligne - ID du time-out El ~ ILS COLIG. 1 201 Rôle : Signaler le passage d'une ligne du niveau haut au bas niveau Contenu: - numéro de ligne 1202 Rôle : Signal er le passage d'une ligne du niveau bas au haut Contenu: - numéro de ligne 241 niveau fil COLIG ±_ COCOM. Contenu pour tous les messages : num é ro de • ligne 2301 Transmettre des informations sur la ligne et l'abonn é ap pelant 2302 Informer que l' envoi de la tonal ité d ' invïtation à pou r une ligne a été p o s itionn é . transmettre 2303 Transmettre un chiffre (Cont enu num er o de ligne et chiffre) 2304 Indiq uer que la réc eption p our une ligne est libér ée 2305 Informer que la saisie de l'appe l é es t terminée 2306 Avertir que l'appe lé vient d e décrocher 2307 Informer du raccrochage de l' ap pelant ou de l'appel é 2308 I nfo r me r du redécrochage d e l' appelé 2309 Informer que la ligne appelée est occupée 2310 Transmettre l'ID d 'un tim e -out (Con te nu du time -out). tl COCOM ~ num ér o de lign e et ID COLIG. Contenu pour tous les me ssages ID de la ligne. 3201 Demander donnée . de se pr épa r e r à recevoir d e s chiffres pour une 242 ligne 3202 Demander donnée. d'arrêter la réception de chiffres pour 3203 Demander de s a isir l ' appelé. 3204 Envoi de donn ée s sur l'abonné 3205 Demander la saisie de l'appelant 3206 Demander la libé ration des interlocuteurs 3207 Demander l a libé ration de l ' appelant fl COCOM + TAXAT . 3401 Rôle : demander la taxation d ' une communication Cont e nu - num é ro d e l'appelant num é ro de l'appelé heure/jour de début / fin de communication indicatif de taxation 243 une ligne 3.4.1 Introduction . Lors de l'implémentation du protot ype nous avons été confronté au prob l ème d u c hoix d'un système d ' exploitation en temps r éel . La maque tte étab li e dans l e~ analyses foncti onne ll e e t organique nou s perme tt ait de le construire nou s - même . Et d ' a u t r e par t , elle n o us servai t de base de référence pour la séle ction d ' un système d ' explo itation existant. Il va de soi q u ' il é t ait pl us simple pour nous d ' utiliser de tels sys t èmes, avec l'ai de d u pro fesseur Bruni n, nous avons entamé n o tre pros pe ction . Premièrement , le RTM 80, ce syst ème conç u et mis en place aux A. C. E .C . de Char leroi ne gérant que . 1 6 processus en paral l è le et son accès éta nt , par ailleurs, impossible fut e xclus . Deuxièmement , le iRMX 86 - 88 convenait idéa leme nt à notre app li cat ion mais ma lh eu r e u seme n t il ne fonctionne que sur une a r chite cture de type SBC co û tant très cher. I n fine, monsieur Pi erson nous a p ro p os é le syst~me XINU. Ce système convenait p l us ou moins bien comme support de notre application Il fut implémenté pour un micro-processeur LSI 11 et notre application de van t tourner sur u n Olivetti M 24 avec micro-proc e se ur I NTEL 803 6 , il é t it n é cessaire de porter XI1U sur cette machine . Ce syst è me arrivant un peu tard dans l'ann~e acad ~mique , il ne nous fut pas possible d e r é a li ser c ette opération . 244 3.4.2. 1 Gestion des proce ssu s. A. Schedulinn et context switchin • . ------------~--------------------~Dans cette partie, le lecteur trou v era une présentation des mécanismes de Xinu mis en oeuvre pour la réalisation du scheduling et du context switchirg . Il trouvera en annexe le détail des procédures utilisées à cette fin . A. 1 La table des processus . Le système garde toute s les information s concernant les processus dans la table des processus . Il y a une entrée par pro - cessus. La table des proces s us de Xinu est un tableau de NPROC entrées . ide nti fié pa r Chaque processus est un entier. La règle suivante donne la re lation entre ces nombres et la table des processus: Les processus sont référe n cés par leur identificateur , lequel est l'index de l'état d'information sauvé dans la table des processus. Les informations s a uvées sont: - ét at du processus, - priorité du pr oc essus , - registres de la machine , sémaphore si processus est en attente, - message envoyé au processus, - informations relati v es à la gestion du stack , - nom du processus , - nom bre i n i tial d ' argum e nt s , - adresse initiale du co de. 245 A. 2 L'état des processus. Le système utilise le champ pstate de la table des processus pour garder trace de se que f a it un proces sus. Cela lui permet , co n s é quemment , d'opérer u n con t - rôle sP.mantique des opérations réalisées sur ce processus . Dans Xinu , on dénombre 6 é tats : current , ready , receiving, sl e eping, suspended, et waiting . A.3 Sélection d'un processus prêt. Dans Xinu, la politique de sélection est la suivan t e: A cha qu e instant , le process u s de priori t é la plus haute é ligible au service du CPU est exécuté . Parmi les processus d'égales priorité, le scheduling opère en roundrobin . Par round-robin nous entendons que les processus sont sélectés l ' un ap r és l ' autre pendan t déterminé ; un quota de temps aprés leur exécution i l s sont rep l acés à la fin de la file d'at t ente . Les priorités sont des entiers que l ' utilisateur de Xinu doit at tribué à ses processus. Pour rendre la sélection d ' un nouveau processus plus rapide, tous les processus prêts sont rangés dans une l iste ordonnée selo n la priorité de telle sorte que le proc ess us de plus haute priorité soit p ris direc tement. ~~-La_suspension_et_la_réactivation_des _ processus. Il peut être trés utile de po uvoir suspendre un processus dans un système temps réel. consid é rer un nouvel étet Cela nous pour les processus: susp en du. De u x procédures sont utilisées: suspend. 246 amène à l'état resumé et C._La_cr é ation_et_la _t ermi naison_ des _ erocessus. La cr é ation est r é alis é e au moyen de la procéd ure create qui va cherch é une entrée libre dans l a t a ble des pr oces s u s , allou é un espac e pour l e st ack du nouveau pr oces sus . La terminaison se fai t par l'a pp el à la procédure kill . Cette coordination est r éal i s ée par l'ut ilisation de séma phores. attente, Qu a nd un processus v e ut se mettr e en le sys t ème le place dans un liste de p rocessus a s sociée au S P. maphore qui permet la mise en attente. ~e s proc é dures associ é es à la ma nipula tion d es séma phores sont wait et signal. Da ns Xinu , les sémaphores sont organisés da n s une · ta ble don t t age . chaque entr é e contient le chiffre de comp- Chaq ue s é maphore e st identifi é par so n index dans la table a p pelée semaph. E . Dia • ramm e des é tats des proc e s s us dans Xinu. ------~---------------------------------------WA ITING re sched RE ADY CURRENT resched suspend c re ate 3.4.2.2 Gérant de la Mémoire Le système d'exploitation XINU gère la mémoire d'une manière très simple. Deux types de b locs mémoire sont considéré s les blocs_ si mp les et les blocs de stack. Les blocs de stack sont d'une utilité interne au système d'exploitation XINU et sortent de notre propos . Les blocs de mémoire ~imple sont, par contre, à la base de la gestion me moire du système d ' exp loitation en temps rée l. Néanmoins, XINU gère ces blocs indé pendemment de la d é finition des q uatre types de bloc s étudiés au p oint 3.3.2.2 : le bloc de message , l e bloc de conte xte, le bl oc contrô le ur de tSche et l e bloc contrôleur de temporisation. On n e trouve donc dans XINU que deux primitives, GETMEM e t FREEMEM , allouant et désallouant un nombre de byt es donné . Il fa ut remarquer q ue le bloc de contexte manip ul é par le sy stème t e mps rée l, comme défini au point 3.3.2.2.B)b. perd de son ut il it é . En effet , XINU gère lui-même le sauvetage des registres. Seul donc le prem i er byte contenant le code de la primi tive sera maintenu . L'interface entre ces deux primi tives de XINU et les primitives du système temps rée l consiste à transformer les demandes d ' allocation et de désallocation d ' un t ype part iculi er de bloc mémoire en une allocation et /ou désa llocat ion d 'u n nombre de bytes co rrespondant au type de bloc référencé . Alors qu e le système t emps r éel prévoyait un partitionn emen t de la mémo ire en q ua tr e part i es c orre sponda n t chacune à u n type de bloc , ces quatre part ies étant gérées sous la forme de files chaînées , nous adopton s pour l ' implémentation une vue uniforme de la mémoire, vue que l'on retrouve dans XINU . Le s procédures de traitement d e s files de b locs de mémoire libre tombe nt en désuétude OTEBLC-QUE, MET -BLC-DEB - QUE et MET-BLC-FIN-QUE. 248 De plus, GETMEM est une fonction qui retourne l'adresse de début du bloc qui sera le pointeur prévu dans le syst~me temps réel • • OBT-BLC-MSG (pter - tâche) méthode : pter-tâche := GETMEM (64) • RET-BLC-MSG (pter-tâche) mé thode : FREEMEM (pter-tâche,64) • OBT-BLC-CTX (pter-tâche) mé thode : pter-tâche := GETMEM (2) . RET-BLC-CTX (pt e r-tâche) mé t hode : FREE1EM ( p t e r-tâch e ,2) • OBT- BLC-CTL- TCH (pt e r-tâche) mét hod e : p te r- tâ c he : = GETt1EM ( 1 2 ) • RE 'r - l3LC -CTL -TCI-I ( p t e r - t â che ) mé thode : FREE MEM ( p t e r-tâch e ,12) • OBT -BLC-CTL- TMP ( pte r-tâche ) mé thode : pte r-tâch e : = GETMEM (8) • RET- BLC-CTL- TMP ( pt er-tâche ) mét hode: FRE EMEM ( pte r-tâc he ,B) 249 3.4.2.3. Gestion des messages. ll Principe de la communication dans Xinu. Xinu offre deux systèmes de communication proces sus : un de bas niveau et un de haut niveau. entre Le système de bas niveau permet d'envoyer directement un message, mais avec l'inconvénient qu'il écrase tout message déjà présent. système de haut niveau utilise un pool tel que haut. Ce système convient mieux au prototype COLO/S pour plusieurs raisons : il permet une gestion de priorités de messages et il n'écrase pas un message déjà présent. décrit Le plus Le pool est en fait un ensemble de "ports", chacun étant assigné à un processus particulier. Les messages s'enchaînent à leur port destinataire. ~ Primitives d'envoi et de réception. 2.a) PSEND. Paramètres : PORTID: identifiant du port MSG : pointeur vers le bloc de message 2.b) PRECEIVE. Paramètre : PORTID identifiant du port 250 3.4.2.4 Gérant du Temps L'interruption hardware de base a li e u 60 fois par seconde c'est-à-dire plus ou moins toutes les 16,5 msec. Deux problèmes essentiels do ivent être régl é s (1) lors de l'implémentation, adapter les cycles de scanning pour l ' application e n fonction d'un cycle de base de 16 , 5 mse c contr e 10 msec auparavant ; ( 2) mod i fier la primitive SLEEP 10 offerte par XINU q ui ne permet comme unit é de temporisation que l e dixième de seconde . A) Cyc l es de Scanning On trouve l es de la conc eption au po int de 10 à 300 msec , sont abs olu e mais dénotent , en des différents scan nings . cycl es de scanning prévus lors 3 . 3.3.1 . A. Ces temps, allant peu repr ése ntatifs en val eu r val e ur relative , l es prio rit és Il s ' agit donc , a v e c une fréquence relative de base de 1 6 ,5 mse c, d ' é l aborer de nouv e lles périodes , en maintenant l es relations de p riorit é . La liste q ui suit donne pour chaq u e pr oc édure de scanning, sa fr~quc nc e d ' ex&cution lors de l'impl &me nt at ion . - scanning scanning scanni ng - scanning - scanning - sc a nnin g - scanning LIBRE de NUMEROTJ\TION de PRE-NUMEROTATION de POST-NUMEROTATION de CONVERSATION de PRE -CONVERSATIO N de PARKING : 251 165 msec 16, 5 msec 1 6 , 5 msec 16 , 5 mse c 495 msec 49 5 msec 1 65 msec B) Modification de la Primitive SLEEP10 Le corps de la procédure SLEEP10 gère le contrôle d'erreurs quant au paramètre, à savoir le nombre de secondes , et endors le processus demandeur. Lors de l'interruption hardware-de l'horloge, ce n'est pas SLEEP10 qui est exécuté mais bien une routine assembleur CLKINT qui , appe lle SLEEP10 tout es les 6 interruptions. Il suffit dès lors de supprimer ce décompte de sorte que CLKINT, qui est en fait une routine de service d'interruption, puisse, après avoir gérer sa file de timers et réveiller les processus en fonction des besoins, appeler SLEEP10, non plus tous les dixièmes de seconde , mais bien tous les soixantièmes de seconde . 252 3.4.3.1 I.L.S (Interface Lignes/Système) A) Introduction La conception du module ILS a eté dirigée par les données (Data Driven ) . Nous avons défini deux struct ur es de données logiques et indépendantes, BCL et SCAN (figure T43), pour lesquelles nous avons défini des opérations. Les seuls accès autorisés aux str uctures d e donné e s sont ceux définis à l'intérieur des opéra tions. Nous avons ainsi construit des structures connues sous le vocable "tvoes abstraits" . .... ....... .... ... ... . . ..-·· ... -·· .... -·· . ..-·· .... -··., ! -··-··-·-··-··-~-~--- -··-··-··-··-··-·•-"-! . . . . ... . .. .... .. ••1 i • O..!l. i1 : Q€JWll"r: ! Dl!: LA! !1 1,1 E>tlOIRt: l1 ....._, _____ ___ ,: : , BCI EtCL ,. ...............··1 B C•,S. 1 i SERVIC:CS Î i l \ DE: TEMF'5 1 :.__, ...... . . -··-··.' ! ' 111111111 llgnes fi,.gu,,-. T4'-3' : a truoture 11 BC'L, SC.AN et .BC'I BCL = Bl o c d e Contrôl e de Ligne s DCI = Bloc de Contrôl e Int e rne SCAN = Bloc de Contrôle d e Scanning Le pre mier t ype d e données pour leque l nous avons spécifié un type abstrait concerne les fréquences des différentes proc é dures de scanning, une procédure de scanning corre spondant , comme on le sait déjà, à une éta pe d e la conversation. Sont concentrées dans ce module SCAN les relations avec la partie du systè me d'exploitation offrant les services de temps . 253 Le second type de données, beaucoup plus complexe , regroupe toutes les donn é es contrôlant les lignes elles-mêmes et reprend toutes l es relations directes avec le module Contrôleur de Lignes COLIG. Les relations avec COLIG nécessitent les services du Gé rant des Echanges . Pour l e bon fonctionnement de ce module BCL, une structure de données BCI complètement interne à ILS est définie . Cette structure n'intervient d ' ailleurs que dans l'opération de sc a nning. .-·· -·· •.. -·· .............. -·· -··...•..-··-·· ....... , .... -·· .........., 1 COUCJ ----------------·-! I : ()..!i. ; O[JU«T l l 1' CE: u, l ......-..-..-.-. . M[ldOIRE : EHF1L Ellf-,L an. 1 t ! ! ! SE:Ti'.T CS B!il. EH NU. t-lX B NLP ···· -· ........,: 1 ; o.s. l ; s~~c:ts i 0t: 1 i T[Mf'II 1 1 l ~······-·•··... i -,,• ITTTilTTl figure SCAN SE'r.Z\T EHF IL, BSL BEL NLA NLP NX EH EB T44 . : 80'.U.s-atv..ot:u.reli , bloc d e s é tats s cannes : bloc d e s lignes r é f é renc é es EBFIL : lignes r é f é r e nc ée s aya nt subi de s é v é n e ments ha uts ou b as : bloc d e s sonne ri es bloc d e s é tats nive a u x de ligne a ntécédents : n i veaux d e ligne s pr é sents b loc d es é véne me nt s : bloc d e s é v é ne me nts hauts bloc des é v é n e me nts bas La structure de données BCL regroupe en fait plusieurs sous-structures tendant chacune au contrôle des lignes mais pour des caract é ristiqu e s différentes de ces dernières (figure T44). La structure BSL renferme les informations concernant les différentes sonneries et tonalités pouvant agir sur une ligne. BSL est modifié par deux procédures METSON et RETSON directement accessibles par COLIG via interruptions, ayant ainsi le statut de primitive ILS (figure T45). L'interface physique des lignes 254 accède directeme nt à cette structure pour positionner l'appel les tonali tés selon le déroulement de téléphonique. c;ou:;, o.:s. •end '12<11 '12-02: .--==~===~--.._ •end e Gr::RJ.HT OE J...\ ~IENùRE !~- -·· -·· -· -·-·· ! -·. ----1. l.. -..... . ........ . . .: '' : : ' '' : •·· -·· •.. -·· -··...... . .' '' ' BSL ..._,___.__t,I..P_.__.· r=. "l--P9m-,-,oo;:i-n-• E:?: n .f'-~11'.-'--re T45 : -in tr~rfucea L 'i nf orma tion v éh icul ée sur l es li g nes est pureme nt binaire et cor respond à de ux niv ea ux e n logique positive, haut et bas , q ue l'inte rfac e physique vient positionner dans un ve cteur NLP ( Nivea ux de Lignes Pr é s en ts) (figure T44) . Il est nécess aire, pour pouvoir déce l er un changement de niveau sur une ligne , de cons er ve r les niveaux de lignes e nr eg istr és au préalable pour p ouvo ir l es compare r à c eux d u v e cteu r NLP. Le s Niveaux de Lignes Antécéd en t s sont mémorisés dans un vecteur NLA . Comme on l e sait, l'avancement d'une conversation téléphonique correspond à des act ivités différ ent es sur une ligne. Ces activités diffère nt de par l e ur fréquence, l eur si gnifi cation, l e ur traitement et perme tte nt de définir ainsi des états logiques po ur les lignes. Pour chacune d'entre elles , son é tat logique est mainte nu dans une ma t rice BEL ( fig ure T44) à laqquelle n' a accès que COLIG par le biais de deux primiti ves CHANGETAT et QUELETAT (f igu re T45). La structure BCI très particulière ( figure T44) est définie fonctionne ll eme nt par ses relations avec la structure BCL et autres primitives. La seule opération de scan n ing peut y avoir accès . 255 B) module SCAN La structure SCAN consiste en une table à une dimension d'une longueur égale au nombre d'états possibles dans le système c'est-à-dire 7. Les fréquen c es de ces états sont rangées par ordre croissant dans la table pour une facilité de programmation. 0 <= f (= f <= ... <= f 2 n Une fréquence relative de base définie de la manière suivante : 1 MIN est MIN = ( f -f f (=0 et 1 (=i<=n i i-1 0 La seule opération ayant accès à la structure SCAN est l'opération d e programmation de scanning PGMSCAN . Cette opération est en fait un processus du système qui se r é veille et est exécuté chaque fois qu'une période de temps correspondant à la fréquence relative de base est écoulée . Ceci est réalisé grâce à la primitive SLEEP (MIN) du Gestionnaire de Temps . Les procédures de scanning dont le cycle se termine à ce moment sont déterminées et activées et cela, ind é pendemme nt de leur nombre, de leur fréquence et de la fréquence d'horloge. L'activation prendra forme une fois que l'information sera passée par vecteur à une procédure SCANNING du module BCL (fi gu re T46) . C) module BCL La structure BCL consiste en une matrice de vecteurs d'une longueur égale au nombre de lignes dans le système. Ces vecteurs sont regroupés en quatre sous-matrices distinctes - NLP un seul vecteur qui informe au moyen d'un bit par lign e du niveau de la ligne lors de l'exploration en cours; - NLA : un seul vecteur qui informe au moyen d'un bit par ligne du niveau de la ligne lors de l'exploration précédente; - BSL : un certain nombre de vecteurs égal au nombre de sonneries/tonalités possibles dans le système. Chaque ligne ou vecteur de cett e sousmatrice représentant une sonnerie/tonalité a le nième bit à 1 si son appareillage hardware est 256 connecté à la nième li gne. Une col on ne de cette sous-matrice représentant une ligne peut s oi t ne contenir que des bits à 0, soit e n contenir un seul à 1 et tous les autres à O; - BEL : un certain nombre de v e cteurs égal au nombre d ' états possibles pour une li gne dans le système. Chaque ligne ou vecteur de c ette s ousmatr ic e représentant un éta t de ligne a le nième bit à 1 si la nième ligne se tro uv e dans son état . Une colonne de c ette sous-matrice représentant une ligne de vr a touj our s cont enir un et un seul bit à 1 et tous les a utr es à O. C0LIG 10 ... NLA 3 ~ I}- S:ETA.T f- -· 2 --~ 7 I} e SCAJ,I EB EH -~ N LP ~E~OIRE: EHFIL a--; a . g E:BFIL Bl::L GESTI0l',1 1 , f-- SER\JICE!S DE TE.,.PS .•. NX p:gv:re T46 : s:cn,1:n,ing 1 . pgmscan 2. exclor (nla,nlp , nx) 3. conjonc (nl p,nx , eh ) 4. conjonc (n lp , nx,eb ) 5. ega l (nl p , nla) 6. grouplg (scan, se tat) 7 . conjonc (se tat , eh , ehfil ) 8 . conjonc (s etat , eb , ebfil ) 9 . send (1 201) 10 . send (1202) Le d'opérations : module BCL comprend cell es relat ives au scann ing ; - ce l les relatives aux accès BSL ; - c el l es relatives aux accès BEL . 257 trois types a.- Scanning Ces opérations expl orent toutes les lignes dans les états (0, 1 ou plusieurs) référencés par un vecteur en provenance du module SCAN . La procédure envoie au module COLIG un message 1201 pour chaque événement haut détecté sur une ligne et un message 1202 pour chaque événement bas détecté sur une ligne. Cet envoi de mesages est rendu possible par les appels suivants de primitives du système d'exploitation: GETMEM et PSEND. L'opération complète décrite via un exemple au paragraphe suivant, utilise de nombreuses procédures (EXCLOR, CONJONC, EGAL ) permettant des manipulations combinatoires sur des vecteurs ayant un nombre de bits égal au nombre de lignes dans le système. Il existe également une procédure qui regroupe les lignes se trouvant dans un des états scannés (GROUPLG) . Finalement , l'envoi de messages mentionné plus h aut , sera fonction de la valeur de c e rtains bits (VALBIT) . Voici à présent un exemple basé sur un système comprenan t 5 lignes pouvant se- trouver dans 3 états possibles . La situation initiale est la suivante la la la la la ligne ligne ligne ligne ligne 1 dans l'état 1 i 2 dans l' é tat 2 3 dans l' é tat 2 i 4 dans l' éta t 3 i 5 dans l'état 1 , . Un nouveau cycle d'une fréquence relative de base arrivant à terme, une explorati on des lignes se trouvant dans les é tats 1 et 3 est sollicitée. La séquence des opéra tions est la suivante (figur e T47): 'GMSCAN / 1 / 0 / 1 / ;CANNING 258 ----------NLA /1 / 0 / 0 / 1 / 0 / L ~X CLOR (NLA,NLP,NLX) ~ NLP --------------------/ 0 / 0 / 1 / 1 / 1 / --------------------- NX ( i ) = 1 si un événement a eu lieu sur la ligne i OUexc NX ï-~-ï-ô_ï_~_ï_ô_ï_~_ï ----------NLA /1 / 0 / 0 / 1 / 0 / L :ONJONC ( NLA , NX , EB) ~ EB ( i) = 1 si un événement BAS a eu lieu sur la ligne i NX --------------------/ 1 / 0 / 1 / 0 / 1 / ET EB ï-~-ï-ô_ï_ô_ï_ô_ï_ô_ï ----------NLP / L :ONJONC ( NLP , NX , EH ) ~ 0 / 0 / 1 / 1 / 1 / NX EH ( i) --------------------/ 1 / 0 / 1 / 0 / 1 / --------------------- = 1 si un é v énemen t HAUT a eu lieu sur la ligne i ET EX ï_ô_ï_ô_ï_~_ï_ô_ï_~_ï NLP / 0 / 0 / 1 / 1 / 1 / NLA ( i) = 1 = ~GAL ( NLP , NLA) ~ NLA / 0 / 0 / 1 / 259 1 / 1 / si le niveau présent de la ligne i est HAUT ET BEL SCAN / / 1 / / 1 / 0 / / 0 / 1 / 1 / 0 / 0 / / 0 / / 0 / 0 / 0 / /0/0/0/1 / 1 / /0/0/0/1 /1 / 0 / 0 / 0 /1 /0/ 0 / 0 / 1 / 0 / 0 / /0/ OUinc ~------- uROUPLG ( SCAN ,S ETAT ) SE'rA'r ( i) = 1 si l'état dans l eq ue l se trouve la ligne i est exploré SETAT ~ / ~-~-~-~-~-~-~-~-~-~-~ 1 / o / o / 1 / 1 / --------------------- SETAT L EH --------------------/ 0 / 0 / 1 / 0 / 1 / CONJONC (S ETAT , EH , EHFIL ) EHFIL ~ï_ë_ï_ë_ï_ë_ï_ë_ï_~_ï ~-~-~-~-~-~-~-~-~-~-~ EHFIL ( i ) = 1 si un é v énement HAUT a eu lieu sur la ligne i ET ET que celle-ci se trouve dans un é tat s c anné SETAT L EB --------------------/ 1 /0/0/0/0/ ~ --------------------- : ONJONC (S ETAT , EB , EBFIL ) ~ EBFIL ï-~ _ï_ë_ï_ë_ï_ë_ï_ë_ï 260 EBFIL(i ) = 1 si un é v énement BAS a eu l ieu sur l a li g n e i ET ET q ue celle -ci se trouve dans un é tat scanné EHFIL ___.-->tl o ! o ! SEND -------(1201,L IGNE 5) 1 / o / 1 / 0 / 1 / --------------------EDFIL _-:,,! -------- SEN D (1202,LIGNE 1) ft.g·u·N1 0 / 0 / 1 / --------------------- T'-41?' : 1~. f o'.11.<Jt:ir.m. SCANNl"N'C! a.o tw .,, ;p,a.:r l.a .fo,..,ot((n1, Pl1M~SCA/tl b.- Accès BEL L ' opération CHANGETAT perme t à une ligne de passer d ' un éta t dans un autre. L'op é ration QUELETAT permet de conna !tre l' é tat d 'une ligne donnée . Ce s de ux p roc éd ures accèdent directement aux bits de la ma tric e BEL pour l es mod if i er (UNDIT, NULB IT) ou s impleme nt e n conna!tre la val e ur ( VALBIT ) . CHANGETAT contr8le a u ss i ces accès (RETETAT ) ( f i gure T48 ). c.- Accès BSL La procédure METSON activ e une sonnerie sur une li gne , t andis q ue la p roc éd ur e RETS ON réalise l'opé ration inverse en désacti van t une sonneri e s u r une ligne . 261 QUELETAT H>WGITA AETE:TAT POWER POWER figur,e T4B POW'ER PO'fVER : pri-rnitive-s- d'a,oces a. BEL Ces deux procéd u res posi t i onnen t (1 o u 0) les bits de la matrice BSL ( UNBIT, NULBIT ) ( f i gure T49 ). -_r-- ME"TSON [ RETS •ON] UNBrr [~~~~~] d . - Procé d ures u ti litaires CONJONC effectue en ET logique e n tre de ux vecteurs ayant un nombre de bits éga l au nombre de lignes dans le système . INCLOR effectue en OU inclusif l ogiqu e e n tre deux vecteurs ayant un nombre de bi t s égal au nombre de lignes da n s l e système . EXCLOR effectue en OU exclusif l o g i q u e ent re deux vec t eurs ayant un nombre de b i ts égal au nombre de lignes dans l e système . EGAL affecte la valeur d ' un ve c teur ayant un nombre de bits égal au nombre de l ignes dans le système à un a utr e vec t e ur répondant aux mêmes caractér i s t iques . VALBIT retourne la vale u r un entier . 262 ( 0 ou 1) d 'u n bit dans UNBIT affecte entier . la valeur NULBIT affecte entie r. la valeur 0 RETETAT d 'u ne t raiteme nt d ' éta t. changement 263 1 a' un bit ' êl un erreur bit dans un dans un lors d ' un 3.4.3.2 COL IG. A. Architecture fonctionnelle de l'automate COLIG. ------------------------------------------- ,------, 1 COCOM 1 1 -- --~--1 \ \ envoie chiffre détecté \ \ \ \ processus \ processus effectuant représentant un time-out de 200 millisec. envoietrnsa r---e_x....!_p J.. ra i o ri l COLI G chiffres pour une en vo i e msg 1201 , 1 202 (état 3 colig) tue crée rocessus de __ ontrôle des ignes ---""'--~ Automate le traitement des déclenche en fct de la lecture Super vi seur de l'automate COLIG 1 1 •·- - - - - - - - - - - - - - - - - -- _______ l ect ure file d'attente des messages destinés à CDLIG 264 1 ..J1 Cette architecture est soutenue par une table qui permet à tout moment de connaître pour une ligne appelante ou appelée: - l ' identificateur du processus COCDM qui gère la communication . - l'identificateur de la file d'attente des messages destinés à ce processus COCOM. - l ' é tat de CDLIG. l'identificateur d u process us qui est chargé de la réception des chiffre s . - le numéro de l ' appelé. Cet te table est construite avec une borne dynamique ce qui permet de traiter un nombre de lignes non prédéfini . Identificateur du proce s sus COCOM Numéro ligne appelante . Identifie. du po rt de COCDM Etat COLIG . bor ne . -+: dynamique _ ldentificat du processu3 de r écep t. des chiffre , in d icateur de disponibilité lde l'alu é ireBl 1qne a . Nu mé ro lign e appelé Etat Cocom . Lorsqu'une communication se termine, les éléments la concernant enregistrés dans la table peuvent être remplacés par ceux qui se r ap p o rtent à une communication future. L'indicateur de disponibilité permet de repérer une lign e d u tableau contenant de tels él ~ments . B. Automate COLIG. B.1_Supervision_de_l'automate. Contrairement à l'automate COCOM, COLIG a besoin d'être supervisé. En effet, la file d'attente de ses messages contient des informations qui se rapportent à différentes communications pour lesquelles COLIG aura d es états différents. Ils seront gérés par SUPCLG dont voici l'organigramm~ 9 lecture du premier message de la file d'attente 1 état présent de COLIG pour cette ligne? ~ 0 : numéro du msg lu 7 = = --, = = 1201 placer COLIG dans l'état 1 0202 : placer COLIG dans l'état 14 autre chose erreur détectée __., = oui non placer dans l'état 2 erreur détectée L.. ~ = 2 oui non - placer dans l'état 3 -mémoriser ce no msg en vue du traitement de la réception de chiffres 266 erreur détectée = 3 numéro du msg lu? -) = 0201 -, = 3202 placer C0LIG dans l'état 15 placer C0LIG dans l'état 4 tuer le processus qui traite l a réception de chiffres = 1201 = = : erreur détect ée non pl rlcer dans l'état ~ = autre chose 4 oui ---t ou 1202 : envoyer le message au processus qui traite la réception de chiffres erreur détectée 5 non oui placer dans l'état 6 erreur détectée ---~ = 6 non oui J placer dans l ' état 7 267 erreur détectée non OUl. placer COLIG dans l'état 8 = 8 erreur détect é e numéro du msg lu? _., = 3 t!07 placer COLIG dans l'état 9 • = 1201 placer COLIG dans l'état 14 3206 placer COLIG da n s l ' é tat 11 = 4= = autre chose erreur détectée 9 oui non placer COLIG dans l'état 10 erre ur détectée ~ - ----·· = 11 oui non placer COLIG dans l'état 12 2 68 erreur détectée = 13 oui placer COLIG dans l ' état 8 d~clencher COLIG avec son nouvel état i 0 269 erreur détectée B.2 Automate COLIG . Etat? i--- = - 0 rester en supervision nombre de communication - chez l'appelant courant+ - la sonneri e création et exécution d'encombrement d'un processus COCOM - création de la file d'attente de messages correspondant au processus créé - enregistrement des ide ntificateurs dans la table - placer la ligne dans l'état PRENUMEROTATION - activer le scanning pour cet état - enclencher envoyer le message 2301 - repasser en supervision 270 - repasser en supervision ___.., = 2 1 - placer la ligne en l'état NUM EROTATION - activer le scanning numérotation - désactiver le scanning pré numérotation - enclencher chez l'appelant la sonnerie d'invitation à numéroter ~ = - envoyer le message 2302 - repasser en supervision 3 désactiver la sonnerie d'invitation à numéroter - créer et exécuter le processus de traitement de la réception des chiffres - ~ repasser en supervision =4 placer la ligne appelante dans l ' état postnumérotation - activer le sca nning postnu mérotation désactiver le scanning numérotation - envoyer le message 2304 - repasser en sup ervi sion . 2 71 = 5 ov, enclencher la sonnerie - envoyer le msg 2309 appelé - enclencher l'écho de repasser à la supervision sonnerie - envoyer le message 2305 - repasser e n supervision _ _ _____._ ,. = 6 1 désactiver la sonnerie de l ' appelé - placer la ligne appelée dans l'état conversation - enregistrer dans la table le numéro appelé en communication avec le numéro appelant • 1- ~ - envoyer le message 2306 - repasser en supervision = 7 1 désactiver l'écho de sonnerie - placer la ligne appelante dans l'état conversation - repasser en supervision 272 ___,, = B 1 - envoyer le message 2307 - repasser en supervision - co n sulter la table pour en retirer --~ = 9 l les ide n tificateurs de COCOM et la file d'attente correspo n dant à l a ligne - tuer le processus COCOM et la fi le d'attente - décrémenter le nombre couran t de communication - rendre l'élément de la table disponible - place r la ligne appel a nte dans l ' état libre - placer la ligne appelée dans l'état parking - = repasser en supervision 10 1 placer l a ligne appelée dans l' é tat libre 273 = 11 - - - - - - - - - 1 idem que 9 en inversant appelant par appelé et a ppelé p ar appelant ~ = 12 -----1 placer la ligne appelante dans l'état libre = 13----1 = 14 = - envoyer le message 2309 - re p asser en supervision -------.1 pr oc ess us C0C0M - créer un - envoyer le message 2310 - placer l ' automate d ans l ' état 4 15---~1 - détruire C0C0M et file d'attente - décréme nte r le nombre de communica- tion c o ur ant - re nd re disponible l'élément de la table - placer la ligne appelante dans l'état libre 274 3.4.3.3 COCOM. y lecture du premier mes sage de la file d'attente 1 ( é t a t présent de COCOM?) = 0 numéro du msg lu ? =- 2301 placer COCOM dans l'état 1 gota RECURSIF ~= 2310 placer CO[OM dans l'état 12 goto RECURSIF • = = autre chose erreur détectée consultation de la base de données pour voir si un numéro d'appelé est déterminé OV1 placer COCOM dans lire msg file d'attente l'état 4 goto RECURSIF placer COCOM dans l'état 2 goto RECURSIF erreur détectée =2 - création d'un processus qui s'endort 24 secondes, au réveil il envoie au COCOM qui l'a déclenché un msg (0302) Cette création est une simulation d'un déclenchement d'une réception de msg (ici le chiffre) qui n'attend celui-ci que 24 secondes (primitive non fournie par XINU) - lecture du message de la file d'attente numéro du message lu? = 2303 placer COCOM dans l'état 3 goto RECURSIF ~ = 0302 placer COCOM dans l'état 16 goto RECURSIF 276 = 3 00; analyser les 3 enregistrer les chiffres reçus avec mise à jour des time-ou t qui consiste en une alter nance de destructio création du processus time-out de 24 secondes. premiers chiffres reçus , ____, 3 cas : formation d'un n° prédéterminé <' l formation d'une heure de réveil --- - -· ·-i- nbre de chiffres~ nbre de chiffres encore à recevoir -placer -~ - formation d'un n° d'appelé l 1 t l C01~-• -M-- ---_-p-_l_a_c_e_r~l-C-•-C-•-M---- _-a_c_c_e_'s-1tà dans l' é tat 15 - go to REC URS I F dans l'état 17 -goto RECURSIF la BD pour voir si l'appelé ne do pas être dérou vers un autre numéro . IVON - pl a cer COC OM d a n s l' é ta t 18 - go to REC URS I F - p l a c e r COCOM d a n s l'état 19 -goto RECURSIF - envoyer le msg 320 2 - lire le message sui v ant de la file d'attente 1 \ numéro du message lu ? ' ~ = 2304 = 2307 J . placer COCOM dans l'état 4 goto RECURSIF : placer COCOM dans l'état 20 goto RECURSIF = autre chose : erreur détectée = 4 envoi ldu message 3203 1 lecture du msg suivant de la file d'attente numéro du message lu? = 2305 placer C0C0M dans l' é tat 5 goto RECURSIF = 2307 placer C0C0M dans l'état 20 goto RECURSIF -4= 2309 placer C0C0M dans l'état 21 goto RECUR SIF erre ur détect é e - autre chose 1--- = 5 ------ 1 envoi du message 32 04 1 lecture du message s uivant num éro du message lu? = 2306 placer C0C0M dans l'état 6 goto RECURSIF = 2307 placer C0C0M dans l'état 20 goto RECURSIF = autre chose . e r reur détectée --JJ= 6 1 t envoi du message 3205 lecture du message suivant placer C0C0M dans l ' état 7 erreur détectée n° accroché n° de ligne contenu dans le message 2307 goto RECURSIF --~= 1-------envoi du message 3401 1 lecture du message suivant placer C0C0M dans l'état B erreur détectée goto RECURSIF ~ ~ B ------~ envoi du msg 3207 279 envoi du msg 3206 ----, = 9 1 - positionnement d'un time-out de 90 secondes - en voi du mes s age 3402 - lecture du message suivant numéro du message lu ? = 2308 placer COCOM dans l'état 11 goto RECURSIF = 4 301 placer COCOM dans l'état 1 0 goto RECURSIF = autre chose = erreur détectée 1 0 - - - - -..... l envoi du mes s age 3206 = 11 ------, i destru c tion du processus qui assure le time-out de 90 secondes placer COCOM autre chose : dans l'état 7 erreur détectée goto RECURSIF 280 ~ = 12 accès à une table à deux dimensions n° de ligne n° du processus time-out de réveil - - - -- -- - --- - - - - -- - -- - -- - ----! on extrait le n° de ligne qui correspond au n° du processus qui a été déclenché lors de la demande d'un réveil l envoi du message 3204 placer C0C0M erreur détectée dans l'état 13 goto RECURSIF = 13------- -1- envoi du message 3204 placer C0C0M erreur détectée dans l'état 14 goto RECURSIF 281 = 14--------. L envoi du message 340 1 erreur détectée placer COCOM dans l'état B n°appelant = .0 goto RECURSIF = 1 5 - - - - - --, t enregistrement du n° prédéterminé dans la B. D. envoi du message 3207 ~ = 16 ---------1 envoi du me ssage 3207 ~-~= 17--------, l enregistrement dans la table de l'identificateur du processus et du n° de l'appel a nt envoi du message 3207 282 = 18 _ _ ___,1 extraction de la B.D. du n° vers lequel on doit dérouter l'appelé conversion en n° de ligne envoi du rnsg 3202 numéro du message lu? = 2304 placer COCOM dans l'état 4 goto RECURSIF = 2307 placer COCOM dans l'état 20 goto RECURSIF = autre chose erreur détectée = 1 9 - - - - !. enregistrement de l'heure à laquelle est effectué l'appel et le numéro d'appel de l'appelant envoi du msg 3202 numéro du message lu? = 2304 placer COCOM dans l'état 4 goto RECURSIF = 2307 placer COCOM dans l'état 20 goto RECURSIF = 283 autre chose erreur détectée = 20 - - - - - - - - - , envoi du mess a ge 3 206 = 21 - - - - - - - - - - - , rechercher da ns l a base de données s ' i l existe d'au t res numéros d'appelés pouvant se substit u er au premier non placer C0C0M 1 placer C0C0M dans l'état 4 dans l'état 20 goto RECURSI F goto RECURSIF REMAR4U E sur l ' é t a t d e cocom = 8 Cocom possède deu x v a ri a bles q ui s ont le nu mé r o de li g ne AP PELE e t le num é ro de l i gn e AP PELANT afin de p ouvoir les diff é renci e r lors du raccrocha ge d e l'un des deux abonnés. 284 3.4.3.4. Taxation . Ce module ne subit pas d'adaptation importante, si ce n'est qu'il utilise une base de données sous forme de tableaux au lieu de fichiers sur disque si le contrôleur de device n'est pas disponible dans Xinu . 3.4.3.5. Base de données. Xinu n'offre qu'une gestion de fichiers très simplifiée. Il n'y a que des fichiers séquentiels. Cependant les procédures de bas niveau de gestion des tables de référence des fichiers sont très bien documentées et pour cette raison il a été possible d'écrire une gestion de fichiers s équent iels indexés. Le texte de ce programme est listé dans les annexes et chaque procédure est bien documentée par elle-même. 285 CONCLUSION Dans ce mémoire nous avons voulu aborder un ensemble de questions concernant les réseaux c ommutés que nous avions peu ou pas approfondies au cours de nos études. Ai nsi nous avons dû nous plonger dans des domaines tels que la th~orie des automates, les te c hniques du temps réel et la gestion avancée de processus parallèles; tous ces probl~mes devaient être éclaircis pour une bonne compr éhe nsion de la commuta tion elle-même . L ' ét ude de cette de rni è re nous a ensuite amenés ~ l ' analyse des méthodes de signalisation et de connexion num2rique . Enfin , nous voulions égaleme nt réaliser un prototype de commutateur c er te s réduit dans ses dimensions, nais reprenant tous l es outils th-oriques abord és pr é c édemment . Lorsque l ' heure de réd i ger est venue , nous avons délib6r~ment o p t é rour une str11cture r e flétant la s ucc essio n chro nologi q ue des différe ntes 6t pes de nos investigations . des fondements théoriques est L ' étude reprise dans l es deux premiers chapitres. Le chapitre un brosse un tableau de s différents aspects des réseaux , avec une attention toute particulière aux réseaux commutés . Le deuxième chapitre se concen t re sur les commutateurs qui sont les noeuds de ces réseaux . Le chapitre trois est une ùnalyse complete d ' un commuta teur téléphonique local que nous avons conçu sur les base s de commutat eurs existant actuellement sur le marc1é . UnG expérience pratique de l ' un de ces derniers nous a été fournies par la firm e Ericsson à Ri jen et Zwijndrecht , à l ' occasi o n d ' une v isite agrémentée d' expos é s techniques . Pour terminer , l a réa li sation de ce mémoi re nous a apport é le bénéfi c e de l ' ét ude de d omai nes relativement no u veau x pour nous , ai nsi q u' une approche concr~te d ' une branche de l'informat i qu e riche de promess es pour l' aven i r . BIBLIOGRAPHIE Conception des Syst ~me s AMIRCHAH'Y, M. , NEEL, D., La r épa rtis, I. N. R. I . A., 1979. COLLECT I F LORRAINS , Réseaux 1 9 7 9. tél éi nformatiques, The XINU approa c h , COMER , Douglas, Operating System Design Prentice-Hal l, 1 96 7. FREEDMAN , A. L ., LEES, R . A., GLOWINSKI , Albert , GRIES , David, Hachette, Real-Time Computer Sys t ems, Edward Arnolrt, 1977. groupe de Té l écommunic at ions Dunod, 1 980 . : prospect ive , Objectif 2000, Compiler construction for d i gital J.tviley and sons , 1 97 1. Comput ers, GRI NSE C, La Commutation électronique, vol .1 : Struct u re de systèmes spatiaux et t emporels , Eyrolles , 1 984 . GRINSEC , Logiciel , La Commutation é lectroniqu e , vol . 2 exp loit at ion et mai nt enance , Ey rolles, 1984 . LI STER , Andrew M., Principes fondam e ntau x des d'Exploitation, Eyro l les , 1984. Système s MACCIII , César , GUIL BERT , Jean-François , t é l éinformatique, Dunod , 1 98 3. MARTIN , J ames , Design of Real-time Prentice-Hall , 1 96 7. MEINADIER , Jean-Pie-rr e , Structure et Ordina teurs, Computer Systems, Fonctionnement des La ro usse, 1 971 . Langage KERNIGHAN, Bri an W. , RI TCHIE, Denn is M. , le Masson, 1 984. C, KNUTH, Don a l d E ., The Art of Computer programming, vol.1 Fundame n ta l Algorithms , Addison -Wesley , 1975 . KNUTH, Donald E ., The Art of Computer programming, vol.2 : Sort ing and Searching, Addis on-Wesley, 1975. Numé ro spéci al sur l e Central numérique Système 12, Re vue de s Té l écommunic at ions, vol.56, nros 1 , 1 981. Numé ro s pé ci al s ur l e Réseau numérique à Intégration de Services, Rev ue des Té l é communic a tions, vol.5 6 , nr os 1, 1981 • F Id. d L T r s l J I I lj f- ns IT A lF1[ ~i I\ 0 T I ff - u r,I': [ !)L L A fJ P. 1 X - N M; ufl ( 13 E L G 1 ~ uL ) J~;:~T[TllT D ' lf;H!Hti/1T!CLJE ' COMMUTATION NUMERIQUE ET TEMPORELLE Torne Trois Annexes PromJteur J . '~.5n1oi . e pré s enté par U.r unin f'-':,1 rc EVRARD q u dy VANGA VE fl Be noît TRIG AUX e n vue de l ' obtent i on d u lJrade de LI CENCIE E r MA IT RE EN I NFORMATIQUE /l, :'I.: ~!E E. AC/d l r-11 [J lJ E 1 9 tl 4 - 1 :1 tVi TABLE DES ANNEXES. 1. Listings des programmes en C du prototype COLO/S. 1.1. ILS. 1 . 2. COLIG. 1.'3. COCOM. 1.4. TAXAT . 1.5 . SG FI (Système de Gestion de Fichiers Indexés). 2. Caractéristiques essentielles des systèmes étudiés. 2•1• RTM -80 . 2 . 2 . iRMX 80/88. 2. 3. Xinu. ?•4• Autres. 3 • Carac téristiques essentielles des langages étudiés. ) • 1 • Chill. 3. 2 . PLEX. ) • J • C. 4. Errata (conce rnan t les deux premiers tomes). 5. Complément de bibliographie. Aute urs des annexes 8 . Trigaux : 2.'3 ., 1.1. R.Vangaver: 1 .2,1.3,2.1,2.2. !'Il .Evrard 1.4,1 . 5 , 2.4,3,4,5 . Annexe 1 Listings des programmes en C du prototype COLO/S. Annexe 1 .1 I L 5. NOUVELLE VERSION ILS SANS MODULE TABLE DES STATUTS 03/05/8 !***************************************************************************** ****************************************************************************** CONSTANTE S DU SYSTEME fic hier SWITCH.H [ J ***************************************************************************** •****************************************************************************! t define -. def i ne f def i ne 1detine NBRLIG BITINT NBETAT NBRSON t def i ne :l def i ne nbrintCa,b) nbrbitca,bl 500 16 7 ? I* nombre de l 1gnes dans le systeme *I I* nombre de bits par entie r - depend ar, t de la I* nombre d'etats possibles pour une ligne ·lU I* nombre de sor,ner i es dans le systeme *I Ca%b -- 0) Ca%b -- O> ? -::> Ca/b) (bl machine *I Ca/b+l> (a%b) '********************************************************************~******** ~***************************************************************************** MODULE TABLE DE PROGRAMMATION [ fichier TABPRG.C J ***************************************************************************** ~****************************************************************************! 1i nclud e <switc h.h > '* (· CON STA NTES / '* frequences de program mat ion exprimees en nombre de pulsations relatives ou en nieme de secondes pour les scannings NUMEROTATION PR E_NUM EROTATION POST_NUMEROTATION LIBF:E PARKHJG PRE CONVEF:S AT ION CONVERSATION ': / 1d efine .f def i ne -l def i r,e ·ldefine t def i ne i def i ne CJ define FRNUM FRPREN FRPOSN FRLIBRE FRPARK FRPREC FRCONV 3 3 6 6 -i detine MIN 1 1 1 1 I* frequence relative de base *I TYPE ABSTRAIT TABLE DE PROGRAMMATION ~- / s tatic int frequence CNBETATl = { FRNUM, FRPREN, FRPOSN, FRLIBRE, FRPARK, FRPREC, FRCONV} «'****************************************************************************' !***************************************************************************** PGMSCAN Se reveille periodiquement pour programmer le scanning des lignes se trouva n t dans le ou les etats references periodiquement. **************************************************************************** p gmscan <> { int i static int frcompt = 0 ; static int scan tNBETATJ extern scar1nin9 <>, sleep for (; ; 1 Cl { s leep <MIN> frcompt for I* compteur du nombre de freq uences *I I* interface ave c le module BCL * I += MIN <i=O;i <NBETAT;i ++J scantiJ = ((frcomp t scanning % frequence[iJI -- 0) ? (lJ (0) (sc anl } ) !****************************************************************************' ********·********************************************************************** t MODULE BCL fichier BCL.C J *******************************************************************~******** *****************************************************************************' ttinclude <switch . h > 14inc1Ltde <stdio.h > ttdefine -1 SYSERR '* TYPE ABSTRAIT BCL *' static unsigned int static static static static int int int int unsigned unsigned unsigned unsigned bel (nbrint(NBRLIG,BITINTJ * 12+NBRSON+NBETATJJ *nlp '* n i veau present des lignes*' *nla '* niveau antecedent des lignes*' *bsl CNBRSONJ bloc de controle des sonneries*' *bel (NBETATJ bloc de controle des etats *' '* '* '* INITIALISATION DE BCL *' initbcl <> { int i unsigned '* int *init ; initialisation des pointeurs*' n l p = &: bel COJ; nla = 1k bel (nbrint<NBRLIG,BITINTIJ; for I i=O; i <NBRSON; i ++ J bsl (iJ = 1k bel [(2+il*nbrint<NBRLIG,BITINTJJ fcr(i=O;i<NBETAT;i++J bel Cil = 1k bel [12+NBRSON+ i l*nbrint<NBRLIG,BITINTJJ ' * initialisation des lignes dans l'etat libre*' for(i=O, init=bel(OJ; i<nbrint I NBRLIG,BITINTI; i++I *<init++) = ··o ; } '****************************************************************************' ' ***************************************************************************** SCANNING Effectue le sc:annin9 sur toutes les lignes dans le ou les etats references et envoie a COLIG un messa9e 1201 pour chaque evenement haut detec:te sur une ligne et un message 1202 pour c haque evenem~nt bas detecte sur une ligne. *****************************************************************************' sc:ann in g lsc:an) int scan tNBETATJ { unsi9ned int tab (6 * n b r i nt< NBRLIG,BITIN T )J ~-----~~-- --- --~-·---- ~ - - - - - - - - - -- - - - - - -- - - - - - - - c:har *cpter e x ter n extern extern extern extern I* initialisation des pointeurs = = = = B,; = B.: tab [0 -lltab [ 1 B,; tab [2 B.: tab (3 * = B.: tab [4 nx eh eb setat ehf il ebf i l I* int pcolig; c:har *getmemll psend ( 1 exc 1 or ( 1 , conjonc<I, eqal(J unsigned int valbitll B.: tab [5 * * * * nbrint nbrint nbrint nbrint nbrint nbr i nt grouplg<>, pasmem 1) *I I NBRL IG, _BITINTI J INBRLIG,BITINTl J INBRLIG,BITINTIJ I NBRL IG,BITINT>J CNBRLIG,BITINTIJ (l\l:RRI T r:; 'R TT T I\IT \ , corps*' exclor(nla,nlp,nxl conjoncl n la,n x,ehl conJ oncC nlp,n x ,ebl egal Cnlp , nlal grouplg(netat,setatl conjonc:(setat,eh,ehfill conjonc<setat,eb,ebfill for li=O;i(nbrintCNBRLIG,BITINTJ for (j=O;J<BITINT;j++J { if i++, ebfi l++,ehfil++J lvalbitCehfil,j+l)) if ( *<cpter = getmemC4)) != SYSERR ) { cpter = 1201 * <cpter+21 = li+1>*BITINT + Cj + l) psend lpcol ig , cpter ) } else pasmem < > * if Cvalbitlebfil,j+l)) if ( *<cpter = 9etmem(4) ! = SYSERR J { * cpter = 1202 ; * (cpter+2l = ( i+ll*BITINT + (j+l) psend (pcoli g,cpter) } else pas mem < l } ****************************************************************************' ***************************************************************************** CHANGET AT Effec t ue le passage d'une ligne d'un etat dans un autre. ~************·***********************************·*******"********************** / : hangetat <nl igne, .etancien,etnouveau) int n l i9ne, ètanci~n, { etnouv&au ; * unsigned int pint ; int j extern actstat(J, dactstat(J extern unbit<J, nulbit<J, retetat(J extern unsi9ned int valbitll j = n b r i n t C.n l i g n e , B I T I NT l - l Ltr,bit (bel [etnouveauJ + j , nbrbitlr,ligne,BITINTJJ; if C valbit Cpint = (bel [etancien] + jJ , nbrbit (nligne,BITINTJ>J nulbit Cpint,nbrbitlnligne,BITINTll else retetat I l '****************************************************************************! '***************************************************************************** f'IETSON Active une sonnerie sur une ligne. '****************************************************************************! ;etson nt (nligne,nson) nligne, nson ; extern unbit() unbit Cbsl [nsonJ nbrint(n li9ne,B ITINTJ-l + nbrbitCnl igne,BITINTll '****************************************************************************! ***************************************************************************** RETSON Desactive une sonnerie sur une ligne. t****************************************************************************I ··et so n ( n l igne, nson) . nt n l igne, nson ; extern nulbit() nulbit Cbsl tnsonJ + nbrin tlnligne,BITINT )-1 nbrbitlnligne,BITINTll ****************************************************************************/ '***************************************************************************** GROUPLG Concentre dans un seul vecteur l'ensemble des li9nes se trouvant dans les états référencés. ·***************************************************************************' anetat Ccom pt ,s o lpter> t compt tNBETATJ ,si9ned int solpter * ex te r n inc lo r in t i,j () initialisation du vecteur OUTPUT*' for (i =O ; i ( nbr int <NBRLIG,BITINT> (sol p ter+i ) = 0 ; * i++) corps*' for (i=O for i< n brint(NBRLIG,BI TIN T> ; i++) ( j =O; J<NBETAT; j++> if (compt tj] == l> inclor (bel [jJ +i, solpter+i, ; solpter+i) ***************************************************************************' **************************************************************************** CON JONC Effectu e un ET lo9ique entre deu x vecteurs de NBRLIG bits. ***************************************************************************! njonc (apt er ,bpter,solpter) signe d i nt *ap t er , uns i9ne d int j i nt * *bpter, *solpt er jpter jp t e r = solpter for lj = O;j ( nbri n t!NBRLI G ,BITINT); j ++) * jpt er ++ = apter + + ~ * bpter • + * ***************************************************************************' **************************************************************************** INCLOR Effectue un OU in cl usif l o9ique entre de ux vecteurs de NBRLIG bits. ***************************************************************************' clor (apter , bpter,solpter > signed int *apter, unsign e d int j int * *bpter , jpter *solp t er jpter = solpter ; for (J=O;J< nbrint(NBRLIG ,BIT INT );j++- > * Jpter++ = * apter++ : * bpter+ + } '****************************************************************************' '***************************************************************************** EXCLOR Effectue un OU exclusif log ique entre deux vecteurs de NBRLIG bits. *****************************************************************************' exclor <apte r,bpter,solpter) unsigned int *apter, *bpt er, *solpter { unsigned int * jpter int j jpter = solpter ; for (j=O;J< nbrint(NBRLIG,BI TINTJ;j ++J * jpter++ = * ap ter++ A * bpler++ } '****************************************************************************' '************************~**************************************************** EGAL Affecte la valeur d"un vecteur de NBRLIG bits a un autre vecteur. *********************************~·*·**·*********************************·******* I egal (apter,solpt er> unsigned int *apter, *solpter { unsigned int * jpter int j jpter = solpter for lj=O;j< nbrint(NBRLIG,BI TINTJ; j+ +I * jpte r++ = * ap te r+ + } '****************************************************************************' '***************************************************************************** VA LBIT Retourne la val eur O ou 1 d' un bit dans un entier (unsigned). *****************************************************************************' unsigned int valbit (pint,nbit) unsigned int * pint in t nb!t unsigned int inter extern int power<> i nter= power 12,nbit-11 inter= inter~ *pint ; i f l i nter = 01 inter= 1 1 re turn (inter) *********************************************·*******************************' ***************************************************************************** UNBIT Affecte la valeur 1 a un bit dans un en ti er (u nsignedJ. ****************************************************************************' nb it (pint,nbitl lnsi 9ned i nt * pint i nt nbit { unsi9ned int inter extern int power() inter= power <2,nbit-11 *pint = *pint inter ; ) '****************************************************************************' '***************************************************************************** NULBIT Affecte la valeur O a un bit dans un entier (un signedl. ****************************************************************************' nul bit (pint,nbitl ~nsi9 ned i nt * pint in t nbit { unsi9ned in t inter extern int power() inter power <2,nbit-11 *pint = *pint ~ inter ; } '****************************************************************************' '***************************************************************************** POWE R Eleve un nombre entier a une puissance entiere donnee. ~****************************************************************************' int power i nt x, n <x,nl ; int i,p ; extern errind (l if <x == 0 ~ n == Ol errind < l for (p=i=l; i<=n; ++il p return = p * X j <pl } '*************************************~**************************************' '***************************************************************************** PASMEM Traitement d'un manque de mémoire. *****************************************************************************' pasmem (l printf printf ("\n\n\n\nPas de mémoire libre pour envoyer un message ("(fonction SCANNINGl\n\n\n"l "l } ****************************************************************************' ***************************************************************************** RETETAT Traitement d'une erreur dans un changement d'état. ****************************************************************************' etetat <> { printf printf ("\n\n\n\nTentative de retirer une ligne d'un état où ("elle ne se trouve pas (fonction CHANGETATl\n\n\n"l "J } '****************************************************************************' !***************************************************************************** ERRIND Traitement d ' une indétermination dans le calcul d'une puissance. ****************************************************************************' rrind () { printf printf } ("\n\n\n\nTentative d'élever O à ("(fonction POWER)\n\n\n"l la puissance O "> Annexe 1. 2 COL I G. * t ,~a i t er rrech 1 ' ; extern static a. r ,_:, c .:: ;: t i o n i l e c h i f f r e ·lf / ·nt sv20 01); int s 1 1 <1, nmsg , cf,i f ·F re; chiffre=O; svid = creal e 1•1 h :i ' • · ·, (sv200,2,PRSV,sv20 0 ,1 ,n l9c l9l ; < r, b r· e c h i f ·f r e s ! = 0 l { nwsg = receiveCI; s.-, i te·, 'nmsgp rer:) { c :. s e ' 1 2 0 1 ' : - 1-1 i t ch Cn ms 9 1 { case '020 1 " : nb r ec h i ffre s -- ; evchiffC2303 , 6 , nl9 cl9 , chif frel kill case '1202 ' <svidl chiffre=O; b r eak; nmsgpre c = 12 0 2; l:i 11 (svi d l; c hif fre++; trrech ( 1 brea.k; } c a.se ' 1 2 ') 2 ' : '= ,·1i t ch < n ms g ) ., ca~e ' 020 1 ': ca.se '1201' e vm s9 ( 2307 , 4 , nl 9 cl9) k i 11 ( svi dl; br ea.k ; n rn sgprec=1201; ki 1 1 <sv i d) chiffre++; trrech < 1 break; } } } r·etu r n ( 1 *------------ ------ - - ----- ----- ---------------------------- - ----- ---·*! *l S U P E R V I S E U R C O L I G --- - - - ---------------------------------- ------------ -------- -------*! C 1 9 () rmsg(PCOLIG I ; switch Clge t c lg <n l gclg) I C ca.se I* tes t de l' e ta t ' O' : s1--1 i t c h Cnms9c l g 1 { ca.se '1201' chetcl9Cnl9cl9,ll bre2:,.k ; '0202': chelclg(nl 9 c l g ,141 break ; de ·fa.u.l t: er r o r C1 break\ cas e present de c ol ig *! 'I ( nms9c 19==3 201 l chetclg(nlgclg,2> else •~rror ( > ; break; case ''2': if <nms9cl9===12 02l chetcl9(nlcl9,3) nmsgprec=1202 else err·or <); break; case ' 3 ' :switch (nmsgcl9lC case '0201 •: c~etcl9(nl 9cl9,15l break ; c a.se '3 202 chetclg ( nl9cl9,4l brea.k; case ' 1201 ': L EJ.S':' '1202': send(tab-cort<donind(n l 9clg,APPELANTJ l J : i :- C' ': ":: ~ g) brea.k; def a.u 1 t: error(l; break; } case break; ' 4 ' : i f (nms9cl9==3203) chetcl9(nl9cl9,Sl else error(l; brea.k; ca.se '5': if (nms9c: l9==1201l chetcl9Cnl9clg,6I el s e error(l; L' rea. k ; case ' 6 ': if Cnms9cl9==3205l chetclg(n l9c l9,7) e ls e e r·r t.1· ea.k; C:?. Se , -, ·' ' : i f or () ; (nms9cl9== 1202l che tclg(nlgclg,8 ) e!:e ca.se erro r(l ; t rea.k; 'S':s1--1itch< nmsgclg l{ ca.se ' 3206' : chetcl9( nlgcl9 ,9l break; ca.se · 1201' chetcl9(n l9 cl9, 14l brea.k; '.'. i:'So::' '3207' chetcl9(n l9cl9,11l break; de fault: errar ( l break; [5l),nm~gcl ' 9 ' : if r: 21.s-2 <nms9c l 9==1202 ) ch etcl9<nl9 cl 9, 10) el se er r or(); b rea.k ; C :J. s . 1 0 ' : C h E• t C 1 3 ( r1 l '3 C 1 9 ' 0 ) b re a.k; e ' 11 ' : i f c ase < n ms g c l ·3 ==-= 12 0 2 l r: l·• e t •= •3 ( n 1 · c 1 ·3 , 1 2 l e r r or(); bt ' -=ak; , 1.., .. _ .c, :chetcl9(nlgcl9 , Ol br e ::.'. ki '13' '.if ~nms3c l9==120 2l c he t cl9C n l 9 cl9,8l c .:-.se c a.se else err or· (); b r ea. k ; c a se •1 ~• : !*c a s c a. s e ' 1 5' :che tcl3(nl9cl9,0l traiter a plus tard*' bre a k ; } I* col i 3 ( l 9 e t cl '3 ( n l 3c l '3 l ) ; d e c l>::• t ;chem e nt de co l ig a.vec l'eta.t suivant*' } '*- - --------------------- -------------------------------- ------------*' A U T O M A T E C O L I G '* '*------- ------------------------------------------------------------*! co li3 (etaU int c ocom <) i n f" i. r 1t et a. t ; * rnsg; { i n 1. s : L•J d- C C ; i d ·- p C i t c h <e t C ,':1.S•E• • -?. C ; t ){ 0' su.p cl g<l if < n - c a - c au. r <=n ·- c o -ma x l ( id - cc=create(su pc ocom,1,PRCOCOM , su pcocom, 1,nl9c l9l id - pcc = pc r e a te(!Ol; init -E· lt ( nl9cl9, id-c c, id-pcc l ch 3t-etütCLIBRE ,PRENUM) ~ ct-scan ( PRENUM); E' "nl S '3 ( '.2::!,01, 4, n 1 '3C l '3) s t.1pc l 9(l; e ls<: 1 NUMl -•c':.-sc-.n<N UM); '.P5dcl-sc~n( PRENUM) c::l,3t-etat (PRENUM, ••1€-t -:: on I IN 1JNUM); evme3(2302,4,nl9cl9) '=,U.JJC c:_c-:, p l.'3i '3 .. do::•ss on ( INVNUMl tab-cor[1onind(nl9cl9,APPELANTlJ ) [ 5) = create <trrech,O , P~REC,O ; su. pc 1 g c a.se <l ; '4' c h9t-et a.t < l'lUM, POSTNUM l act-scan(POSTNUMl; 1esact-5can!NUMl; e~ms3•~~01,4,nl9clgl c=1.s-;: '5' ~ ~3t-etat<POSTNUM,PR ECONV l act-scan(PRE CONVl rn-: t sein ( SON APP l ; nel=on!ECHOSONl ?v~s9(2305 1 4,nl 9cl9) ~ '-'·P : : l ·J < '. ; '1""'==-an (SONAPPl ch9t-etatCPRECONV,CONV) evms3(2306,4,nl9cl9l su.p C 1 '3 ( ) ca.se j '7' Ch3.t19etat ( r, l ·3c l 9' POSTl'lUM; c c,r;·.,) brea.k ; , a.se '8' evmsg(2307,4,nl9~l9! rea.l,; case ,9, l '3CC[:• C (t1l •J C! ·3 ) '1? ' Jc_cc.::n:1); ; • 1 F 1 -· 1 -o· ( d p C OC O l tabco r [ (donind c h a n <J e t ::•. t c h a. n '3 e t :?. t rfl , ~ i S: po SE· ) (nl9cl9,APFELANT) J (6J=C; ( n l ·3 c l g , C O l'N .• L I B RE ; ( t _ b c or [ ( d o r: i n rj ·: .-, 1 'J c l 9 , APPEL AN T ) J [ A PP F:: LE ] , CO f', \/ , PARK Tl'lGl ~re3t · ; chan9etat<~l9cl9,PARKINS,LIBREI t:,,,,:::~.k; l 'JCCpc < t :=1.ccor [ < don i nd ( n 1 9c l 3, APPELE l l J kil (dcocorn); pdelete (d pcocom,dispose); tabc-:or C <1onind(nl9cl ·3,APPELEl l J c h ë'. n '3 et 5. t ( n 1 g c 1 9 , CO 1'1V , L I f. F-. E ) ; changeta t '12 ' 1 • .., • (6J ,=O; (tabco ~ [ (dor1ind ( nl3~l3, APPPELC l I J br ea.l.; cas<= C APPELANT J l 1 . ~,: , - t:.:· .. , r · .. ..,. ~ ... · : ... r= r:- , [APPELAN l , LO NV ,PA c~s e ' 13 ' e vms9!230 9 , 4 , nl9cl9l break; case ' 14 ' I* cas mome n tanement en sus pend*' b rea.k; ca.se ' 15 ' l9ccpc (nl9cl9 l ( dcoco m ) ; p dele te Cdpcocam,disposel tabc ort <donind (n l 3cl9, APPELANT) ki 11 ch a n9eta.t bre3. k; de ·f· a.u. l t : e r r or ( l ; su.pc l 9(l (nl •3 cl 9_.~lU 11 i ,Lll: . 1 ,, -=- 0; t ., ,, +. ·,·· r , i t-, t i nt i nt e :· te ;--r, ,:; :· e r- n ( li: tabco r· ) C8J ; dcocom, -:lpcocorn; i n d t 2 b; ~defi n e NBRE L GNES = O; / -'.~ \/ a. leurs- des i ·-,iti ::;'iser- i ,-, i t t 2 b ( . f- ':) !' les elements du tableau. a. la va.leur O *! { isj i r,t_ i =O; for i ! = ++i ) NB REL IGNES j=O; j '= <-Y.-t a bcor+i) 8; ++ j l Cj J = o; } I* donne r l 'indice de l'eleme-,t du ta.blea.u. *I ao nind(numli9ne,col) int numli9ne,col! { i • i nt . ' f o r I i -= 0 ; ( re tu. rn ( i ) * t a. b c o r · + i > ! = n u m 1 i '3 n e ; Cc o 1 J ++i l } I *-------------------------------------------------------------------)E- / I* I* i n i t i a l i s ation d"un u n numero 1 e li3ne, element de la table de correspondan c e avec un num~ro de cocom et un nu.m er • de port de i n i t e l t ( n umli9n e , numcoco m,numpcocom ) i nt n • •. ml i :-in e ; n•.•.mcocom~ n 1. 1.mpcocom; { fr:, r i=O; (*t,:1.bc or+ i) C6J < * t i:.ï. b r:or + i) t 1 J =num 1 i gne; 1 ·lf- t. a'::, cor + i ) C2 J = n '-'·mcoco m ; (1(-t::.>bcor~il f 3J=nu.·npcocom; < '/fi t ~ b r: ,:i r -1 i ) [ 1 J ~ 0 ; ( ~ t :). b C -f t } • : >:::· t rJ 0 4 + .i . ; ._, ,-. ,,., ( i i ; [ 6 1 :; 1 ; 1 -= O; + +il *I • corn *I I* eta.bl i r la correspondance I* et un numero de pcocom JE-/ entre u.n n1_1,mero de 1 igne et un numero de cocom *I lgccpc(numli9ne) int riumligne; { i nt i ; for (i. =0; <*tabcor+i) Cl] dcocorn:= O:· të1.bcor+ i) [2]; dpcocom=(·lE-tabcor+i C3J; re· turn( i ); ' = nl.1.!oli gne; ++il '*-------------------------------------------------------------------------*! /~ etablir la correspondance e n tre un numero de ligne et un numero de pcocom *I 1 gpc ( n 1_1_m l i ·3ne l int nu.mligne; in t i ; { r-or (i=0; <*ta.bcor+i ) ClJ re tu rn ( <*ti:>.b cor + i l [3] l ; '= n u.m l i g n •z• ; ++ i l } '~------------------------------------------------------------------------*! '* changer l'etat de l'automate COLIG *' ch~tcl3(numli3ne,nouvetatcoligl ·. n t r, 11ml igne, n ou.veta.tcol i9; { , nt i. ; +or (i =O ; ( ·'.lf-ti:>.bcor+i) [1J re t,_,rn( C*ta.tcor+i) [4J) ; != nurnligne; ++il } l* ________________________________________________________________________ x / '* '* e ta.bl ir de la. corresponda.nce l'autom ate COLIG pour entre c et te un numero lig n e*' l9e tclg(nl i9ne·) 'i nt nl i9ne; { ; r, t i ; for· Ci=0 ; r et u r n C ( ( ·lE-ta.bc o r+i) *t abc or 1- i > [1] C4 J ) ; 1 = nligne; ++i) de 1 igne et 1 ' etat actu.e:· l )(/ ' !*-------------------------------------------------------------------*! evmsglnms9,nb y te s, nli9J i nt nmsg,nbytes,nli ~; char *getmem(); ei: t e rn i nt *msg; { msg=getme~(nbytesl *Msg-=nrnsg; *ms ·3 + 1 = n 1 i '3 ; psend lta.b-co r( (donind (nl i9,APPEL ANTl J ] ret,_trn < l ; [3] ,*msgl } !*--------------------------------- -----------------------------------*! I* prendre connaissance d'un messa3e enregistra dans rmsg(pidl int pict; { *msg=<int *lpreceive!pidl nrnsgclg=*msg; n 9r. l 9==-'fr,1~9+ 1; re tu.rn ( '. l, le port de COLIG *I Annexe 1.3 COCO M. om C> ; t etprescoc; rmsgcoc C> switch Cetprescoc> { case '0 ' switch nmsgcoc { case ' 2301' etprescoc = 1; cocomC>; case' 2310 ' etprescoc = 12; cocom C > errdet = 1; default } case '1' inifco ( ) lab2Cnumabo) if Cnumabpre==O> { etprescoc = 4; cocom C > } els e { rrosgcocC); if (nmsg coc etprescoc cocom <> 2302) = { 2; } else err·det = 2 ,·' case '2' clof co c>; resum e (c reate l sleep24, O, 3, rmsgc:oc ( > switch Cnmsgc oc> { case '2303' etprescoc cocom ( ) ; case '0 302' etpr-escoc cocom ( ) ; "sleep24" )) = 3; = 16; } case '3' case '4' lnbc hif f <> 0) enrchi-f () analchit () trait-formchi-f {); send (3203); rmsgcoc (); switch (nmsgcoc) { case '2305' while case '230 7 ' case '2 3 09 ' default etprescoc = 5 ; cocom ( ) ; etprescoc = 20; cocom ( ) ; etpr-escoc = 21; cocom ( ) ; err-det = 3; } case '5' send ( 3204) ; rmsgcoc <>; switch lnmsgcoc) { case '2306' case '2307' def a ult etprescoc = 6; cocom C > etpr- escoc = 20; cocom C> ; err·det = 4; } case '6 ' send (32 05); rmsgcoc () ; if Cnmsgcoc == 2 307 1 { n u mabo b = *ms9coc + 1; etpr-escoc:::: 7j case '7' er-P-~e t = 5; send C3401 > y rrnsgcoc C> ; if Cnmsgcoc 4301 > etprescoc = 8; cocom <>; { } case ' 8' case '9' else er-r-det = 6; if Cnmsgcoc+l == numaba) send <3207) else send (3206) resume(pid = create(sleep90, 0, 4, "sleep90")); send C3402 > ; rmsgcoc Cl; switch Cnmsgcoc> C case '2308 ' etpr-escoc = 11; cocom C) ; case '4301' etprescoc = 10; cocom () ; default errdet = 7; } case ' 10' : case ' 11 ' : send ( 3206 l ; k i 1 1 Cpid>; if (nmsgcoc. - -· 2307 l etprescoc = 7; cocom ( ) ; C } case '12' else errdet = 8; traitrev ( ) ; send C3204 l ; if (nmsgcoc -- 2305) etprescoc = 13; cocom ( ) ; { } case '13' else errdet = 9; send (3204); if Cnmsgcoc -- 2306) etprescoc = 14; cocom C> { } case '14' else err-det = 10; send (3401); if Cnmsgcoc = 4301 etprescoc = 8; numaba = o; cocom C) { } case '15' case '16' case • 17' \ case • 18' else err-det = 11 ; enrnpre ( ) ; send C3207 >; send (3207) enr-tab ( ) ; send (3207) traitdet ( ) ; send (3202); si,Ji tch Cnmsgcoc> { case '2304 ' case '2307' default } case ' 19' enrheur ( ) ; etprescoc = 4; cocom ( ) ; etprescoc = 20; cocom ( ) j errdet = 12; swi tch ( nms9coc) { case •2304• case •2307• case '20': case '21': defau 1 t send (3206); search (); etprescoc = 4; cocom ( > ; etprescoc = 20; cocom (); errdet = 13; Annexe 1 .4 TA X AT. ·~- '* -~~~~ ==================================================================*! [p4 2 ] i ·3<:.'ocam , c in diquer s 1_\J.\.·:. .n ts le type 9eo9rap hique de communication sur base des principes communication zonale communication etabl ie entre deu x abonnes appartenant a 9eo9raphiques petites contigues t:, 1 P'=' 2 t~.1 pe deux zones communication etablie entre deux abonnes appartenant a de ux zones 9eo3raphiques contigues dont l'une au moins . est un e grande zone ou ~ppar ten~nt a deu :; zones petites separees par une seule zone 9 eo9r aphique pet ite .3 autres communica t i ons i ·3Goc on< pt rrnsg s t geoc :Jr,~ l strJ.ct. bt.,: com *ptrmsg e,·t-=-•r n ~x &o r n i nt t9e ocom { izon ea izoneb lnl i t" t i j c lerel ta.be abonne ; tz o ne zone zonea zoneb labocle(ptrmsg->numaboal izonea = abo nn e. igeozone abocle(ptrmsg->numabobl izone = a.bo r1r1-=·. i geozone 1-zCJne cle ( izn n ea.l z cnea ~ zo n e lzone c lelizonebl i•·1t if f ( i zonea. == i zoneb 1 tgeocom = 1 r eturn : t9eocoml } •: i r < i if 1 i <= j i++ ) (zon ea. izon€:.'c • n1_[ i J izonebl if c zonea.. te. i 11 ezone == 11 a( Czon•.?b. ta.1 l { tgE•ocom = 2 r•=-turn<tgeocornl } E:· for l SE { tg e ocorn = 3 ret:.u.rn ( t·3eocom) 1 i <= 5 i++l (i-= '01 i ·: 1-?or:o m } /* fin de } (j-==1 ; j <= 5 j++I f (:?: o n : ·&. , i zonecon t Ci] { r •"' . '-'· r n ( e::::one - - -- zoneb. i zonecon l z onecle(zonea . izonecont[i]) if <z one . t aillezone == 11 { t ·3 e oc CJ m ::: 3 r •. i· tr 1 , < t9e_ü coml } } = + 'J '.:• c, c o rn l i3 s,a corn JE-/ t r j l 1 1 il "' 1 ' '--' t [~43] r:. calc u l nombre d'unites de taxa tion en du tarif de nuit et de j o ur *I c a. l c ut <pt r •nsg, n b,_1 t t n, n bu. t t r l stru.c:t t ,:c or1 *Pt •·· ms9 int nbi_t_ n •,butt:r i.t , t h l h2 n but; n u.t t1 1 = nbuttr = 0 hl= hdeb j 1 = i-1 h i. l e j deb < <h 1 ' = hf i n l != j f i n l <j 1 C is oltranchelhl,Jl,nbut,ttl H <tt = 1 l nbuttn - nbu_tn + nbu_ e l se nbuttrnb u. t t r· + nbu t re>tu.rnll } } I *=======-======= ==== = -======- - - - ---- - ---- -- - ----- - - - -- - ----- -- -· -- - - - - ----- -- - -- ----* I 0 !* ca. lcfact,c calcul tp44] de la facture *I calcf 3 ct (n buttn,nb uttr,t9eocom ,montfact) ·nt n uttn nbuttr t9eoc om mont f act { •?xtern stru.c t t t i':l. ri f· t3.r· if[J mont fact = n~u t tn tarif[t9eocomJ , jour + nb ut tr retur n I l * * tarif[t9eocomJ.nu i t } '*===== ====================================================-====---=-- - ==~ ===*! I* fa.ctu.r . c (p45] t acturati0n d'un e communication a un abann2 F~ctur lpt r msg , montf ~c t' struc t ~tycom *pt rms3 ; i r, t_ mol'1 t ·f a. c t { bon ne ':'t tern struct e,:te rn s t r ,_,_c t zen_ i t < p t r ms 9 -- > i n d c h r g == 1 l r labocle(ptrms9 ->num abo~l a ~ onne . montf ac t + ~ montf a ct } t::•.s e if ( ptr-m~;,:3-~·it1d c hr 9 =- = 2 l { abu ~l F !p trms9->nu mabobl ,.,.be.,-, :-'=' . fChjî, t f ac t += montf· a.c t } r w· i ti? 1 dev f a.b , B-: abonne, si -z:eof < abo n ne l ,- c- t , _1_ •· n ' > 0 } /* [p58] cla sfgcom.c da.ns le en registre ment de tous les renseignements relatifs a fich ier 9ener al des communica t ions fhistcom une communicat i~ ~E-1 clasf9 com(p t rms9, nb u ttn,nb ut tr ,mo ntfact l e~tern st ruct btxc om *ptrm s9 int nbu tt n nbut t r montfact { fw rite(devfhi~tt~his tcom ,sizeof(hist com ll r etu r n ( l } !*================================ == =====================================- - ~-, , (p3 3 1 = 0 si annee est bisse x t ile *· b i ~ se i nt l( t ( a. n n e e l a. n nee { int if bis ; ( ( ( a.nnee%4 -- Ol&~(a nnee%100 {bis= 0 ret1_1.rn 1 b i s ) } e l se { bis 1 r et '-'· r n ( b i s 1 } 1 = 0)) <annee% 400 0)) !*-----====----- ----- --------- --- ---============= === ==== ====================*! " I ·'Y. i s o 1 t r an c h e tp59] l s o ler la tranch~ de perio d e de communic at i on comprise entre une heure donr,Pe et l a fi n de ~~rioda jour /nuit -t'./ is oltranche (h1,h2,Jl,J2,nbut,t tl int h1 , h2 1 Jl,J2, nbutJ tt { i •!- 'r,--ri-?(j1 1) -' .i -f e C < h 2 <m i n Lt i t l 8, < j 1 == = j 2 1 1 C calcint(h1,h2,nbut l ri 1 = h2 } se C calc i nt ( hl,minuit~nbutl hl= 0 tt = 2 r e t u. :·- n ( ) if <h 1 if < { } hdJour l ( { < < hd jourl C! ( j 1 -calcint(hl,h2,nbu. tl h l = b2 } (h2 ( hl~ if } h·FJ ::iu.r l < ' hZ < h ·f ( j 2 l ) calci ·1t (hl,hdj ::iu r,nbu. tl h 1 = h d j o •. ,·· } t t -- 2 ret.u. r- n ( J i·f } C"' c:: h 1 = j o '-'· r· 8, < j 1 n t ( h 1 , h,::., n bu. t l f·, 2 } j 2 ) J els calcint'hl,hf jour,nbutl hl= h fJour } r- t t_ = 1 r-e t •J.1 ' n ( ) } (h2,: minu. itl f: C calcint(hl,h2, n hl= h2 (jl = = utl j:: ll } else { calcin~C~l,minuit,nbutl tt r, -=- o j 1 = j a , 1. r 3 ,_,_ i v <j 1 1 =., r· eturri ( 1 } /* fln de is o lt r anche *' } - -- - - - - ---------------------------------...,,..----, I* [p40] joursuiv d ~ nne le jour suivant un jour donne -3/;:/ int joursuiv(jpr ecl int jp r ec { jou.r = (jprec/100 Cintl (jprec/ lOOll 100 mois= ( ( jp re c - jourl / 10000 - (int)((jprec - jou r l/lOO OO ll *lO 00 a.nnee = Cintl (jprec/10000) if ( (jour -- 28) 8! <mo is -- 2) &: (bis sext (a.nneel != 0) ) { moissu i v(annee,mois,jo url ret •-•. rn ( j prec) } (jour - -- 29 ) c-~ (mo i ~ -- 2) & (bisse >:t (ann ee l -- 0) ) i f { mo iss u 1 v (annee,mois,Jou r l r et u ,.. n ~ j p r ec l } i ,r. ( j O L\ r = = 3 0 ) l!dld ( m O i s = =4 ) : : ( :n O i s ==6 ) ( moi s ==9 1 (moi s=-= 11lll C mois:uiv(annee,mois,Jou.rl r e t u. r n ( j p r ec l } i f ( ( j ou. t' -=""' 3 1 ' !! : I!( ( ( m o i s == 1 l ( rn o i s ==3 l (mois==5l <mois==7 ) <rnois=-=8l ois== 0 : : (mois==12l J { moissuiv(annee,mois,jour) r .tL•.rn( jprecl } jprec += 1 return(j precl * } !*========== ============================================================= == =*! I* [p41] moissuiv passe r a u mo · s su i v ant ·',(,/ int moissuiv( a nnee ,mois,j ourl int a nnee mois jou r { itt i j : U.i'J i s == ( '!'!10 ..c. 12 ) moi s = 1 annee ++ <=:- J. se mo is++ f. j [11 _1 t j '=l.i · r E: = } 1 v = annee*10000 + mois*lOO + j ou.r t '-'· r n ( j s11..l v) } !*=~== ~== ========================= ======== ================ === ==== = ===== = = ~~ =*! (m . Annexe 1. 5 S G F I. / ***********-l(+X- .+~·-)(--l( * * *Ji- **~·******~ )r***~·*** l{·-l(··****'*'l<··K*rdt·***-l(·**-l(·******·*-l(·**·**********-l(· * F S G F I * = = = = = ** PRIMITIVES DE GES TION DE FICHIERS INDEXES PAR CLE RELATIVE * * * * '*==========~===============================================- =:==- -===== =---*/ ======== * '* Cp1 7 cl ea. bo ob t enit· * ] 1 3 cle rela tive d'un abonne a partir de son numero <l'abonne *I cleabo(num abo,ofi5et,indabol int numabo offs~t indabo { extern int n ba bo exter~ struct index tabiabo[nbligl int i m j c 1 ea.bo = 0 1 j = nha.bo l•Jh i 1 e <-= <i j ) ( . +j \~l, :2 { r i-f i ·f 1nu r:• a.be1 = ta.bia bo[ rnJ.clel C o f f s e t = ta bi abo [ mJ.o ffset in,jabo - m ••. e tu i' n < l } ( n '·'·rn 2 b o < t =\ b i e. t, o [ m l . c 1 e l j = Pl ·= rn 1 e 1 ;;.e i n~E.bt:J ,.. ,,. t. -· u r •·, ( ' + 1 j ' ~.·· . -- .. - - . - . - - - - ·" - - - ...... - ..... .. - - - .. .. - - . -- - - -- -- - - - - - - - - - - - - - -- - - - - - - = =- - == ==== = = = = =- =* / /~ \abo ir~ u~ enre gist r ement inpu. t output : ab onne - nu.m a.bo = -· ·- n uma.bo numa.bo > 0 < 0 lecture sequent iell e lecture du reco r d de cle numabo erreur 0 nu ma bo = - 1: signale qu'il y a eu 1..,ne e1' reu,· le resultat se trouve dans ab_nne ·- ··· sinon */ 1 i:l.bD ( n1.1.mabo l ( int offs et indabo ext e rn s t r uc t tabo a bonne e~tern struct devsw *devfab i f if 0) { ( nu.rna.bo n•_1m .=1.bo = -1 ···et1..,r n ( ) } <nu.roa. bo > Ol { cleabo!num abo,offset,indabol i f ( D ·f ·f !=et = 0 ) { nu.ms.be = - 1 = r '-?t1J.rn<l ) f-seek( de vfa.b,offset ) } _ fr ead( de vf ab ,abonne,sizeof (abonne) l retu.rn ( l } '*=~======= === ====== === === ===== == =================== ===~======== ========== ~=*! /~- iniftr;,. ( p '.:2 ] initi:;.lis3.tion et o u.ve rtu.re des *I ,niftra.( l <. ch;;,.r *mo e l f "lnit(,jevfab l 1 f !. n i t. ( dev ·F9eo) 1 f ;_ n · t ( d,::,1.d hi 5:.t l •- • ::· r ~, • ,·.c;J-:?n ( d -:::·v f a.b, -~a.bot ra I rnod e) ~*T)11:l d ·l '+rno rj~::: 11 11 11 ro JI r! '=' V f 9 e 0 ~ Ll p ':" n ( <:.i ;_? 'J F h i ~ ? t ,. , r - n ( ) , j s Cl p '-'=' n ( } ; O ·' S t f '::Je O t r · a. l rn Ode ) ! f h i S t C On 1 , T,) 0 ci e ) f ichiers u.tilises pa.i- tr ata :,: l* clezone (p 18 ] obt enir une cle relative sur fgeozone a part ir d' un nu mero de zo ne clezone(i9eozone,offset,indzonel int igeozone offset indzone , e x ter n int nbzon e ; e ,:tern s tr u.ct index ta.bizone[nbmzone] int i j m off set = 0 = i 1 = nbzone i,ih i le Ci <= j { = m { j) (i + j ) / 2 i ·3eozone = tabizone[ml.cle) o·f ·f set = labizone[ml.offset in d::ono:o· =-= m :·· e t ,_,_1· n ( l } i3eo=one < tabizone[mJ> i+ j = rn - 1 •·· m + 1 else } i indzone v- E. = j tu. r- n ( } } '-~~===~============ ===============~=================================== ======*! I* lzone [ p 13] lire un enregistrement de zone a partir d e l ' indica t if de zone *! lzone( i9e oz on e) int i geozone { int offse t clezo ne (ig e ozone,offset, ind zonel if (offs et -- 0) { igeozone = -1 r-etu.r n ( l } lfseek(devfgeo,offsetl l f reA.d ( dev-f9eo) l!! Z • ne, si zeo f ( zot,e) r- e +_,_,_r n ( l } !*========- === ======= == == ==-==== == ======================================== =====*! t* [p54] inifco initialisation et ouvertu re des fichiers acced es par cocom et coli9 *l initco(l char *mode l finit devta.b2 devfab2 est *mode = "r1-10" dsopen(devtab2,fabococ~model retu.rn ( l < '* le devptr du tabonne de cocom/coli9 *I l*=================================== =====================================~-*I I* [p55J clofca cloture des fichi ers accedes par cocom/coli9 */ clo -f-ca<l ,: f c 1 ose (de 1t a.b2 l retu. rn () /~====~=============================~~===~==========================~=====~=*! rr oJ '~- l.~.b2 ~1 11 ljre un enre3istrement d'ü- • nne dans n 1.1.me r o ct' :i.b on ne le fabonne de cocom/coli9 a p~ , tir \f / 1 ':' h? i •· t 1 •·,1_1. m3.t o l nur;•i:.>b, 'nt of· ·f set cleBboCnumabo , a ftset, indabo l H (offset - - 0) { nu.r.1abo = -1 ,·-,:. t1_1.rn < l lis?e~Cdevtab2, o ttsetl lfr2~11devfab2,~abonne,eizeof (abo nne) ) ~-,=,t, , r n) !*================ ============================================= ========~----*/ '* chgi abo (p49] cha r geme n t de l ' i nde x des n um eros d'abon n e -'1.·I ch gi a.b o<> { char *mode int i _ x tern int nb abo *m o de = " r o" 1sopen Cdeviabo. ifabonneim • 1e) for (i= l i+ +) C l fr ead(dev iab o 5 t abiabo[il,size of(tab iabo[i] l 1 i f 1 eof) br·eak } rb-9.bo = j 1 l ~clos<? (devia.bo) ,, -=- t , _ ,_v . r, ( ) } ' *= ===== = =========== ============ ======= ===== === === =================== = ==== ==* ! [ p 5 0] c ha rgement de l ' i ndex des nume ros d e ligne *I ch9 ili3CI { ch a.r *rnod e int i e x tern i nt nb a. bo *m ode= " ro " ; dsop en (devi l i'::h ifë>.b l i g,mode l fo r ( i = 1 <= nb abo i ++I 1 f r e a. d ( de v i l i '3 .• t i:•.b i l i '3 ( i J , s i :;: e o -f- ( t a. b i 1 i '3 [ i l ) lfclos e( d ev iligl retu.rn ( l } ! *==== = ============ ==== = ====-==--~~~========= = == =========================- - -=*! '. /-)(- chg i zone (p51] · ~ h~rg e ment de l'inde x des indicati fs de zone 1'.· I ch3iz on e( ) { cha.r *mode int i ex tern i nt nbz one *mode= " r o" dsopenCdev izone , if9eozon e ,model for (i =- 1 i ++) { lfread<devizone,t a bi zone[iJ,sizeof(tabizone t i ll l if (e ofl brea.k } nbzon e = - 1 lfclose<d~ ; izone 1 r<:, t u. r- n ( l } !*=== ~=== == ==== ========= == ==========-============= ======================== ==*! /->,(- 5 r, iia.bo (p27] i n i t i aliser et ouvr i r l 'ind e x de nu me ro s d'abonnes *I i n i i a.bo < ) { 1. f i nit ( d e v i 3.bo l r et u.rn() } !*=== ===~============= ~== =============== ========== == =====~== ====== ======== =*I '* (p28 ] in ii li9 i n i t i a l i s e r- *' ,ni il i.·3( ) { 1 ·f i n i +. ( d e v r~t•-1.rn ( i. i ?, l •=- t ou.vrir l'inde)( des nurne r os d e ligne I* [p29] i.niizone initialiser et ouvrir l'inda ~ des indicati fs de zone *' iniizore(l { lfini·l:.(devizoriel retur n (' } !*========~====================~=~==========================================*! tp30] I* cloia.bo cloturer ifabonne -1.- I cl. o i ~.bo () { 1 f c: l ose ( d ev i <='. bo) return(l } !~==========================================================================*! l* Cp311 cloilig c lot u. r e r i f a.b l i g *l cloilig() { 1 f c l ose (de , i retu. rn ( l i ·3 l } !*=============== ==============================~~=====================~~~ ~-*! I* cio · zone tp32] cloturer if9eozone *I cloizon e<) ( ltclosi;>(<levi -zo n,.., r eturn<> ..... . · - ~ - - - - .. - - · · ........ .. . ~ - - ---- •4':-•-·-··· ··- -t:,:,:- -----··. - -·· - -· . ..:_ ... ; I* [p60] ae.bo a joul Er un abonne de cle numabo ~- / aabo<succesl i n t s1_1.cc:es { '* I* *' d eclarations extern lnt n babo succe s = 1 positio nn ement en f in de fichier *I lfseek (devfab, (f lp tr->-f ! _dent ) ->fdlen) l f s e e k ( d e , f ·:i. b 2 , ( f 1 p t r ·- >-f 1 _ d e n t l - >-f· d l e n l I* I* iu n ~ mb r e incrementatio n nba.bo += ins er tion des <l'abonn e s * ' index*' cleabo(abonne. n umabo,offset,indabol (o f·fset { nba.bo if '= O> 1 -= <:, ucces = 0 re::•turn () } c e 1 i ·3 ( ab on r, e • ,., ,_,_ 1,1 l !. ·J ~ o t {- se t , i n d l i g ) i f (o ffsE-t '·a 0) { nb:=l.bo ·-= 1 retu.rn < s:,1serr) } i_ n s , 2•. b o ( e-.bu n n e . n ,_,_ rn ab o , ( f l p t r - ) f 1 _ d en t l - >-f d l en insili9(a.bonne.nu.mli.3, (fl.ptr -·> fl_dentl->fdlen I* + 1,indabol + 1_,indligl *I ecritur e du re cord eabolabonne .n u.mabo) eab2C~bon~e . numabol r ;::. t. '-'· r n ( ) } !*=~==================== --= ===~==-=============== === ==== == ===================*! /-J!· r- ,.,r- .:1. - - :V i ,: 1.bo l'i ~ -ê'.U\'.,.?r , - :-'"1 c!E, ::~ 1€•5 abonnes .)1. / S\ ' Î abo ( l ( cha.r ·*mode in t . e :, t <? r· n i r, t n b i:.'.b o extern struct inde x tabiabo[J *r ode == "YI • " dsopen(deviabnJ ifabonne,mode) for < i - 1 .r = nbabo i ++ ) lf~rite(de v iabo,~tabiab • Ci) ,size of(t abiab o[iJ) l f c: 1 ose ( ,je v i ab o l ret u.r- 1. () } / ·1· SV r r.: 4 7 J i 1 i '] 5 ë) '- ' · V ignes '=' r• lU ~-vilig (l { char *mode in t e:~tern i nt nbabo extern struct *mode= 11 w " inde x tebiligtJ -dsopen '-:levi 1 i9J i f abl ig,model for- ( i -· 1 i <= nbabo i ++ l 1 f · 1.-i r i te ( de v i 1 i 9 , & t ab i l i 9 C i ] , s l z e of < t è:',b i l i 9 C i J l l l. ·f c 1 • SE• ( de .1 i l i 9 l ret o_;rn ( l } !*===~=================================~=== ============ ============ =-= ===== -*! [ p48] l*· sv i zone s~u v er l'inde~ des zones 9e~9raphiques *.I sv i zonr:? < > { c hë>.r *mode i nt J. e x tern int nbzone ei'.t'? rn s tru.ct inde :-'. tabi"?:onetJ *rf'ode = 11 ~,o 11 dsopen<de~izone, if9eozone,model ~or l i = 1 ; i <= nbzone i ++) l f wri te( dev izone,~tab izo ne [iJ,sizeofCtabizo ne[iJl l l~close(devizo n2! i' e t '-' r n ( ! } 1 Y============= =========== ===~=--====~=================== ===== ===~===- ~-==- I * (p53] c 1 of t ra. c 1o t • ,. r e des cl.of t ra. ( l ( 1 f C l o se ( d e V ·f a. b ) l ·f c 1 o se ( de:•vf 9eo l lfclos e (devh i st ) re t urn ( ) } f i c h i. e r s ,_t t i 1 ses p a. r- t r a. t a :><: ' ~*f I* dtr i abo tp 37J detru 1 r · oe:- '"'" *' dtriabo(indabo) int :/. ndab o { in t i e :i< te r n i nt nbi::l.b • extern s truct index tabiabo[l for (i = in dabo < nbabc ta biabo[iJ = tabiabo[i+ l ] ret,_,_ rn () i --) !*=== ===~===================================== ================~~ - ~~=======~=*! I* [p38] dtrilig detruire un index i9ne *l ctt_rili9(indli9l int indli9 { int i ei~ te.,r n int nba.bo e ~ tern struct inde~ t~bili9CJ for (i = indl iS < nbabo t ~.b i 1 i •3 [ i ] = ta.bi 1 ig C i+l] - -) rc-t u r•,(l } '*~====~=============================~=============================--=---=~-*' I* [p39] dtrizone detr uire un index zone *I dtrizone(indzone > i n t i n d z o r, <:=· { int i;: •·:< tern ~xtern for (j i nt. nbzone struct i nde ~ tab i zoneCl =- indz o ne i < nbzone tabizone[i] r-E tu r •·1 ( l } = tablzone[i+lJ --) I* Cpll] ea.bo ecrire un record ab o nne de cle numabo dans fabonne ecritu e er, f· i n d e f i ch i er = 0 ver i ·f i e r que n ,_~rn ab o n'est pa.s doub l •-= nu.ma.bo , 0 reec r i t u.re de 1 ' a.bar. . ) •. ' = ..: 1 e pas de v e r i f i c a t i on ~L numu~o n umabo < 0 e critu. r <:. c.E c.1u. ...:11t i t,.I ..€,• input numa.bo 1 .:;1. l ' , r,1_· + ;-:·,_ .,._~ 1~ f i n 3 . · ':. :. !'" ·"! :. Cr _,_.,) :-:t.bc du. { i : h i ""' r · '=' ~- t po ~ 1 t .l. on ne e a a 1, u. ma.bo fin de c l .:: •:: C r i t • '.l '- :;; e t r ' . .: r rel,;' •? do.ns;. ë.•b • nne *I e2>.bo ( > { int rf• ~-=,t -:-: :: t-: · r . ,~ -1- .-,.- · i:·•,j:::1_t r) ·.•- ·oa.bo st·,u.c-t t2.'_ o ab o nnE; s,:_ r J.::...!:. d. t.:.v e· :.•; ~dev·f a :~ st,, i =t f-J.bl!-: ~-f a bptr = 3b ;,J:·. r,e. • 1;_u n.::1. bo 0) :- : •:· ,•.b ~ 1 r, 1 H l! =1.b o , o f f set , i n d ab o if !offset ' = 0 ) { !ë: Y t "•~·t, ï, ,: r ·· 7:< ' '.)Cl i r J ... 1 ret: u.r n ; ) ·fseek(devfa. b , <·f 21.bp else if {nu. 111<'='. b l:J > 0) { r· -) ·fl dentl ·-> f · dl,_n l } cle a b a 1 numabo,offset,ind a bo l i.-f· '.'.:'ltfse:-t -- 0 ) { num a bo =-= re :. vr , , : ) -· 1 l t seekl de vfab,oftset) } e 1 c~e a •ptr- >fl_dentl-)fdlen ~ fabptr- >fl _po s l f wr i t~Cdevf a b,abon~e,sizeoflabonnel l retu.rr, () IM=~~==~========~ =~== ========= ~==- ~= ===== ==== ==================== =~~==== == =*I .'Jf r r· 1::: 1 eob2 ecrire un record abonne de cle numabo dans fflQffies regles que pour eaba tab2 'JI,·/ ea.b2 () { int o~ fs~ t irdabo numabo ~~te r n ~truc_ tabo abonne -,,·der1 , <:truc t de 1s1-, ->E-devfab2 e>:t<?;-·11 s t•'u.ct f-lblk *fab2ptr nurn~bo ~ abonne.num~bo i r. ( "!t.:.rq ;;s.bo == 0) { =l0ebo(num~bo,of f set, indabol if (_ ffset numabo !=0) { = -1 r8 t u r n ( ) } l ·f ~ e e k ( d e v -f a. b 2 , < f a.b 2 p t r· - :> f 1 _den t 1 e l s e i ·f Cn u. m a. b o :> 0 ) { cleabo(numabo,offset,indabol if (offsE·t == 0) ( >-f d 1 en J n t.•.rr.e.bo = - 1 t'eturr,()} lf seek (devfab2,offset) } ~!se (f ab~ptr->fl_dent>->fdlen = fab2ptr- >fl _p Ls 1 ·f l•1r· i te< dev ·f •?.b2, a.bonr,e, si zeo-f <abonne) > ~- e t \_,_ r n ( ) 11===::====================~========================= ===== ==-===============*I [p14] ecrire une zone 9eo9raphique memes regles que pour eabo *I ezone () { int off~et 1:>x tern indzone str• .t ct tzone zone ~x ter n ~truct devsw *devfgeo exter~ st y uct flblk *f9eoptr lgcozo~~ = =one.i9eozone i f ( i 9 e oz a t ~ e -= = 0 1 { cl ~z ~1~!i3eozoneJoffset 1 indzone> if- '.affs<:.-t != i ·Jeozone -= re tu rn!l Ol ·-1 < } tsi:ek (devf •3eo, (·fgeoptr ·- >f l dentl··· >-fdlen) } ~· 1 SE· if < ~ •:3eo :z: one > 0 > { c l e z _ ne ( i 3 e o::: or, E• , o ·F f set , i n d z on e ) !.f 1 0-Hset -- 0) < i •J<?OZ D:'"!€' =-' -1 •· s t '-'· î rt ! l } !devf9eo, o ·f: set) ) lfgeaptr·- ) fl_dent) -) fdlen ~ f3eaptr -> fl_pos 1 -f· l• j r i t ç ' j ,;;- v f 9 e a , z o n e , s i z e a f ( :.: a n e ) l f=;? •ë•l '. • 1 ~e r~tu.rri(' } [p15] destruc tio n d'un abonne de cle numabo *I d a.bo (nu.ma.be> i. nt nu.ma.be { '* '* I* *' declarations int affset indabo extern struct tabo abonne abo2 evt:.ern struct devs1-i *fa.bptr *fa.b2ptr po~itionnement su~ le dernier record*' 1 f see k ( d ev f ~.b , ( f ___ b pt r - >·f 1 _ d E:• nt ) -· >f d 1 en-· si:: eof (abonne ) l ·f =e e k ( de v-f- a. b 2 , ( f a.b 2 p t r - >f 1 _dent 1 -- >f d l en - s i :z e o t ( ab o 2 ) lecture du dernier record*' 1fread(devf3bsabonne,sizeof(abonnel l ~rea1<1evfab2,abo2,si:zeof (abo2) > t: recher~he d e l'offset du re cord numabo cleabolnumabo,offset,indabo) if <o ·f ·f se t == O > { numa.bo = -1 ret u.rn ( > } I* positionnement sur le record lfsee~(devfab,offsetl l f 5 e e k ( d t: v ·f ab 2 , of f set ) '* '* / ·)( numabo *' *' ecritur8 du de ~ nier rec ord a la place de celu i lfwrite ( devfab, ~abonne,s i zeof .abonne) 1 lfwr ite(de vtab2,&~bo2,sizeot(abo211 dim \nution de la lc ~ 9ueut · du fichier*' ' .f a t )l +_ r· ··· >f l _ dent 1 ·- >f d 1 en - = s i z e of < ab on r, e If 3.t2ptr->f l_ cten t ) - >fdlen -= sizeo ·f labo'.:) o'·'= •- ,~u.c ~! t ï t_ i 0~1 de l ' i n<:!e >'. t a.b o ( i n d 2.t o d'index numabc *' > */ > r ,:- t . '-'· r n ( ) } / *===-:=-:::::.:::-:.,:,, -:,::,::-: "= "' ::.:: "" ::: ·""'""""' :;: •,:: ""'=,-~--=-· - -- - -· .. ·- - ·- ··- ... ·- -- . . .. - -·-· --·- - ... ·---- -. -- - . . ... - -- .. -- · . - - - -·-- - -- -·· - ·- -'·~'.- :' '* [p15] dzone destruction d'une zone *· ' dzone(igeozonel i.nt igeozone { i nt o - fste i ndzone extern struct tzone zone e>,. t ern st ruct devsi-1 *d evf 9eo •"?xt>?rn str11.ct flblk *f9eoptr lfseek (ctev .te geo, (-fgeoptr-> ·f l_dent) - >fd len lf r e~d(devf9eo,zone,sizeof(=onell rJe=one(i9eozone,offset,indzonel if <o·ffse•t == 0 ) { ; ·3 eozDne = ·- 1 retu.rn sizeof (zone)) } .( seel : ( ctevf geo 1 off s et) 1 f "''"' i te ( de v f '3 e o , . z o ne , s i z e of ( zone ) l (f9eoptr ·- .d _ _ ,jent l ->fd len -=si zeof ( z one) ~-ri7one(i9eozone l ,-. ::,'- 1.1.r n ( l } ,~=== ================================================-==================~==-*! insiabo [p34] inserer un in d ex abonne *i i nsiabo(n umeb o,o f fset, indabol int numabo of fset 1ndabo { extern struct inde ~ tabi a bo[J 1nt e ~ tern int nbabo , o r· ( i = in1 ~ bo ~ 1 i <~ nbabo ta i abo[il = t abiaba [i -1] tabiabotindabol.cle = numabo t a biabo Ci nda~oJ.offset = offset ·· .::•t •.1 • n < I* i + +) nbabo suppose augmente de 1 ,~-==-~ ~========== ~====================================================-====* , t I* [p35] insilig inserer un index ligne *' insilig(numlig,offset,indli9) int numli9 offset indlig { e x tern st r uct i nt i ; e::-;tern (i i nt = f-or index tabilig[J nba.bo + indli9 <= i 1 tab i ligt·l = tab ~ t ab i i 9 [ in d 1 i s · nbab L ., - - . 1 .... c!.u.gmente t:'·--•- de 1 ... :r. - '- t ta.bill·::· re tu r•· · } !·*==== . ,. •~====== -· ========~-~= ~~ .- , -,. ~; = --~ ~= ~-==~====-=========*! [p3 6] i (! se r .s~r ,_,_ r-1 i r. :! ,:~ : \ z c , :~• *-' i !l t '. J ";' :) =': ·. '." ': C ·f ,:; ':' l ( i n 1 •=· : . , , :~ 1:. t 2•. ::> i zone [ J .; ' " t •: , t rci •· ç- r r. :. ~; t = i; n b :;: o ne ind:zone + ta.bizonetiJ i <= nt. _w,, ,_ 1 ·__ _:.__ ~ ..:r, c. : . 1J /·'f. -- ta.bizone[ in1 :;::.... ,_ J t 3'_ rC .i. _.._, :_ ... - j i ·. __ -J , • __ ~ • • 1 nbzo t1 >:: su.ppose a.u.grnente de 1 1'.· / i9eoz onc• o f f ~ e t c.;;"f.;;E:·t 1 ( ; } /-}(--·. ~-=~-=~~=· -===== ==~==~===== =======================~ -= =*! t 'il :: z r,e [ p61J aj o uter une zone 9eo9raphique */ a.zone ( su.cces) ·nt succe s { !* '* '* I* rleclarations * ' extern int nbzone ~u.cces = 1 posi t ionneme n t en fin de fichier*' lf·seek (<:iev f 9eo, (f9eoptr->f ! _ dent) ->fdlen) i ncrementation du nombre de zones nbzone += 1 *I *I insertion d'un index clezonelzone. i9eozone,offset,indzone> I C' f ·f· s e t i f != 0 ) { nt-zone-= 1 :- J. CC 2 S = 0 r•~ tur n ( > } i ns i-z o r, e(zone. i•:3eozone , ( -Fgeoptr -> -F l_dent> -·> fdlen+1, indzone) I* ecriture du rec o r~ ~/ ezone<z ~ ne . i9eozone) r .r:..~ t u. r r1 ( ) } !*==~~=~~== ==== ==== ========================================================~*! I *· [p19] 1119 lecture alea.toire d ' un abonr,e de o u tput <:ionne lieu a un e e r reur lectur0 1en~ f ~bonne */ l 1 t 9 ( n •.1.rn 1 ; 9: ·nt. r• · -.1 1 . ·::: { i n t c, f set indli9 e:: tern st r ,_•. ct ta.be a.bo nn e e ::e: i: er r, =l r L'. C t d evsi,-1 *d ev-f ab i r- lr,u. 1! i':] <'. = 0) { t:1.'rnl i·:3 = -1 ret u.r n } , le :': 9(r,umli9,of·fset, indli9) if <offset == = 0) < n '-'· 111 l i ·:3 = - 1 r et •_\r ,. } lfs~ek(devfab , o f fsetl lfread ( devfab , abonne,sizeof(abonne) return () } ligne donnee er r eur==> numl i 9 <= 0 numli9 == 0 t I* [p20] lli g 2 l i r e un abonne de da.ns ll ig i9ne don n ee d ans ta b2 memes r eg les qu e I l 1i 92 i nt < n•_t m 1 i g l n u.m l ig { i nt offset indlig e ~ te r n st ru c t tabo abo~ne , e x t er n str u c t devsw *d evf a b2 if <nu. rn lig <= 0) { nu.m i -3 = - 1 r e t urn ( l } cleljg ( numli9 , o f f set,in d l i 9l if ( of fse t == 0 ) { n u. m l i g = -1 r etu.r t,( ) } l f seek ( dev f ab2 1 o f fset l lfread l d e vfab 2 ,abonne_sizeof (abon ne l 1 r e t urn< J } ' *===~====== ===== == ===:= ~====~= ~==- --== ===== ======= ===~== ====================*! I ~- e l i 3 [ p21] ecr i re un ~rtlcl 2 d= memes regles qu.e p o ur eab o i9ne do n nee _/ 1 i g <l { o-~f s et i nd lig n u m l i9 ; ex ter n s t r u.c t tabo abonne ; s"?>' ter ri s t r-,_,_c t -:levs1-1 -)(èEv•fë.1.b ~ x t e r n s truc t flbl~ *fa~~lr n u.n l i g ~ ~.b otv·,e , ,-,,_,_rn 1 i ::l i f- ( ;-, 1J T•1 1 i_ '3 """= 0 ' ( r:: l e l i '3 1 n '-'· rr l i ·3 , ·.:, f t se t , i n d 1 i 9 l if· l o-f- f se+:. 1 -= 0) < i~ t r, l_l.f1} l '3 :~ -= t u r r; l -r- •=- e •? lse if (? -:: ( - 1 l k ( d. e v f a.b , l n 1..1. rnl i g ' c l e l i ·3 ( n u. m l ~ -~ , i r < o f .:: s ,:;, t == ,-,._.if, 1 i ·3 "" l = < f 2 .b p t_ r - >·f l _ r_ e n t l- >-f d 1e n J } 0) ~~• -f- ol ·F se l , i r. d l i '3 l < r,~t1. 1.rn () ) i '=-:-<? v. ( d,? -'f:él.b,o + fs e tl } ·1-:= E. 'f a b pt r- '>f). _ ·lent) :+d le n = fa.b pt r -> ·fl_pos 1 !,-ir i te (d -: ~,,fe.b 5 i3.b=-t1r,e- 5 si::.e o f (ë>.bonne l > ri:' +: t · r n ( 1 10 } [p?Zl i 'J I e p r·, , ,· •:l o n n e d C\n:i fab 2 11,e ni s reg les que ,, :' t·, J } t' e >< t_ e r n r:-. t_er n s t r· i. 1. c. t. !:: tri,_ ,:( -=.~.• .JU c~ '-'.:' W e:><ter,i s t r••r:t flbll. t"llJT"\: · ::1 · · i:4.lJ{Jt"r. 1€. ~-tl_lfl) i< 1 n11M l ·:.1 Ol { u ri, l i '3 abann-: * dev fab2 *f a.b2ptr 1 i '3 c l e 1 : 3 ( •·, 1_._ r,1 l i g , of f s e if (off set !=- Oi { ,·,,_:_ml i 3 nd 1i 9 l 1 = ret•_\r, '? t , i ,. 1-f s~ct (de'-<=.b2,of·f~ et ) } ( n _1_ r., l i 9 > O> { -: 1 e i ·J : v u ,., 1 i J .• o + ·f set , i n d l i 9 l l "= •= i. :: 0) r, ,_, · ,·, 1 i _, { - 1 r e ~- _ r r Fse ~k(devf~b2 ,o f fset) } '::'lse (fab2pt•- · ., f l _den tl->fd len = fa b 2ptr - > f l _po s 'fwrite(deviab2,abonne,sizeo f(abonnell :- eturn( . } !*=~======================= ==== == ==== ==== =====~ ======-==~=:================~*! clel ig /Y. [p23] si l a de la. cle 1 i9 ne d onriee celu. i de la. cle i rnmed i a terne,, t et o ·f r set -- 0 -- .' i ·:: ( nu i ,., + T.-, n11.r· l i:::J cle l i •J , a r .f -= •-=- t , i n -:1 1 i 9 l CJ{ 0 =:<:?t it::!~iJ I< e:,·ter i r, t_ r. t a. b Lï 1;:t _•.c.t :t,rJe t : ·~t,:::.· .- --: t 3.b i l i g t J ··. ' ·, ~- • ,o 11: •'= 'i -= r j) { i+j )o/e2 < n '·'· :n 1 i 3 = t a.b i l i '3 [ m J • c 1 r;: ) o-ffs'=' t. -= t?bi igt mJ. of~set i ,,., rJ i i J - - j(! · ~ t, 1 , ' r'. ( l } i r { 1 t~~ili 3tmJ.cle l = j !.l 1 f l i ... 1 } n .. . ! '~ < t t•t 1 ·- ; t I ~ j } , ~~~--=-- === ==== ~========= == =========== == ==== ==== ========= == =============- ==* ! t Annexe 2 Caractéristiques essentielles des systèmes étudiés. Annexe 2.1 RTM-80. 1 A C E C GESTION DES TACHES I. Une tâ che est un programme connu du système exécutif par : - une adresse de départ (première instruction de la tâche), - une adresse de stack (chaque tâche ayant son stàck propre , - un niveau de priorité (numéroté de 1 à 16). En outre, la dernière instruction exécutable d'u n • tâche est nécessairemen t JMP Cvoir § 4. ) . RTMON t ------- -- 2 A C E C 1. PRI1KIPES Une tache pe ut se trouver active non active (au repos). (en train de tourn e r-) 0 1: Le mot "actif" a été créé pour mémoris er l'état des 16 tâc he s . inscrire W1 bit= 1 acti : W1 bit = iJ re p..,. tÔ.,h t.- AG Mais, une tâch e active peu t dialoguer ave c un pé ri ph~riqu , Nous sommes donc obligés de créer un deux ième mot "abl e· représentant l'état des 16 tâches vis-à-vis du périp hé r-i ~ Une tache en dia l og ue a vec un p ériphérique aura : able - , · : ,:. =----------:r- < l t<ic1 , -1 ~ - - - - - - ' - - - - -- ~ - - ' to.,L\,l. • t ë. J-, '- • (. Quatre états définissa nt la tâche sont po s sibles () Lt, f n.\), /\ A l Li<1L Ô.Lt,.... t.,. ri 1> À , ,{ (/) l \_ , \a. c.\- ~ Q~ Q.:J c$ 4...t.. 1..,1,. -.,.. - o...o.Lout t~v . . r~ · Une tâche ctu repos e st ab le = 1 Pour savoir quand il faut démarrer une tâche , il suffit ù tester qua nd actif et able se ront égaux à 1 en même temp s C' est le rôle du sched ul er . Toutes les 20 ms , le scheduler testera les 16 tâches . (Il est pos sible d'initialiser le système pour une pJ r iou différente, par exemple de 1 0 ms ec .) ' ·-- 3 ACE C 2 . QU ' LNTUH)-üN PAR lJLl1/\kRU{ UNE: TAC ll t ? S i u n e t âche est i n terrompue ( par un interrupt), elle sauv t..: l' état de ses registres et so n PC sur un stack. Nous appelons celd ·1e sauvetage du con texte. A la f i n de l 'interru pt , l a tâche reprend son contexte du s tack et redémarre là oQ elle a été interrompue. Si une tâche doit démarrer à partir de l'origine, il suffi 1 · de sui v re le même principe et de placer un contexte sur un stack comprenant un PC de ret o ur= adresse origin e de la tâche. La phase d'initialisation du mon i teur (appelée dans le pro gramme "reset" ) s ' occupe du placement des adresses origine tâches dan~ les s·tack des tâches. (Voir schéma page suivante.) Chaque tâche possèdt:: son propre stack . RTH-8 0 t A C E C 4 INITIALISATION DES STACK ")1.v,-..J ._ . .. l,. ' A d. v t -.., • CT t• ' .. ~(-' ff'I , . ' .• \ :, I' PLACEMENT ORIGINE TACHE ,1 \ n ' \. • SV 1"' ( ~. 'l. Travail du reset ra.\.,\ , a. .. .,.,,i.,~•1• 1 JQ.~) J,' d., ~\a.J-, 1a. I<,. .:, "'' (,11' ~3 , f•~ , , c.,.,1..,1 _ ""•'3,"- "' .. O<).,t' 01', ~ ....... ~ l â.t\, , ..\ \.;. '1, . 2. 1 " ,\., '.., P n, or , \- . fS~-1~:: l ~------- ---~ i "'\ \:,(. ( L, l:. . - · o.d.... .,. l O. f-lC. 1 ) I" ~C... \, ) t <.." -' t,,U, o.." d, , 0 v, j · \ \ , ' \,,.• 't"> \ •) V \ q •, \ t.o , \ , " } a, \ "" .1 "' "' \ ~. ) f\ 1 l C,t .. 51.1"'\ , lo.c1., U,., c.. """' -;, Ô 1 \ Q V • (J• \,. V\)( lo., 1., o.J •. ov.,.3 , ,.., ta. c.\.,,(. - ~ .1'\ t "'"l'\ . .>'tl - -_ c o"' ' ' "~"' SP,Ab 11 '" '• \~---1,/ /4 t i • ------ 0• •3 • ~- , ~ ,\.. , 'J.. ( <l C \, t t---- ,j , 2. - ) L:- o.J ~. 1 l t 9 .. ' ~ o ,,v \ . ~·· J ,. ). --- < r ' J, ·...,.._.,,..,._'1, du l ... ~I,;> . "" ,..,._'i>l ,v. .. d, 1.... }o>, I,<> "' J, \.,u, 1, 1 l\ a.,t) ' 5 A C E C Dès qu e le s o r i g in e s d e s taches sont placées, il suffit d e desc end re le s t a c k de O ~our trouver l'adr e sse limite du cont e x te . BC -6 DE HL - 4 - 2 PC a dresse s t a c k C'est une a dresse qu'il f a udrB. rœrroriser, car elle servira à faire la restitution du contexte (reg istres+ PC). Cette adresse est sauvée dans le tableau SPJ'. - 8. PSW - A (o r i gine tâc he) • X 3. LE SCHEDU LLR Dès lors , ~our démd rr er un e tâche, nous aurons \ \ r oi,\. I _ . _ _- - ,:.- - --~ -- - c, , ,\ - - - -- 1 - - - \ e ) \· .q , ... -· ,\., là.c\.-,, _,/ Schédul er , , \). ' " \. J. ~ - 1 I dé e géné rale • 6 A C E C Or, l'initialisation l..les tables routines, (le reset), l'app~l des s ' effectue~ l'aide du st~~k du moniteur. Le schectuler, pour le test de able et ac~~ i stack du moniteur. utilise le Il y a donc un chang eme nt de stack pour le démarrage d 'un e tâche (ab andon avec mémorisation du SP moniteur et reprise SP tàche). A tout instant , pou r connaître le numéro de la tâche en cours, on a créé le byte Taska contien t 11 taska 11 • d onc en binaire le numéro de la tâche acti . Par définition, une tâche est re p résentée par so n numero l de tâche dans taska le moniteur est représenté p ar task On peut do nc schématiser le scheduler comm e s ui t Scheàuler S<u..v ~to...9, 5 f' ""o ........ L1.. . . . . .., s Ç) , s 'f1tt''-) "- , ~ (> t.',.,t.h ~ C u 1,, A • ç>5w c.o~l-« r~ Cl • c. D - E. \,\ . L , ./ PC ~.;. c.ht f>c = ~- t 7 A C E C [n outre, 011 met à l a disposition du sottwdr e d ' appliCdtion fonctions suspeitsion et désuspension de tâ c hes. La suspe ns ion d'u n tâche é t ant directement lié e au démar- rag e de la tâche , on a décidé de tester égale me n t ce tte suspension dc1ns le sched uler. Le mot "susp" d é té créé . Susp e ndre une t~che revient à mettre le bit à 1 . Pour démarrer une tâche , on fait une opération lo g ique (" et" logil!ue) entre able et actif. On placera le susp dans c et te opéra tion logique et on fer d 11 et 11 logique l able acti f s usp (compl éme nt par rapport à 1) Le diagramme du schedule r e st presque compl e t. Il d oi t c ependant ~tre com pl ét6 po ur sat isfaire l es propr i étés de s interrupts (voir§ II.). M-P 8 A C E C FIN DE TACHE A la fin de chaque tâche, il faut redonner la main au scheduler. Cette ooéra tion est faite par la routine du moniteur RTMON. Cette routine comporte 7 phases 1) rechercher l'origine de la tâche qui se termine et pla c,· cette origine dans le stack 2) rechercher le stac k pointer à sauver dans le SPTAB 3) désactiver la td.che 4) sauver la SP tâche dans le SPTAB 5) reprendre les paramètres moniteur taska = ri:i 6) reprise du SP mon iteur de SPTAB 7) saut dans le scheduler. Exemple fin tctche n° 2. o...d't' t.\ a...'.)." \ ) s ' ~ 0-< ... ~1,.f"'\, (Qc\- , .>, (.:,ù,c (o .... 'l r. ... . . c.,t.~~.1 C. ~ ~7 ~~ 1 r~•c~ srt~à . , , l.tL\.. , H,. Sto.Ct} \'.ic.h, l. 1 l (,le~ 1 1 1 1 11 :;:t .. 1 S PT n 0 t 9 A C E C 1 Re<l.c.,c.~ .. O'1'<'.)'-"'t • \- ~~'- .!) E. 1-l L -.. - & !)Al) SP x' C:1-4 G ~ ...c.~._,J. .. da..-• HL S D"f'P. 1~, 1 t<>.1 ~ 0. D.e ~ (· .,,. J)~ -,,,..c.1- -""' ~ --0"' r .;__ ct t LHLI) ~fl-1 L .,,. 7_,, \1L - 1s -t t Annexe 2.2 iRMX 80/88. t Le ::, sy:;li::mes en emps réel iR MX B0 /86 . Les système i; iRMX fournis ,.e nt des fonctions n é cessaires au développement d'applicat:ons des tinés à tourner s ur de s architectures mono-process eu r . Le iR l",X 80 est utilisé avec des architectures basées s u r l e s mi c r o - pro c e s s e u r 8 Dü O e t t; Ub :i • Le i RMX B8 e s t u t i l i s é avec une architecture iAPX 8B e Voic i iA PX 86 . un br e f synopsis des fonctions d'un système iRiv,X: - le noyau est en quelque s orte un méla nge de policier de carref ur et d'arbitre , il coordonne toutes les activités concu r rentes dans un système applic atif ba s é sur iRMX. - le gérant d u terminal r ' alise les I/0 entre un terminal op'rateur et le s tâches schedul é e s par le noyau. - le gfran t des espaces libres maintien t un nool des espaces de mémoire vive libre , alloue des blocs de cette mém oire aux tâches dema nderesses et récupére les blocs libérés pa r l es tâches. - le disk system file fournit des possibiltés de gestion de fichier. - le bootst ra p l oade r se charge du charge me nt d 'une application basée sur le syst ème i RMX et des fichiers qui lui sont propres . le an alog handler réali se l a conve r sion analogiqu edigital p our les tâches faisant des inputs et la conv e rsion digital -a nalogiq ue pour les tâches faisant des outnuts. Tabl e 1-1. iRMX 80 and iRMX 88 Components Component IRMX 80 IRMX 88 Nucleus X X Termina l Hand ler X X Free Space M anager X X D isk File System X future Bootstrap Loaoer X future Analog Handlers X future Command Line lnterpreter X future Debugger X future - - - t Nous~ nnons ici un e pr ~sentation des dif tr e nt es pr • c ~d ur es d~s systè mes i R11X q u i aur Aient pu soutenir n otre application si nous avions pu uti lise r pareil système . Le l ec t e ur d ésirant a pp r ofondir ses connaiss an ces sur iRMX pourra toujour s se r éfére r a u manuel de l'utilisateur. A . L a notion de tâche. Une tâche es t un éléme nt ac t if dans un systèm e iRMX Elle peut perçu de deux manières : - du point de vue d u programmeur , une tâche es t une entité qui exécute un programme . Lorsqu e pl usieu r s tâches coe xiste n t dans un système , elles se partagent le CPU et même peuvent se partager le code. - du point d e vue d u noyau , une tâche es t un ensemble de valeurs de regis tr es . Au moyen de c e s no y au p e ut à t out marne n t va le urs, le ex~cuter une tâche . Les é tats des tâche s . Une tâc h e est toujours dans un d es qu a t re é~a ts d'exécutio n suivan ts: - Running : la tâche est exécut ~ e, à tout mom ent une seule tâche est dans cet é tat , - Read y l a tâche est éligible à l 'état Running remarquons que la tâche à l ' é tat Running est la tâche à l 'é tat Re ady de plus haut p ri orité . - Waiting : la tâche attend à un point d'échange, un me s sa ge que doit lui envoyer une autre tâche . - S uspended : une tâche pe ut se suspendre elle - ~ ême o u l 'êt r e pa r une autre t âche . :;:.:_ Pr o . fdu r es_ du_n.iyau. L. 1 Lri p rnc i'i dure RQS UP. let te procéd u r e a pour spécification de sus pe ndre un e tâche, donc de l ' empêcher de pouvoir acqu é rir le s resso ucP.s d u systè me . Syn t ax e: CALL RQ5US P(task - descriptor); avec task - descriptor : une adre s se contenea n t l'adresse du descripteur de tâche de la tâche suspendue. es cr ip tion: RQSUP est réentrante et pe ut être a p pel ée à n'importe quel moment par l a tâc he en é tat Running . D.2 Ln procéd ure RQ[TSK . Cet te p r océdur e accepte un descripteur de tâche pour la tâch e dssigné e, installe le stack de la tâche et place ce t te t âc he da ns l'état Read y . Syntaxe: CAL L RQCTSK(st atic- tas k - descriptor) avec static-task-descriptor : un poi n te ur contenant l'adresse du descripteur de tâche de la tâche qui vient d'être Description: cr ée . idem que B .1 B. J La procédure RQDSTK . Cette procédure détruit une tâche da ns le système. Sy ntaxe: CA LL RQDTSK(task - d escriptor) avec task- d escri p tor : une adresse conten F- nt l'ad resse du descripteu r de tâche de l a tâche à d~truir e . '.' escr ip ti ,n : ide m que l:l .1 B. 4 Les priorit[s de la tâche. Chaque tâche a u ne priorité da ns l'intervall P. 0-255. Le système iRMX peu t Il e xis t donc gér r j u sq u'à 256 tâc hes . une co rrespondance e nt re la priorit~ d ' une tâche et le ~ n i veau x d ' in t erruption mci squa b les . t ~.:. -L es _ écf1él n ges . Les tJctles doiv .nt sou\,ert interagir , et pour ce fa ir e i le st nécessa ir e de leur perne t des éc hanges mutuel s. La m6thode d' interaction LSt q u'une tâch e e nvoie u n message et qu ' une autr e tâche reç oi t ce mess a g e à un échange . Chaque échange a deux files d ' atte nte, une pou r les tâches qui s ont en attente de réception, l'autre po ur les messages e nvoy és et non encore réceptionnés . Le Une tâch e envoie un message à un échange au moye n de la p r océd ur e RQSEND . A cet ins t ant rleux c hoses peu vent se pas se r: Si a ucune tâch e n'est en attente à cet échange, le message est placé à l 'arr ière de l a file. La gesti on d e c e 'te file est FIFO , D' a u t r e p a r t , s I i l e x i s t e d e s t â c t, e s e n a t t e n t e ; l e me s sa g e e s t remis à l a t âche conc e r n ée et son État devie nt Re ady . Il est à remarquer que si la tâc e réceotrice a un prior ité plus élevée qu e la tâche émettrice, ce ser a la prem i ère q ui au ra l a possibilité d ' être exécut ée avant la seco n d e tâ che. Avant d'envoyer un ~ essage, le message dans la RAM. une tâche do it co n s tr uire Chaque message est con stitu é d ' un header sec t i on( de 5 à 9 bytes LIN K LEN G TH MESSAGE HEAOE R (BYTES 0 THROUGH 8) TYPE S HOM E EXCHAN GE (OPT I ONA L) 7 RESPONSE EX CHA N GE (OPTIONAL MESSAGE CONT'ENT (BYTE 9 TO ENO ) 9 AOOI TIO NAL DATA (OPTI ON AL.; VARIABLE IN LENGTH )' Figure 1-2. iRMX 88 Message F ormat The LINK field of the message is used by the Nucleus to link together mu ltiple messages waiting at t he same excha n ge , T his field should not be changed by sen di ng task s . The sending task must set the LENGTH fi eld equal to the le n gth , in bytes. of the entire messa ge. including both the header section and, if present, the message content section. TYPE is a one-byte field containing a code identifyin g the type or purpose of the mess age. Type values O to 63 a re r eserv ed for iRMX 88-defin ed message t'l.'pes. whi le \'alues 64 through 255 are a vail a ble to you to define for yo ur own purposes. A list of ail currently defi n ed iRMX 88 m essage typ es is given in Appe n dix C. For the conveni en ce of PL / M u se r s, iRMX 88 supplies an L 1 CLlJD E file named J\1SGTYP.LIT, which contains symbolic narn es for the m essa ge types . , . o JJ l (·' t. t i r, c ~ d ur ' RQ5 END . e ,1 r o c Cd u r e en v o t e u n me s s a g e .°:! u n t: c h a n g e . ~y rtaxe : rAL L RQSE ND( ex c ha nge - ~ ddress , message - adre s s) a v ec exchange-address : l'adress e du d e scripteur de l ' échange me s s a g e - a d d r e s s: l'adresse d u d f but de me s sa g e . Descrip tion : RQ~E ND est r é e n trant e t peut être a p pelé Q n ' i mporte quel mo ment . C. 2 La pr oc é du re RQWAIT. Ce~ t e pr océdur e retourne l ' adresse d'un me ssa g e à la tâc h e ppel ante . Sy n t axe : mess a ge -address = RQWA IT(exchan g e - a d r e ss, time limit) avec messag e - a ddres s : l ' ad resse d a n s laque ll e es t i n s crite l ' a d ress e d u me ss a 9 e exch a n g e - a dd re ss : l ' adresse du descri p t e ur d e l ' éc h an ge où l a tâche ao p elante veu t re c e v oi r l e messa g e ti me - limit : un mot co ntena nt s o it z éro ou le no mbre d 'u nités d e t emps que la t â ch e app e la nte a tte n d ra; l e z é ro si g nifie que l a tâ c he att e n d ra ind é fi n i me nt . C . 3 La o r océdure RQA CPT . Cette or o c:du re accepte u n me ssage ; so it elle r n tou rn e z .§ ro a uqu e l tâ c h e, ca s il n ' y a p as de me ssag e de s ti n ~ ? ce , t e soit un ~ ess a g e . S y n ta x e : me s s a g e - a rl d r e s s = R~ ACP T ( e x c h a n g e - a d r e '. , s ) avec me s sag e-a dd r e s s : l ' ad r ess e égAl soit à z~ r o soit~ l ' a d re s se d u mess a g e e x c ha n J e - 2dd r es s : l ' ad r esse du de scr ~oteu r d ' éc h ange d e la tâ c he a p pela n te . t C. 4 La proc(rlure RQCXCH . Ce tte pro cédure c ré e un é ch ang e en acceptant un descripteur d ' écha nge. Sy ntaxe : CALL R4[XCH (exchange- adress) C.5 ~a proc édure RQD XCH. Cette procédure permet la destr uc ti on d ' un éc h a n ge. La des truct io n n ' e st effectuée que s ' i l n'y a pl us d' éléme nt s S ynt axe: dans les deux files constituantes de l'écha nge. CALL byte -var ia ble = RQDXCH(exchange-addre ss) avec by te-variable: un by te dans lequel la val eur OFFH est re to urn ée si l a destr uction est ef fectuée, 0 est retou rné dans tout autre c i rconstance. t Annexe 2. 3 Xinu. - ------ - - - --- -t- INTRO DUC'l'I ON XINU est un système d ' explo i tation conçu selon le principe d 'o rdo n nancement hi~rar chi q ue qui permet de construire des struct ur es par niveaux et classes. XI NU i ncorpore les concepts de UNIX 02 ns un système simple , facile à com~rendre, à ~ o d ifie r, ~ po r ter parce qu'il est proprement oart itionn~ en couches. XINU peut tourner avec 4000 bvtes (moins de 4 K) de mémoire c entrale . L ' ensemble-des fichiers sources, avec les commentaires , représente à ?eine 5 85 0 lignes de code en langage C e t 650 lignes ~e code assembleur . Sans les commentaires, nombr e ux et clairs , ces chiffres tombent à 4300 ligne~ de Cet 550 lignes d ' assembleur . XINU est conçu comne un système en time sharirig c'est-à-dire permettant la multipr ogra mmati on avec une politique de partage du 9rocesseur éga l pour chaque utilisateur . Il fournit ~galement les moy~ns de communication entre machines gr§ce à un resea u en anneau . Ce système d ' exploitation fut initialement implémenté pour des processeurs LSI 1 1 équipa nt les ordinateurs PDP 1 1 . 2 t ORGANISATIO N HIERARCHIQUE Les composants du système sont organ is ~s en une h i é rarc hie de couche s rendant les interconnexions entre e ll es c l aires . ( FIGURE 1 Au coeur de la structure, se trouve le hardware . A part i r de 1 ~ , des couche s de logic i el fournissen t des primitives de plu~ en plu s o uissantes e t cachent la machine aux utilisateurs. ~haque couche du système fournit un se rvice abstra it, implémenté en termes àes services abst r aits fourn is par le s couches de nivea ux infér i eurs. L'essence è ' un système d ' exploitation se trouve dans les services qu 'il peut fournir aux p rog r ammes uti l isat eurs . Les pr ogramnes accaden t à ces services en faisant des "appels système". Ces appels syst èr.te ressemblent à de s appels de proc édure et sont connus sous le nom de "primitive" . Les pri • it ives définissent les services que le système fournit et l'int erface a ces services. Sans les couches 7 et 8 , c'est-à-dire le système de gestion de fichiers et le réseau, on obt ient un systeme minimal qui sera décrit dans le cadre de cette é tude. Chaque niveau sera quelq ue peu présenté . Suivent ensuite une éventuelle de scription d es primitives ainsi que des que l ques routines dépendantes de la ~achine et qui sont : crites en assemb leur . 3 t COUCHE 0 LA MACHINE. XINU fut imp l émenté par Douglas Corner sur un micro-processeur 16 bits de chez Dig ital Equipme nt Cor poration le LSI 11 /02. Celui-ci équ i pe le min i-ordinateur PDP 11. Le LSI 11/02 e st construit à part ir de 3 cartes de circuit intégré reliées par un bus : - le processeur - la mémoire - l'interface term ina l. Les s o rties ( entrées) sont effectuées en écr ivan t (li sant) à des adresses comprises dans les 8 der n iers K bytes de l'es ~ace d'acressage . Quand un devi c e reconnait son adresse sur l e bu s, so i t il t ransmet des données au CPU, soit il réceptionne des données en ? rovenance d u CPU , soi t il contrôle le device. Les transmissions sont effectuées pe.r D:Il. ( Direct :1er:iory Access ) c'est-à-dire que le device utilise 12 bus pou r communiquer d irectement avec l a ~émoire . routines Assembleur En cas d'appel de procédure , la proc édure appelée sauve et re staure les reg is t r es r es?e c tivement avant et apr~s l' exé cution du corps de l a pro c édure . csv ~cutine de sauvetage des registres . CRET Routine de regis tr es . -1 restauration des ' COUCHE 1 : GE STION MEMOI RE DE BAS NIVEAU. Cette cou che gère une l i ste chaînée de tous les espaces mémoi r e lj bres, allouant et désallouant d es blocs~ la demande . La mém oi re es t all o uée à partir d u d 6 but d e la rn~mo i re t andis que les stacks de processus s e trouvent dans l a f i n de la mémoire . A ce niveau , les demandes qui ne peuvent être satisfa i te s sont s i mp l emen t rejetées. primitives GETMEM (nbyte s ) Cette routine al l oue un bloc de nbytes ( a rrond i) bvtes de mémoire au orocessus appelant ~ partir de-la fin de l ' espace utilisé par le progr a~me e t retourne l' ad r esse de dé but de bloc. GETSTK (nby t e s) Cette ro u tine alloue un bloc de nbytes (arrondi) bytes de mémoire au processus appelant à partir de la f i n de la mémoire et en remontant . GSTSTK retourne l'adresse de fin du bloc. 5 J COUCHE 2 : GERANT DES PROCESSUS. Le gérant des processus 0st prat iqu e ment conçu en trois sous-couches r épo 1dan t au m@rne principe d 'ordonnancemerit hi é rarc hique. La premi~re couche implément e ~anip ulation s de listes et de files . co n text e deux . Le feront les scheduling et l e changemc ;1t de l 'objet de la sous-couche num6ro La dernière couche fourn it primiti ves de manipu lation des processus. 6 le s t COUCHZ 2.1 : MAN IPULATION DE LISTES ET DE FILE S . Les routines déc ri tes ici s ont utilisées pour gérer des . files par ordre chronolog i q u e d ' in sert ion (FI FO) ou pa~ priorité . Ces routines permettent d 'in sérer un élément à l a q ue u e d 'u ne liste , d 'ins érer un élé~ent dans une liste ordonnée, d'enleve r un élément à la tête d 'un e liste et d ' allouer un e no uvelle li s t e . To u tes les liste s ont le mê • e format : el l es sont chaînées en avant et en a rrière, el l es on t une tête et un e que u e , chaque é léme nt de la li ste ooss~de un e cl é ( ent i er) utilis 6e en c as de file or~anis é e pa r pr i orité . 7 t COUCHE 2 . 2 SCIIEDULING ET CHANGEMENT DE CON'l'EXTE. Le scheduling et le changement de contexte sont des activités três proches rendant poss ible l' exé cution concurrente. Le sc hedu ling consiste à choisir un processus parmi ceux prgts à être ex~c ut é s. Le changeme nt de contexte consiste à arrêter l'exécution d'un pro c essus et à en relancer un nouveau. Pour g arder trace des processus, le syst~me utilise un e structure de données globale appelée table de processus. Chaque fois que le scheduler suspend temporairement un processus, il sauve toute l'information pertinente concernant ce p rocessu s, en même temp s que l' é tat du processus. routine Asse~b leur CTXW Routine de ch angement de contexte sauve et charge les re g istres. 8 COUCHE 2.3 GJ~S'l'IOt l DES PROCESSUS. Ce paragraphe étend la notion de gé rant de p roc e s sus en ajoutant une couche de log iciel au - dess us du schedulihg e t du changement de c ontexte. ette nouve lle co u che inclut des routines pour suspe nd r e e t repr e ndre u n e exé cution ainsi que des routines qui créent de s processus et les tu ent . Sont dé veloppées é galement deux p rocédu res util i taires q ui permettent d 'obte ni r l'ide ntificate ur d'un p rocessus et de changer la prio rit é d'un pro c es sus. orimitives RESUME (pid) Cette ~rim i tive au tori se un p roc ess us suspendu d o n L l ' id e ntif icateur est pid ~ reprendre son- e x ~ cution . Si la dem3nde es t va li de , RESUME retourn e la priorit é du 9rocessus . SUSPEND (pid) Ce tte primitive place l e proce s sus d ont l ' i d ent ific a teur es t pid en état d'hibernation. Si la de . ande est val i de , SUSPEND r etour ne la priorité du ~ro c essus . Un pr oc essus peu t suspendre-soi-m@me so~ exé cut ion . KILL (pi è ) Cette primitive arrètera immédiate~e nt l e pro cessus dont l ' identificateur est pid e t l'expulsera du système. On ?eut tu e r un processus quel que soit so n éta t . Une fois tu é , il n e p ourra être r e scusité . 9 CREATE ( caddr , ssize, 0 ,argument§ ) prio, name , n .: LgS Cette primitive crée n procrssu . qui d~butera son ex6c ution ~ l ' adress e caddr ave: un stack de ssize mo ts, une prio~ité initia ]e p• io et comme nom i d entifiant narne. Si la e~~rfe est valide , CREATE retour ne l 1 iden t~_f ir 3.t_1 ir du p rocessus. ~, cre c, Le processu s r es t é tat suspendu. Un nombre va riable d · a '. " gur:1 e n t s auquels on acc~de via des p3 ram ~tres .i or:n , 1.3 peut ~t r e cass é au nouveau p roces su . CHPRIO ( pid , newprio ) Cette primitive donn nouvelle ;:iriorité de scheduling aL1 l 'identificateur est pid. n8wpr io Jr _,cesses comme dont GETPID () Cette p r i T •. t i· ·, re tourn e l'identifica t eu r du p ro cess u s e 1 c >1rs d ' exécu tion. 10 t COUCHE 3 COORDINAT ION DES PROCESSUS Les ry rimitives d e synchr o ni sRticn de c et te couche sont. basées sur l e p ri nci:e de s s é:naphores de comp tage. A côt é des p roc éd:1n~s de cr é ation et d e des t ruction des séma p ho rer, les pri mitives WAIT et SIGNAL sont util is62s po ur c u s p endre et r epre n dre des p r oc~ssus en fonction d e l a vale u r d ' un s~rnaphore . Cette techniqu e ?er~e t de cocr d onner de u x p ro cess us de mani è re ~ g ar a ~ti r que le consommate u r reçoive chaqu e vale u r &mi 3c pa r l e De mgme , un e ns emb l e de p r ocessus ?CU t p roducteur . utilisé un sémaphore p our obt enir l' acc ès e::cl s i f â une structure de d onn ées qu ' ils partagen t. nri mi tives WAIT (sem) Cette primitive décr &m ent e l a va l eu r du s émaphore sem et b lo que l e 9rocess1 s appe l an t s i l a valeur du sé~aphore devient négative . SIGNAL ( s e 1.) Cette primitive inc r ém ente l a va l e ur d u s émaphore sem et lib è re éve n t u e ll e~ent un processus en attente du sémaphore . SCREATE (count ) Cette ?rimitive cr ée un s~maphore de comptage e t l ' initia li se avec l a v a l eu r count. Si 12 d e~ancte est vali de , SCREATE rctour ~e l ' identi f ic a t e ur d u sémaphore . SDELETE (s em ) Cette p rimitiv e r ec 1re d u s ysta~c le sém aphore sern et libèr e l es p r oces su s é ventue ll ement en attente de ce s émaphor e . 11 COUCHE 4 ENVOI DE MESSAGES L'envoi de messages de processus à p r oces sus es t une forme simple et effi c i ente de commun i cation. Chaque p r ocessus poss~de un e fi l d' a tt e n te de me ssages de longueur un. De p l us, la lon g u eur d 'un message est limit~e à un mot. primi ti ve s SEND (p i d , msg ) Cette primitive e nvoie un me s sa se au proce s se ur d ont l ' identificateur est pid. Si ce processu s po s s ed e dé j à un message en att er. t e d 'êtr e l u, la deDa n de d'envoi est annul ée . RECEIVE () Cet t e ~nvoyé au primitive retourne l e p ro c es s us appelant. S'i l n'y message a a u cun message en a ttente, le processus e s t bloqu é jusqu ' ~ l ' appa r i tio n d 'un me ssage. RECVCLR () Cett e primitive v é rifi e si il y a un message e n attente et le retourn e si c'est l e ca s. 12 t COUCH E 5 : GERANT D' HORLOGE TEMPS REEL . vant la couc he d 'impl émen tat io n pro prement dite de l'horloge , vient s ' intercaler une co uche interm~diaire , mais tr~s importante, gérant l e traite~e nt des interrupti ons . 13 COUCHE 5. 1 TRAITEMENT DES I NTERRUPTIONS. Le syst~me d ' in terruption est un mécanisme puissant sur lequel se repose une b o n n e par t ie du système d ' exploitat i on. Un appareil demande une i nterrupti o n en envoyan t un signal au CPU via un bus . Ava n t d ' exécuter une instruction, le CPU cont ~8 le le b us d ' interr u ption et appelle une p r océdure de traitement de l'int~rru ption en cas de deme nde . le contrôle Quand cette procédu r e est t erm inée, revient normalement au processus qui fut interrompu . Cette couche implémente les routines de dispatching écrites en assembleur s ur lesquelles viennent se gerffer les g érants d ' interruptions é crits e n lan gage C. Les dispatchers détectent les i nterr uptions , sauvent les registres machine e t passent le contr8l e au gérant des interruptions i de ntifi é gràce à u ne tab l e de dispa t ching . Quand le gé r ant a terminé son travail, le cont r ôle est rendu a u dispatcher qui r e c harge le s registrese et r e tourne au prog ramme interrompu a p r è s avoir restauré son é tat. routine Assemb leur I NI NT, OUTINT Les i n itial ement trai t c es derniares décr ites , les au t ori sées . o pé rations d'entrées / sorties sont ées pa r ces r outines . Pendant que exé cut en t les fonct io ns dé j â interruptions ne sont olus - 14 COUC:-L:.: 5 . 2 GERAi.'lT D I HORLOGE TEI,JPS R:SEL. U.e ~orlog e el hardware émetta n t avec u ne g rand e précision d es impulsions â interva l le rég ulier. A côté de l'horloge centrale, l e systènc ge _ c une horloge temps r é el et u n e horloge c a l end rier. Ce t te dernièr e poss è de un compteur du nombr e d ' impul s ions é mises et fa i t p rogresser l'h e ure et la date toutes l e s second es . 1 h orl o ge tem p s réel est sensiblement différ e nt e . Chaque impulsion d e l'horloge hardware provo q ue une i nt e rruntion d u CPU et , au lieu d 'e ffe ct uer sy s témati q uement les traiteme nts correspondant ~ la p rog r ession de l ' horloge, incr é~e nt e u~ c o mp teur . Seul e ment après un certain nombr e d ' in t e rruptions hardwar e , la routin e de traitement est ef f e ctive ment exécutée . !., Le gé rant d ' horlo ge temps r ée l est ut i lis é pour prog ra mmer l ' exé c u tion d'évèn e me nts da ns l e fut r et po ur l e s lanc e r e ff e ctive ne n t au n ome n t v ou l u. La pr é e mp tion oui force l ' appe l au sched ul er ap r ès q~ ' un ~roces;us ait é té exécuté un certa in te~ps , es t imp l é menté de cette manière. Ce rt a ins p roc e ssu s peuvent de mêm e s ' end o rn ir penda nt un c e rt a in temp s sur une liste d e o roc essus endormis et, une fois leur d é lai e xp ir é , être r é veill é s et relancés par le géra n t d 'i n t e r ruption s. pr i mit i v es SLEEP ( secs ) Ce tt e r outin e a rrêt e e t diff è r e l I c;-:é c u t io:1 d u p roce s s u s en cours un nombre d o n n é secs d2 se cond es. 15 -.ç----- SLEEP10 (d i x ) routin e a rrête e t Ce tt e diff2re 1 ' e:<é c ut i on du p rocessus en cours un nombre d o r..né d ix de dixi~mes d e seconde . routi nes As semb leur SETCLKR Ce tt e routin e initi al i se t e • ps r ~el au (r e ) dé marr age d u s ys t ~me . l 'h orloge CLKI NT Cette r outine d e tr a i tement de l ' inte rrup tion d ' h o r lo ge met à j ou r l e compteur d'interruptions . CLKINT r é veill e , si n é c ess a ire , un pro c essus endormi et me t à jour le compteur de préemptio n. 16 COUCHE 6 GERANT DES PERIPHERIQUES. Deux couches composent le gérant des pé~iphériques. La première reprend les device drivers correspo ndant à chaque appareil pé riphéri que physique. La seconde implémente une couche de primitives d ' entrée / sortie indépendante de tout a~pareil réel . La découpe de cette couche en deux sou s - couches distinctes r é pond à trois raisons essentielle·. Tout d'abord, l ' interface hardware de la plupart des pér iphériques est lourd et complexe â manipuler . ensuite , ces appareils sont des ressources par tagées dont la sécurite d'accès doit être contrôlée par le système d'exploitation . ~nfin , XI JU fournit aussi un interface cohérent, uniforme et flexible à tous l es péripncrigues permettant aux utilisateurs d ' eff2ctuer des entrées/sortie s sans rien connaître de la con figura tion de la machine . 17 COUCHE 6.1 CLAVIEE. UN DEVICl~ DRIVER POUR TERt'lIUAL AVEC Un device driver consiste en un ensemble de procédures qui contrôlent un périphérique hardware. Cet enseDble est compos é effectivement de deux sous-groupe s un groupe supérieur contenant les rou tines appelées à p artir des programme s ut ilisateurs et un groupe inférieur contenant les routin es de traitement d'inte rru ptions . Ce s deux sous -grou pes commun iqu en t au travers une structure de données appelée bloc de contrô le de device . Le device dr iver fournit dans cette version est appelé driver tty. Il gère les sorties sur un écran et les entrées~ partir d 'un clavi e r en ut i lis an t un inte rf ace de li gne série asychrone. Le contient les opérations READ, utilisateur les p rocédures dé v e loppées da ns g roupe supérieur du driver tty routin e s q ui i mp l émentent l es WRITE, GETC , PUTC et CONTROL ; un appelle indire ctement avec le s d 'en trée / sortie indépe ndant es la couche 6 . 2. La p roc édure de sortie du g rou pe inf é ri eur, appel&e ~ chaque inter ru ptio n du transmetteur , e nvoie de s caract ère s cris dans une file d'attente . Quand un c ara ctèr~ en entrée ar rive , la proc édure d'entrée du g roupe i nfé ri e ur le dépose dans u ne fi le de caractères en tr ant où il peut être récu péré par le gr oupe supérieur . 18 COUCHE 6.2 GERANT D'UN PERIPHERIQUE VIRTUEL . Le systàrne d'exploitation fournit un environnement de haut niveau aux programmes utilisateurs en cachant les détails des périphériques sous une couche de routines d'entrée/sortie indépendantes de tout appareil. Les programmes utilisateurs accèdent aux périphériques par leur nom en utilisant des opérations de haut niveau . Le système opèr e de manière synchrone, stoppant l'e xé cution du processus appelant jusqu'à ce que les d onnées aient été transférées . Pour maintenir les informations concernant les périphériques indépendantes des appareils hardwares et de l eurs adresses, le systè~e relie des noms abstraits comme CONSOLE à des nombres entiers appe l és descripte urs d'appareils . Ces descripteu rs, lors de l'exécution, correspondent à des ap areils spécifiques grâce à une table d'appareils. Cette tabl e contient une entrée par appareil avec son adresse et l' ensemb le des routines de contrôle . Les opérations d'entrée/sortie de haut niveau accèdent à la table d ' appareils pour déterminer la routi ne de contrôle qui réalise l'opération spécifique au péri)hérique mentionné. Les routines individuelles interprètent ces appels en fonction d'un périphérique particulier . primitives READ (per , buffer, nornbcar ) Cette routine va lire un nombre naximum de nornbcar bytes en provenance du périphérique déterminé par per. Ces bytes seront transférés dans une zone po intée par buff er. READ retourne le no • bre de caractères lus . En effet , le nombre réel de bytes retournés dépendra du type du pé riphérique . 19 CONTROL ( per , fonction, arg1 , arg2) Ce mé canisme est utilisé pour envoyer ~e3 informations de contrôle à des périphériques ou nour i1 terroger l eur statut . Les valeurs retournées 1ont d6pe ndantes des appareils. GETC ( per ) Cette routine lis le caract ère suiva n t en pr ov en ance du pér iph érique déterminé par per. GETC retourne l e caractère lu, éventuellement éte ndu à un entier . PUTC (per , car) ce~te routine écrit le caractère ~ur l e ~6 riph§rique d é ter min é par per. car 3EEK ( pc r , buf fer, p os) Cette routin2 pos itionne le ~~riphérique d5ternin6 par per a~ras le posi e~e c~ract~re . SEEK ne oeut ~tr e 11tilis& ~vec des p6r iphériques connecté; à des terminaux . WRITE (per, buffer , compt) Cette routine é crit compt caractères vers le périphér iqu edéterminé par per, lus s éo uentiellement ' partir de la zone mémoire poi nt ée ~ar buffer. Une fois le transfert terminé, ~a routine revient au programme utilisateur pour qu ' il p uiss e changer le contenu du buffer . CLOSE ( per ) Cette routin e met fin au flux E / S de ( vers ) l e p~ riph é rique dé ter~in5 par per . OPEN ( per ) Cette routine établit une ~ v e c l e p(rip hérique dé terrnin& pilr per. 20 connexion t Annexe 2.4 Autres sys t èmes. t Autres systèmes. Nous voudrions mentionner ici rapidement un certain nombre de systèmes que nous avons en visagés pour l'implémentation du prototype. Rapp elons que les critères principaux de choix d'un système étaient les suivants : - existence d'un mécani ~me d'interrup tion élaboré permett ant la gestion des diverses temporisations, - possibilité d'exécuter plusieurs processus en quasi-s · multanéité, - disponibilité d'un syst~me. Les systèmes suivants ont été pris en considération, mais contrairement à ceux expos ~s ~lus haut, ils n'ont pas été étudiés e n détail. En effet, un o~ plusieurs des critères cidessus n'étaient pas pleinement sati ;fait s. 1) Xenix ges tion multiprocessus insuffisante. 2 ) Concurrent DOS : limité à 4 pro cessus simulta nés, et impossibilit é de gérer des temporisations aussi courtes que voul u. 3) MS-DOS disponible mais totalement insuffi sant sur les autres points. 4) gestion multiprocessus insuf fisante. iRMX86 • Annexe 3 : Caractéristiques essentielles des langages étudiés. Annexe •1 Le langage Chill. LE LANGAGE CHILL. Chill ( CCITT high-level language ) a été développé par le CCITT tout spécialement pour les applications de télécommunications. Il est décrit dans le recommandation Z200. On constate en effet que la programmation devient une part de plus en plus grande de ces systèmes à cause de l'usage croissant du Contrôle par Programme Enregistré ( CPE, ou Stored Program Control : SPC ). Chill est un langage offrant de nombreuses facilités pour ce domaine, tout en étant qu'il est complètement indé pendant d'un quelconque système commercia l particulier. ' . Bases du lan g a ge. 2..:2-:. Expressions et instructions d'assi g nation. cf. langa g e Pascal . ..'.!...:2:. Objets de données et modes. Les objets de données ont un mode, ce qui corr e spond à un type en Pascal. 1. 2. 1. Modes discrets. Les modes discrets sont ceux _attachés à des objets ayant un ensemble fini ordonné de valeurs indivisibles. Les modes discrets suivants sont standards: INT, BOOL et CHAR. 1 . 2 . 2 . Déc l aration de variables. DCL ( n om de variable )*(mode) ; 1 .2.3. Initialisation. On peut assigner une valeur au départ à une variable dès sa déc laration. DCL (nom de va ri able)* (mo de) := (valeur) ; 1 . 2 .4. Variable s "read -o nly " . Elles sont o bliga toirement i nitia lisées. DCL (nom de variable)* ~EAD (mode) := (val eur); .L...L_ Instructions et programmes. Un programme Chill commence par le mot MOD UL E, suivi dans l'ordre,des définitions ( voir plus loin), des déclarations e t des instructions, l e t out terminé par END . 1 . 3 .1. Entrées/Sorties. Il n'y a pas d'instructions standard d'entrée:sortie en Chill. Il f aut au minimum écrir e les routi nes sui v antes: INBOOL, ININT, INCHAR, OUTBOOL, OUTI NT, OUTCHAR. 1 . 1. Opérateurs et routines standar~s. * arithmétique s: +, -, * r e 1 a t ion ne 1 s: = , / =, - *, /, REM, MOD < , <=, > , > = * booléen s: AND, OR, XOR, NOT * autres: ABS, ~~ED, SUCC, NUM 1.5. Objets de données compos i tes. Les objets de données composites peuvent être construi ts par agrégation de objets plui simple s. 1.5.1. Tableaux. * Déclaration: DCL (nom du tableau) ARRA Y(bo rne in f . * : borne sup.) (mode des élém ents ) ; Plusieurs dimensions: On peut répéter la séquen ce ARRAY~b.i.:b.s.) * Valeur des é lém ents : - nuple simple: ex: si A est un ARRAY(1 :5), on peut lu i assigner le nuple ( :6, 15,3,41, 7:). ex : si Best une ma trice ARRAY(1,2) ARRAY(.1 , 3), ce qui peu~ s'écrire MATRIX(2)(3), on peut lui assigner le nuple (:(:7,3,1 : ), ( : 2, 2, 8: ) : ) . - nuple indicés: ex: A:= ( :(1) :5, (2:4):I,( 6:8):I+J,(ELSE):O:); ce qui signifi e qu'on assigne la valeur 1 à A(1), I à A(2),~()) et A(4), I+J à A(6),A(7) et A(B), et O à tous les autres éméments . ex: A(?:4) ou A(? UP 4) considère un sous -t ableau de A. 1.5.2. Structures. Une structure est composée d'objets dont les modes peuvent être différents. Chaque composant est un champ . ex: DCL A STRUCT(I:INT ,J:INT,TRUE:BOOL); On peut assiqner un nuple à une structure . ou bien: /.l : =( :.1:),. J : 6 ,.TRUE:FALSE:); ce qui s ' appelle un nuple a vec labels . On référ nce un cha~p de la manière suivante: A.J : champ J de la structure A. 1.5,3. Vari ab les composites read-only. Une variable composite entière ou seulement certains champs peuvent être déclarés read-only par le mot READ. 1.6. Instru ~ti ons conditionnelles. 1.6.1. Deux branches. Instru ction IF (booléen) THEN (instructions) ELS E(instr .) 1.6 . 2. Conditions à branch es multiples: lLSIF. IF THEN ELSIF THEN ELSIF ... THEN ELSE. 1 .6.1 . Conditions à branches multiples: CASE CASE (v aLiabl e) OF ( va leu r ou range) ELSE : (i nstructions); instructions; ESAC; 1.6.4 . Tabl e de décision a vec CASE. ex: CASE I, C' ( , A, ) , ( 1) ' (2 : 5), (ELSE), ELSE ('D':'F'), ( 'G' : ' z' ) ' B OF (TRUE): (FALSE): ( *) : X:= 1 ; X:=2; X:=3; X: =4; ESAC; note: "* 11 indique une valeur quelconque • .L.L._ Instruction de boucle. 1.7.1. Forme \JHILE . DO \JHILE (booléen) ; (instructions) ; 0D; 1.7. 2 . Forme FOR. 1 .7.?.1. Boucle infinie . DO FO R EVER; (i nstructions); OD; 1 . 7.2 . 2 . Boucles avec compteurs. ex: DO FO R I IN INT(1:10 0) ; e x: UO FOR I:=1 BY 3 TO 101; e;,<. : DO FllR XI A; avec A un tableau. 1 . 8 . I ~: s truc t i on EX I T . EYJf p ermet de sortir prém at urément d'un boucle. 1. 0 • Procédures. 1 . 9 . 1. Appel de procédure. Nom de la procédure suiv~ ~e s paramètres entre parenthèses. 1.9 .2 . Définition de procédure. ex : CHECK: PROC(); ou bien PROC(I,j,k); ou bien DROC(L,M) ~INT9; ·(pas de paramètres) (p aramètres) (fonction à valeur entière) 1.9.3. Passage de paramètres. Dans le cas général, le passage se fait par valeur. Il est cependant possible de passer par référence en plaçant le mot LOC dans la définition de procédure après le mode du paramètr e concerné. 1 . 9 .4. Instructions RETURN et RESULT. A la fin d'une procédure, le contrôle revient normalement à l'appelant. Cependant, le retour peut se faire :plu s tôt grâce à l'instructio n RETURN. ~ou r une f o nction, le résultat est renvoyé par l' une des deux maniè res suivantes: RETURN(valeur) ou bien RESULT(valeur); RETURN 1.9 .5. Mode procédure. On peut déclarer des objets de mode procédure.Ceci permet d'appeler la même procédure avec des noms différents. 1.1n. Instruction ASSERT. ASSERT (condition booléenne); cela permet de tester des valeurs en cours d'exécution. Une erreur se pro dui t si la condition est fausse. ' 2..:_.__Q,~sc r1ptiun des obj ets de dcnnéf's. 1 ~._ i")-:._•__ SYN (no m sym • olique) = (valeur littérale) Ceci revient à la notion de constante Pascal. ?.2. "'l odes. 2 . 2 . 1 . Déf inition de modes. 2.2.1 .1. Nouveaux modes. NEWMODE (nouveau nom)= (expression de modes) 1.2 .1.2. YJ odes synonymes. 1 SYNMODE (nouveau nom) = (expression de types) /, 2.2 . ~o des ensemble. NEW~ODE (nom de l'ensemble)= SE T, valeur1,valeur2, . •• ); On définit ainsi un ensemble de valeurs sur lequel on pe u t faire des tests. ex : IF (nom d'objet) IN (nom d ' ensemble) THEN . .• 2 . 2 . 3 . ~odes intervalle. On i ndi ue un mode déjà défini suivi d'un intervalle va l eurs sur c e mode. cie ex: INT(B:255 ) CHAR(A:L) 2.3. Modes string. 2.3.1 . Stri ngs de caractères. La définition du mode est composée du mot CHAR suivi d'une longueur de string entre parenthèses. 2.3.2. Strings de bitsj La définition du mode est composée du mot BIT suivi d 'une longueur de string entre parenthèses. Les l ittéraux sont écrits entre apostrophes('), précédés de la lettre H, Bou O pour indiquer s'il s'agit d'un he xadécima l , d'un binaire ou d'un octal. 7.3.3. Opérations sur les strings. * Accès à;un élément du string e n indiquant un indice en tre parenthèses après le nom du string. ~ Ex tra cti on d'un sous-string soit en inrliquant un inte r ~11e (borne inf . : borne sup.), soit en indiquant Jne µ ~ sitio n de départ et une long u eur (pas.dép. UP lg.). * Opé rateurs: //(concaténation), AND, OR, XOR , Noi. Les qu atre derniers concer n ent les bits. 2. 4 . ~odes référence. On utilise la flèche à droite • PT R~ : représent e l'objet pointé par PTR -> OBJ représente le pointeur pointant vers OBJ Il y a deux sortes de pointeurs: - les point e urs liés (bound reference) sont définis par le mode de l'objet vers lequel ils pointent. Ils sont indiqués par le mot REF. - le s pointeurs libres (free reference) ne font que pointer vers une mémoire sans tenir compte de ce qui s'y trouve. I l s sont indiqués par le mot PTR. Enfin, on peut déclarer un objet et son mode, en spécifiant qu 'il ne peut être accédé que via un pointeur. Ceci se fait en indiquant BA SED (pointeur). Ce s objets sont en effe t appelés "objets bas és ". Ll..:._ Complément sur l es modes composmtes. ?. 5 . 1~ L'ins truction DO WIT H. Identique au WITH Pascal. 2.572. Structur es variables. Identique a ux record s variab les avec CASE en Pascal. 2 . 5.3. PACK/NOPACK . Identique au PACK/UNPACK Pascal. 2.5.q . Descriptio n de l a disposition. On peut spécifier très précisément l'emplacemen t des différ ents cha ~ps d'une structure dans les mots de la mémo i re d'un ordinateur. Ceci est utile dans le cas où il faut traiter de s structures de données créées en dehors de Chill. ex: DCL A STRUCT ( I INT POS(~), J INT(,0 : 100) POS(1,,0:6), K BOOL POS(1,7)); ,0:mot 1 : mot,0 : 6:b i ts 1:mot,7:bit 3. Structure du programme. No us allons examiner la modularité des programmes au moyen des c in q dé 1 i mi te u r s ( ' 1 br ac k et s " ) suivants : f'llODULE REGION BEGIN PROC PROCESS END END END END END Un programme Chill consiste en une séquence de modules et/ou de régions. ~ Visibilité et temps de vie. Visibilité : Un nom est visible _orsqu'il peut ~tre utilisé à un endroit donné de programme. Temps de vie : C'est le temps durant lequel l'objet existe dans le programme. Un objet peut exister sans être visible. l.i1...:. Blocs. Un bloc est délimité par BEGIN et END. Les noms déclarés dans le bloc sont invisibles de l'extérieur mais visibles partout à l'intérieur, même dans les sous-blocs. Ils sont donc locaux pour le bloc et g obaux pour les sous-blocs. Le temps de vie des noms déclarés dans le bloc est le temps d ' exécution du bloc, sauf lorsque la variable est déclarée STATIC auquel cas el l e est permanente. ).3. Modules. Les noms définis dans un module sont locaux à ca module. Cependant,les noms globaux, c'est-à-d ire les noms définis en dehors du module ne sont pas automatiquement visibles à l'intérieur du module. De plus, les noms locaux d'un module peuvent être rendus visibles hors du module. Ainsi un module est un moyen de contrôler la visibilité, pas le temps de vie. Ce dernier s'étend à celui du premier bloc entourant. On util ise SEIZE pour rendre un nom global visible dans le module et GRANT pour rendre un nom local visible hors du module. D'a ut res instructions et paramètres apportent encor e des nuances à la manipulation des noms. . 5 . LX r5cution concurrer,t~. 3.5.1. Le co r.c pt de processus. Processus: unité d'exécution con curr ente. C'est une partie dy namique du programme qui peut être exécutée de manière concurrente avec d'autres processus du programme. 3.5.1.1. Instruction de définition de processus. Même structure qu'une définition de procédure, en remplaçant PROC pa DR OCESS. 3.5.1 . 2. Instruction d e démarrage. START nom-de-processus (param tres); 3.5 .1 .3. Instruction d'arrêt. STOP arrête le processus. 3.5.1 .4. Modes instance. Il faut pouvoir adresser un processus car, une fois qu'il est lancé, il continue tout seul. Chaque création de process u s est enfait la création d'une instance de la définition du processus. On peut déclarer des variables de mode INSTANCE qui référenceront des processus en cours d'exécution . ).5.2. Coordination entre processus . Trois aspects: - synchronisation, - communication par messages, -exclusion mutuelle pour l'accès à des données. 3.5.2.1. Exclusion mutuelle. Utilisation de la REGION. Une région ressemble à un module mais ne peut contenir que des instructions de définition et de déclaration. Les ob j ets communs pour lesquels les processus entrent en compétition sont déclarés locaux à la région et ne peuvent être manipulés que par les procédures définies dans la région. Ces procédures doivent être rendues visibles de l'extérieur par GRANT. C'e st en fait une sorte de type abstrait. Lorsque un processus accède à la région, les autres processus doivent attendre s'ils veulent aussi y accéder . 3 . 5 . 2.2 . Modes événements . Le mode EVENT permet de synchroniser les processus. Soit X déclaré EVENT , DELAY X retarde unprocessus jusqu'à l ' apparition de X, et CONTI NUE X provoque l'événement X. ~.s.2 .1. iodes buffer. Les processus peuven t s'envoye r des messages via des bu f fers. Si X est déclaré BUFFER, on peut y placer un message par l'instruction S ND e~ en retirer un message par l'instruction RECEIVE . Un ~u ff er est persistant, contrairement à un é vé n eme nt. 3.572 . 4 . Signaux. Les signaux ont ou n 'o nt pas de partie message. Dans le premier cas, ils sont comme les événements, mais sont persistant, et dans le second ca s, ils sont comme les buffers mais l a gestion du buffer lui-mime est automatique. On utilise SEN D ~t RECE IVE. Annexe 3. 2 Le langage PLEX. LE LAî-jG ,,GE PLEX . DLEX est langage développé par la Telefonaktie bolaget Er icss on de Stockholm spécialement pour ses applications de téléphonie. Il s'agit en fait d ' une version améliorée, appelée PLEX-C e utilisée actuellement ·dans les commutateurs AXE 10 de Ericsson. PLEX-C est un langage de très haut niveau et ne pouvait par conséq uent pas être u tilisé seul dans un syst ème comme un commutateur où l es co nt raintes matérielles sont fortes . Il n'int ervient en fait qu e dans l e software central, et pour en viron 70% du code . Le reste,est codé en assembleur ~JA 210 Cet R. Bien que PLEX -C soit un langage puissant, comprenant t outes les caracté ristiques générales d' u n langage de haut niveau, il porte l' em p reinte de la structure du système AXE 10 pour lequel il a été conçu . Cette spécifi cité lui permet d'être beaucoup plus complet que Chill au C dans le domaine des entréessor ties notamment. Il est conse illé de lire cette annexe en faisant ré férence à la section 2.2.2.2.8.4. et aux sections 2 . 2.2.2 . c.2. et 2 .3 . d u premier tom e. 1 . Décla ra tions . DCCLARC; (instructions de déclaration) El\!D DECLARE; .1..:...1..:.. Déclarations de variables. Les variables appartiennent à un CP donn é. Elles peuvent être temporaires ou stockées en OS . Il y en a de trois types: - champ : nombre sous forme binaire - symbole : valeurs s y mboliques string : chaînes de ·caractères VARI ABLE déclaration s de variab le s) (p ropriétés) 4.1.1. Variables de cham p. VARIAB LE nom longueur propriétés; La longueur est un nombre de bits. Pour les propriétés voir 1.5. 1.1.2. Tableaux à une dimension. VARIAB LE nom( dimen sion) long ueur-des-éléments pr o priétés; 1 .1 . 3. Tableaux à deux dimensions. VARIABLE nom(dimension 1 , di mensi on 2) longueur-desélém e nts pr op rié tés; 1.1 .4. Vari ab les symboliques. SYMBO L VARIABLE nom propriétés; 1.1.5. Var iables string. STRING VARIABLE no m longueu r -ma ximu m propriétés; 1.1.6. Buffe rs de string. Ils permettent de stocker des str in gs plus longs que les 255 maximum autorisés da ns les variables de string. STRING BUFFER nom; 1 .1.7. Struc tures de variables. Elles sont exprimées dans une form e similaire à celle de COBOL . STRUCTURE nom1 = niveau nom2 long ueur , niveau nom3 longueur, ... ' ' 1.'1 .6. Structures c.Je records P-t de fichiers. Le s fichiers contiennent des records d'u n type unique par fichier. Les records peuvent contenir tout sauf des tableaux bidimensionnels . Les recor dss ont n umérotés à partir de~ dans un fichier et un point eur indique le record courant. 1.1.9. Records. RECORD nom; (déclarations de v ariables) END RECORD; J uste après cette déclaration suit u ne décla ration de pointeur sur ce record: POINTER norn(nom du record asso cié) ; .l.:.1...:.. Déclara~ions d e symboles. Ce sont les constantes du p rogramme qui peuv ent être de deux types: - symboles locaux: valeur ass i grée dire ct ement dans la déclarat i o n, -sy mboles globaux : valeur assignée dans une liste de paramètres extérieure au programm e. 1.2.1. Symboles locaux numériq u es. NSYMB nom= valeur-numérique; 1 .2. 2. Sy mboles locaux de string . STRING nom:-:: "texte"; 1.2. 3 . Symboles globaux numéri qu es . GLOB~L NSY MB nom ( ensem bl e de valeurs permises) ; .2.4. Symboles globaux de string. GLOBAL STRI G nom (longueur); .1.:..1.:. Propriétés des variable s . Suit la l iste des p ropri étés pouvan t être spécifiées pour l es va riables, et l eur sig~ i ficatio n : D5 : - La variable e~t stockée dans DS - La v riable est effacée lors de l'allocation t S~FF H: -Une mé moire doit être commandée et lib ~ré e lo r s de son utilisation - Les variables allouées ont une val eur indéfinie - L'al location est faite élément par élément - Un buffer peut être contenu dans un signal transmis - Au redémarrage la zone de données allouée est libérée TE MDORARY VARIABLE: - La variable est stockée dans un register - La variable a un contenu indéfini lorsque le programme y fait accès - Une valeur définie cesse de l'être après EXIT, un ordre d'entrée/sortie ou SEND avec WAIT. NO ACTION: - La valeur de la variable après relancement du système avec rechargement est indéfinie, mais dans les autres cas de relancement,elle reste inchangée. CLEAR: - Il y a effacement dans tous les cas de lancement eè de relancement RELO~D: - A certains intervalles, la variabl e est perforée sur une bande de rechargement - Au relancement avec rechargement, une valeur est obtenue de la bande de rechargement - Après lancement la valeur de la variable=~ ou celle contenue dans le secteur d e données ( lanceme n t initial) ou celle d e la bande de rechargement (d ém arr ag e avec relancement). DU MP: - A chaque relancement, la valeur de l a variable est transférée sur un support externe . STATIC: - Dans les changements de fon ction , la variable n'a pas sa valeur trans f érée du software d'origine 2, Inst r uct i ons de ~LEY - C. 2..:..2...:_ Opérateurs et expressions. * arithmétiques: +, -, ( -), * booléens: * strings: //:concaténation (-):négation, *, / ( * ) : AND , (=):XOR, (+) :O R 2.2. Instructions d'intera c ti o n ( i nt erwork) . --Les blocs i nteragi ssen p a r si g n a ux simples et combinés. Les secteurs à l'intéri e ur d ' un même programm e interagis sent par signaux de se c tiur, appels au secteur assembleur ou appels de pro cé a u res . Les signaux simples ne r eq u iè re n t aucun signal d'accusé de réception. Les signaux c o mb inés sont des signaux en avant pour lancer l'exécuti o n d ans le bloc récepteur, et des signaux en arrière pour r et o u rner au b l oc émetteur lorsque l'exécution est te rminée . 2.2.1. Instruction de tran s missior d 'un signal simple. SEND signal REFERE NCE v a r iabl e de champ lJITH donnée s , BUFFER ou HURRY ou DELAY nomb r e unité - de -temps ou DELAY U~TIL rn oi s,jour, h e ure,minute Ref e rence est utilisédans le c a s où il s'agit d'un signal d'RP. Il permet d'accéd er à la t ab le d'RP. lJith contient les donn é e s du mes s age. Buffer met le signal dans un bu f fer temporaire. Hurry indique qu'un si g nal do it ~t re envoyé i mmédiatement . Delay indique un délai à re s pec te r avant l'envoi. 2 .2.2. Instruction de ré c ept · on d'u n signal simple. ENTER signal lJITH données; 2.2.3. Instruction de trans miss io n d 'un signal en avant combiné. SEND signal REFERENCE v a r iabl e de champ lJITH données , lJAIT FOR signa l ar r i ère IN label OR sig n al ar r iè re 2 IN label ... ; lJait for indique tous l es mes s ag e s r ecevables possibles. 2.2.4. Instruction de réception d'un s ignal en a v an RECEIVE s ignal lJITH données; combiné . ~ . 7 . ~ . Instruction de transmission d ' u n siqnal en arri~ re co mb iné . RETURN sig na l WITH dor1nées; 2. 2 .6. I nstruction de récepti on d ' u n signal en arrière combin é . label) RETRIEVE signal WITH données; Le label e st c el ui mentionné en 2 . 2.3 . 2.2.7 . Instr uction d'envoi pour un si g nal de secteur. TRANSFER signal WI TH d onnées; 2 . 2.8. Instruct ion d e réception p our un signal de secteu r . ENTR ANCE sign al WITH données ; L , 2 .9. Exit . EX IT; ~ désactive une séquence d 'instr uctions . Instructions d'assignati on . SET variable= expression de champ; ou de symbol e ;ou d e string; 2.4 . Instruction de saut inconditionnel. GOTO label; 2 .5. Instructions de saut conditi onnel. 2.5.1. IF. IF (NOT) condition (PROCEED EL SE) GO TO label; 0 r o c ee d else renverse la co ndition tout comme No t. 2 .5. 2 . Instruction de branch ement d e champ BR ~NCH ON exp res si on de champ TO label IF numeral T O •• • ELSE TO label; Numera~ est une v aleur de l 'ex pr ess i on de champ . 7 . 5.3. I nstruction de branche ment de s ymbole. BRA JCH ON v aria ble symbolique TQ lab el IF valeur symbolique T O ••• ELSE TO label ; ') ,. _. • n • n s ~ructions conditionnelle s . 7.6.î . IF. IF (NOT) conditi o n THEN sé~uence d ' instructions ELSIF (NOT) condition THEN séquence ELSIF • •. ELSE séquence FI; 2.7 . Instruc tion de sélection. CASE expression IS LlHEN valeurs DO séquence LlH EN • .• OTHERLlISE DO séquence ES AC; 2 .8. Instructions de répétition. 2.8.1. FOR. FOR (FIRST/ALL) variable FROM expression UN TIL expression LlHERE NOT condition ou bien LlHERE variable IS CHANGED TO expression GOT • label ou bien DO ins t ruction; 2.8.2. ON. ON v ariable FROM expression LJOTO/DOLlNTO expression DO séquence .h2..:_ Instructions d'all ocation de mémoire. 2.g.1. Allocation d ' une ~émoire. ALLOCATE buffer(taille), ABRANCH IS label, •• INTER IS pointeur; Abranch est un b ranchement vers une séquence particulière dans le cas où l ' allocation est impossible. 2 . 9 . 2. Libération d ' une mémoire . FREE buffer, PôINTER IS pointe~r 2.10. Instructions d'entrée-sortie. 2 . 10 . 1. Instructions pour E/S orientées fichiers. 2 • 1. • î • 1 • Sr> 1 s · . rl ' u r1 fi c ~1 i e r • SEIZE FILE fichi p•· FOR RTNA~Y / ISO IN PUT/OUTPUT; Iso esL un f or ~a t alternatif au binaire. 2.10.1.7. Ecriture d'un bloc sur fichier à partir d'un buffer dynamique. WRITE BLOCK BUFFE R buffer ; 2.10.1.3. Ecriture J 'un bloc sur fichie r à partir d'une a d resse absolue. WRITE BLOCK ADD~ ESS; 2 .10. 1 .4. Lecture d'un bloc d'un fichier vers un buffer dynamique. READ TO BLGCK BUFFE~ buffer; 2.10.1.5? Lecture d'un bloc d'un fichier vers une adresse absolue. READ TO BL CC K DDR ESS; 2 . 10.1.6. Libé ra tion d'un fichier. RELEASE FILE connection E/5; 2 .10.2. Instruct i ons pour les E/5 alphan umériques . 2.10.2.1. Réce p t i on d 'une commande . COMMAND nom TYPE numéro de catégori e de la commande Cette instruction permet de recevoir une commande du termi nal. 2.1D.2.2l Saisie d ' un appareil d'E/5. SEIZE DEVICE nom OR STANDBY; 2.10.2.3. Saisie fonctionne l le d'un appareil d'E/5. SEIZ~ DE VICE FO ~ code de fonction; Cette instruction permet de exécuter directement une fonction. 2.10.2.4. Li b é~ ation d'un a p pareil d ' E/ 5 . RELEASE DEVI CE; 7 . 1 0 . 2 . 5. Instruction de rejet de s commandes. 9 lJ '.3 v ; 2 . 10 . 7 . 6 . Lect ure de d onnées à partir d ' un appare i l d'E/s vers un buffer de ligne. READ ; 2.10 . 2 .7. Lecture de données à parti r d'un appareil d'[/S vers un bu~fer dynamique. HEAD TD BUFFER buffer; 2 . 10 . 2.B. Ecriture de données sur u n ap par eil d'E/S à partir d ' un buffer de ligne . URITE AFTER/BEF DRE numér oNL /N EUPAGE NL si g nifie nouvelle ligne et le numéro indique combien de nou ve lles lign es il y a avant ou après. 2 .10.2.9. Ec ri tur e d e ,données sur appareil d'E/S à r.arti d'un buffer dynamique . U ITE 3 UF~ER buffer; 2.10.2. 1 0. Autres instructions . I 1 SERT : insertion de données dans le buffer de li g ne FETC H: obtention de don nées d 'u n buffer de ligne FI ND : rech e rch e d'un string de caractères CHE CK: vérifi c ation du buf fe r de ligne FETCH PARA ~ETER: re cherche d'une valeur de paramètre 2. 1 1. Appels de blo cs d 'i nstructi o ns et d e secteurs assembleur s . DO nom de bloc ou de sect eur 2 . 1 2. Appe l s d e procédures. nom de la proc édure (li ste de paramètres); 1. ~rr~édurPs . L .s proc éd ures sui vante s sont dis ponible s dans les librairies : CHAR : Insertion et lecture de caract è res dans des strings .~M CONVERT: Con ver sion de chiff res. DISAB LE : Empêcher les interruptions. ENABLE: Au toriser le s interrupt i ons. FCHCH AK : Extraire deux caractères consécutifs d'un s t ring. FETCHC: Extraire un caract ère d ' ~n string. FILENUMBER : sauvetage temporaire du numéro de fichier . I NT ERVAL: lancement d'un intervalle de temps inter-job. JOBTABLE: Insert ion et destruction de si gnaux de la jo btab le. LDA D: Sauvetage tempor a ire d 'un e référence d e bloc r écepteu r. LOADREF : Sauvetage temporaire de sa propre référence de bloc . MOV E: Transfert d' un po int eu r d e buffer. SIGGRLO C: sauveta~e temporaire d e la mémoire de groupe s ign al. STRCHAR: Sauvetage de L caractères consécutifs d'un string. TRANSFORM : Transfo r mation d ' un num ér o de bloc. VA RIABLE NUMBER : Sa uvetage temporaire de BN et BAddress. Annexe 3.3 le langage C. LE LANGAGE C. C est un langage de progr amma t io n d'application générale dont les caractéristiques son t une é conomie d'expression, un flux de contrôle et des struct ures de données modernes, et un ensemble riche d 'op éra teurs. A l'origine, C fut conç~ pour et implémenté sur le système d'exploitation UNIX sur le DEC PDP - 11 . Cet UNIX sont des propriétés des BELL Laboratories. Le système d'exploitation, le co mpilate u r C, et essentiellement tous les programmes d'applica tion de UNIX sont écrits en C. Des compilateurs existe nt aus s i pour plusi eurs autres machines: IBM System/37 0, Noneywell 6000 , et Interdata 8/32. C n'est pas lié à un quel s onque hard ware ou système, e t il est aisé d'écrire des pro gr a mmes qui to u rne ront sans modifications sur toute machine supportant C. C n'est pas un langa ge de 11 t rès ha ut n i veau" et il n'est pas spécialisé pour u n quel c onque dom aine particulier d'applicat i on . Mais s on ab s1 nce de restrictions et sa généralité font qu'il est p l us co nvenabl e et plus efficace pour beaucoup de tâches que des langages soi-disant plus puissants. t r1 e C. La structu re générale d'un pro g ramme C ressemble fortement à celle d'un langage comme Pascal. La puissance de C réside surtout dans un cert ain nombre de possibilités de traitement spécifique de données. Dour ces raisons, nous ne détaillerons pas complètement l e langage, mais nous mettrons en évidence les particularités remarquables. 1. Tableaux . Ils sont dynamiques. Ceàa veut dire que l'on peut déclarer un tableau sans en indiquer les bornes, et que ce tableau s'accroitra dynamiquement au cours d'une exécution . ex: CHARS[]; déclare un tel tableau de caractères. D' autre part, il y a u ne forte idteraction entre tableaux et pointeurs. Si l'on déclare un pointeur vers un objet de même type que les éléments d'un tableau, on peut parcourir,le tableau au moyen du pointeur au lieu d'utiliser l'indiçage. 2. Structures. C'est la même notion que l e record Pa s cal. Il faut noter que le même mécanisme de pointeurs que celui des tableaux joue ici. 3. Pointeurs. La gestion des point eurs est d'une souplesse infinie. Il y a des pointeurs vers tout ce que l 'on veut, y compris des fonct i ons, des tableaux et des pointeurs. *ptr est l'objet pointé par ptr &obj est le pointeur pointant vers obj 4 . Propriétés des variables. On dispose de quat re sortes de variables selon leur mode de stockage: - Extern e: L'objet est déclaré avec le mot-clé EXTERN. Iln'est pa s redéfini dans le fichier source. On ne lui réalloue pas de plac e car il est su p posé en avoir dans le fichier où il est déclaré . Il faut donc linker ce f ichier :avec le fichier source . - Statique: L'objet est déclaré avec le mot-clé STATIC. La place lui est allouée dans l a zone de données du programme objet. Elle i nitialisée à zéro sauf si une instruction par ticuli ère d'initialisation est contenue dan s la déclaration. t - ·\ u to : e s t d é c l a r é a v e c l e 1n o t - c 1 é AUT O • La place est allouée sur un stack pendant l'exécution de la f o nction oùil est déclaré. L ' o l, j e t - Formelle: L ' objet est un paramètre formel d'une des fonctions du fichier source . La plac e est allouée à l'exécution lors de l'appel de la fonction co nt enant ce paramèter. 5. Structure des programmes. Un programme C consiste en un ensemble d'objets externes qui sont soit des v ariables soit des fonctions . L'adjectif "externe" est utilisé principalement en contraste avec "interne 11 qui décrit~ les arguments et les variables automatiques définis à l'intérieur des fonctions. Les variables externes sont définies en dehors de toute fonction et sont ainsi potentiellement accessibles à toutes les fonctions. Les fonctions elles-mêmes sont toujpurs externes parce que C ne permet pas aux fonctions d'être définies à l'intérieur d'autres fonctions. 6 . ~anipulation de bits. Une manipulation de bits tr ès élaborée rapproche C des capacités du la ngage éssembleur. ' Annexe 4 Errata (concernant les deux premiers tomes). ' Err::ita . - T 1 , Table des mati è res lire 1.2.1.3 . au lieu de 3.2 . 1.4. T 1 , p 1 27 commencer la page par 2.2.2 . 2 . c. Hardware. T2, p192 commencer la page par 3 . 3 • 2 • Systèm8 d'exploit a tion. T2, p217 commencer la pag e par 3 . 3 • 3 • Application. T2, p 24 4 comm encer la page par '.3. 4. - T 2, p244 lire iRMX 80-88 a u li eu de iRfVJX 86-88. - 'E 2, - T2, p 2 5) p'.24 5 Implémentation . commencer la page par '.3.4 . 2 . Système d'exploitation. commencer la page par 3.4.3 . Application. ' Ann exe 5 Complément de bibliographie. t 8iblio5raphie. 1. D~VENPORT, John, Divers articles et études concer nant l a norme ISDN du CC ITT, les r ecomman dations du CEPT, et le développement du réseau ALVEY de la f irm e Log i ca à Londres. 2. BRUNIN, Jean, Lo gique bi na ire des circuits câblés et des programmes enre gis trés, Tome II-a : systèmes séquentiels, Presses Uni versitaires de Namur, 1980 . 3. ITU/CCITT, Introduction ta Chill, Ge neva, 1983 . 4. ERI CSSON, PLEX-C Language Description, Telefonaktiebol a get Ericsson , 198 . 5. KERNIGHAN B.W. ,R1TCHIE D. M., T~e C programmi ng language , Prentice-Hall, 1978 . 6. ERICSSON, AXE 10 System survey, Telef ona k tiebol aget Ericsson. 7. ERICSSON, Introeuction to AXE , Tra inin g d ocu me nt, Telefonaktiebolaget Eric sson. 8. OLIVETTI, Manuel d'utilisat ion du système d'expl oitation MS-DOS . 9 . LIFEBDAT, Lattice 8086/8088 C compil e r manual, 19 84. 10. ACEC , Description du système RT~-8 0. 11. INTEL, iRMXB0/88 sys tem descriptio n.