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.