Tárolt programvezérlésű telefonközpontok operációs rendszere D R . KÓCZY T. L Á S Z L Ó B M E Híradástechnikai Elektronika I n t é z e t
ÖSSZEFOGLALÁS A tanulmány a mintegy 20 éves múltra visszatekintő tárolt program vezérlésű telefonközpontok operációs rendszerelnek, ezen belül elsősorban az ütemezési megoldásoknak adja áttekintését. A tör téneti fejlődéssel összhangban először az egyszerű és összetettebb Időosztásos, majd a fejlettebb funkclőosztásos megoldásokat Ismer teti, melyeket összefoglalva funkcióorientált ütemezéseknek nevez hetünk. A második rész a különböző hlvásosztásos, majd a virtuális processzoros ütemezési algoritmusokra mutat példákat — ez utób biak a folyamatorlentált eljárások. A befejezésben az ütemezési rendszereknek a modern univerzális célú konkurrens operációs rend szerekben való elhelyezkedésére mutat rá.
1. Bevezetés Az u t ó b b i évtizedben a hazai kapcsolástechnikai szak emberek érdeklődésének is k ö z é p p o n t j á b a k e r ü l t e k a t á r o l t program vezérlésű k ö z p o n t o k . Ez különösen igaz, a m i ó t a a B H G - b a n megindult a t p v — először kvázielektronikus, majd teljesen elektronikus — k ö z p o n t o k g y á r t á s a , illetve a jelenleg is intenzíven folyó fejlesztési munka, melynek eredményeiről és jövőbeli útjairól a H í r a d á s t e c h n i k á b a n is számos t a n u l m á n y s z á m o l t be — i t t csak az u t ó b b i évek n é h á n y cikkére u t a l u n k : [1], [2], ül. [3], [4]. A k o n k r é t rendszerek, központcsaládok ismertetése mellett azonban — úgy véljük — nem érdektelen az általánosabb, a nemzetközi e r e d m é n y e k e t is fel dolgozó á t t e k i n t é s sem; célunk a jelen t a n u l m á n y ban a különböző, ismertebb kapcsolástechnikai g y á r t ó vállalatok n é h á n y fontos t e r m é k e alapján kiemelni a közös vagy é p p e n eltérő jellegzetességeket. T e r m é szetesen nincs m ó d a k o r l á t o z o t t terjedelem keretei k ö z ö t t teljes k é p e t adni, e helyett csupán a t p v köz pontok vezérlő szoftverjének egyik leglényegesebb komponensét, az operációs rendszert, s ezen belül is a feladatok ütemezésének megoldását vizsgáljuk. Célunk olyan á t t e k i n t é s nyújtása, amely a k o n k r é t szakirodalmat t a n u l m á n y o z ó k számára egyfajta glo bális szemléletet ad, s ezáltal az ismertetett rend szerek működésének megértését könnyíti, de esetleg a fejlesztők s z á m á r a is tartalmaz n é h á n y ötletet. Mielőtt r á t é r n é n k a fentiekben k ö r ü l h a t á r o l t t é m a elemzésére, előrebocsátunk n é h á n y általánosabb gondolatot a t p v szoftver rendszerekkel kapcsolat ban. E rendszerekkel szemben t á m a s z t o t t funkcio nális és gazdasági jellegű követelmények nagy m é r t é k b e n m e g h a t á r o z z á k a s t r u k t ú r á t és az általános jellemzőket. E követelmények közül a legfontosab bakat az a l á b b i a k b a n foglaljuk össze: — valós idejű vezérlési sebesség, gyors reakcióidő a b e a v a t k o z á s t igénylő változások esetén; B e é r k e z e t t : 1985. m á j u s 2 0 - á n ( # )
394
DR. KÓCZY
T.LÁSZLÓ
1975- ben szerzett a Buda pesti Műszaki Egyete men a Villamosmérnöki Kar műszer- és irányí tástechnika szakán okle velet, ugyanitt 1976-ban kutató és fejlesztő irányú szakmérnöki oklevelet. 1977-ben a fuzzy mate matikai módszerek és al kalmazásuk témakörében a BME-n kapott egye temi doktori fokozatot. 1976- tól a BME Hír adástechnikai Elektroni ka Intézet tud. segéd munkatársa, majd tanár segéde, 1983-tól adjunk tusa. Közben 1982/83ban egy tanévet töltött a BHG Fejlesztési Inté
zetében ipari tapasztalat szerzésen. Részt vett több a BHG-val, ül. a TKIval közös fejlesztési mun kában. Számos publiká ciója jelent meg fuzzy matematika, útkeresési el járások és tpv vezérlési kérdések témakörben. A Mathematical Reviews recenzense, tagja az Ame rikai és a Lengyel Mate matikai Társulatnak, a HTE IB vezetőségének és több MTESZ egye sületnek, továbbá a Kar közi Alkalmazott Mate matikai Munkaközösség Szervező Bizottságának, ül. a KAMM Füzetek és a KAMM Bulletins szerkesztőségének tagja.
— igen nagy megbízhatóság; — változtathatóság mind egy terméken, termékcsa ládon belül a k o n k r é t helyszínfüggő igényeknek megfelelően; mind pedig az új technológiák, új szolgáltatások bevezetését lehetővé téve üzem k ö z b e n ; — a karbantartás és üzemeltetés automatizálása a költségek csökkentése érdekében. E követelmények közül az első meghatározza az egyes szoftver funkciók végrehajtásának módját, mely éppen az operációs rendszer ütemezési feladat köréhez kapcsolódik. Az adott környezeti ponton je lentkező információ (pl. ívponti állapotváltozás) meg h a t á r o z o t t időn belüli feldolgozást, beavatkozást igényel (pl. t á r c s a h a n g indítás). Ez azonban felté telezi az észlelés gyors bekövetkezését is. Az észlelés — feldolgozás — b e a v a t k o z á s funkció h á r m a s elvég zésére rendelkezésre álló idő meghatározza azt a maxi mális periódushosszat, amelyen belül meg kell te remteni az adott feladatokat elvégző összes program aktivizálódásának és lefutásának a lehetőségét. Ter mészetesen, ha az adott környezeti ponton az adott perióduson belül nem é r k e z e t t információ, a tény leges aktivizálás nem következik be. A program egységek ilyen periodikus vagy legalábbis ciklikus indítása, i l l . az indítás lehetőségének megadása je lenti az operációs rendszer ütemezési feladatkörét. A fentiek alapján megállapíthatjuk, hogy az ilyen ütemezésre feltétlenül jellemző lesz a ciklikus szerve zés — amely valamilyen értelemben minden tpv k ö z p o n t b a n megtalálható. Híradástechnika
XXXVI.
évfolyam 1985. 9. szám
A megbízhatóság k ö v e t e l m é n y e szintén erősen érin t i az ütemezés kérdését, a k o n k r é t ütemezési alap technikák ugyanis külső vagy belső zavarok, infor mációtorzulások h a t á s á r a a k ö z p o n t működésének bizonyos funkciókieséseit, vagy a k á r m a r a d ó k á r o sodását (természetesen szoftver károsodását) idéz hetik elő. Ezeknek a p r o b l é m á k n a k a megoldására természetesen léteznek olyan eljárások, amelyekkel az ütemezési alapmódszert kiegészítve, megbízható rendszert lehet létrehozni. Nagyon lényeges a v á l t o z t a t h a t ó s á g k r i t é r i u m a , amelyet mind funkcionális, mind pedig piaci t é n y e zők erősen motiválnak. Ez a k r i t é r i u m az egyik elő idézője a t p v szoftverek szigorú moduláris felépítésé nek, mely a teljes rendszer funkcionális modularit á s á t követi. (Egy t o v á b b i , hasonlóan erős ok a fej lesztési „technológia", amely a világ valószínűleg ez idáig létrehozott legnagyobb m é r e t ű szoftver rendszereinél csak kvázifüggetlen modulok előállí tása formájában képzelhető el.) A programok mo duláris megoldása viszont kihat az egyes program blokkok aktivizálásának, „felütemezésének" az egy séges módjára is. A k a r b a n t a r t á s , üzemeltetés összefügg a fentebb m á r említett kérdésekkel, elsősorban a megbízható sággal és a modularitással. K ü l ö n probléma az auto matikus k a r b a n t a r t á s t , a d m i n i s z t r a t í v jellegű tevé kenységet végző programok ütemezése. Ellentétben a kapcsolástechnikai funkciókkal, ezek a modulok többnyire nem igényelnek szigorú időhöz k ö t ö t t futást, így aktivizálásuk t ö r t é n h e t kevésbé merev rendszerben: az ilyen feladatok elnevezése h á t t é r job. E bevezetés végén megadjuk a t p v k ö z p o n t o k b a n található vezérlő szoftver funkciócsoportjainak á t tekintését (1. 1. ábra). A szoftver rendszer 3 fő egy ségből tevődik össze: — Operációs rendszer; — Hívásfeldolgozó rendszer; — Karbantartó és üzemeltető rendszer. Az operációs rendszer feladatait négy csoportba oszthatjuk. — A ciklikusan végrehajtandó feladatok és a h á t térj obok ütemezése; — Mindenfajta tevékenység időzítése; — A rendszerben t a l á l h a t ó különböző erőforrások (pufferek, várakozó sorok) kezelése; — A vezérlő rendszert alkotó processzorok, i l l . a programmodulok k ö z ö t t i üzenetek kezelése. A tényleges kapcsolástechnikai funkciókat a k ö vetkező csoportokba szokás sorolni: — Végpont (terminális pont) vezérlés, amelybe az előfizetői vonalak, t r ö n k ö k , speciális feladatú ívponti áramkörök, jelgenerátorok, jelvevők, vizsgálóáramkörök stb. letapogatása és m ű ködtetése tartozik; — Kapcsolómező vezérlés, amelybe a keresztpon tok, összekötő á r a m k ö r ö k stb. állapotainak n y i l v á n t a r t á s a , lefoglalásuk, m ű k ö d t e t é s ü k stb. tartozik; — A fenti k é t csoporthoz kapcsolódó nagy menynyiségű adat kezelése, az adatmező karbantar tása. Híradástechnika
XXXVI,
évfolyam
1985. 9. szám
Időzítés
Ütemezés
Operációs rendszer
Erőforrás
-
Üzenet
-
kezelés
kezelés
1 Végpont
-
vezérlés
Kapcs.
mező
vezérlés
Hívás
-
Feldolgozás
Adatbázis kezelés
1 Karbantartás
Üzemeltetés
H75-1 1. ábra. Tpv szoftver alkotóelemei
Végül a k a r b a n t a r t á s és üzemeltetés csoportba összefoglalható s z á m t a l a n feladat, amely program terjedelemben, a teljes rendszer nagyobbik felét képezi. Ennek részletesebb elemzésével i t t nem fog lalkozunk, mivel az ütemezés kérdéséhez kevésbé közvetlenül kapcsolódik. Megemlítjük, hogy a t p v k ö z p o n t o k környezetében még számos t o v á b b i szoftver egység is t a l á l h a t ó : a fejlesztést, g y á r t á s t és üzembe helyezést, valamint a k a r b a n t a r t á s t és üzemvitelt t á m o g a t ó számítógépes i l l . t p v rendszerek programjai. Mivel azonban ezek m a g á v a l a k ö z p o n t t a l csak áttételes, off-line kapcso latban állnak, a szoros értelemben vett t p v köz pont szoftverhez nem sorolhatók.
2. Az ütemezési elvek osztályozása Vizsgálatainkat a t o v á b b i a k b a n az operációs rend szerre, azon belül is a feladatok ütemezésének kér désére szűkítjük. A t é m a klasszikus szakirodalma a különböző k ö z p o n t o k b a alkalmazott ütemezési mód szereket h á r o m típusba sorolja: egyszerű időosztásos, funkcióosztásos és hívásosztásos elvre [5]. Hasonló osztályozást alkalmazott k o r á b b a n e t a n u l m á n y szer zője is — az u t ó b b i típus élesebb k e t t é o s z t á s á v a l k i egészítve [6]. Megállapíthatjuk azonban, hogy az előbbi k é t típus — t o v á b b i rokon eljárásokat is ide sorolva — lényegi vonásaiban erősen hasonló. Az ú u . hívásosztásos módszer viszont — az eseményorien t á l t ütemezést is ideszámítva — az újabb rendszerek ben alkalmazott folyamatszemléletű, virtuális pro-
395
• Egyosz
,CÓ'-
t
á
'
y
0
-
S
osztás * r- . . < Funkcióorientalizált V
^Többosztályos ^jrldofeladat flaqek
, .• Funkció. • osztás
M
Aktivizálás! számlálók Ütemezés
\
Esemény bemenetű
\
Tár /orientált
Folyamat . orientált J
S y
-
\
\
HÍvástár A
,
-
h „ ^ „ „ „ * -
bemenetű ^
Virtuális processzorok
2. áfira. Ütemezési elvek csalátlíája
cesszoros feldolgozási elv alapjait tartalmazza, ezek az eljárások t e h á t egy második fő csoportot alkot nak. A k é t alaptípus elnevezésére javasoljuk a k ö vetkező kifejezéseket: funkcióorientált, i l l . folyamatorientált ütemezés. A funkcióorientált ütemezés alaptípusai közé a k ö v e t k e z ő — egyre fejlettebb változatok — sorol hatók : — — — —
egyszerű időosztás; többosztályos időosztás; idő-feladat flages aktivizálás; aktivizálási számlálók módszere.
Az u t ó b b i k e t t ő a „funkcióosztásos" megoldás mere vebb és rugalmasabb v á l t o z a t a . A folyamatorientált ütemezés tárorientált és vir tuális processzoros megoldásokat foglal össze. A t á r orientált megoldás k é t alaptípusa az eseménybeme netű és a hívástárbemenetű ütemezés. A 2. ábrán a fenti típusok „családfáját" látjuk. A funkcióorientált ütemezés általános jellegzetessé ge az, hogy a végrehajtandó feladatok tényleges el oszlásától függetlenül az ütemezés mindig a funkciók merev sorrendjében t ö r t é n i k . Kissé leegyszerűsítve: ha p l . egy k ö z p o n t b a n egy adott i d ő s z a k b a n egyál t a l á n nincs olyan épülő beszédkapcsolat, amely egy előfizetői készülékre t á r c s a h a n g k i a d á s á t igényelné (mert az adott időszakban, i l l . azt közvetlenül meg előzően nem k e z d e m é n y e z e t t egyetlen előfizető sem hívást), a megfelelő i d ő p o n t o k b a n mégis aktivizáló dik a t á r c s a h a n g k i a d á s á t végző program, majd vala milyen munkalista a l a p j á n önállóan d ö n t arról, hogy tényleges b e a v a t k o z á s t az adott ciklusban nem kell végeznie. Az egyes módszerek k ö z ö t t a lényegi k ü lönbség abban rejlik, hogy az egyre fejlettebb válto zatokban az aktivizálás időpontjai, illetve a periodi
396
citások egyre jobban k ö v e t i k az adott feladat t é n y legesen szükséges aktivizálási gyakoriságát s így a processzoridő egyre jobb kihasználását jelentik. Az időosztásos változatok h á t r á n y a , hogy az a k t i vizálás tényleges k o n k r é t időpontja sem mindig de finiált, a funkcióosztásos módszerek, ezt a p r o b l é m á t lényegében kiküszöbölték. Az összes idesorolható ütemezési módszer közös h á t r á n y a azonban, hogy funkciótól függő, nagy m é r e t ű m u n k a l i s t á k a t fel tételeznek, melyek k ö z ö t t az információáramlást k i zárólag maguk az egyes funkciókat ellátó programok biztosítják — ez az egyes programok felelősségét megnöveli, hiszen a tranziens jellegű hibák is ka tasztrofális követelménnyel j á r h a t n a k — egy vagy t ö b b hívás felépítése, illetve felügyelete szempontjá ból. Végül azt is megemlítjük, hogy a funkcióorien t á l t ütemezéshez olyan funkcionális programblok kok illeszkednek, melyek — a szigorú feladatszétvá lasztás m i a t t — minden esetben egyedi döntési mechanizmust igényelnek, vagyis a funkcionális programblokk és az adatbázis k ö z ö t t i szoftver i n terfész semmilyen szempontból nem szabványosít ható. A fenti csoporttal ellentétben, a folyamatorientált ütemezésnél mindig a tényleges feldolgozási igények nek megfelelő programok aktivizálódnak, így ez az elv optimálishoz közeli időkihasználást jelent. Ter mészetesen ennek a kedvező tulajdonságnak á r a is v a n : az aktivizálás mechanizmusa körülményesebb, illetve időigényesebb. Előnye azonban, hogy homo gén jellegű a d a t b á z i s t használt, ami a különböző funkciók egységes rendszerbe t ö r t é n ő összeépítését és a programadatbázis interfész egységesedését ered ményezi. Említésre m é l t ó , hogy i t t az információk á t a d á s a az egyes funkciók k ö z ö t t nem dimamikus módon, a programfunkciók közbejöttével t ö r t é n i k , hanem az a d a t b á z i s lényegében statikus m ó d o n hor dozza a programok által folyamatosan kezelt ada tokat, így a tranziens funkciókiesések csupán az álla p o t á t m e n e t e k késleltetését idézhetik elő, s nem k e r ü l h e t sor a teljes információ vagy információ csoport végleges elvesztésére. A súlyos működési hibák természetesen i t t is vezethetnek katasztrofális következményekre. A következőkben részletesen ismertetjük az egyes ütemezési elveket. 3. Az időosztásos ütemezés Az ütemezés legkezdetlegesebb megoldása az egy szerű időosztásos ütemezés. Ennek lényege az, hogy az egyes funkcionális modulok közül kiválasztják a leggyakoribb aktivizálást (felütemezést) igénylőt, és ehhez alkalmazkodik az összes többi program blokk aktivizálása is. Az így alkalmazott periodici t á s , p l . 25 ms, nyilvánvaló, hogy számos program esetén felesleges gyakoriságot jelent, hiszen t ö b b nyire elegendő a néhányszor 100 ms-os reakcióidő, amely természetesen az információészlelés sebességére is megenged p l . 100 ms-ot. A programok rögzített sorrendjét a feladatcímtábla adja (3. ábra). Ebben a t á b l á z a t b a n sorban el vannak helyezve a végrehaj t a n d ó feladatoknak megfelelő aktivizálandó program blokkok kezdőcímei. Az ütemező feladata csupán Híradástechnika
XXXVI.
évfolyam 1985. 9. szám
n
1.feladat címe
Mutató
feladat
2.
címe
változó
feladat címe
ü
Cikluszáró feladat
címe
H75-3 3. ábra. Feladatcímtábla szerkezete egyszerű időosztásnál
annyi, hogy a címeken valamilyen m u t a t ó v á l t o z ó segítségével végiglépkedjen, s az egyes feladatok végrehajtását indítsa. E feladatoknak megfelelő programok saját maguk döntik el, hogy az adott ciklusban végzendő-e tevékenység, illetve hogy h á n y beszélgetéssel, terminállal stb. kapcsolatban. A programok végén mindig visszatérés az ütemezőbe szerepel. A feladatcímtábla végén á l t a l á b a n egy olyan speciális program t a l á l h a t ó , amely v o l t a k é p p e n az ütemezési rendszer része, ennek feladata a ciklus kezdet visszaállítása, p l . a m u t a t ó v á l t o z ó t a r t a l m á nak kiinduló helyzetbe való visszaírása stb. E megoldás h á t r á n y a , hogy a legszigorúbb k ö v e t e l m é n y h e z igazodik, így az időkihasználás nagyon rossz. Lényegesen jobb a helyzet a több feladatosz tályt megkülönböztető időosztásos megoldásnál. E k k o r az egyes programblokkok az aktivizálási gyakoriság előírt minimális értéke szerinti osztályokba vannak rendezve, pl. 2 0 - 1 5 0 ms, 2 0 0 - 1 5 0 0 ms, 2 - 6 0 s stb. Az egyes osztályokon belüli besorolásnál természetesen a szigorúbb k ö v e t e l m é n y a m é r v a d ó . A legegyszerűbb megoldásnál az osztályok száma 2—3, mindegyik osz t á l y külön feladatcímtáblával rendelkezik. Az ü t e mezés alapciklusa a leggyakoribb behívás periódus ideje, minden alapcikluson belül mindenik, az első prioritási osztályba t a r t o z ó program aktivizálásra k e r ü l . T e g y ü k fel, hogy az alapciklusidő 20 ms, ekkor a helyesen m é r e t e z e t t vezérlőjű k ö z p o n t b a n a 20 mso n k é n t a k t i v i z á l t programok e g y ü t t e s futási ideje (a felütemezés idejét is beleértve) 20 ms-nál lénye gesen kevesebb lesz. (Pl. 10 ms.) A f e n n m a r a d ó üres időben t ö r t é n i k a 2. osztályú feladatok végzése, ter mészetesen a 2. feladatcímtábla alapján. Legyen p l . a 2. osztály programjainak ütemezési gyakorisága 200 ms, ekkor egy másodrendű ciklus (200 ms) alatt ezen feladatok s z á m á r a rendelkezésre álló összidő pl. 100 ms lesz. (Hiszen 200 ms alatt 10-szer futnak a ciklusonként 10 ms-ot igénybe vevő 20 ms-os prog ramok.) H a nincs t ö b b feladatosztály, az összfutásidő megközelítheti a fennmaradó 100 ms-ot, ha van t o v á b b i osztály is, természetesen nem h a s z n á l h a t ó k i a 100 ms sem. Híradástechnika
XXXVI.
évfolyam
1985. 9. szám
Minden méretezés alapjául valamilyen feltételezett forgalmi terhelés szolgál. A valóságban azonban elő fordulhat, hogy a tényleges forgalmi érték a k á r lé nyegesen túllépi a tervezett csúcsértéket. E k k o r az adott forgalom által é r i n t e t t programok futási ideje megnövekszik, hiszen ha p l . egy 20 ms-os ciklusban 30 előfizető emelte fel a kézibeszélőjét, a h u r o k z á rást észlelő és erre reagáló (t-hangot kiadó) program futási ideje lényegesen magasabb, m i n t ha csak 3 h u rokzárás t ö r t é n t . ( B á r az sem igaz, hogy a futás idők a r á n y a 10-szeres, hiszen bizonyos vizsgálati lépéseket el kell végezni akkor is, ha az adott vona lon nem t ö r t é n t v á l t o z á s : éppen e vizsgálatok alap j á n d ö n t a program, hogy t o v á b b i tevékenységre szükség van-e.) H a ez az összfutásidő növekedés elér egy kritikus é r t é k e t , veszélybe kerül a t ö b b i feladat osztályba t a r t o z ó programok a k t i v i z á l á s á n a k a le hetősége. H a az előbbi példa adatait t e k i n t j ü k 2 fel a d a t o s z t á l y esetén, a ciklusonként tervezett maxi mális futásidő legyen o s z t á l y o n k é n t 10 ms, illetve 80 ms. E k k o r a tervezett forgalmi értékek esetén 200 m s - o n k é n t 2 0 0 - 1 0 - 1 0 - 8 0 = 20 ms üresjárási idő marad. E n n é l kisebb forgalom esetén természe tesen még nagyobb ez az idő. A z ilyen üresjárási időt á l t a l á b a n k i s z o k t á k használni, az ú n . h á t t é r feladatok f u t t a t á s á r a ( k a r b a n t a r t á s rutinszerű ellen őrzései stb.). H a azonban az első osztályú feladatok összfutásideje 20%-kal megnő a tervezett értékhez képest, az üresjárási idő e l t ű n i k : 2 0 0 - 1 0 - 1 2 - 8 0 = 0. T o v á b b i növekedés esetén m á r negatív volna ez az érték, a gyakorlatban ez azt jelenti, hogy — mivel az első osztályú feladatok f u t t a t á s a mindig az elsődle ges — a m á s o d i k osztályú programok közül n é h á n y egyáltalán nem k e r ü l h e t aktivizálásra a 200 ms-os cikluson belül! H a ez t ö b b cikluson keresztül ismét lődik, a k ö z p o n t m á r nem teljesíti feladatát. Ilyen esetben egy lehetséges megoldás a ciklushossz rugalmas t á g í t á s a . Ebben a megoldásban az egyes ciklusok hossza a túlterhelésnek megfelelően n ő , t e h á t a tényleges aktivizálás gyakorisága az előírt érték alá csökken. Ez természetesen megint csak oda vezet, hogy egy bizonyos h a t á r o n t ú l a k ö z p o n t nem tudja teljesíteni feladatait. Megfigyelhetjük azt is, hogy a fenti ütemezési módszernél kellemetlen t é n y a második és esetleg t o v á b b i osztályba t a r t o z ó feladatok tényleges a k t i vizálási időpontjának igen bizonytalan volta. Egy második osztályú feladat futása k e z d ő d h e t a m á sodrendű ciklus (pl. 200 ms) vége felé, ha az első osztályú feladatok a m á s o d r e n d ű ciklus első részé ben nagyon sok időt lefoglaltak (4a ábra); vagy az elején, ha az első osztályú feladatok futása általá ban nagyon rövid idő alatt befejeződött (4b ábra). A J r jelölt második osztályú feladatot végző program m i n d k é t esetben nagyjából azonos ponton aktivizálódik a saját osztálya s z á m á r a rendelkezésre álló összfutásidőn belül. Ez azonban a tényleges m á s o d r e n d ű cikluson belül nagyon eltérő i d ő p o n t o t jelenthet. H a egy a típusú ciklust b típusú k ö v e t , ez azt eredményezi, hogy a valóságban 200 ms-nál lényegesen kevesebb, ha fordítva, b t í p u s ú t k ö v e t a jellegű ciklus, akkor pedig lényegesen t ö b b idő telik el a J program k é t aktivizálása k ö z ö t t . Ez az idő p l . 20 ms-os és 200 ms-os ciklusidőknél elvileg v e i
2
2 i
397
C/mtábla
Elsoosztályú programok futásideje
Másodosztályú programok futósrdeje
IH75-4I 4. ábra. Második osztályú feladat (Jzi) sorrakerülése különböző terheléseknél
7.
feladat címe
2
feladat címe
n.
feladat címe
Cikluszóro feladatcíme
1H75-5I 5. ábra. Ütemezési táblák E P központoknál
k b . 20 ms és 380 ms k ö z ö t t mozoghat! Ha egy b t í p u s ú ciklust a típusú követ, amelyik túlterhelt és J nem is kerül futásra, ez az idő 380 ms-nál jóval nagyobb is lehet. Az első értékek á l t a l á b a n nem je lentenek nagy problémát, a felső h a t á r közelébe eső idők viszont m á r okozhatnak h i b á t . Szerencsére az ilyen szélső értékek sorozatosan csak akkor for dulhatnak elő, ha maguk a ciklusidők is rugalmasan t á g u l n a k . A ciklusok időzítése viszont m á r az operá ciós rendszer általános időzítő feladatkörével függ össze, melyet i t t részletesen nem t á r g y a l u n k . Az időosztásos ütemezés fentiekben ismertetett k é t a l a p v á l t o z a t á t ilyen közvetlen formában, illetve ö n m a g á b a n a tényleges rendszerekben nem alkal m a z z á k (éppen a fentiekben e m l í t e t t nehézségek miatt). R ö v i d e n ismertetjük azonban a második v á l t o z a t továbbfejlesztett megoldását, melyet a B H G által g y á r t o t t E P E X központcsalád (nem EP y.) elemei nek céljára fejlesztettek k i [7]. E megoldás lényege az, hogy az összes ü t e m e z e n d ő feladat címei egyetlen t á b l á z a t b a n szerepelnek (tetszőleges sorrendben). A feladatcím t á b l á v a l p á r h u z a m o s a n létezik egy fel a d a t o s z t á l y flegtáblázat, amely jelzi az adott prog ram osztálybasorolását. Lehetőség van olyan felada tok ütemezésére is, amelyek az aktivizálási gyako riság szerinti osztályok egyikébe sem sorolhatók: a csak bizonyos feltételek teljesülése esetén felüteme zendő programok (pl. ha a program számára üzenet érkezett, vagy a program s z á m á r a üzenetküldési lehetőség a d ó d o t t ) . A t á b l á z a t o k szerkezetét 1. az 5. ábrán. B á r m e l y feladat ütemezési gyakoriságát a 0., 1., 2. vagy 3. osztályba való t a r t o z á s h a t á r o z z a meg; megengedett ugyanannak a feladatnak (prog ramnak) t ö b b osztályba való egyidejű besorolása is. A 0. osztály egyébként speciális, a vezérlő szoftver belső működéséhez szükséges alapprogramok szá m á r a van fenntartva, az 1—3. osztály a 10 ms, 100 ms és 2500 ms felütemezési gyakoriságot jelenti. Mindig a 0. osztályba tartozik a ciklust le záró ú n . újraütemező (1. feljebb). P é l d á n k mutatja, hogy valamely program ütemezése t ö r t é n h e t cikli kusan és feltételtől függően is. A mindenkori a k t i vizált feladat ütemezésének „ o k a " , vagyis az adott felütemezést előidéző flag rögzített helyen rendelke zésre áll, t e h á t az egyes feladatok mindig el t u d j á k dönteni, hogy az adott aktivizálás miatt, i l l . milyen célból t ö r t é n t . 2 /
Ez u t ó b b i módszernek t o v á b b r a is h á t r á n y a az
398
egyes feladatok tényleges futáskezdeteinél megmu t a t k o z ó bizonytalanság — p l . egy első osztályba tartozó feladat k é t aktivizálása között e x t r é m eset ben 19 ms (sőt, a rugalmas ciklushossznövelés miatt még ennél több) is eltelhet, nagy előnye azonban, hogy egyetlen egységes feladatcímtáblázatot tartal maz, így az egyes programok üzemközbeni k i i k t a tása, helyettesítése m á s , esetleg másik osztályba tartozó feladattal, nem okoz problémát. A következőkben r á t é r ü n k a funkcióorientált ü t e mezés fejlettebb v á l t o z a t á r a , az ú n . funkcióosztásos elv ismertetésére.
4. A funkeióosztásos ütemezés Az ú n . funkcióosztásos ütemezési elv alkalmazásának célja az, hogy az egyes programblokkok felütemezé sének k o n k r é t időpontja jól k é z b e n t a r t h a t ó legyen. Lényege az időosztásos megoldáséval egyezik, i t t azonban a feladatok merev osztálybasorolása helyett lehetőség van az előírt aktivizálási gyakoriság nagy pontosságú b e t a r t á s á r a . Az ütemezés alapja i t t is valamilyen rövid i d ő t a r t a m ú ciklus, az egyes fel adatok aktivizálása azonban elvileg az alapciklus idő tetszőleges többszörösével t ö r t é n h e t . Klasszikus, merevebb változata a feladat-idő flagtáblázatos módszer. Ez az elv került alkalmazásra a Bell Laboratories első ESS központjaiban [8], [9]. A megoldás lényegét a 6. ábra segítségével ismertet jük. Az ütemezendő feladatok címtáblázatához egy olyan t o v á b b i t á b l á z a t kerül hozzárendelésre, amely az alapidő ciklus valamilyen véges többszörösére (m) tartalmazza az ütemezési tervet. A t á b l á z a t egy oszlopa az ütemezés egy alapciklusát szimbolizálja, az oszlop z. pozíciója az í. feladat aktivizálásának előírását tartalmazza, ha értéke 1. A flag 0 értéke esetén az adott ciklusban az adott program nem kerül behívásra. Legyen az alap ciklusidő t, ekkor vannak olyan programok, amelyek aktivizálása csak 21, 31, . . .
m
t időközönként szükséges, ezeknél a fel
a d a t o k n á l csak minden 2., 3
lopban 1
a flag értéke, a többi oszlopban 0. A fenti módszer lényege, hogy tetszőleges ütemeHíradástechnika
XXXVI.
évfolyam
1985. 9. szám
Cim
tábla
1.
feladat címe
2.
feladat címe
O
U
D
1
1
0
1
• •
t)
O
O
1
7
1
7
0
1
0
7
•
•
n -7.
feladat címe
0
1
0
0
1
0
n
feladat címe
0
0
1
0
0
1
n.
IH75-6] 6. ábra. Feladat-idő ílag táblázat (ESS központoknál)
zési gyakoriság esetén ± t pontossággal meg lehet adni az ugyanazon program k é t felütemezése k ö z ö t t eltelt időt. Az időosztásos megoldásnál ez az érték elvileg csak + mt volt — az mt ciklusidejű prioritási osztály esetén. A flagtáblázat h á t r á n y a , hogy na gyon sokféle behívási gyakoriság esetén mérete igen nagy. Megjegyezzük azonban, hogy m á r a korai ESS központoknál is összetettebb ütemezési megoldást alkalmaztak, nem a fenti funkcióosztásos megoldás alkotta az ütemező rendszer egészét. A teljes rend szer alapja egy időosztásos hurok, amelyben a nem szigorú behívási gyakorisággal rendelkező progra mok ciklikus aktivizálása folyik. E programok k ö z ö t t szerepel azonban egy, a h í v á s t á r a k információi alap j á n , az ú n . tranziens h í v á s t á r feldolgozási feladato k a t végző rutinokat aktivizáló program is. Ennek a működése m á r az ütemezési elvek másik csoportjá ba tartozik, ez ugyanis egyszerű példája a h í v á s t á r bemenetű hívásosztásos ütemezésnek. A fenti ke retbe illeszkedik az időzített megszakítás által indí t o t t funkcióosztásos ütemező — t u l a j d o n k é p p e n ezek ürejárási idejében t ö r t é n i k a nem fix gyakorisá gú programok ciklikus felütemezése. P é l d a k é n t megemlítjük, hogy az ESS No. 2. rend szernél az alapciklusidő 25 ms, az időosztásos ciklus ideje pedig k b . 100 ms. Jellemző, hogy a k ö t ö t t ütemezési gyakoriságú processzorok behívási perió dusai között ennél nagyobb érték is t a l á l h a t ó : p l . : az MFC számjegyküldő program 150 m s - o n k é n t hívódik be. (Ha ugyanis k é t behívás k ö z ö t t a távolság lényegesen kisebb volna, a vétel biztonságát veszé lyeztetné.) Az aktivizálás pontossága t e h á t nem csak a maximális, hanem a minimális aktivizálási időköz szempontjából is lényeges. A fenti adatok összeha sonlítása végett megadjuk az ESS család lényegesen korszerűbb tagjának, az ESS No. 4-nek hasonló idő adatait [10], [11]: Az alapciklus hossza 10 ( + 3) melyhez 11 — 35 ms i d ő t a r t a m ú időosztásos ciklus tartozik. Az időadatok jelentős eltérését az magya rázza, hogy a központcsalád első tagjainál számos olyan funkciót huzalozott vezérlésű interfészáram körök l á t t a k el a u t o n ó m m ó d o n , amelyeket a kor szerűbb rendszerekben m á r a t p v vezérlő vett á t . Megemlítjük, hogy a nagy k a p a c i t á s ú No. 1 típusú k ö z p o n t o k b a n folyamatosan kicserélték a vezérlő rendszert a No. 4-ben alkalmazott No. 1A jelű pro Híradástechnika
XXXVI.
évfolyam
1985. 9. szám
cesszorra, i l l . a vezérlő szoftver is korszerűsödött. (Erre a kérdésre a későbbiekben m é g visszatérünk.) A funkcióosztásos ütemezés legrugalmasabb vál t o z a t a k é n t említjük az aktivizálási számlálók alkal m a z á s á t . E z t a megoldást a l k a l m a z t á k az L . M . Ericsson által kifejlesztett A X E és rokon k ö z p o n t o k k ö z p o n t i vezérlőjében [12]. A megoldás lényegét a 7. ábrán szemléltetjük. Minden feladathoz egy szoftver számláló rekesz van rendelve. A z ütemezési alapciklus kezdetekor minden számláló é r t é k é t 1-gyel csökkenti az ütemező. E z u t á n a t á b l á z a t o n végighaladva, azok a programok kerülnek felüte mezésre, amelyeknek a számlálója 0-vá v á l t . Minden feladat elvégzése u t á n a megfelelő program a szám láló é r t é k é t újra beállítja, a k ö v e t k e z ő ütemezés ide jére. Ez a módszer biztosítja, hogy az alapciklusidő tetszőleges többszöröse legyen valamely feladat be hívási időköze, anélkül, hogy ez az ütemezési t á b l á zatok m e n e t é t növelné. Természetesen a véletlen szerűen egybeeső sok behívás esete ellen ez a meg oldás nem véd, p l . az összes behivási időközök leg kisebb közös többszörösének megfelelő periodici tással olyan túlterhelt ciklusok jelentkeznek, amikor minden feladat ütemezésre kellene kerüljön. H a a legkisebb közös többszörös igen nagy érték (sok re latív p r í m t a l á l h a t ó az egyes behívási időközök k ö zött), az ilyen túlterhelés valószínűsége igen kicsiny. Megfelelő védekezési t e c h n i k á v a l az ilyen esetek h a t á s a is közömbösíthető. Szintén h á t r á n y o s a m ó d szer időigényes volta, szemben az előbbi v á l t o z a t t a l . Az A X E rendszerről alkotott pontosabb k é p érde k é b e n megemlítjük, hogy a fenti, funkcióosztásos megoldás csak a k ö z p o n t i vezérlő operációs rendsze rére jellemző: az ú n . regionális processzorokban ettől teljesen eltérő ütemezési megoldást alkalmaznak. Ennek lényege egy egyszerű időosztásos, egyosztályos ütemezés ( I . 2. pont), mely azonban egy meg szakításra é p í t e t t magasabb prioritási osztállyal van k o m b i n á l v a . í g y kerülnek ütemezésre a központi vezérlőből érkező üzenetek h a t á s á r a a k t i v i z á l t jobok. Mivel a regionális processzorok alapfeladatköre egy szerű tevékenységet tartalmaz, ahol a futásidő nagy m é r t é k b e n független a forgalomtól (pl. vonali leta pogatás nyugalmi á l l a p o t b a n ) , az időosztásos meg oldás i t t kielégítő pontosságot eredményez a behívási gyakoriságok szempontjából.
2
2 feladat számláló
feladat címe
• •
• • n
7 feladat számláló
Cimtabla
1. feladat címe
feladat címe
• • • Számláló tábla
• « • n.
feladat számláló
1H75-7I 7. ábra. Ütemezési táblák aktivizálási számlálókkal (AX köz pontoknál)
399
5. A hívásosztásos ütemezés Aktivizálandó
Az ütemezési elvek osztályozása során említettük, hogy a 3. és 4. fejezetben ismertetett időosztásos és funkcióosztásos ütemezések lényegüket tekintve ha sonlóak, ezért egy közös főcsoportba soroltuk őket. Az eddig t á r g y a l t , funkcióorientált ütemezések elvé vel élesen szembeállítható a folyamatorientált szem lélet, melynek alapgondolata a klasszikus hívásosz tásos ütemezési módszerekben jelent meg. Ez az alap gondolat a merev periodicitás helyett a feladattól függő, rugalmasan ciklikus felütemezés megvalósí t á s á t tűzi k i célul. A módszer lényegének ismerte téséhez vezessük be először a hívástár fogalmát. A h í v á s t á r a m e m ó r i á b a n elhelyezett olyan infor mációcsomag, mely nem valamely á r a m k ö r h ö z , ívponthoz, hanem egy fennálló, vagy k e z d e m é n y e z e t t á l l a p o t b a n levő híváshoz tartozik. Ennek megfelelően a h í v á s t á r a k nem állandó, hanem a hívásszituációtól függő, változó t a r t a l m ú a k , illetve az egy időben a rendszerben t a l á l h a t ó h í v á s t á r a k száma is változ hat, 0 és egy adott maximális érték k ö z ö t t . (Ez u t ó b b i t a rendelkezésre álló memóriaterület, illetve a for galmi k a p a c i t á s szabja meg.) N é h á n y rendszerben a h í v á s t á r technikai kivitelezése bonyolultabban tör t é n i k , p l . a logikailag egységes h í v á s t á r fizikailag t ö b b , nem összefüggő memóriaterületen t a l á l h a t ó kisebb blokkból tevődik össze, ezek k ö z ö t t fix, á r a m körfüggő rész is lehet. E helyen nem feladatunk a h í v á s t á r a k különböző megoldásainak, fejlődésének ismertetése, csupán p é l d a k é n t utalunk egy — klasszikusnak számító — jellegzetes társzerkezetre [9]. A z ESS No. 2 központ ban a nem beszédállapotban levő híváshoz rendelt ú n . tranziens hívásrekord egy lehetséges kitöltése l á t h a t ó a 8. ábrán. A t á r első szava a hívás feldolgo zásában soron k ö v e t k e z ő program kezdőcímét és egy vezérlő flaget tartalmaz. A második k é t szó a h í v o t t és a hívó azonosítóját adja meg, a legfelső biten a ka tegória (előfizető vagy t r ö n k ) t a l á l h a t ó . A következő elem különböző státusinformációkat ad meg, p l . i t t lehet jelezni, ha konferenciabeszélgetés épül fel vagy ha az első s z a b a d ú t keresési kísérlet sikertelen volt. A z időzítés a különböző fázisok esetén előírt várakozási idők, leidőzítési időpontok stb. mérését segíti. Hasonlóan tárolásra kerül a m á r beadott szám jegyek száma és a különböző célokra lefoglalt á r a m körök azonosítója. Természetesen a különböző rendszerekben alkal mazott hívás tármegoldás ok eltérőek, közös azonban, hogy mindig t a r t a l m a z z á k a hívó és a h í v o t t fél azo nosítóját, a hívásfelépítés (vagy lebontás) fázisára vonatkozó státusinformációt és a hívás k a p c s á n lefoglalt rendszer-erőforrások (áramkörök, memória blokkok stb.) adatait. A hívástár t e h á t minden lé nyeges információt tartalmaz a hívás statikus álla p o t á r a nézve. Nem d ö n t h e t ő el azonban egy h í v á s t á r alapján, hogy egy adott pillanatban egy hívás álla p o t á b a n valamilyen változásnak be kell-e k ö v e t k e z n i — ez ugyanis mindig külső vagy belső események h a t á s á r a t ö r t é n i k . Az események érzékelése általá ban á r a m k ö r o r i e n t á l t m ó d o n t ö r t é n i k — letapoga tással vagy megszakítással — természetesen p l . egy belső időzítés lejárta csak képletesen t e k i n t h e t ő va-
400
program
kai.
Hívó
kat.
Hívott
A'L/7, státus
címe
információk Hívó
Számjegy
Időzítés
regiszter
szám
Hívó szolg. Hívott
Összekötő'
flag
áramkör
szolg.
á.k. á.k.
v. cím
H75-8 8. ábra. Példa hívástár szerkezetérc
lamely „ á r a m k ö r " jelzésének, i t t ugyanis egy szoft ver modul felel meg a letapogatandó objektumnak. A h í v á s t á r a k és események kettőssége adja a hívás orientált ütemezési elv lényegét. Bármely akció üte mezését valamely összetartozó hívástár — esemény pár észlelése indítja. A hívástárak valamilyen pufferterületen, esetleg l á n c b a n vannak elhelyezve. A hívástárorientált ütemezési változat esetében az ütemező a nem üres h í v á s t á r a k a t veszi sorra — va lamilyen jól definiált sorrend szerint. A h í v á s t á r b a n található azonosítókból megállapítható, hogy mely események vonatkoznak az adott hívásra (ha ilyen esemény adott pillantban egyáltalán t a r t ó z k o d i k a rendszerben). A hívásállapot—esemény párok alapján valamilyen döntési mechanizmus segítségé vel az ütemező meghatározza a végrehajtandó job(ok) adatait és felütemezi a megfelelő programo(ka)t. Előfordulhat, hogy az állapotesemény p á r még kevés információt ad a hívás fázisváltásához, ilyenkor to v á b b i programok futtatása v á l h a t szükségessé, me lyek olyan t o v á b b i információkat (ún. pszeudoeseményeket) generálnak, amelyek alapján a hívás új fázisa m e g h a t á r o z h a t ó . A felütemezett program(ok) a hívástár t a r t a l m á n a k megváltoztatásáról is gondoskodik(nak). A hívástárorientált hívásosztásos ütemezés termé szetesen ö n m a g á b a n nem alkalmas egy teljes üte mezési rendszer megoldásaként. Vannak ugyanis olyan szituációk, amelyek a hívástárak végigköve tésével nem ismerhetők fel. így p l . a híváskezdemé nyezéseket jelző események még nem vonatkoznak semmilyen meglevő h í v á s t á r r a : éppen ezek alapján kell új h í v á s t á r a t generálni. Technikailag ez t ö b b nyire úgy t ö r t é n i k , hogy az összes potenciális hívás területek k é t csoportra vannak osztva: az üres, „nem létező" t á r a k csoportjára és az a k t í v t á r a k csoport j á r a . A híváskezdeményezés h a t á s á r a egy üres t á r átkerül az a k t í v t á r a k csoportjába (pl. egy kontrol flag átírásával vagy átláncolással) és kitöltődik a hívó azonosítója, valamint a kezdeményezésnek megfelelő állapot. Természetesen további akciókra Híradástechnika
XXXVI.
évfolyam 1985. 9. szám
is szükség van (pl. t á r c s a h a n g k i a d á s indítása). Innen kezdve m á r a l k a l m a z h a t ó a hívásorientált ütemezés. A kifejezetten á r a m k ö r o r i e n t á l t feladatok (pl. vo nalak letapogatása, eseménydetekció) minden eset ben a funkcióorientált ütemezés valamilyen meg oldása szerint kerülnek aktivizálásra. U t a l t u n k m á r az ESS központcsalád első elemeinél alkalmazott vegyes ütemezési rendszerre, ennek lényege a funkció osztás-hívástárorientált hívásosztás kombinációja (vö. [5], [8], [13], [9]). Ezeknél a rendszereknél a hívás t á r a k o n t ö r t é n ő előrelépés egy kifejezetten erre a célra alkotott gépi utasítás segítségével t ö r t é n i k , mely a megfelelő pointert a soron k ö v e t k e z ő hívás t á r kezdő címére állítja r á . A fentiekben ismertetett elv jellemzői a k ö v e t kezők: — Az információk t o v á b b í t á s a nem a funkcioná lis programok feladata, hanem a híváshoz k ö t ö t t hívástáré, így egy-egy program tranziens hibája a hívások feldolgozásában á l t a l á b a n nem okoz m a r a d ó rendellenességet. — Az esemény és hívásállapot (és esetleg pszeudoesemény) b e m e n e t ű döntések mechanizmusa jól egységesíthető, p l . r e k u r z í v f a s t r u k t ú r á v a l realizált á l l a p o t á t m e n e t i t á b l a segítségével. Ez a funkcionális programok egyszerűsödését eredményezi. (Vö. [5], [6].) — Bizonyos funkciók (az a l a p v e t ő e n eseményindításúak) ebbe a rendszerbe közvetlenül nem illeszthetők bele, t e h á t az elvet minden eset ben k o m b i n á l n i kell valamilyen funkcióorien t á l t megoldással. — A h í v á s t á r a k állandó és k i m e r í t ő l e t a p o g a t á s a lehetővé teszi ezek szoftver k a r b a n t a r t á s á t . Ugyanakkor az események pufferterületei (vá rakozó sorai, láncai) nincsenek jól k é z b e n t a r t va, mivel i t t a keresés asszociatív jellegű. A megoldást t e h á t mindig k i kell egészíteni va lamilyen eseményorientált k a r b a n t a r t á s i algo ritmussal is. A hívásosztásos ütemezés m á s i k lehetséges meg oldása az eseményorientált ü t e m e z é s . Ennek kezdeti formája a fenti rendszerhez hasonló, i t t azonban az események várakozó sora, lánca kerül ciklikus leta pogatásra, majd az eseményhez t a r t o z ó h í v á s t á r asszociatív jellegű megkeresése (pl. esemény által é r i n t e t t ívpont keresése, mint hívó azonosító) u t á n hasonló jellegű döntés k ö v e t k e z i k , mint a hívás tárorientált megoldásban [5], [6j. Ez a megoldás m á r a következő fejezetben t á r g y a l a n d ó virtuális pro cesszoros ütemezési elvet valósítja meg, b á r erősen k o r l á t o z o t t f o r m á b a n . Az eseményorientált hívás osztás jellemzői: — A funkcionális programok tranziens hibáival szemben u g y a n ú g y védett, m i n t a hívásorientált rendszer. — A döntési mechanizmus szintén egyszerűsíthető. — Nincs feltétlenül szükség a kiegészítő funkció orientált ü t e m e z é s r e , b á r a gyakorlatban ez á l t a l á b a n még m e g t a l á l h a t ó . (Vö. az ESS No. 4-nél alkalmazott m e g o l d á s t : [10], [11].) — Az eseménypufferek folyamatos letapogatásá val szemben nem történik meg a hívástár terüle Híradástechnika
XXXVI.
évfolyam
1985. 9. szám
tek automatikus karbantartása, programmal kell elvégezni.
ezt t e h á t külön
A k ö v e t k e z ő fejezetben részletesen t á r g y a l j u k az alapvetően eseményorientált hívásosztásos megoldás ból kifejlődött virtuális processzorok elvén alapuló ütemezési rendszert. 6. A virtuális processzorok elvén alapuló ütemezés Ha az 5. fejezetben t á r g y a l t hívásosztásos ütemezési elvet összehasonlítjuk a 3. és 4. fejezetek különböző funkcióorientált eljárásaival, jelentős különbséget észlelhetünk k ö z ö t t ü k . Míg az idő-, illetve funkció osztásos megoldások az elvégzendő feladatokat a k o n k r é t forgalmi szituációtól független t í p u s o k b a sorolják, melyek k o n k r é t programhoz k ö t ö t t e k , s ezek ütemezése a feladattípusok rögzített sorrendjében t ö r t é n i k , a hívásosztás lényege éppen a felmerülő feladatok forgalmi helyzettől függően súlyozott, a mindenkori igényeket megfelelő erőforrás felhaszná lással t ö r t é n ő megoldása. Ez u t ó b b i módszer t e h á t lényegesen rugalmasabb, így alkalmasabb a hívások számos fázisának kezelésére és egyéb, p l . karbantar tási célokra is. T o v á b b r a is hangsúlyozzuk azonban, hogy bizonyos fázisokban, mint p l . a vonalak ciklikus letapogatása, a merevebb funkcióorientált ütemezés kiválóan illeszkedik a problémához. A jelen fejezetben az ütemezés t e r ü l e t é n alkalma zott legmodernebb megoldások közös jellemzőit sze r e t n ő k összefoglalni, e megoldások bonyolultsága m i a t t azonban ezt csak az eddigieknél általánosabb keretek k ö z ö t t tesszük meg. A megoldás alapgondo l a t a k é n t induljunk k i az elvégzendő feladatok n é h á n y jellegzetességéből. A kapcsoló k ö z p o n t o k b a n megvalósított vezérlési rendszer számos alrendszerre bomlik. Az erős tagolás jól illeszkedik a méret-, v á l t o z t a t h a t ó s á g i és egyéb okokból is szükségszerűen k i a l a k í t o t t moduláris szer kezethez. Az alrendszer forgalmával t u l a j d o n k é p p e n egy-egy k o n k r é t hívás kezeléséig és/vagy egy-egy híváskezelési funkcióig is l e m e h e t ü n k . Ebben a szem léletben — az alrendszerek közé természetesen a kar b a n t a r t á s i , üzemeltetési és egyéb funkciókat is be sorolva — igen nagy számú, egymástól vezérlési szempontból kevéssé függő, illetve csak üzenetjellegű k o m m u n i k á c i ó s kapcsolatban álló, egymáshoz képest aszinkron m ó d o n zajló alrendszerhez, ú n . folyamathoz j u t u n k . Ezek mindegyike egy-egy szek venciális automata modelljével í r h a t ó le, hiszen k i menete (hatásai, e l k ü l d ö t t üzenetei) a bemenetek (kapott üzenetek, külső információk) adott soroza t á n a k a függvényeként alakul k i — a k o r á b b i be menetek lényeges megőrzendő információit az al rendszer belső állapota tárolja [14]. Egy-egy alrend szer h a t á r a i t az alábbiak szerint érdemes megvonni: — az alrendszeren belül legyen erős funkcionális összetartozás (kohézió); — az alrendszeren kívüli feladatokkal (más al rendszerek) a vezérlés csatolása legyen minél lazább (aszinkronitás). A fentieknek megfelelő folyamatok mindegyike belülről úgy látja, mintha a processzor kizárólag vele
401
foglalkoznék, s mindazok az időszakok, amikor a valóságban m á s folyamatok futnak, belülről nézve nem léteznek, mivel ekkor a folyamat felfüggesztett á l l a p o t b a n van. Az operációs rendszer és ezen belül elsősorban az ütemezés feladata ilyen megközelítés beli az, hogy minden folyamat számára biztosítsa a saját virtuális processzor h a s z n á l a t á t . A fentiekben vázolt szemlélet természetesen nem csak a kapcsolóközpontokon belüli feladatokra vo natkozhat. Hasonló alrendszerek jelentkeznek min den nagyobb volumenű valós idejű vezérlési irányí tási feladaton belül, így p l . a számítógépes folyamat szabályozásban. Nem meglepő t e h á t , hogy az egy idejűleg, egymáshoz képest aszinkron m ó d o n zajló folyamatok programozásának irodalma és gyakor lata a t p v kapcsolástechnikához hasonlóan a 60-as évekre nyúlik vissza — s eredetileg a kapcsolástechni k á t ó l meglehetősen függetlenül fejlődött. Az ú n . konkurrens programozás alapirodalma számos olyan gondolatot felvet, melyek a legújabb t p v központok ban felhasználásra k e r ü l t e k (1. p l . [15], [16], [17]. A konkurrens programozás első alkalmazásai, illetve a kifejlesztett módszerek jellegükben a t p v kapcso lástechnikai ütemezések első csoportjával, a funkció orientált ütemezéssel egyeznek, élesen jelentkezik a rokonság p l . a [16]-ban ismertetett elvek és a [12] alapján leírt aktivizálási számlálók módszere k ö z ö t t . Legjellemzőbb ezekre az ütemezésekre az alrendsze rek (folyamatok, funkcióorientált programok) állan dó száma, melyet az operációs rendszer közvetlenül v á l t o z t a t n i nem t u d . Az alrendszerek tényleges m ű ködésében azonban a kapcsolóközpontok esetében k e z d e t t ő l fogva jelentkezett a környezettől függő fel a d a t m e n n y i s é g ingadozása. A rögzített alrendszer — (job típus-) s z á m esetén ez az egyes programok futási idejének igen erős v á l t o z á s á b a n n y i l v á n u l t meg, mely az ütemezési módszerek használhatósá g á n a k erős k o r l á t j á t is jelentette. A változó folya m a t s z á m ezt a p r o b l é m á t a lehető legrugalmasabban oldja meg — természetesen a vezérlő rendszert túl terhelő forgalom h a t á s á t semmilyen ütemezési techni ka sem tudja eltakarni. A vázolt virtuális processzoros közelítés természe tesen még sokféle k o n k r é t megoldást megenged. Az I T T 1240 (System 12) rendszere [14] p l . az elosz t o t t a r c h i t e k t ú r á n a k megfelelően terminális-pont orientált folyamatokra épít. Ez a technika viszony lag egyszerűen á t t e k i n t h e t ő , p r o g r a m b l o k k o n k é n t lényegében függetlenül tesztelhető, i l l . cserélhető szoftvert eredményez, melyet különösen a teljes program „ r é t e g e s " szerkezete biztosít. Ennek lénye ge a k ö v e t k e z ő : minden terminális jellegű hardver elemet egy hozzárendelt szoftver kezel. E k e t t ő e g y ü t t adja a „virtuális t e r m i n á l t " . A virtuális ter minálok kezelését egy olyan k ö v e t k e z ő programszint végzi, amely a külvilágtól csak funkcionális t a r t a l m ú üzeneteket kap — ezt az alsóbb szintre m á r k o n k r é t , de logikai jellegű üzenetek formájában adja á t , a f i zikai parancsok csak a legalsó szinten jelentkeznek. Ez a technika lehetővé teszi, hogy p l . a teljes ter minális hardvert úgy kicseréljék (természetesen a m ű k ö d t e t ő handler programokkal e g y ü t t ) hogy p l . az ütemezés szintjén semmilyen v á l t o z t a t á s t ne kelljen végezni, hiszen a folyamatok funkcionális jellemzői ettől még változatlanok maradhatnak.
402
Az egyes alrendszerek (folyamatok) természetesen nem egyenrangúak, a prioritási osztályok az egyes virtuális processzorok aktivizálódásának egymáshoz képesti tényleges idejét meg kell hogy szabják. A B e l l - N o r t h e r n D M S - 1 0 0 családjánál [18] az SOS elnevezésű operációs rendszer a folyamatok 8 prioritási osztályba t ö r t é n ő besorolását teszi lehe tővé, a folyamatok ú n . vezérlő blokkja tartalmazza a prioritási címkét (0—7). Az ütemező az aktivizá lásra várakozó folyamatok közül először a legmaga sabb prioritásúakat választja k i , az azonos prioritású, egyidőben aktivizált folyamatok egymás k ö z ö t t az egyszerű időosztáshoz hasonló elven osztoznak meg az időn. E rendszernél a nagy gyakorisággal végzendő feladatok a központi vezérlőtől függetlenül a u t o n ó m m ó d o n zajlanak, így az egyes folyamatok futása v i szonylag hosszabb lehet. Az ütemezés alapciklusa 6,25 ms, egy folyamat azonban max. 6 ciklus idejét foglalhatja el. (Ilyen hosszú aktivitás azonban igen r i t k á n , csak n é h á n y speciális hívásfeldolgozási fel a d a t n á l fordulhat elő, 1. később.) A gyakorlatban egy-egy folyamat 1, legfeljebb 2 ilyen időrést foglal le. A meglepően hosszú idők m a g y a r á z a t a abban a meg közelítésben rejlik, hogy a virtuális processzoros fo lyamatszemléletű ütemezésnél az ütemező m á r igen bonyolult s így maga az aktivizálás a futásidővel összemérhető nagyságú idősebességet jelez. Hosszabb összefüggő futásnál az aktivizálás rezsi ideje száza lékosan kisebb. Ennek szellemében az SOS ütemező lehetőleg mindaddig hagyja a folyamatot futni, amíg az minden, az adott információk ismeretében elvégez hető tevékenységet elvégzett, s végül ö n k é n t mond le a futásról (valamilyen újabb üzenetre, leggyak rabban időzítésre fog várakozni, vagy megszünteti ö n m a g á t ) . A 6 ciklus u t á n i „erőszakos" futásmeg szakítás elsősorban védekezési célú: így nem fordul hat elő, hogy egy hibás folyamat, mely ö n k é n t nem mond le a futásról, megbénítja az ütemezést. A hívásfeldolgozási és m á s sürgős, lehívási gya korisághoz k ö t ö t t folyamatok mellett természetesen a DMS rendszerben is vannak háttérfeladatok: olyan k a r b a n t a r t á s i , üzemeltetési jobok, amelyek a k t i v i zálása soha nem sürgős, de amelyek futása természe tesen szintén szükséges a helyes működéshez. Ezek a folyamatok az alsó h á r o m prioritási osztályt alkotják s így előfordulhatna, hogy a magasabb prioritású folyamatok hosszabb ideig állandóan kiszorítják őket a futásból. Ennek elkerülésére a teljes futási idő 10%-ában kizárólag ezek a folyamatok kerülnek akti vizálásra (9. ábra). Az ütemezés t e h á t a következők szerint zajlik: Az ütemező megvizsgálja, hogy van nak-e folyamatok a legmagasabb prioritású osztály várakozó sorában. Mindaddig, amíg ez nem üres, e folyamatok k a p j á k meg az őket t a r t a l m a z ó pro cesszort. H a ez kiürült, következik a második vára kozó sor stb. H a közben újabb folyamat jelent kezik futásra egy magasabb osztályban, az éppen a k t í v folyamat lemondásig fut, de u t á n a újra a ma gasabb prioritási sor kerül kiürítésre. A futásidő m e g h a t á r o z o t t szeletében ugyanezen szisztéma szerint az alsó 3 osztály várakozó soraiban levő folyamatok kerülnek felütemezésre. A hosszú futású folyamatok olyan m ó d o n kerülik el a 6,25 ms-onként beérkező megszakítást (mely újra az ütemezőbe adja vissza a vezérlést), hogy ezt a Híradástechnika
XXXVI.
évfolyam
1985. 9. szám
• •
y
Felső (realtime) /prioritási osztályok
90 %
(7)
tőség szerint olyan hosszú futással, hogy minimális adat őrzésére legyen csak szükség k é t aktivizálás között. Ilyenkor á l t a l á b a n a híváskezdeményezéstől a tárcsázási hang kiadásáig, a tárcsázás befejezésétől a hívás teljes felépítéséig stb. felfüggesztés nélkül fut a folyamat (a t á r c s á z á s t m a g á t a u t o n ó m egység bevételezi). A hívások k v á z i n y u g a l m i fázisaiban (pl. beszédállapot) a folyamatok teljesen megszün tetik ö n m a g u k a t , a hívásra v o n a t k o z ó információkat csupán egy egyszerű hívástár tartja nyilván. Maguk a folyamatok á l t a l á b a n a k ö v e t k e z ő ele mekből épülnek fel [20]: — folyamatvezérlő blokk (PCB), amely tartalmazza a folyamat mindenkori prioritását, á l l a p o t á t stb.;
Alsó /• (time sharingJ prioritási osztályok
10 %
<3i Futásiidö
Várakozó
sorok
H75-9 ,9. ábra. Feladatok ütemezési rendje (folyamatok aktivi zálása) DMS központoknál
megszakítást maszkolni lehet. 6x6,25 ms u t á n azon ban a maszkolás automatikusan leidőzítésre kerül. A fenti rendszerre még a ki/beviteli pontok meg szakításai r a k ó d n a k , melyek a legmagasabb priori tású folyamatnál is jogosultak a futás felfüggeszté sére. Az ütemező megszakításhoz hasonlóan i t t is lehetőség van az időszakos maszkolásra. É r i n t e t t ü k m á r a különösen hosszú aktivitási idejű folyamatok kérdését. A DMS — 100-ban alkalmazott megoldás e szempontból összetettebb, mint a k o r á b biak, pl. a Northern Telecom SP —1 k ö z p o n t j á b a n megvalósított rendszer. Ennek lényege a rövid folya ma t a k t i v i t á s i idő (max. 1—2 ms), mely természete sen egy-egy hívás „ é l e t é b e n " sokszori folyamatakti vizálást jelent. A rövid futásidő a hívások sok rövid fázisra való b o n t á s á t teszi szükségessé, ennek az elő nye az, hogy a folyamatok soha nincsenek a k t í v álla potban, ha funkcionálisan várakozni kénytelenek (pl. külső válaszra, pszeudoesemény beolvasására). A nehézséget i t t az jelenti, hogy a bonyolult, külön leges hívások (pl. pénzbedobós készülékről t ö r t é n ő hívás) esetén a folyamatok felfüggesztett á l l a p o t b a n igen sok (közbenső) adatot kell tárolnia, s a k ö v e t kező aktivizáláskor bonyolult algoritmus szerint kell dönteni a továbbiakról. Ehhez a szemlélethez az egyes folyamatok által igényelt virtuális processzor egységes volta illeszkedik, t e h á t i t t — szélső érték ben — egyetlen, igen bonyolult program futása fogja jellemezni a folyamatok a k t i v i t á s á t . A DMS—100 családnál a nem túl bonyolult hívások felépítésére ugyanez a megoldás k e r ü l t alkalmazásra. A különlegesebb eseteket viszont saját virtuális pro cesszor (különböző programmal) bonyolítja le, lehe Híradástechnika
XXXVI.
évfolyam
1986. 9. szám
— saját stack (csak a folyamat s z á m á r a hozzáfér hető adatokkal); — globális címinformációk ( t ö b b folyamat által k ö zösen használt a d a t t e r ü l e t e k címei); — a folyamat programja (mely aktivizálás esetén a folyamat futását valósítja meg). Az adatok t á r o l á s á n a k különböző lehetőségei ter mészetesen más megoldásokat is megengednek, így a DMS — 100-nál a h í v á s t á r a k ideiglenesen a folyama tok belső a d a t t á r o l á s á n a k feladatait is nagyrészt ellátják. Az ESS No. 5 k ö z p o n t o k b a n a folyamatok nem hívás, hanem híváskezelési funkció szerint különül nek el, ezért van szükség a saját belső tárolásra. A rendszerben m e g t a l á l h a t ó fontosabb híváskezelési folyamatok: kapcsolóút felépítés és lebontás, ú t k e resés, illetve végponti választás, konfigurációs ada tok kezelése, terminálkezelés (hívó és h í v o t t fél), perifériák kezelései (letapogatás stb.). Ezek mellé adminisztratív, k a r b a n t a r t ó (hibakezelési), program kezelési (üzemközbeni módosítás stb.) folyamatok t á r s u l n a k . Ez a szemlélet [20] közel áll a System 12 rendszeréhez [14]. Egy egyszerű hívás felépítésében pl. a 10. ábrán l á t h a t ó folyamatok vesznek részt. A PIO (periféria ki/beviteli) folyamat letapogatja a híváskezdeményezést, majd létrehozza a T I hívó oldali terminálkezelő folyamatot. A választás befe jezéséig PIO és T I látja el a feladatokat, e z u t á n T I az információkat az R T A (útkereső és v é g p o n t v á lasztó) folyamatnak k ü l d i el. A k i v á l a s z t o t t ú t v o n a l felépítését SPA (útfelépítő és -lebontó) folyamat végzi el, ugyanez a folyamat hozza létre a T2 h í v o t t oldali terminál folyamatot. A h í v o t t oldal á l l a p o t á t PIO segítségével T2 állapítja meg és erről jelzést küld Tl-nek stb.'" A fentiekben összefoglalt, az ESS No. 5 rendszer ben alkalmazott konkurrens programozási technika egyébként szervesen épül a k o r á b b i Bell-központtípusok modernizálása k a p c s á n kialakult, a 3. és 4. fejezetben ismertetett eljárásoknál h a t é k o n y a b b , rugalmasabb ütemezést alkalmazó operációs rendsze rekre. A m á r említett, a No. 1 és No. 4 k ö z p o n t o k céljaira alkalmas 1A típusú processzor teljesen új alapszoftvert is alkalmaz [21] ennek ütemezési techni kája implicit m ó d o n a virtuális processzoros megoldást közelíti: A feladatok megoldásának ü t e m e z ő b e n rög-
403
H75-10 10. ábra. Egy hívás felépítésében részt vevő folyamatok ter minálorientált virtuális processzoros megoldásnál (ESS No. 5-nél)
z í t e t t sorrendje helyett i t t maguk a feladatok ( t u lajdonképpen folyamatok) hordozzák azokat az azo nosítókat, amelyek a l a p j á n a mindenkori prioritás e l d ö n t h e t ő . E n n é l az á t m e n e t i rendszernél p r o b l é m á t okoz, hogy míg a merevebb megoldásoknál az ü t e mező k ö z ö t t működése m i a t t fel sem m e r ü l h e t e t t , hogy k é t e g y m á s t k ö v e t ő e n felütemezett program m ű k ö d é s e e g y m á s t akadályozza, a r i t k a virtuális processzor szemléletű megoldásoknál viszont min den folyamat aktivizálódásakor a futáshoz szükséges k ö r n y e z e t (pl. stackből) beállítódik, ennél az á t m e n e t i rendszernél egyes programok k ö z ö t t interferencia jöhet létre. A megoldást a programok keresztirányú blokkolása adja, minden olyan program (folyamat), amely futását még nem fejezte be (felfüggesztett ál lapotban van), az ütemező számára megadja azokat a programokat ( i l l . programcsoportokat) amelyek futása a felfüggesztett állapot alatt nem megenged h e t ő . A z ütemező mindig a legmagasabb prioritású, nem blokkolt programot aktivizálja. E megoldás azonban csak ideiglenes volt, a 80-as évek elejére k i a l a k u l t az ESS k ö z p o n t o k és m á s a Bell Laboratories által g y á r t o t t telefóniai berende zések egységes vezérlője és operációs rendszere [22]. Ez az operációs rendszer valósítja meg a m á r t á r gyalt ESS No. 5 k o n k r é t alapszoftverjét, de a No. 1A és No. 4 k ö z p o n t o k n a g y a r á n y ú kapacitásnövelését is (ez u t ó b b i a k n á l pótlólagos 3B20D processzor hozzá illesztésével, az ú n . APS v á l t o z a t b a n ) . Az általános célú D M E R T ( i l l . U N I X ) operációs rendszer rugal massága és lehetőségei maximálisak, alkalmazási területei messze t ú l n y ú l n a k a távközlésen [23]. A teljes prioritási hierarchia 16 szintet tartalmaz, ebből a 3 legalsó a nem valós idejű (egyszerű time sharing) folyamatok s z á m á r a . A z ütemezés alap gondolata hasonló a DMS 100-nál ismertetettéhez, mindig a legnagyobb prioritású v á r a k o z ó sor kiürí tése t ö r t é n i k először. Az aktivizálást kérő folyamatok saját szintjük v á r a k o z ó sorának mindig a végére
404
kerülnek, ez biztosítja, hogy szinten belül megvaló sulhasson a ciklikus felütemezés. A magasabb priori tási folyamatok általában megszakítják az alacso nyabb szintű folyamat futását s csak ezek futásról való lemondása u t á n t é r vissza az ütemező a megszakí t o t t folyamathoz (ilyenkor azonban ez természetesen nem kerül a várakozó sor végére, csak saját futásról való lemondása u t á n ) . Érdekes a felfüggesztés és ak tivizálás együttes idejére v o n a t k o z ó adat: a jellemző érték, k b . 320 \x&, vagyis a D M E R T - n é l az ütemezési időveszteség nagyon kicsi. Az alsó h á r o m prioritási szinten belül az operációs rendszer a folyamatok prioritását dinamikusan osztja k i (a valós idejű fokozatok prioritása rögzített), a time sharing szinteken a várakozás h a t á s á r a nö vekszik a prioritás. A folyamatok létrehozása és megszüntetése szintén dinamikus m ó d o n történik, a D M E R T érdekessége, hogy maga az operációs rendszer is folyamatokra bomlik, melyeket a rendszer töltő hoz létre. Az ope rációs rendszeren kívüli (tehát p l . a központ m ű k ö dését vezérlő) folyamatokat a folyamatkezelő folya mat hozza létre, mely maga is a betöltés során létre j ö t t folyamat. T o v á b b i különlegesség, hogy lényegé ben bármely folyamat l é t r e h o z h a t új folyamatot önmaga lemásolása ú t j á n (ún. folyamat elágazás). Ez a rendszer tetszőleges konkurrens program létre hozására és f u t t a t á s á r a alkalmas. A virtuális processzoros ütemezési megoldások á t tekintését zárjuk n é h á n y gondolattal, melyek kissé k o n k r é t a b b a n összekapcsolják az egyszerű ütemezési a l a p p r o b l é m á k a t az i t t alkalmazott fejlett techni kával. Ha valamely hívást a kezdeményezéstől a megszű nésig (vagy valamilyen közbenső nyugalmi fázisig) egy folyamat kezel, a hívás különböző állapotai m i a t t más és m á s aktivitási gyakoriság, t e h á t ü t e mezési időköz szükséges. Ez az időköz jellemző az egyes állapotokra, így a folyamat rendelkezésére áll. Minden egyes programfutás végén ez az adat meg adja, hogy a program k ö v e t k e z ő futására mikor kell sor kerüljön, vagyis a folyamatot mikor kell a k t i v i zálni, ezt az értéket a program elküldött üzenet formájában közli az időzítő folyamattal, amelyik a t o v á b b i a k b a n gondoskodni fog az érintett program megfelelő i d ő p o n t b a n t ö r t é n ő újraaktivizálásáról — így folyamatunk a futásról lemond és felfüggesztett állapotba kerül. Amikor az időzítő (pl. dinamikusan hozzárendelt belső aktivizálási számlálói segítségével) észleli, hogy egy adott folyamatot indítani kell, el k ü l d i az üzenetet, az ütemező tevékenysége csupán abban áll, hogy az adott pillanatban feldolgozatlan üzenettel rendelkező, t e h á t aktivizálásra váró folya matok közül a prioritásnak megfelelően egyet kivá lasszon. Természetesen maga az időzítő folyamat is bizonyos időközönkét aktivizálást kér, hiszen külön ben nem t u d n á a különböző időzítések számlálóit kezelni. (Pl. t ö r t é n h e t megszakítás segítségével is.) Ilyen m ó d o n biztosított az, hogy minden feladat a szükséges i d ő p o n t b a n (semmi esetre sem előbb) hajtódjék végre, természetesen nagyon sok folyamat egyidejű futásra várása esetén i t t is hasonló problé m á k állnak elő, mint a k á r egy időosztásos ütemezés nél, torlódás esetén. Híradástechnika
XXXVI.
évfolyam 1985. 9. szám
A jellegzetes funkcióorientált feladatok (pl. letapo gatás) nem híváshoz, hanem t o v á b b r a is funkcióhoz k ö t ö t t e k , de szintén egy-egy folyamat k e r e t é b e n kerülnek megvalósításra, a folyamatot a k t i v i t á s a alatt (mely ilyen esetben célszerűen r ö g z í t e t t idő k ö z ö n k é n t t ö r t é n i k ) a funkcióorientált ütemezéshez hasonló elvű virtuális processzor fogja kiszolgálni. Az ilyen, rögzített időközű (és viszonylag sűrű) tevékenységek természetesen nagy prioritást kapnak. Megállapíthatjuk t e h á t , hogy e legfejlettebb rend szerek alkotóelemként az összes k o r á b b i eljárást t a r t a l m a z h a t j á k , illetve t a r t a l m a z z á k is.
7. Összegezés T a n u l m á n y u n k b a n á t t e k i n t e t t ü k a t p v telefonköz pontok operációs rendszerének funkcióit, s kiemelten foglalkoztunk az ütemezés kérdésével. A t p v k ö z p o n t szoftver alapvetően konkurrens jellegű, így k e z d e t t ő l fogva olyan ütemezési megoldások létrehozását te k i n t e t t é k célnak, amelyek sok feladat k v á z i p á r h u z a mos, egymástól jórészt független megoldását t e t t é k lehetővé. Az első alkalmazott megoldások az elvégzendő funkció szerinti merev ciklikus végrehajtást alkal maztak, ezeket együttesen funkcióorientált ü t e m e z é s e k n e k n e v e z t ü k . Legfejlettebb v á l t o z a t a i k , a funk cióosztásos rendszerek az egyes feladatok előírt leg kisebb végrehajtási gyakoriságának megfelelő rugal mas felütemezési rendszert alkalmaztak. Az előbbi csoporttal szemben áll az a technika, amikor nem az ütemező rögzített t á b l á z a t a i , hanem a magukban a végrehajtandó feladatokban (prog ramban, vezérlő blokkban) hordozott információ képezi az aktivizálás alapját. Ezek kezdeti formája a híváskezelés feladatait (hívásosztásos ütemezés), fejlettebb v á l t o z a t a i pedig az összes vezérlési fel adatot ilyen folyamatszemléletű ütemezéssel valósít j á k meg. A folyamatok egymástól gyakorlatilag függetlenek és mindegyikük saját virtuális proceszszorát látja végrehajtóként. E rendszerek alkalmazási köre igen széles k ö r ű , ennek megfelelően számos vál tozatban fejlődtek k i , az utolsó fejezetben mozaik szerű k é p e t igyekeztünk adni a legfontosabb ilyen megoldásokról; befejezésként a D M E R T rendszer né h á n y jellegzetességéről, mely az irodalomból ismert legfejlettebb konkurrens ütemezési megoldást tar talmazza — mindenesetre a t p v telefonközpontok területén. IRODALOM [1] Makay Attila —Hasenauer Miklós—Dr. Reznák Roxán: TPV telefonközpontok hívásfeldolgozó feladatainak programozása. Híradástechnika, 1983. No. 1. pp. 2 7 - 3 1 . [2] Horváth Imre: Magyar fejlesztésű kis kapacitású digitális alközpontcsalád. Híradástechnika, 1984. No. 6. pp. 241-247.
Híradástechnika
XXXVI.
évfolyam
1985. 9. szám
[3] Pató Lajos: A TPV központok folyamatos kor szerűsítésének szükségessége és feltételei. Hír adástechnika, 1982. No. 11. pp. 505-507. [4] Eisler Péter: A kapcsolástechnikai fejlesztések főbb irányai a BHG-ban. Híradástechnika, 1983. No. 8 - 9 . pp. 348-350. [5] M. T. Hills — S. Kano: Programming electronic switching systems—real-time aspects and their language implications. Péter Peregrinus L t d . , Stevenage, 1976. 207. p. [6] Kóczy T. László: Szoftver a kapcsolástechniká ban. Magyar Posta Központja, Budapest, 1983. 229 p. [7] Kovács Zoltán — Marosdi János —Szebeni Zoltán: EP512 műszaki információ: System2 számítás technikai m ű k ö d t e t ő rendszer. INF6-025034-011. B H G F I dokumentáció. Bp., 1984. 69 p. [8] J. A. Harr—E. S. Hoover—R. B. Smith: Organization of the No. 1 ESS Stored Program. BSTJ, 1964, No. 5. pp. 1923-1959. [9] R. J. Andrews—J. J. Driscoll—J. A. Herndon— P. C. Richards-L. R. Roberts: No. 2 ESS: Ser vice Features and Call Processing Plan BSTJ, 1969. No. 8. pp. 2713-2764. [10] T. J. Cieslak-L. M. Croxall-J. B. Roberts — M. W. Saad-J. M. Scanlon: No. 4ESS: Soft ware Organization and Basic Call Handling. BSTJ, 1977. No. 7. pp. 1113-1138. [11] P. D. Carestia-F. S. Hudson: No. 4. ESS: Evolution of the Software Structure. BSTJ, 1981, No. 6. Part 2. pp. 1167-2101. [12] A X E 10. Data processing system APZ210. Cen t r a l processor subsystem CPS. pp. 8 — 53. Telefonaktiebolaget L . M . Ericsson. Stockholm, é. n. [13] D. H. Carbaugh-G. G. Drew-H. Ghiron-E. S. Hoover: No. 1 ESS Call Processing. BSTJ, 1964. No. 5. Part 2. pp. 2483-2533. [14] D. A. Lawson: A New Software Architecture for Switching Systems. I E E E Tr. on Communica tions, 1982. *No. 6. pp. 1281-1289. [15] E. W. Dijkstra: Cooperating sequential processes, i n : Programming Languages (ed.: F. Genuys), Academic Press, New York, 1968. [16] P. Brinch Hansen: The Architecture of Concurrent Programs. Prentice H a l l Inc., Englewood Cliffs, 1977. [17] A. N. Hábermann: Synchronisation of communicating processes, Commun. of the Asso. Comput. Mach., 1972, No. 3. p. 143. [18] B. K. Penney-J. W. J. Williams: The Software Architecture of a Large Telephoné Switch. I E E E Tr. on Communications, 1982, No. 6. pp. 1369-1378. [19] D. M. Lasker: Modulé Structure in an Evolving Family of Real Time Systems. Proc. of the 4th I n t . Conf. of Software Engineering, 1979, pp. 22-28. [20] T. Duncan—W. H. Hűen: Software Structure of No. 5. ESS: A Distributed Telephoné Switch ing System. I E E E Tr. on Communications, 1982, No. 6. pp. 1379-1385. [21] G. F. Clement-P. S. Fuss-R. J. GriffithR. C. Lee — R. D. Royer: 1A Processor: Control, Administrative, and U t i l i t y Software. BSTJ, 1977, No. 2. pp. 237-254. [22] R. W. Mitze—H. L . Bosco — N. X. DeLessio — R. J. Frank-N. A. Martellotto-W. C. SchwartzR. M. Wolfe: The 3B20D Processor and D M E R T As a Base for Telecommunications Applica tions. BSTJ, 1983. No. 1. Pt. 2., pp. 171-179. [23] M. E. Grzelakowski-J. H. Campbell-M. R. Dubman: D M E R T Operating System, ibidem, pp. 303 — 322.
405