18 Informatica št. 2 letnik 1978 svsteme tee UUK 621.395.345:681.3.06 Mnstitut J.Stefan, Jamovo 39, 61000 L|ubljona Iskra, ATC Labore, Savska Loka 4, 64000 Kran| Dans le prdsent article nous appliquons les principes de !a programmation structurče et (pseudo)parallfele pour onalyser et reshuclurer - au moyen d'un langage de haut niveau utilisant le concept de moniteur - un systfeme t£l£phonique informatisd concret. Članek opisuje oplikacijo prlncipov strukturiranega in (navidezno) paralelnego programiranja. Predmet apllkacije je analiza in strukturiranje konkretnega progromskega sistema telefonske centrale s pomočjo- visoko nivojskega programskega jezika, ki upo- rablja monitorski koncept. I. INTRODUCTION Nous nous proposons ici d'analyser ot de restructurer on systfeme tčl«phonique informatisž concret en nous appuyant sur les concepts de programmalion structur6e et de progrom- mation ( pseudo-)parall&le. Ceci n'est pas une čtude thčorique; nous essayons jimplement d'3xaminer l'applica- bilitč dej concepts mentionn^s b un systfeme en temps rdel: le systeme tdUphonique considfirž. Lo parution ržcente de quelques articles (5,14) traitant de la prograilnmation en temps rdel en lioison avec les rnžthodes de structuration des sysl^mes d'exploitalion et avec les langages pour la programmation parallble nous a encouragd h proc^der de la sorte. Les motivatiom de cette žtude jont prariques: il s'agk de \a maintenance, de l'adap(afion et des modificafions du systeme tnformatisž des contraux tžlephoniques du type Melaconta 10C Local, r6a\\s6 avec les ordinafeurs ITT-1600 el 3200. Le logiciel du systeme est programmd en assembleur et toute modificaMon est difficile. Ceci nous a amend 6 6ludier une resfrocturation possible du systeme qui permette: - des modifications ais^es e> facilement vžrifiables; - une compr^hension meilleure du iysfrfeme el, fiventuolloment, - une amčliorotion du degr« de paralUlisme (potenfiel) des diffžrents 6\6menti du Nous pržsenlons dans les chapitres suivants une analyse et une sfructuration de ce 3ystfeme t£lčphoniq'.ie en termes de procdssus coopžrants, une descripHon de cefte structuration dans un langage qui est piatiquement le Poscol paiallele (2,16) et, finalernent, nous discutons des problAmes que pose 1'organisaMon de cetfe structuration. II. PR^SENTATION ET ANALYSE DU SVSTEME 1 . Prčsenhation sch^matique do Le systime du central Ml^phonique considdrž cotnprend le ma^riel suivant: un ou deux ordinateurs ITT-1600 et une pčriphdrie tžldphoniquo comprenant des terminaux d'enfr6es- sorlies, des terminouK de lioison, des žl6ments de liaison entre ces terminaux et des circuits de feshs, de marquoge et de pilotage dirigeant ces terminoux. Les termiiraux d'E/S sont relids par des canaux 6 1'envUonnement que compojent des appareils tdl6phoniques, d'autres centraux etc... L'organisation physique de la pdriphžrie tčl6phonique ost moduloire: cette p^riphčrie se compose d'un module ds signalisation et au plus de dix modules p€riph6riques. Un module p£riphčrique esl composž d'un certain nombre de terminaux (d'E/S et de liaison) et d'«t^ments de liaison que dirigenf un circutl' de morquage, ^rois circui^s de tests do types diffSrents et |usqu'6 trois circuits de pilotage de types lent, normol et rapide. Nous ne tiendrons pas compla dans lo suile de la pčriphdrie classique des ordinateurs. Fonctionnellement nous disringuons dans ce systfcm8 du centrol deux $ous-sys^mes: le s/stema de contrSle ržolisž sur les ordina^eurs et le syst^me de coopčration avec 1'envirorine- ' menf ržalisd par \o p6r\p\n6(ie tdl£phonique. Le systemo do contrflle contrfile le sysfeme de coopžratlon e( fraite I03 messagei que ce dernier lul communique alors que le systeme de coopdration dčtecte les signaux provenanf do 1'envlronnemenl, envoie des signaux h ce dernier et čtabllt dej liaisons entre les conaux connectžs b 1'envltonnament. Dans la suite nous comiddrerons un 5ysfome simplifiC com- prenant une seule unitd centralo de traitement et n modules p6riph6rique9 dont chacun, relič b I'UCT par un reglstro pžriph^rique, contient un circuit de tests, un circuit ds marquage et un circuif de pilotage de type normal. Un schdma portiel de ce svstfeme sst pržsentž dans \a figuro ]. .liCJ.' •i.in,u> modulo ct: circuit de toutB cw: oircuit de i.ni^ opi oircuit Ao pilotu^e Figure \ . 19 2. Processus du systeme: identificotion et cooperalion Nous analysons ici les deux systemes de controle et de co- opčration en termes de processeurs et de processus s6quenHels permanents et coopčrarUs. Le systeme du central comprend un processeur piincipal (I'UCT), un processeur d'horloge i pžiiode de 10 msec et les trois fois n processeurs pčriphčriques de tests, de marquage et de pilotage qui son^ constilučs des circuits correspondants des n modules pčriphčriques et des terminaux de la pčriphdrie t£lčphonique rnultiplčx£s sur ces circuits. Les processus du systžme de confrdle se džroulent sur le processeur principal et sur le processeur d'horloge et sont appelds processus internes olors que ies processus du sys^me de coopžralion se deroulenfr sur les processeurs pčriphčriques de tests, de marquage et de pilotage et sonl appelčs processus extemes (voir \a terminologie de (1)) de meme nom, respectivemerrt. Les processus externes de tests rdalisent lo dclection - par l'examen des poinfs de tests des terminaux - des signaux parvenanf de 1'environnemenl; les processus externes de pilotage rčalisent l'eiwoi. des signaux b I' environnemeiU par 1'etablissement des lioisons entre les terminaux et les canaux de 1'environnement; enfin, les processus exfernes de maiquage rčalisent dos liaisons enfre le$ terminaux. II y o quarre groupes de processus internes: les processus internes cle tests, de traiternent, de marquage ef de pilotage, dčnords de facon g6n6rique par pt, pFr, pni e\ pp, respectivement. Les fonclions de ces processus sont les suivantes: un processus pt dštermine un ensemble de poinfs de tests et aclive un processus externe de tesFs sui' un processcur p<3riph£rique donne en lui envoyant une commande par le registre piSri- pfi^iique associ^ au processeur. Le processus externe pi^pare sa "r^potne" dans le meme regisrre pčriphčrique qui doif res(er occupž par ce processus pendant son octivit^. Le proce^sus pt anolyse ensuite la r^ponse, envoie un message par I'interm6diaire d'une mžmoire-tompon a un processus ptr coupl^ a pt et repiend \a procddure au džbuh jusqu'o ce que l'ensembld de poinfs de fests soif Ua\i6. Les pro- cessos internes de tests sonf activčs p^iiodiquement par 1'interrupHon de l'horloge el les diffdrents piocessus pf se ddroulent olors sequentiellenient. Un piocessus ptr ahalyse les messages re^us de pt e^ envoie, en foncHon du messoge recu, urt message a un processus pm ou pp par I' infermedioire d'une mdmoire-fampon ce qui entrarne une interruption achVant pp ou pm. Un processus pp ou pm re^oit des messages des processus ptr et acfivu un processus ext^erne de pilofoge ou de marquage, en loi ,envoyant une commande par le registre pžriphSrique. Le processus exferne acKvd occupe !e registre tant que \a cotnmande n^est* par lue et indique \a fin de son activii^ par une interrupMon ce qui permef do conlinuer le processus iiUorne qui l'a ac)iv6. Le processus exlerne n'erivoie pas d'autre "ržponse". Nous voyons donc qu'il eyiste une communication enlre les processus internes et externes et entro les diff^rents processus inlernes. Celte cominuiiication se fail par les registies p6riph6riques ef les m6nioires tampons; ces*6l6nients reprd- senlent des ressources partog^es que les processus devrons allouer et dčallouer dans notre descriplion du systfeme. D'outres ressources partag«os sonf les processeurs pitiphč- riques qui devronf efre allou^s avanf l'activafion dej piocessus externes se dčroulant sur ces processeurs. L'occupafion exclusive des ressources partagdes est assurče dans le sys^me actuel par l'execution serielle des pioceisus internes. La' communication entre les processus du sysleme acfuel r\'est ni sure (des messages peuvent se perdre) ni suffisammenf souple pour permethe d'exploiter le parallž- lisrne polenMel des processus du systeme. Nous proposons donc une restructuration du sysfeme exposfie ci-dessous. 3. Structuration du Le systeme est envisagd comme un ensemble de processus internes s€quenMels et permanents (cyclont indfifinimenf) dont la cooperation esl assurže par un unsembl« de moni- feurs (pour le concepl- de moniteur voir 1,2,3,-1,7,11,12, 13,16), disposds en hierarchie et y«ronf les ressources du Le noyau du sysfrfeme n'est pas explicit6; nous supposons qu'il contient essenHellement un programme d'ordonnance- rnent ("scfieduler - dispafcher") des processus infernes, les routines pour le ^raifement des inlenuptions ef deux primi- Hves de coinmunicaHon entre tes processus: "bloquer" ef "ddbloquer". Ces deux piimitives sont appel^es dans les moniteurs et appellent b leur hour le programme d'ordon- nancemenK Nous supposons un ordonnancernent tres sirnple des processus internes: absence de priori^s et stratčgie "prernier orrivd - premier servi". Nofons que la proc^dure "ddbloquer" ne provoque pas nčcessairement 1'octivuMon inun^diate du processus d£bloqu£ ^ventuel (nous ne suivons donc pos \a strafžgie de Hoare et de Brinch Hansen - cf. 2,7 - mais celle, plus gdnčrale, expos^e dons 10). Dans le sysfeme obseiv^ r/existent que deux types d'inter- ruptions: l'interruption de 1'horloge el les interruptions provoquees par les piocesseurs de marquage -el de pilotage. Ces interrupMons sont "interceptfies" par le noyau (qui active par la suite le piograrnrne d'oidonnoncement) et firialenienl "acliertiin^es" aux proc^dures adčquales des morii™ teurs gerarit les processeurs de marquage, de pilotage et 1'horloge. L'occupoHon exclusive des resšources partag^es est assurae par 1'inhibiMon des interrupriom dans les procedures des moniteurs ce qui a pour effet l'exclusion "globale" (cf- 11) de ces procddures. Le systime proposš se compose d'fiUiTients suivants: - proceisus internes: - les piocessus de tests, no^s p\\ , i = 1 . . t - les processus de haitement, not6s plrj , i ~ 1 . . t - les processus de morquage, no\6t prtij , i = 1 .. m - les piocessus de pilotage, notds pp. , i = 1 ..p ; - monUeurs: - les rnoniteurs des processeurs de fes^s, notds ml"j , i - 1 . .n - les moniteurs des piocesseurs de niarquage, notdi mm| , i = 1 .. n . - les moniteurs des processeurs de pilotage, nolds mpj ,i=l..n - les inonifeurs des registres pčriphžriques, no(6s mij, i=l..n - les moniteurs nofds mbl \, i- 1 . .t, gdrant la communicaHori entre les paires des processus ptj - ptrj - les monileurs not^s mb2j , l = )..m, gdtant la coinmunica- tion enlre les processus ptr et les piocessus pnij - les moniteurs notžs mb3|, i^K.p, gdrant la communica- lion enhe les processus ptr et les processus ppj et - le moniteur notd mlemp gžiant I'interruption de l'horloge. L'organisation du systfeme est reprdsentde par le graphe de \a figure 2. Sur ce graphe apporoissent aussi le processus dMiorloge notš ph ef Ies processus externes de maiquage el de pilatage, notžs cp; et cmj, i = l..n. Lej arcs du graphe repičsenlent les accbs (appels) odmis dons le s/stžtne (une intercuption žtant ici inlerpielde comme un appel b la procčdure d'inferruption - de moniteur - correspondanle). L'arc parrant d'une accolade (resp. abouMssanl 6 une accolade) iepr6sente aurant d'arcs partants (resp. aboutis- sants) qu'il y a de processus ou de monileucj reunis par l'apcolade. 20 mr,... ph proceasua de tests processua de traitement t3p P'n* processus de murquuge PPX... processus de pilotuge PPr Figure 2. III. DESCRIPTION DE LA STRUCTURATION PROPOSČE . Diffčrenfes sfruchjraHons du syst&me sont possibles; elles sont ossenfiellement fonction du choix des moniteufs. La structure choisle a les effets suivants: - en allouanf d'abord les processeurs de tests, de marquoge et de pilotage e\ ensuite les reglstres correspondants nous obtenons des files d'anende (sur ces ressources) plus courfes que dans le cas des sžquences d'allocation inversej; - il esf possible que les processus exfernes de marquoge et de pilofage d'un meme module pdriphdrique se dflroujenf en parallfele; - en dčfinissant un moniteur pour chaque ressource nous diminuons le temps passS dans chacune des procždurei des moniteurs. 1. Donnees globales Ces donnees globales peuvent etre rdfdrenc^es dans tous los moniteurs et dans hous les processus. Les constanfes: t,m,p,n,blonl ,blon2,blon3. Lej types: type lisfe-t = orray[l..f] of queue; liste-m = array [1 . .m'] of queue; lijte-p =array[l..p] of queue; liste-r =array[1..2] of queue; messl ={ .. .\; mess2 -{ .. •\; mess3 =\ ... \ ; tampl = array [ 1 . .blonl ] of messl; tamp2 = arroy \ 1 , ,blon2 J of mess2; tamp3 = array [ 1 . ,blon3 ] of mess3; type paps = closj (long; integer); f cf.(15), p.169: une file "premier arrlvi-premier servi"^ var fžte,q,1; integer; function entry arrivž: Infeger; begin arriv6:=q; q: = q mod long + 1; 1:=1 +1.; ondj function entry depart; integer; begin dfipartj^tžte, tefe:=tžte mod long + 1 ; 1 : = 1 - l;end; funcHon enlry vlda: boolean; begin vide: = (l =0) end; function enhry plein: boolean> begin plein:= (1 =long ) end; begin tate:=l; q:=l; l: = 0; end; Les primitives du noyau: procedure bloquer (var q:queue); {bloquer le processus courant dans q; quitter le moniteur et oppeler le programme d'ordonnancemsn^ ; procedure dčbloquer (var q:queue); {ddbloquer le processus dans q ; quiUer le monlteur et appeler le progromme d'ordonnancementJ ; • function vide (var q:queue):boolean; 'vrai si pas de processus en ottente dans q} . 2. Moniteurs o) Allocateur de processeurs de tests fype mt= monitor(monreg; mr) vor libre: boolean; liste: liste-t; prochoin: paps; procedure entry allouer; begin while not libre do bloquer (lisle [prochain.arrivžj); libre: = false; monreg .alloueri end; procedure entry džallouer; begin monreg. dflallouer; libre; = true; if. nof prochain.vide then d^bloquer(li8te[prochain.dtfportj)j ond; begin libre: = true; inlt prochain(t) end; On peut declarer alors n moniteurs du type mt dont chacun est ossocie b un moniteur du type mr (voir plus bas): var mtl:mt; avec init mtl(mrl); b) Allocafeurs de processeurs de marquage et do pllotago type mm = moni tor (monreg: mr) var libreiboolean; listejiste-m; prochain:paps; inter:booleon; procedure entry allouer; 21 begin vvhile not libre do btoquer(list6[prochoin.arrive]); libre: = false; monreg .ollouer; inter: = false; [ le signal d' interruption j- end; procedure enky džallouer; begin if not inter then bloquer(attinter)> Jattendre I' inl-erroption } l!bre: = true; if not prochain.vide then dsbloquer(liste[prochoin.daparf]); end; procedure enfry mlnter; l_"intercepfe" I' inferruption du circuit de marquage}. begin inter:-true; if not vide(aHinter) then debloquer(aHinter); end; begin libre:—frue; inter: = folse; init prochain(m) end; type mp= j_analogue ou typo mm \ . On pourra džclarer n moniteurs du type mm ef n moniteurs du type mp par: var mml :mrn; avec irtit mml (mri ); etc . . . c) Allocateur de registre pžriph6rique type mr= monitor vor libre:boolean; liste: liste-r; prochain:paps; procedure entry allouer> . begin while not libre do bloquer(Iiste£prochain.arrSv6j)> Iibre:~ false; end; procedure entry d^allouer; begin libre: = true; if.nof prochain. vide then debloquer (Iiste[prochain.d6part'j); end; On d^clorera n montteurs du type mr par: vof mrl : mr; etc ... d) Atlocateur de m6moire-tampon du type mbl type mbl = monitor var mbitampl; prochain:papsj source, destinafion:queue; procedure enlry envoyer(m: messl ); begin if prochain.plein then bloquer(source); mb[prochain.arrivej:= m; if" nof vide(destinatfon) then džbioquer(desfination); end; procedure enlry recevoir(var m:messl); begln if prochain.vide then bloquer(destination); m:~ mb [ prochain.departJ ; if nof vide(source) then debloquer(source); end; begin inif prochain(blonl ) end> On džclarera t moniteurs de type mbl: var mb1l t mbl; etc. ... e) Allocateurs des mžmoires-tampons du type mb2 et mb3 type mb2 = monitor var mb:^amp2; prochainproc,prochaintomp:pops; source: liste-t; desHnaMon:queue; procedure entry envoyer(m: mess2 ); begin while prochaintamp.plein do bloquer (source [ prochainproc.arrive])> mb\ prochainfamp,arriv6] :~m-r if not vide(destination) then džbloquer(destinaHon); end; procedure entry recevoir(vor m:mess2); • begin if prochointomp.vide then bloquer(destination); m: = mb ^prochaintamp.dčparf^; if nof prochainproc.vide then debloquer(source [prochainproc.dfipart ]); ' end; begin in'it prochainproc(t), prochointamp(blon2) end; type mb3 = [analogue au type mb2 \ . On d^clorera m monHeurs du type mb2 et p moniteurs du type mb3: var mb21: mb2, . .. mb3i: mb3, . . . f) Le monlteur de 1'horloge type mtemp= monitor var attliste:liste-t; •( contient les processus pt; qoi ont fin! teurs cycles et aHendent 1'interruption de IMiorloge pour recommencer un nouveau cyclej prochaintpaps; procedure entry affendre; begin bloquer(a^Hisl^e [ prochatn.arrivčj) end; procedure entry tempinter;-[ I' interrupKon de 1'horlogej- begin while nol- prochain.vide do džbloquer(affliste! prochain.dčpartj ) end; begin inif prochain(t) end; D^claration: vor horloge:mtemp; 3. Processus a) Processus de fests type pf = procejs(heure:mtemp; buf :mbl; accestl', {...}, accfestn: mf); var circuiteshl . . .n; mess:messl; begin cycle linitialisation:d^terminer les tests ^ repeat case circuifest of 1_: accestt .ollouerj [envoi de la commande ou processeur de tests correspondant en ufilisont le registre correspondant; delai "octif"A ; exomen de la reponse refue dans le registre^- case circuitesf of 1 :accesKl .deallouer; (preparer le message pour le processus ptr correspondant^ buf. envoyer(mess)> until ^ fin de tests du cycle \ ; heure .attendre; end; end; Les processus de type pt sont declarfis ef initialis^s por: var pH:pf; init ptl (horloge^mbl 1 ^mtl r m*2, £.., l,mtn); efc. .• b) Processus de traitement process(buf: mbl; tampl ,| ... t, tompm:mb2 ) taml,[ .. • ^, tamp: mb3); , • var ml : messi; m2:mess2; m3:mess3/ begin cycle buf.recevoir(ml); \ fraitement du message^ - .. . j ramp.. envoyer(m2) ... tam. . envoyer(m3) j ... end; end; Ces processus sont d^clares et iniliolises por: vor ptrl :ptr; inif pfrl (mbl 1 ,mb21 ,\. . .I,mb31 ,\. . .],mb3p) > c) Processus de pilofage e) de marquoge fype pm = process'Huf: mb2; accesmi, j^. . .^, occesmn: rnn; acc^srf , ^ . . . K f accesrnimr); var circuifmarq: 1 . .n ; mess:mess2; . begin {initialisationi; cycle buf.recevoir(mess)j l'pr«porer l'action adžquate^ case circoitmarq of 1 :accfesm1 .ollouer; [envoi de \a commande au processeur do marquoge correspondont en utilisonf le registre correspondant^ cose circuitmait) of 1: begin accesri .deallouer; accesmi .džallouer; end> end) end; ''' 22 Cej processus sont declorSs et initialisčs par: var pml:pm; init- pml (mb21, miril, {...}, mmn,mrl,mr2, (.. .J,mrn); eta... type pp= ( analogue au type pm}. IV. CONCLUSION Le fonctionnement correct du systeme džcrU en III (ainsi que celul du systeme original) est bas£ lur l'hypoth&se suivante: 1'intervalle de temps entre deux interruptions de 1'horloge est sufisommenf long pour que, en fin d'infervalle: - fous les processus pt soient bloqučs dans la liste "attliste", - aucun des messages ne soit perdu et . - tous les processus externos soient terminčs. Partant de cette hypothfese de base nous pouvons supposer que le systfeme structurž proposž ici assure un ddroulement harmonieux des processus du sysfeme c.a.d. sans bloquage des processus (cf. 1 ). En effet, d'une part, nous avons dans le syst-eme une . allocation hi6rarchfque des ressources permanenfes (processeurs pčriph6riques iBf registres) et, d'autre part, uno communi- cation de messages hi«iarchique entre les processus internes du 'sysfeme (les processus pf envoient des messoges aux processus plr et ces derniers envoient des messages aux processus pm et pp). L'implantat!on du systeme propose esf bosže jur l'hypothese d'un seul processeur cenfral et est la plus simple possible (les rnoniteurs sont rdalisds par 1'inhibition des in^er- ruptions). On peut bien gvidemmenf envisager une implanta- lion plus sophistiqufie et plus complexe (cf. 17): - en supposanf plusieurs processeurs centraux ef/ou - en introduisant los s^maphoreS'pour assurer une exclus!on "locald" des proc6dures des monUeurs. Une telle implantation rendrait possible une amžlioration th6orique du degrfl de parallfilisme des differents processus du sysfžme mais - etant donnd les temps fres courts des cycles des processus - seroit probablement prohibiHve relati- vemeat aux femps d'"acces" aux monUeurs. Nous pensons que la restructurafion proposde du systeme du cenMal peul, d'une port, servir 6 modžliser le systeme et 6 le simuler et, d'autre part, peut servir comme point de depart d'une configuration nouvelle du systeme. BIBLIOGRAPHIE (1) Brinch Hansen P.: Operating system principles, Prentice- Holl, 1973. (2) Brinch HansenP.: The progromming languoge Concurrent Pascal, IEEE trans.on software eng.vol. SE-l,no.2,1975. (3) Brinch HansenP.: A progromming methodology for operating system design, IFIP 1974. (4) Dijkstra E.W.: Hierarchical ordering of sequential processes, Operafing systems techniques, Academic Press, 1972. (5) GordonR.L.: Sysfems of cooperating schedulers, IFAC- IFIP workshop on reol-fime programming, 1975.. (6) Haberman A.N.: Introduction (o operafing system design, SRA 1976. (7) Hoare C.A.R.: Monitors: an operating syst^m structuring concept, CACM, oct. 1974, p. 549. (8) Horning J.J., Rondell B.: Process strucfuring, Compuling surveys, vol. 5, no.l, 1973. (9) ITT: Standard computer modules ITT 1600, 160 ITT 11000E, 1968. (10) Jensen K., Wirth N.: Pascal-user manual and reporf, Springer-Verlag ,1975. (11) Lister A.M., Moynard K.J.: An implementation of monitors, Software-practice & experience, vol. 6, 377- 385, 1976. (12) Lister A.M., Sayer P.J.: Hierarchical monitors, Proc. 1976 internot. conf. on parallel processing. (13) Schmid H.A.: On the efficienf implementation of con- difionol crifical regions & the construction of monitors, Acta Informatica 6, 1976. (14) Smedema C.H.: Reol-time concepts ond Concurrenf Pascal, IFAC-IFIP workshop on real-time programming, 1975. (15) Brinch HansenP.:The solo operaMng sysfem: processos, monitors & classes, Soffvvare-practice & experience, vol.6, 165-200, 1976. (16) Brinch HansenP.: Concurrent Pascal report, Cal.toch., 1975. (17) VJeHttein H.: The implementaflon of synchronizing operaMons in vorious environments, Softwore-practicQ & experience, vol.7, 115-126, 1977. (18) Werfstein H.:The problem of nesfed monitor culls revisifed, Oper. Systems Review, vol.12, no.l, 1978. (19) Popovič B., Exel M., Mekinda M.: Primjena monitor- skog koncepta u izgradnj! operaclonog sisfema za periodično oktiviranje programa. J. InformaHca, 1977, no. 2. (20) Mekincia M., Exel M., Popovič B.: Struk^uriranjo pro- gramsko vodjenog sistema telefonske centrole, XII.jug. medn. jimpozij o obravnavanju podatkov, Bled, oklober 1977, 6-116.