j31 informatica 2: YU ISSN 0350-5596 QCromemeo System Mikro-kompjutor za profesionalnu upotrebu 11 ili 22 Megabyte Winchester Hard disk HDD " ' Isisè^^emonj^stmL^ CCromemeo ÀI il fj w j k Kolor grafički sistem visoke rezolucije zero-namijenjen za specija »< i tksluuzivni zaslupniK za SFH Jugoslaviju agromarketing 41000 Zagreb. B. Adžije 7/1, P.P. 5 Telefon; (041) 417 662, telex; 31741 informatica Č asopis i zda ja SI oven s ko društvo rNFORM A TIK A, ÉIOOO Ljubljana, Parmova 41, Jugoslavija UREDNIŠKI ODBOR; Člani; T. Alekslć, Beograd, D. Bitrafcov, Skopje, P. Dra-gojlović, Rijeka, S, Hodžar, LJubljana, B. Horviit, Maribor,'A. Mandžić, Sarajevo, S. Mihalić, Varaždin, S. T(irk, Zagreb. Glavni in odgovorni urednik: Anton P. Železnikar TEHNIČNI ODBOR: Uredniki področij: V. Bat;i(|elj, D. Vltas - programiranje I, BratKo - umetna inteligenca D, Ći!(':ef.-Kecmanovič - Informacijski sistemi M. lixel ~ operacijski sistemi A . Jerman-Blažič - novice založništva B', Džonova-Jerman-Blažič - literatura in srečanja L. Lenart - procesna informatika D. Novak - mikro računalniki Neda Papié - pomočnik glavnega urednika L. Pipan - terminologija B. Popović - novice In zanimivosti V, Rajkovič - vzgoja in izobraževanje M . špegel, M , Vukobratovlć - robotika P. Tancig - računalništvo v humanističnih in družbenih vedah I S, Turk - materialna oprema A . Gorup - urednik v SOZD Gorenje Tehnični urednik: Hudi Murn ZALOŽNIŠKI SVET T. Banovec, Zavod SR Slovenijo za družl^ino planiranje, Ljubljana A , Jerman-Blažič, Republiški komite za družl>eno . planiranje in,informacijski sistem,! , ■ ■ Ljubljana B. KIemG;ičič, Iskra, Elektromehanika, Kraiij S. Saksida, Institut za sociologijo.pri Univerzi v Ljubljani, Ljubljana J, Vi rant, Fakulteta za elektrotehniko, Univerza v Ljubljani, Ljubljana Uredništvo in uprava: Informatica, Parmova 41, 61000 Ljubljana, telefon (061) 312-988, teleks: 3U66 YU DELTA Letna naročnina za delovne organizacije je 500,f>P (lin, za redne člane 200,00 din, za študente 100,00/51),0(1 din, posaniezne številke 100,00 din . Žiro račun šf.: 50101-678-51841 Stališče uredništva se lahko razlikuje od mnonjn avtorjev. . Pri financiranju revije sodeluje tudi Raziskovalna skupnost Slovenije. Na podlagi mnenja RepuhU.šk«)a sekretariata ^a prosvoto in kulturo št, 4210-4 4/79 z dne 1,2.1979, je rasopia oproščen temeljnega davka od [ironieta proizvodov. Tiskt Tiskarna KRESIJÄ , Ljubljana Grafična oprema; Basto Kirn ČASOPIS ZA TEHNOLOGIJO RAČUNALNIŠTVA IN PROBLEME INFORMATIKE ČASOPIS ZA RAČUNARSKU TEHNOLOGIJU I PROBLEME INFORMATIKE SPiSANIE ZA TEHNOLOGIJA NA SMETANJETO I PROBLEMI OD OBLASTA NA IN FORMATI KATA YU ISSN 0350-5596 LETNIK 5, 1981 - št 2 V S E B I N A u. K. Turaki 3 Issues in Large Program Design and Implementation H. Exel a Programiranje sprotnih in vgne- F. Prijatelj zdenlh sistemov; procesi v ADI B. Popović 19 Organizacija distribulranega kr- miljenja sistema Iskra 2000 A. Uratnlk 26 Novi raEiinalniškl sistem L, PeterneiJ lakrsđđta 19 J. Kožuh A, P, Železnikar 32 Jezik PL/1 in mlkroraEuoalnikl ill ■ . ■ M. Rogač . 44 . Mali rasvojnl sistem aa mikro- D, Hafner procesor 68000 V, Holodkov ■96. Prikaz razvoja operativnih sis- tema Ž. NovakoviĆ 56 Pristop k rešitvi medraCunal- 8. Popovič . , niSke komunikacije v sistemih z distribuiranim krmiljenjem F. Novak 59 Testiranje enot rolkroraSunal- A. Dobrin nika v proinvodnjl B. Ropret T. Blaznik V. Kolodkov 61 Jedna metoda procene vremena trajanja prenosa podataka R, Murn 66. Sodobni dinamični pomnilniki D. PaSek za mikroračunalnike 70 Uporabni pro(;raml 76 Novice in zanimivosti 80 Srečanja B2 Avtorji in sodelavci- informatica Published by INFORMATIKA , Slovene Society for Inlor-matics, 61000 Ljubljana, Parmova 41, Yugoslavia EDITORIAL UGARD: T. Aleksić, Beograd, D. üitrakov, Skopje, P. Dra-gojlović, Rijeka, S. Hodžar, Ljubljana, B. Horvat, Maribor, A. Manclžič, Sarajevo, S. Mfhalić, Varaždin, S. Turk, Zagreb, EDITOR-IN-CHIEF: Anton P. Železnikar TECHNICAL DKPARTMENTS EDITORS: V. Bntagolj, D. Vitas - Programming 1. Bralko - Artificial Intelligence D, ĆeĆGZ-Kecmanović - Information Systenis M . Exel - Operating Systems A. Jerman-Blažič - Publishers News B, l)Äonova-Jorma7i-ßlaÄic - Literatur© and Meetings L. Lenart - Process Informatics D. Novak - Microcomputers Neda Papić - Editor's Assistant L. Pipan - Tornitiiology ß, Pofiovič - News V. R;\jkovič '- Education M, Špegel, M. Vukobratovic; - Robotics P. Tancig - Computing in Humanities and Social Sciencos S, Turk - Hardware A , (ìorup - Editor in SOZH Gorenje EXECUTIVE EDITOR: Rudi Murn PUBLISHJNG coti NC IL T. Biinovoc, ZavocJ SR Slovenije za družbutio planiranja, Ljubljana A . Jerman-Ula/.ič , Republiški komita zn družbeno planiranje in informacijski siatnni, Ljubljana B. KlemončiĆ, ISKRA, Elektromelianika, Kranj S. Saksida, Insitut zn socioloqijo pri Univemi v Ljubljani J. Virant, Fakulteta za elektrotehniko, Univerza v Ljubljani Headguarters: Informatica, Parmova 41, 61000 Ljubljana, Phone: (061) 312-988, Telex: 31366 Delta Annual subscription rato for abroad is US $ 22 for' companies, and US 7,ri for individuals. Opinions exprt'ssml in the contributions are not necessarily sharofl by the Editorinl Board. PrinKxi by: Tiskarna KHESI.IA, Ljubljana DESIGN: Ras to Kirn JOURNAL OF COMPUTING AND INFORMATICS YU ISSN 0350-5596 VOLUME 5, 1981 - No. 2 C 0 N T K N T S w. H. Turski 3 Issues In Lnri^ie Proni-Hin Ueaifin and lni|ilement,nt i nil H. Exel 8 The Programm inj; of Koal-Ti inl- F. Prijatelj and Embeded Syst.ejus; Processes in ADA B. PopoviĆ 19 Organization of Uijitr-i ijuted (Jonlrol In lakra POUU Byst-cra A. Uratnlk ?6 The New Computer System L. Peternelj Iskradata 19 J. Kožuh A. P. Železnikar 33 PL/I Language and Micro- computers III M. Rogai A Small Development System D. Hafner for 6Ü0Q0 MicroprocKMSor V. Kolodkov 46 A Survey of Uevelopment □)' Computer Operating Syiit.ornis Ž, NovakovIć 56 An Approach Toward the B. PopovIč Solution of Computer Communi- cations in Systems wiUi DlstribuCed Control F. Novak sa Testing Unita in the ID 16»') A. Dobrin MlcrocompuLer Production B. Ropre t T. Blaznik V. Holodkov 61 A Method of Computing the Data Transnlssion Titne R. Murn 66 Dynamic H«mr>ry Mcdulea for D. Peček Up-to-date Kieroconsputera 70 Program Quickies 76 News ao Mae tinga 82 Autors ISSUES IN LARGE PROGRAM DESIGN AND IMPLEMENTATION INFORMATICA 2/1981 WLADYSIAW M. TURSKI UDK: 681.3.06.002.2 INSTITUTE OF INFORMATICS WARSAW UNIVERSITY POLAND After anal^ine thB notion of largo pro^fram and its various raralfloatlona, time-evolution of spec 1-fiófttlons is singled out as thelp moat important characterlBtios, Soma technical consequences of the apoeptanoe of the possibility to change the epeolfioatlona are deecrlliad and a framework In whlcb relations hlpa betiieen an »pplioation, a program and a apeoLfioatian oan iia uniformly treated is presented. The notion of "large program" ie tyfar mora often used than explained and/or defined. In faot, one bust-pepto that this notion Is hut a convenient catoh-all ' for a quite diversa class of software, the shared attribute Of , ita members being a poouliar miiture of teohnloal, managerial and political problems involved In their design, programming. Implementation and continuing applloation (of,/16/,/17/)- Prequontly quoted examples of large programs inoludei operating sya-tems for mainframe computers, software aysteass for hanke end Insuranoe bompanles, software support systems for spaos projeota, compita inventory/supply systems (suoh as ueed by large oompanles and armies) and, ft variety- of oaftware systems used by the defence estahllBbments, That the ill-defined olaee of large prograos is a ■subjeot of great and fast growing interest to a signir fioant number of information-processIng professionals should QOns as no surprisei regardless of Individual d iffärenoes, the shared, characteristics of large programs "translate into a unlvocal financial e(5uivBlenti large programs ars very eipensive to make, and even more so to maintain. Thus, each teohnique, procedure or method whioh promiaes to save let- even only a few percent of large program costs is a welloome addition to ths ever growing body of the professional folklore. Few percent of a billion (U3) dollars is a sum not to be treated lightly even these days of a douMe-digit inflation. (I do not know how largo a fraction of the total investment in software le attributed to large programs, nor it is possible to determine this figure precisely In view of a rather diffused distinction between s large and a non-large program. Since, however, the coste of known speoimana of obvioualy large programs range from 10^ to o.jiio' USJ^, It is oafe to assunte that the world-wide investiaent in large programs is of the order of 10^® USpf and Inoreasea by some 109 USpT each year, of. the data quoted in /I3/) Thus, oonfronting the large program issue we are looking at big money, at an industry masB-produolng eipensive produots, and - to the best of Eiiy knowledge -at the only big industry baso;; prlmarliy on the re-Bouroea of human intellect (the ran material and energy consumption required to make. Install, operate and service a large program is pr«<;tically nlll If the energy is measured In horsepower! the situation could be different If the energy was measured in units of human brain power, but the latter are neither deflrieii nor Booially acceptable). It Ib not surprising, therefora, that the motivations behind the research on large progruma are not only derived from but also couched in tarma of managerial conoernsj oosts, productivity, manpower, deadlines, scheduling eto. While quite legitimate from the industrial point of view, these corcerns tsnd to obfuscate the teohnloal problems involved in the design and Implementation of programs falling into the oonaidered class, in some instanoes, an inappropriately chosen managerial term not only distracts from the underlying technical problem but alao creates an utterly artlfi-pial one, starting a.frantic chase after a phantom, pfter a solution of a non-problam, (One of auch paeu-doproblems, that of the software maintenance, has bean analysed in /17/ and shown to consist in a misundar-etandingi instead of "oialntenanca", the actual goal should be "stable evolution" of software.) In the present paper we shall consider some technical issues of large program design and implsmentation, and, where appropriate, indicate their managerial consaquen-oeB, Having investigated a number of large programa throughout their llfe-oycles, Eslady and Lehman /2/ have forEulated a number of "lawa" capturing the phenomenolo-glcal properties of the time-evolution of large programs. The essence of the fleiady-Lehman laws consisted in stating that each large program either undergoes a continuous'change or baoomas gradually less and leas «aeful, that the rute of change - In the long run -cannot be arbitrarily controlled by managarlal parameters (auoh as putting mors people on the project) .and that certain global charanteristlcs of an evolving large program, such aa ita growth rate, are, statisti- • oally apaaking, invariant throughout its life-span. Arguably the post important of the "laws" states that . the compleiity of a lar^e program increases with its age unleae an',effort 1b made to control it. Tha fllgnifloHnoe of Ealady-Lehman inveii tlgiitinna was twofold! . (l) tbey have ««tubllshad ttiut many dlffsrent Inetanoes of the olaao "larsB primerama" hs-va aimllar measurable properties and that, therefore, these pro-pertiee oould be aooepteti aa tha ddflning proportlee of the heratofore fuzzily definsd altiiiBi arid (ii) thay pointed out that n^lve manaBarial con-trolfl are inapplloahie to the iar^e program evolution. Indeed that quite often thay are simply counterproduo-tlve. {Aa an llluatration of the second point oonsider a typical managerial reaction to the, unfortunately, quite typical situation arising In lar^e software projeotai a decline in the "produotivo output" of the- team engaged in programming, perhaps leading to an overrun deadline, The naive reaction la to put more prograsn-mers on the project. The aotual result of this dacia ion lo ... a further deoreaae of tha "prnduotive work rata"I daily "output" inntead of picking up dropa down, sometimes quite dramatically. Since the new-comerB have to be Integrated into the original team, informed about the project and about their asalgne-ments, and the taeVc of bringing them up to data ia given to those already on the project, for a non-negligible period of time the "old hands" have to carry a double burden) that of educating new colleagues and that of keeping up with work, whereas the new additions to tha project task forca are totally "non-pro-duotive", Df ooursa, after some time the newoomera are properly meshed into the team and start "producing". Unfortunately, by that time the delay haa grown and the management might be tempted to inoroaae the number of programmerfl even mora... E.Ven if this floes not happen, tho Increase in tha numb'är of people haa com-binatcrially increased the internai communlcation problems unless a great oars had been exerclned to avoid the growth of oomplBnity. flecauae spending good money on academic pursuits, such as the reduction of compie*ity is seldom viewed by the management as un attractive proposition, the grown compleicl-ty reduces the pntential productivity of the team far below that what oould be expected and naively extrapolated from the msasurements made when the team had its original alas.) Tho UBe of tlae-development oharaoterlstics for the definition of the olass of Isìr^fe programa, although poaülble, was found to be somewhat unsatisfactory from the methodologioal point of view. If applied. It would amount to saying! lar^a programa ara those that evolva in such wnd such way; the disccvsrud regu-.larltlBB would not bo "lawa" any mora, reduced to mere defining propertloo they wnulti be all too easily Bwept BBidtì by sayingi "well , my progriim in large, but not of this evolving variety". In fact, having aocepteii the Be lady-Lehman laws aw def Initlon«, wu would find ourselves inside a vicloii;! circle rather than in a universe of large progmma. In /ij/ Lehman aÌKnifÌQuritl.v modified his approach, Ltiuteud of iipru-king about lar^-'o urD^rivtin!! in general, he introduced an interesting ol hh;-. i 1'I ca 11 on, in which several clanuea of [irof^nimbi wore d icliiigulshed aooor-dlng to their roUition»hip to the psi: 1 f it i otis and to the modtìla ui' the rtial world uvuki in fiirmul a t i ng the spec iricaliona. The t liiifl-uvoluiIon 1b now coiiiji-dered as a pi-npoi-Ly un joyed h.y whniie iipecl- fiuatlonn chan^(e In time, elthnr bscauüa tliotf author huH changed his perception of Hie nml world, or be- cause the application of Ihs iirivrr-ini 'm; i-.iiiitit'cd i;,ii real world to auch ;iji uxtant tlidt tli)i in s>iu- gram spsoiflcationn in required. (Connidur, for oiamplfj, a noftwuro uy;r Iwm iMjppfit-t in^^ operations of a bank. Itn original :: pur; i fi t i mi:; were based on tha lianslnf^ ro^u 1 ut 1 ii(i;i und nn tli': iib-aervatlon of customers' behavioui- in a non-compu tur 1 ~ sad banking environmunt. When compuLurl:iuii, or partially compiterlBod tBllor-ntandB aru introdumid Komu patterns of allentn' bishavlour chiingd uni tlmr. rurriìH-pondingiy ohnnge the ref|uLrnment!i and ti |ioc I f i ci t i fine for the aupporting Hoftwure. The ßornputorlü/ition of the internal banking procedures and, p.-irtlcuiurly, the Introductinn-of "Instant banking" by mounfi uf le-lecoijimunloatlon and information proaea.ilnt; tetibnolo-gies, create entirely new possibilitLon that i:hange not only tho cuKtomorc behaviour pattyrn:» but aiuo lead to certain in-nbloma nocesfiltating changos In the banking rogulationB. Thune, In turn, cauiie rnvhiiona of system !;oftwure s:peolf icatlonn. ) llenoe wb are faced here with o major tachnicial t'roblomi how to proceed nbout milking programa uccordvng to changing spocifloutinno, I boliove Lhla Isi tbu only major technical problem that could bo npeciriciil ly attributed to the cianM of lar^^e progruijiM, Tbu problema arisi lug from the ahaer volume of piogriim toiti:!, if considared in an environment in which tlio npeolfi-cations are fixed and guaranteed not to oharyra, are -at least in principle - nuLtn wa1l-undcrntnnd and do not require any Kpecial triifitmant beyond disciplined application of modular programming teohnlquas /H/ on the aubstance-matter aide, and a conulntant manu/rerial set-up on the organiaal.ionnl side Csuoh an pi-nvided ^Vt O.K.I the ohiuf programmer tuam true ture /l/). Even if tiie spue i f 1 ca C i onn convey incomplotti information about the rtotslrart piogram. If we may ti;\s-ume that no adiiltionfi will ever be mado tn tbe original Bpeolflciitions, the problwn of making a large program dnoB not funilamental ly differ from that of making a non-large prngriimj in fact, tha "rslze" of the program 1» merely a oonswquanco of wiiatever »olid information can he gleaned from tbe epuolf icatlona, and, naturally, of our ability to program well. True enough, when tho real-world problem, an eaptureil by the apeoificulions, requires an extended and complicated description in which a great dual of irre/Ju-olble notionn utb employed and a compUix relatlor.ul ati-uoturo la impnnud on thnau notionn, tho programiiilng procean may jus 11 f Ifihl y bn spilt into Bftvoral u Lagna , mora formall.v aeiiuruted one from iinotber t)ian in the caaa when oliindard tochnlques of t-.n pura t Liin of cot!-oernu /H/ and i;tepwi»u roflnenient /19/ cim tm, an If it were, informally interwovan with program text de-veloprneni. I'l.vplotU of tho malhods lltat fnrmali'/ti the 30pfir-atlar] b4ìlwean tiitì of progratniiiLng in the "programming-in-liio-lnrnre" Lfjuhnlquu /'■>/, /l'i/, which rormdliüeiJ Ihu in-noen» of d of re-eo tnbl inhlng the required r>!latlonrihlp between the application model und the iipnclfIcatlon may nerve aa an Indicator of the magni Lude of pcogramTtilng task to be acoompliahed. Insisting thai the ru-ustab I inhlng be done with full rigour may prevent 11l-uonceived requests to modify the exlutlng ooflware fit would eliminate, for Instance, ail noi-ta of Incona in tent requeata). Another advantage of considering the application/specification celatlonfihi p rigorously and thoroughly before any programming la undertaken refera to the possible futuro modifications. It is quite likely that in building the application model some arbitrary decislonii will lie iiHirto. Conatructlng the theory of the application (i.e. the opsclfIdatlon) we can oonsidei tha diffaranoee betweoji the adoptnd and re-jaoted vnrlanta and otudy oorrofirondin« li 1 fCarsnoes in opeoifIcation. Thus, (tt letiut in dome Inetanoea, ,the spooifioation may bo annotiitwd wltli nlternativen InforainK about ohan/jes thnt wil l ha rnnuired phould the applioatlon experts chon^ei thoir mind. Since flutte often the nodlfioation of thu application model ;oonsist0 In just aooepting auch siecond thoughts about ^previously rajacted alternativen, a wioe programmer will oater for such contingencies by oonatructine a iprogram in which it would be easy to switch to another .variant faa a minimum, programming deolsions mating 'ouoh switch unneoeasarily difficult oould be avoidod). i finally, for a ^^.Iven hpecifioation formalinm , aone :typloal opeolfloatlon-ohanffing operations may be dia-[oovoEod auoh that oorreaponiiing program model mortifl-:oatlonD would be algorithmically defined. A catalogue 'of these operations should aooompany a concrete cpeol-'fication and a library of corresponding procedures should be provided with a aoftware produot. When a change ia required it could be analysed with renpect :to the catalogue» any change which can be effected by ,a legal combination of oatalogueri operations can bo modelled in the program domain by performing a Isuituble BequencB of library procedurea. Specifica-■tion ohangee amenable to such treu-tment certainly belong to the olaaa of amali changea with respeot to Whioh the software product Is ntable. It ÌB B wall-known fact that practical modela of theo-riee are uoually riaher than their theories in the sense that they can have propartien not captured by the theory. Quito natiirally, programs also have proparties not preacrlbed by their specifio.ations (a sor-iting program may, e.g., be specified only with reapeo-^ to Ite net effeot, its time- and bpace-complexity ^eing left unapeoifled). Thus it Is pftrfectly poB-jaible to have differant program modtila of tae same speoificatlon and It ia a programitier s prerogativa to exploit the freedom left to him by the apecifi-oation. It ia beoause of this freeiiom that programmers oan try to make "as efficient aa possible" programs. Taking into account, howevor, that the apsci-floatlons of large programs may change with time, an eitenalve expioltatiori- of the fraaiiom left liy the initial npeoifioation may turn out not to be auch a good programming prtiotloe after al L i [iroper.tieK left unspecified by the initial npBi;lficfitlon maiy Ve fixed in one of tho forthcoming uhdnjrws liiflerently from the way in Whloh the.y were fixed in tlie program, thus OHUsing perhapii a quite eKtenüiv« change in the Imple-tnonted prugruia. 'lHi«re La no mutho^i that could prevent thla to happen, but a progriimmar who expects tho Hpe-olficatlon to change by freualng an initially unepecl-fled anpect nhould try to avoid iiiakinK use of hin f legi tima tely ) arbitrfiry deolBlen fit ^too early a ntagtj of programming, and certainly should iproserve the solution obtained nn thia liiVisl of iilji; trm: tlon iit which Ruoh n rteolaion wun not yiil mtidai wfian tha vipenifl-oatlon uhangii freauon a het'«toforo fru, 3 Berg, li.k'., F'i'iLritH, W.K,, Moh.ir Cnri'.n: Lrin:'.;^ of aoftwnrt: - ati (ivwi-vhsw. In 'm . 4 Berg, H.lf. and Giloi, W.K. (Eda.)! The IJae of Formal Speoifioationa of Software. Informatlk-Pachhiirlchte jć (1900), Sprin^^or-Verlag. 5 BJ^frner, D, (Eđ,)i Abstract Hoftwure Spuclfjcatlonti. Leoture Jlates in Computer fìoienoe Hprin-ger-Verlftg. 6 Duratali, H.M. and Cioguen, J.A.i Putting thuin-ioLi together to raake npeoifioationn, l£ I'roc. Fifth Int. Joint Conf. on Artificial ijite 11 Igence, Cambridge, Masa. (1977), 7 Buretall, B.M. and Goguen, J.A,i The Hemuntloa of Clear, a speoification language. ^ /7/. 8 Dijkstra, E.W.i A Diaciplina of Programming. Prentice-Hall, 197Ć. 9 DeRemar, F. and Kron, H. i Frogramrning-ln-the-lar;?«! versus prngcamming-in-tho-amall. ^ fro«,Int. Conf. on Reliable Eoftwüre, Loh Angelea (197^). 10 Freeman, P. 1 Software ricMign techrilquu» t curr-ent " options, ^Software Pevelopment TechnlquoB , Tlie Seventy-Second Infotach fitatö of Art c;onf. , hondon (1980). 11 Cuttag, J.V.t The npecifIcatioti ami applicntion to programming of alifitruct data typen, ilniv. of 'Po,rDn-to, Dept. of Comp, üoi. Rep, naRG-59 (iy75). 12 Jonea, C.B.i Software Development, A HJgorouF) Approach. Frantice-Hall, I9B0. 13 Lehman, M.M. 1 Programs, life eye Jos, and lawn of aoftwure evolution. I'roc,TREK M (lyftO), "J060, 14 Parnas ,. n. L, I A ttchniquo foi- r.oftwHra module sipeoi-fications with exainpLua, Comm.ACM J^ (197P), ÌW. 15 Turski, W.M.» Computor Programming Methoiloi ofry. Heyden, 1978. 1É Turski, ff.M. 1 rJUKÌgn of iHr^e programa. In Software Engineering - Kntwurf und Kpftzlfikation, C.I''loyd und H, Kopetz (llrag.), Toubnor, 1<)81. 17 Turski, W.M.t Sofl.'.»are etahUity, ^ tjys toniH Architecture. Proc. 6th ACM Kuropaiin Uej^ionul Conf., hondon (19fil). 18 Turaki, W.M.i .S pec i f ina lion aa a theory with inodeh: in the computer world tinri in the z'eul world. In Sya-tem design, P.Hsnderoon (Ed,), Pergamon-Infotech, (to appear). ly Wirth, N.I Progr'Hm deva I o pma nt by atop-wifiH refinement. Comm.ftCM ' 1 O , ??1. ?0 Wegner, P. t The Vienna definition language. Comp.' Surveys ^ (197?), INFORMATICA 2/1981 PROGRAMIRANJE SPROTNIH IN VGNEZDENIH SISTEMOV; PROCESI VADI MATIJA EXEL , FRANCEK PRIJATELJ UDK: 681.3.06 Ada INSTITUT JOŽEF STEFAN Slanak predlaga opredelitev sprotnih in vgnezdenih sistemov. Natq, prikaze razvoj in glavne znaOllnosti AtJe, Jezika za programiranje takih sistemov. Osrednji del dlanka obravnava definicijo procesov v Adi, opisuje »ehanizae za «edprocesno sinhronizacijo in komunikacijo v Adi t«r navaja prloere uporabe procesov. Th« prograsinilng of real-tine artd eobedded systeme: processes in Ada. Th» introdtictory part of the paper proposes a characterization of, real time systems and ot ••bedded systems. The language Ada is the most recent propocal for the progranining of such •yitems. The development and aain features of Ada are considered. T,he devarlbes •Kaaples. the Ada tasks! "definition, mechanisms for • ain task synchroriiiation part of the pjpei' and communication, I. uvop ma^^ssta V uvodu boato opredelili pploSaJ jezika Ade glede na druge obstojetie visokoni va Jsfie programske jezike in g'lede na spekttü.-aplikacij, ki,naj bi jih pokrival. Jezik Ada je prvinsfco namenjen za programiranje sprotnih vgnezdenih ratiunslni&kih sistemov. Prvi del uvada ba torej na kratko podal opredeìitev sprotnih in vgneidenih ratiunalniSkih sistemov, drugi del uvoda pa bo podal razvojno* zgodovino Ade in njene glavne znaCilnosti. V nadaljevanju se bomo omejili na obravnavanje prooesov v Adi: pokazali bono, kako Ada rešuje medprocesno homunikjcijo in sihronlzacljo in kakSne pVipomotike nudi za lajje programiranje sprotnih^ sislt-mcv. 1.1. Sprotni sistemi in vgne::deni sisteui Opredelimo ratiunalniShi sistem kut kombinacijo harduarskega sistema (raCunalnik, 5tan-dardna r atiunaini^ka periferija) in sof tvjai-skt;-ga sistema Coperacijski sistem, apiikatijski sistemi,...). Glede na okolje raöunalniBkih sistemov lahVu slednje opredelimo kot neodvisne ali vgnezdene. Okolje neodvisnega raäunainiSheya sistema so samo 1judje-uporabniki^ okolje vgnezdenega raCunalniShega sistema pa vsebuje Se druge naprave, ki nisu raCuridlniSke narave,' Lahko bi rekli, da so ■vgneideni raflunalniBki sistemi podsistemi sploSnih sistemov. SploSni sistem^ z vgnezdeniin računalniškim sistemom je ' lahko opredeljen kot sistem sodelu jofiih^ neraCunalrtiSkih naprav, za katere igra v.^ne'^ideni ratiunalnifiki podsistem vlogo koord inatOL J'à , nadzornika oz. regulatorja. Primer splošnega sistema je npr. raketa, pralni stroj, avtomatiziran industrijski kompleks, telefonska centrala, laboratorijska instrumentacija, avLumubil, sistem kontrole zradnega prometa, avtomatska telefonska centrala, numeriCno kontroliran stroj; v vseh teh sistemih je lahko C«ikro)ra(iunalniShi eistem| udeleKeri kot pcdsistee oz. je v njih vgnezden. Pojem sprotnega (real-time) sistena je precej Širok in v literaturi tudi ni toKneje opredeljen oz. definiran. Slavni faktor sprotnosti je _ Casi raBunalnifiki sistem, neodvisen ali vgn«2den, se nora odzvati zunanjim dogodkom v doloUenem roku, kar implicira, da mora" biti trajanje dolotìenih raCunalniSkih obdelav omejeno. Lahko torej reCemo, da je raCunalnifikl sistem sproten, kadar na kakršenkoli natiin upošteva dejstvo, da je odzivni Cas n'a zunanje dogodke omejen. Lastnost sprotnosti raCunalniSkega sistema je relativne narave» raBunalniSki !:>isteffli so lahko "veli ali nanj" sprotni. Lastnust sprotnosti lahko opredelimo z naslednjimi kriteriji : - z zahtevanimi odzivniai Casi Ckratki Basi implicirajo "veCjo" sprotnos"t)i - 2 mero kritiCnosti nespoStovanja odjivnih Časov. NespoStovanje odvisnih Časov lahko povzroči veCjD ali manjSo Škodo; posledice nespoStovanja teh Basov so ìahko raznovrstne: od neugodja operaterja [ na terninalu s predolgim odzivnim Caso«, | preko gospodarske ^kode, ki jo povzroča neprimerno krmiljen sploSni sistem, pa do katastrof (npr. izgube flvljenj, unlBenje naprav)', ki jih lahko povzrodi nezadostno sproten rafiurialniSki sistem, vgne:den npr. *v industrijskem kamp 1bUsu1 - 9 strlktnostja spoSLovanja odzivnih tJasov : ta kriterij se naveruji? na mera krlliänosti. Kadar Je krltlfinosl velilo, ' je potrebno rafiunal niski sistem arg^nl^irati tđka,' da so odzivni öasl vtdno ] spoštovani ai. realiziranij kadar kritlCiost Ustreza veflji sli «lanJSi Sliotll, ki je lalikó za krajtsi Cas □ z. v dolotfenih oko! iSflinah " tolL=riraha', potem si ratfunalniSki sistem v ustreintb yitujcijah lahko dovoljuje zaCasob nespu^tuyanje odzivnih Basov, tfeprav se je pojem sprotnosti vErJetno sprva pojavil kot karakteristična | zahteva nekaterih köfflürolalnlh aplikacijskih' sistemov (npr. sistE?m rezervacije letalskih kart), ki so neodvisni radunai nii• statemi, pa Je jasno, da so in bcido zahteve 'jprotnoSti bolj lipiCne in "veCJe" za vgnezdene raCunalniSke sisteme. 1.2, Jezik Ada 1,2,1. Pomen.in razvoj Atle Jezik Ada, kot smo Se omenili, Je bil zasnovan la programiranju sprotnih vgnézdenih ratìunalniSkih sistRmov. Glede nj obstojeCe visokonivojske protjramskG Jezike predstavlja revolucijo iz naslednjega gledi^Ca; - je Bistemako-aplikaci.iski jezik, ki uvaja 01. zdruSuje novL' jezikovni; jnühtini^me tako zvano "programiriiM jp v val i'kem" (programi ming in the lai-ge), ki zadeva aes t Jv 1 jan je in kombiniranje skupine prograreov v culotni; sisteme, * Predno si podrobneje (jgledaiiiu razvoj Ade in zahteve, ki so bile Adi :astavljene, poglejmo, kaj zgoraj omenjena ruvoluuijii porasni. Jezikovno sceno fio, do prihoda Ade, zasL>dali v glavnem jeziki, namenjeni za pi-ugrami ran je aplikacij, kot so Fortran, Alyul, PL/1, Cobol, : Pascal . Ti jeziki sa prirejeni neodvisnim raäunalniük im ^iisteniom, v kiiti?i-ih je programska aprt?iiici preteSno loCena na sistemsko programsko opremo (operauij&ki sistemi, jezikovni sistemi (prevajalniki in druga razvojna lipri^rna) , f.ìLin.i podporni sistemi,,,,) in aplikacijsko programsko opremo, V teh sistemili ■■jta 5t> uporabljali pretesno dve kategoriji programskih jezikov! sistemski jeziki (flesto zbirniki) ' za programiranje operaciJakiTi sistembv •in aplikacijski jeziki za progriini i ran Je aplikecij. Do te razdelitve je priSlo, ker st' je predpostavljalo, dü sq aplikacije povsiem drugaBne narave ui) opersijijskih 'iisttniov irv da je moSno nendvisne ro'liunalnlBke sisteme prirnditi razliflnim namenum s programiranjem aplikacijske programske opreme, nadgrajene razmeroma ;standardnim tipom operacijskih sistfrmov. Od tod torej rüz I i kovan je med sistemsi. imi in ap ! Ikaci ji^k imi jeziki. Slika jy -povsem di-ugj(Jna pri vgnezdcriili sistpmib, pó-sebno, kadar su] t.i notino sprotnih narave, Tu 5 e p uJ'.! o , da loCitijv na sist.i.-nir.t. m in aplikacijsko opreniD nima .'<-'>1 veliko sraiülj i z d vf^h r ir 1 oga v ; vgni-.',;deni sistem je normalno tüsno prilngaj(3n konkretni ep 1 j k ,iC i j i , kjr pomeni, da opt!r,K:ij'.ìki sistem nt! _ i'.jr3 ved vloga skupne oünovc^ ja r a r. 1 i i; r; s.' 'aplikacije, temveC da ludi ta tesno, prirejen apliksciji. Programski sistii>m Je tcfej / nk 1 j uKt,o nadgradnjo. Od tod potreba po 2|llbJu operacijskega sistema in ap1 i kaoiJske nadgradnje v koherentno, zakljuüeno celoto (glej 7). ] ' ■ ' Pnsledica zgornjega Je torej potreba po skupnem sistemsko-aplihaciJskem jeziku, ki naj oiDogoBa koherentno^ in poenoteno programiranje celotne programske oijreme' vgnezdenega sprotnega sistema. Jezik Ada naj bi odgovarja! tej potrebi, ^ Do prihoda Ade se je za programiranje sprotrlih in vgnezdenih sistemov uporabljala cela vrsta Jszikovi Algol 68, Pasoal, CAHAC-IML, PL/1, Cobol" Proi:oI, Rasi, RTU/2 ,Modul3(9) , Concurrent PascaldS), Jovial (razne verzije) , Ct15"2, TACPOL, SPL/1, itd. Ti jeziki SD ali neprimerni za danaSnje potrebe ali pa so zastareli'. NuJrio' je bilo torej podvzeti akcijo za i_zbor tu. Izdelavo standardnega jezika, ki bi' pokriva! culotnu podroftje sprotnih vgnezdenih sistemov. Pri tem Bta bila aktivna: UTPL-E komite, ki 'deluje v okviru institucije "Internationa! workshop on industrial computer systems" ter - ministrstvo za obrambo ZDA. Ministrstvo za obrambo ZOA jé leta 197

—tu opiBemo obravnavo^ izrednih situacij —(recimo pokvarjena zaklopka) CLOSE.DOUMj end SlNGLE^FILTERj 2, PROCCSI V Ani Opis procer^Li s' Adi Procesi so v Adi proyramakE enute, ki je laht(Q izvajajo paralelno. tUdai- aü proue^i implementirani v mu ! I jrrftunalniiJIitiii ali multiprocesorskem sistemu, ji; njihovj iivt^Jba lahko dejanska paraleliiu, XdJar pa sü implementirali v eheai samt'iii pirüui'-.m ju, jp njihova izvedba navidezno paralflru (iz^Lidbt procesov se v Času preplet«.:jü) . , Kat bomo videli, procesi p i'..-1 e'.in u komunicirajo oz. se sinhroni ; i im jü (JilKü procesnih vhodov (entry). Ti vhuJi imajo obliko procedur, kdterih tic-M j d predstavlja vmesniSko informacijo o klic vhodov procesa je edini^ nailin dirt;KLney sinhroniziranega komuniciran'ja s pfacesoui. Kot vsB druge programshf enote v hdi tudi proces definiramo v dveh delihi si specifIkapijo procesa in s telesom proo&ij tv tea vrstnem redu). S specifikacijo pi-ocesa podamo vDiesniSko informacijo {inlerfaceJ o ■ procesu! to v glavnem sestavljajo dek 1 ar.jci je vhodov v proces. , VmesniSV^a ifif tji-miici Ja je edino, kar uporabnik procesa mora 'in sniss vedeti za koisuniciran je procesom. Tl;1ì) procesa definira algoritem procesa. Ta delitev procesa na specif ikjtiijski, in impleraentacijski del omogofia, Ja übü dela nista nujno prevajana skupaj". V prvem primeru Cref.15) podajjiticj du f i n ii; i jo procesa v programski enoti, _ki bü otìe' procü^a tglej izvajanje 2.2): Primer 1 PARENT: ded are --oCe praoEtii Al.FRT P : constant PRESSURE := (TIJRRENT^PREESURE; task ALERTi --apE.'üif Ik^ci jà task body ALERT is --tt;lo prnciTSd begin if P=LOM th(;n NEW.LINE; PUTG) ;, - - ì I u i; i rJ 1 i i d L- i j d begin --algoritem procesa: ncskonäna j, v ii-j ■■ — teri je selektiran edL'n üci ülieh /(m..lov —'"telo" vhoda urite; loop select accept READINi in INDEX j V: tijjt ELEH) äo --prejemni (aL'Uüpt) biavei^ — specificira "telo" vIkiiJì' V 1= TABLE(N1i end READ; -'.-"tela" vhudd R^hP ~aacept WRITE(Ni in INDtXi E: in ELEM) do TABLE(N) != E; end HRITE; end select; end loop ; end PROTECTED.ARRAYj Glede na uporabo bi lahko _Iotlili pasivne in aktivne procese. Kot pasivne bi' TShko opredelili ti&te procese, ki definirdjo mehanizme, potrebne za ' komunikacijo mtü aktivnimi procesi ali za sinhronizacijo aktivnih procesov. Poleg neposredna kouiuniliaci je med (preko globalnih podatkov - glej Priniei 1), ali po principu rendez-vous-ja, ki je opisdn v nadaljevanju), lahko ^namreč paaensKf govorimo o posradni komunikaciji, 'kjer'dva procesa (normalno ükLivt>e natave) kDffluniclr ata s pomot! jo pusredniBkey a (pasivnega? procesa. Zgornji primer procesa PROTECTEO.ARRAV je dober primer takega posiedniSkega procesa; definira mehanizf« (READ, \JR1TE v 2a5Eittriu tabela) preko katerega npr. dva aktivna procesa (prvi kliäe prucfsni vhud WRITE, drugi pa procesni vhod ' READ) med 'jubcj komunicirata posredno. Drugi primer posrt-dnega komuniciranja ü::. sinhronizacije (o sinhroni2đciji procesov govorimo, kadar ne pride Ju pii^nosa pudatkov med procesi) je pdstvni prucüs Lipn SEMAPHORE (Primer 3) ali pa pasivni pirjutia tJi'.i SIGNAL. (Primar 4, glej 2.4.2)'. Procesi tipa SEMAPHORE omogofiajo, v primeru, dci je 'jcuinflil' uporabljen za zaBBito '^kupnih vìl-ov pruct^iljv. (glej Primer 5) (tuce j' za iinpl limfni, ji. i Ju soäasne iz k 1 juö i t ve) posrednu sirthroni t iranje procesov, ki kliCejo vhoda in V. Procesni predmeti (objects) so Išlikc; deklarirani kot procesne kLjn&tante (yli^'j PROTECTED.ARRAV) , kot sp'remenl jivke Upa proces ali pa so dinaHiiCni) uvu-ilt-ni J alakatarjem new, ki hdzalcu na lip priredi nov procesni predmet (primerjaj z dinamiüniiiii spremenljivkami v Pa-judlu). Primer 3 task type SEMAPHORE i^ --specifikacij.! ■■■■proci;'iirii.-g so sinovi procesa p). " Proces se terminate (select). lahko konäa tudi s selekcijo ukaza v selekcijskero ' stavku Blok, podprogram ali proces (programska enota), ki je aktiviral proces p Je konBan äele, ko se konta p. Izvajanje procesov je torej popolnosia gnezdeno. Procese lahko konCamo tudi "nenormalno" - jih abortiraiBD. O tem kasneje. * 2.3. Medprooesorska komunikacija Kot reäeno, se koffitinikaui ja s procesi preteSno in na kontroliran naBiii i;vaja preko procesnih vhodov. Procesni vhod ju ileklariran v specifikaciji procesa v naslednji übUki; entry identifier C tđiBcrete.ranijt;» 3 CIormal_parL3i Formalni del (form a I „p ar t) definij/a jj br;nnft,j'if vhoda, interval tdiscrete.i-iinge) pa lahko definira druSino vhodov. Vhodi so lahko klicani iz drugih pitjc-esuv i vhodnim klicem, ki ima obliku ujadurint^Li = klica: entry „fiäüne E (đctudl.pdrđmeLer^p tii*L) 3 ; Vhodno ime (entry.name) vsebuje tìi-' indEki. ^ oklepaju, kadar gre za klio vhodj i.; JcuL'ini' vhodov. Prejemni stavek vhoda, ki je specificiran v procesu p,se lahko pojavi It» v ttlt^u piucesa p. Te pomeni, da lahko proces izvđja samo prejemne stavke svojih vhodov. Za ii.l.i vhiiU lahko proces vsebuje veä . prejemnih stavkuv (istih ali razliCnih; s te« se vhodi razlikujejo od procedur). Prejemni stavek ima naslednjo obliko: accept entry.name CfDr«ial_part3 Cdo sequence_of^statements end Cidentifier] 3i Vhodno ime (entry_nanie) vsebuje Se indeks v oklepaju, kadar gre 2a ^ drufino vhodov. Zaporedje stavkov med ^ in end je telo vhoda. Prejemni stavek lahko specificira telo (ined do in end), ki se izvede ub klicu u^itru^nuud vhoda (entry_narae) . Kadar £.0 parametri (fcrmal.part) in telo prejL'n:nuyd s.t<ävk>j odsotni, lahko govorimo o sinhronizaciji, ktr tedaj ni prenosa podatkov mud protesi (gltjj Primer 3). Formalni del prejemnega stavka mora ustrezati furmaiMemu delu uc.tri'ine vhodne deklaracije (glej npr. vhod READ in njegov'prejemni stavah iz Primera 2). Komunikacija preko vhodov med proufboma p (kliäoei procBS, ki kUEe ^vhuci V tii-onesa ii? in q (klicani proces, ki vscbuju cleM^rdiiijo in prejemni stavek (stavke) ia vhod V) se izvaja po principu reniiez-voui.-ja, ia katerega je znaäilna, da ^ ja potrebna obi procesa pred samo komunikacijo (intecdkcijo) sinhronizirati: - Ce proces p klide vhod V^procesa 4 predno je slednji dosegel ustrezni' prejemni stavek, je izvedba procesa p suspendirana (dokler 4 ne doseSe prejemnega stavkaJj - äa proces q doseXe'prejemni stavek vhoda V predno p kliße ta vhod, je izvedba brocesù q suspendirana (dokler p ne ]< 1 ifie'vhoda) . Do izvedbe telesa pi-ejemnega stavka v q pride, ko sta oba procesa sirihroni z ir ana i p kliCe vhod V in q doseiTe prejemni stavek vhoda V. Takrat pride ' do interakctja (rendez-vous), v kateri izvede pi'ajemni stavek, p pa je suspendiran do kunca izvedbe prejemnega stavka. Ob koncu izvL-übt prejemnega stavka se oba procesa p in nadaljujeta. Kadar vetS procesov klifie isti vhod V, predno je ustrezni prejemni stavek v klicanem procesu dosežen, so ti klici uvrSBeni v vrsto na vhod V (vrsta je fife)/ Ob vsdki izvedbi prejemnega stavka za vhod^V je najstarejši proces v vrsti na V vzet iz vrste. procesi) ju prejemnega stavka Večstranska komiinikaci jd (med veC omogofiena s tem, da telo | preje vhoda V lahko vsebuje prej'emne stavke (tudi za isti vhod Vi ali lahko kliCe podprograue, vsebujotie vhodne klice. Kot bomo videli kasneje, obstajajo tudi pogojni vhodni klici in Časovno omejeni vhodni klici. Prvotni prirscip rendes-vous-ja je zasnoval Haare (14) in ima simetrično obliko: vhodni klic navaja klicani proces in pi-ejemrii stavek navaja kliCoBi proces. asiicetriKen (prejemni kliäoäega procesa). V Adi je rendez-vous at^avek ne ' navaja Asiaetriänost jt.> utemeljena z naslednjimi razlogi (ref. I) : procese lahko raidelimo na upatdbniKka (aktivne) in servisne Cfidsivne) proctiit-i uporabniški procesi morajo pugnati surviine procese, hi jih klifiejo, Itlit^riim šei~edelermini«.ti Cnü) i.'beri> in izvede ena od obeh alterrrativ. S tem nam postanti Piimer ? jasans prootsi PROTECTED_ARRAY je imp1emenLaci j d Stìitene tabele (monitorja), s "kitei-o prehreäimo ^oCasno izvajanje doseganja tabele preko -vhoda READ in URITE: Iddar se izvaja alternativa, ki vsebuje oii..stavuK zj READ, se ne more (scjfiijbnol i;vt>jaLi druga alternativa, saj sta obe v ìàte.s f sek/enens.n) procesu. Klici READ ali UR'iTE izvdjajo v zaporedju,- ki jt H as n/no upr l>.Ih I jena u,:., kadar sta dva rdzlitìna vhoda Mii-Ana "fiOtiasno", je nedeterministiKno izbran izned obeh. Ada pozna tri vrste izbirnih stavkovi izbirni takajoBi stavek (selective, uaU) , P^a^jni vhodni klic (conditional entry i^ai) m ćfasovno omejen vhodni klic (timed entry call). 2.4.1. Izbirni CakajoCi stavek Oblika tega stavka je naslednja! select Cuhen condition =>] selset.altern ative tor Cwhen condition =>3 seJeot_aIternative> Celse 5equence_of-Stütements] end select} "when condition" je varovalo. Zaviti oklepaji o^TTiČujejo n (3» D) kralno ponovitev. Izbirna alternativa (select^alternative) je lahko: aooBpt_statemBnt rsequGnüä.of.sLätemsnts] delay simpi terminate ; delay simple.enpression --CsBtiuence_üf_sl aLemtfnLiJ Odgoditveni stavek (di? 1 ay ) sui,petal ii'rt izvajanje procesa najmanj _ za ädS fmerjen v sekundah),. izraJen z enostavnim izraiom (simple.expressioti) . Kadar je pred alternativo pritotno varovdlo, je alternativa odprla za izbiro, Ce je ustrezni pogoj res. Alternativa brez varuvald je vedno odprta za izbiro. Pomensko bi ldi>ku rekli, da varovalo oiiuijoea onemogočitev (inhiblcijo) ustreznih alternativ. Ooejitve: prisotna je lahkcj tna sama zakljuöna alternativa (terminate). V istem izbirnem öakajatfem stavku ni müSnü obeneiri navesti naslednjih alternativ: - lakljuBna alternativa, udgudiLvurid alternativa; - zskljuBna alternativa, eise -del; - odgoditvena alternativa, else -del. Prisotna mora biti vsaj ena piejemna alternativa (alternativa, ^ ki se zaCne s prejemnim stavkom). RazliBne piejemiiL-alternative lahko ustrezajo istt^mu vhodu. Izvajanje stavka poteka takole: a) vsi pogoji varoval so ^izraCunani: s tem doloflimo odprte alternative * (alternative, med katerimi lahko izbiramo); b) prejemna odprta alternativa je lahko takoj izbrana, Ce je rendez-vous takoj aioJen (t.j. ustrezni vhod je bil klican); c) odgoditvena odprta alternativa bu Izbrana, üe ni v roku, ki ga odgoditev specificira, bila izbrana nobena druga alternativa; d) zakljuCna alternativa izcaia pripravljenost procesa, da| se v 'tej toäki zahljuöi. Izbrana bo v primeru, da so vai procesi, ki so bratje in sinovi (posredni ali neposredni) procesa p, ki v^.ebuje to konCno alternativo, konCani oz. (Jakajo v izbirne« HakajoBem stavku, . ki vsebujt zakljußnu alternativo In da je oCe procesa p (blok, podprogram ali procirs, ki je aktiviral p, glej 2,2) konCan oz., dJe je ot!e proces, da je oCe konCan ali pa Caka v izbirnem dakajaCem stavku, ki vsebuje zak!juena_ ü! ternativo; e) äe nobene alternative^ ni mbKno' takoj izbrati' (vendar vsaj ena odprta alternativa obstaja) in üe obstaja ei s'e-del . štednji izvede; be else-dela ni, proces Caka, doklec-izbira odprte alternative ne" postane «lotina; f) Be so vse alternativ'e zaprte in tie obstaja else-del. je sled'nji izveden ; Ta stavek povzroBl brezjjogojni asinhroni zaklJuCek navedenih procesov, kakur tudi vseh sinov teh procesov. Vsak proces lahko abortira katerikoli proces, vkljutino sebe. ife se abortirani proces nahaja v vrsti na procesni vhod, Je vzet i«^ te vrste; Be Je abortiran kliöoöi ' * proces sredi rendez-vous-ja. Je klitioiüi proces takoj konäan, klicani proces pa normalno zakljufli rendez-vous. Be ima abortirani proces procesne vhode In Be obstajajo v vrstah na teh vhodih BafcaJoCi procesi, se te procese ustrezno obvesti (g prcüenjen izrednih situacij, glej 1.2.-2). Ce je bil tak äakaJoBi proces sredi flasovno ooejenega ,vhodnega klica 'C^lej 2,A.3>, ss ustrezni odgoditveni rok izniCi. 2.6. Primeri V nadaljevanju podajamo tri abselfnejSe primere programiranja procesov v Adi. Plrvi je klasićfni primer piscev in fiitalcev, ki Je bil ie Gesto opisan v literaturi (sluifi npr.; kot primer uporabe monitorjev,' ref. 5), drugi podaja zelo sploSen mehanizem za alokacijo skupine virov razliCnih 'tipov tre/. 2)j tretji pa podaja opis prek'initveriü proSeriega krmilnega procesa za tastatura tref. 155. 2.Ì.1 . Pisci in altaici Programski enoti, ki definirata jkontrollran dostop (pisanje in Čitanje) do sprenenljivke V atai ... package READER.MRITER is -'Specifikacija, paketa (vmeaniSka — informacija) procedure READCX; out ELEtlJj --predpostavimo, da ja tip ELEM —globalno definiran procedure HBITEU: in ELEM) i end ; package body READER.WRITER jU V I ELEM 1= ... 5 task CONTROL is entry START; entry STOP} entry MRITE(Ki in ELEM) end; —telo paketa task body CONTROL is ~RDRSi INTEGER i= 0; —Število praceauv, ki —trenutno tfitjju V begin select when WRITE'COUNT = a accept START; - —äe nihCe ne Caka ia pibunju, —dovoli Čitanje? FtDRS ROUS + 1 ; or accept STOP; RDRS := RDR5 - 1; za!,ijutii Citalni '---proces or when RDRS=D nihlib ne Cita, -"-sprejmi pisanje accept MRITECX: in ELEM) do V != Xj end; loop . —po pisanju oberiem startaj —vse Bakajoöe Bitalce select —p'ogojni rendes-vous — (prejemna stran) accept START; RDRS RDRS + 1; else exit; end select; end loop; end select ;' end loop; end CONTROL; procedure READfX: out ELEM) is. begin CONTROL.STARTJ *J=V; CONTROL.STOP ; end READ; procedure WRITE(*i in. ELEM) is —vhod URITE napiSemo kot proceduro, — ker vhodov ni muS^no navesti v --specifikaciji pa'keta begin CONTROL.URlTEtX); end WRITE; —tu Je konec deklarativnega dela —paketa: prcces CONTROL je aktiviian end READER.HRlTEfi; Predpostavljamo, da sgocnji paket upgr.ib!j , da prekinilveni vhod klifle (hardwarski) proces s prioriteto, vii'jo od prioritet vseh uporabniških procesov. Poglejmo si torej krmilnik za tastaturo v PDP-11; prihod maka iz tastature proL'i prekinitev na naslovu 100 oktalno, nakar je v servisni rutini znak v podatkovnem registru prepisan v lokalno spruaen]jivko.. Uporabnik uporablja krmilnik preko klica vhudj TAKE, ki prepihe podatkovni register v argunitnt. task KB.HANDLER i^ entry TAKE (CH: out CHARACTER); entry KB.DONE; —prukinitverii vhoi! for KB.DONE use a#1D0#; --ta specifikacija opredeljuje —KB.DONE kot preklnitveni vhod end KB.HANDLER; task body KB.HANDLER ^ CHAR: CHARACTER; --lokalna spi emenI ji vÌ. a DBRj CHARACTER; --hardwarski register, --kariior pride znjfi for DBR use 8#177462#i --fiiiCrti naslov OSR begin Too pop "-zanki kriiiilnikd --seirvisna rutina accept KB.DONE CHAR i= DBR; --prepis :n3ka v lukalnü —spremenijivko end KB.DONG; accept TAKE (CH: out CHARACTER) äs. CH := CHAR; end TAKE} end Inop; end KB.HANDLER; Jezik ne specificira toCne semantike za prekinitvene vhode oz, ustrezne prejenine stavke; to je prepuSCeno implementaciji. Tako smo npr. v zgornjem primeru predpostavili, da je prekinitev usposob 1 juna , ko proces dosel'e ac^nept KB.DONE (s Bimer postane k lit prekinitvenega vhoda oz. Vendez-vOus molfen) in onesposobljena ob koncu servisne l'Utine (^ KB.DONE). Usposabljanje prekinitve bi bilo moSno tudi eksplicitno proyramirati z doseganjem ustreznega statusnega registra. Zgornji primer prav tako predpostavlja, da proces krmilnika priredi prHkinitvenemu vektorju naslov servisne rutine (telu prejemnega stavka za KB.DONE), pri Čemer ni Bisto jasno, kdaj se to iivede (najprimernejei ob startu procesa, ko prooes prviC doselfe ai^e£t KB.DONE). 3. ZAKLJUČEK V tea trenutku o Adi ni moSino Se niBesar dDiDtienega zakljufiiti. Zgornji pregled definiranja in uporabe procesov v Adi vsekakor kaJe, da je Ada bogat in vsestransko uporaben jezik s Širokimi zrnajnostai. Molno je, da se bo uveljavil ne le za pragraalranje vgnezdenih, temved tudi neodvisnih raCunalniSkih sistemov in sicer za VBB nivoje prograaske' opre«e (od operacijskega sistema do aplikacij). Konkretne implementacije in konkretne aplikacije pa bodo pokazale, v kakSni meri je jeilk uGinkovit in nolian oz, v kakšni meri odgovarja zahtevam, hi so nu bile zastavljene. REFERENCE 1. ... Reference manual for the Ada progranraing language. Proposed standard document, US. Dept. of Defense, july 19SĐ. 2. J. D. Ichbiah et all: Rationale for the design of the Ada programming language, SI6PLAN notices, v. 1A, no, 6, june 197?, part B. 3. D. Uegner: Prograoiining with Ada; an introduction by means of graduated examples, SI6PLAN notices, v. H, no. 12, dec. 1979. 4. U, Eventoff et all: The rendez-vous and monitor concepts: is there an efficiency difference?, SIGPLAH notices, v. 15, no. 11, nov. 19Ba, 5. J, G. P. Barnes: An overwiev of Ada, Software - practice and experience, v. 10, p. 851-887, 1980. H. A. Uulf et alii Achieving quality software: reflections on the aims and objectives of Alphard. Computer science research review 1975-76, Carnegie-Mellon U. 7. A. K. Jones i The narrowing gap between language systems and operating systems, Ref.! glej 6. 8. ... Mesa language manual, version 5.0, april 1979. Xerox Palo Alto research center, CSL-79-3. 9. M. Exel: Jezik Modula in programiranje sprotnih sisteaov, US, DP-1771, dec. 1979. 10. B. H. Lampson et all: Report on the programming language Euclid, SIGPLAN notices, V, 12, no. 2, febr. 1977. 11. CLU reference manual, Lab. for ooaputer science, N. I. T., LCS/TR-225, oot, 1979, 12. H. Exel: Komunikacija med sekvenfinimi procesi, del 1,11, Informatica 1 in 2, 1977. 13. P. Brinch Hansen; Concurrent Pascal Report, Cal. institute of technology report, 1975. 14. C. A. R. Hoarei Communicating sequential processes. Com. of the ACM, v. 21, no. S, 1978. 15. 1, C, Pylei The Ada programming language, Prentice Hall, 1981. in for ma tic a ti^' Mednarodni simpoztj za raćunalniSKo tehnoFogijo in probleme informatike Sixteenth Internationai Symposium on Computer Technology and Probiems of rntormatics mednarodna razstava ratunalnišlfe leiinologij international Exhibition of Computer Technology Ljubljana. 10,—14. maja Gospodarsko razslavi£će Ljubljana Ljubljana, May 10—14 at Ljubljana Fair Organizatorji: Slovensko druèlvo iniormaiiha Eiek^roiehniSka zvdia Slovenije Gospodarsko razstavišče Ljubljana Simpozij in razstava imomialica 'B2 je srečanje strokovnjakov, proizvajalcev, uporabnikov m drugih interesentov v alpskojađranskerm prostofu (Bavarska, Avsirija, Madžarska. Ilalija irt Jugoslavija) z močno mednarodno udeležbo, tj. z visoko ravnijo simpozija ler z udeležbo najnovejše računalniške razstavne tehnologije. Gospodarsko razstavišče v Ljubljani tjo ob tej prireditvi zdruiilo udeležence simpozija in razsiavljalce na eni sami strnjeni lokaciji, ko bodo hkrati zagotovljene tudi zadostne hotelske zrr>ogljivo3li v sami Ljubljani. Mednarodni simpozij Informatica "02 t» spremljan z mednarodnimi seminarji z najtjolj perečih področij računalniških znanosti, tehnologije in uporabe. Sodelovanje z rr^ednarodnimi strokovnimi organizacijami bo zagotovilo visoko kakovost reieratov, posvetov, okroglih miz in drugih neformalnih sestankov. Ugledni mednarodni in domači izvedenci bodo sodelovali pri pripravi preglednih in uvodnih reieratov ter v vrsti seminarjev. Srečanje Infomialica '82 bo popestreno tudi s strokovnimi eifskurzljami, izleti ter z družabnimi in kulturnimi prireditvami v Ljubljani in izven Ljubljane. Ljubljana tx> ponovno pokazala svojo visoko organizacijsko raven, ki ne Iw zaostajala za kvaliteto organizacije kongresa in razstave IFIP 71, Organizers: Informatika, Slovene Computer Society Slovene Association of Electrical Engineering Ljubljana Fair Symposium and Exhibition Informatica '62 is a meeting of experts, producers, users and all ihose interested in computer technology and in,formatics within the Alpinc-Adrialic region (Bavaria, Austria. Hungary, lialy and Yugoslavia) with strong international participaiion high symposium standard and latest computer technology exhibition. Ljubljana Fair in Ljubljana v»ill unite tfie participants of the symposium and exhibition on single location. During international symposium Informatica 'B2. the international seminars on the most interesting topics of computer science, technology and applications v^ill lake place. The co-operation witt^ international protessionai organizations will assure ihe high protessionai level of papers, seminars, round-table and olher informai meetings. Distinguished international anaralelno z več procesorji -s procesorji, ki krmilijo pripadajoče module teh terminalov. Zato smo pri načrtovanju programske opreme tega sistema, da bi ga čim lažje implementirali in da bi bil čimbolj fleksibilen, izbrali naslednji pristop: - komutacljske funkcije so potx)lnoma distribuirane - podatkovne in administrativne funkcije so koncentrirane v vzdrževalnem oz. administrativnem modulu - celotno prograreisko opremo delimo v: . sistemsko (operacijski sistem, detekcija napak, start in obnova sistema) . aplikativno (obdelava telekomunikacijskih protokolov, administrativni in vzdrževalni postopki) 2. NAČRTOVANJE SlSTIiMSKli fttOGRAMSK OPtiKMK Celoten sistem ISKRA 2000 delimo v več hierarhičnih nivojev ; - sistem - podsistem - element - pode leme nt - enota Najnižji nivo enote so implementirani programski moduli in procedure, medtem ko so vsi višji nivoji skupek programskih modulov in procedur, ki medseboj sodelujejo, da bi izvedli določeno funkcijo sistema. Programski moduli sodelujejo medseboj preko dobro definiranih vmesnikov. hti tako opisanem načrtovanju uporabljamo tehniko SADT (metodologija, ki je bila razvita v üoftech) /4, lo/, ki omogoča načrtovanje od zgoraj navzdol in dobro definira vmesnike med sodelujočimi kom|x>nentami nekega nivoja. Komponenta na nivoju i je nivo i -1 (npr. komponente podsisterga so elementi, komponente pod elementi so enote , ipd.). Aplikativna programska oprema je podsistem, ki ima za vsako aplikacijo identične vmesnike z ostalimi podsistemi in jo ne načrtujemo po SADI' metodi, ker zahteva pri svojem razvoju svojđvenpristop. 3. NAČRTOVANJE APLIKATIVNE PROGRAMSKE OPRliME Aplikativna programska oprema sistema ISKRA 2000 so programi, ki obdelujejo: - telekomunikacijske protokole (signalizacije) med terminalom in centralo ter med centralami v omrežju - administrativne in vzdrževalne postopke , ki jih zahteva osebje centrale Osebje centrale izvaja administrativne in vzdrževalne postopke s pomočjo komand v standardiziranem jeziku CCITT - MML , to je jeziku za komunikacijo človeka s strojem (CCITT man-machine language MML) /2/. Izvršilne cutine teh postopkov so programske procedure z dobro definiranimi vmesniki proti elementu sistema "komunikacija človek-stroj". Če komanda zahteva izvajanje kompleksnejših procesov, potem izvršilna rutina sproži procese, ki se načrtujejo podobno kot obdelava telekomunikacijskih protokolov. Procesi obdelave telekomunikacijskih protokolov imajo naravo končnih avtomatov, zato le-to aplikativno • programsko opremo načrtujemo na specifičen način. Obdelavo telekomunikacijskega protokola najprej specifl-t ciramo z /1/ modificiranim CCITT - SDL diagramom, ki je nekakšna kombinacija diagramov prehajanj stanj avtomata, običajnega diagrama poteka in posebnih konst-ruktov, znàcilnlh za sistem ISKRA 2000. Ko je tako specificirana obdelava preverjena s strani poznavalcev telekomunikacijskih signalizacij, napišemo program v SLI jeziku. SLI jezik /8, 11/ je tekstualen zapis specifikacije, ki se ga da avtomatsko prevesti v SLI logične tabele. SLI tabele določajo, kako $e naj telekomunikacijski proces odvija v računalniku i^istema. SLI tabele interpretira t. im. SLI interpreter, ki poziva ustrezne akcije. Akcije, ki se izvajajo ob prehodu strani so enostavne procedure osnovnih operacij nad podatkovno bazo in nad aparatur no opremo. Akcije Sl.l jezika so lahko tudi posebne komande SLI interpretofju oziroma operacijskemu sistemu. 4. ORGANIZACIJA KOMUTACUSKIH KUNKCIJ Obdelavo telekomunikacijske zveze, v kateri imamo dva ali več terminalov, smo raadelLli v dve ali več neodvisnih obdelav takoimenovanega polpoziva aH delnih pozivov. Slika 2 prikazuje konferenčno zvezo treh naročnikov A ,11 in C. Vsak delni poziv vpliva na drugega (komunicira z drugim) izključno s signali, ki jih imenujemo inter-telekomunikncijski signali. Z delitvijo poziv,a na dva polpoziva ali več delnih pozivov (v primeru konferenčnih zvez) realiziramo funkcije na identičen način tnko za intramodularni kot za inter modul ar ni poziv'. Intramodu-larni poziv je poziv, kjer se dva termliinlfi üpke zveze nahajata v istem modulu, medtem ko sta |iri iiilermodu-larnem pozivu terminala zve^e v različnili modulih in sta tako krmiljene tudi ^ rnaličnima procesorjema. Pri tem sta terminala neke zveze lahko pi ikljiič«ria na našo centralo z različnima signalizacijaiHa, Inter-telekomunikacijski signali so standardizirani v sistemu ISKRA 2000 za: - vse aplikacije In za - vse signalizacije Z načelom delnih pozivov in inter-telekomunikacljskih signalov med rgtmi lahko realiziramo obdelavo signalizacije ene strani, ne glede na to, kakšna je signalizacija na drugi strani. Intertelekomunlkacljski signali se pošiljajo s pomočjo PUT konstrukta v SLI jeziku preko operacijskega sistema, ki tudi ugotavlja, ali gre za intramodularni ali za inter modular ni poziv. Če je poziv intermodular ni, operacijski sistem aktivira sistem medprocesorske komunikacije, ki prenese ititertelekomunlkacljski signal v ponor ni modul (slika 3), Vsak delni poalv delimo dalje na več procesov (slika 4) - vhodni signalni proces - obdelava signalizacije (delnega poziva) - izhoani signalni proces ter - skanirni proces Skanirni proces odkriva spremembe fizičnih signalov na senzorskih točkah perifernih vezij, ki so odraz tokovno napetostnih stanj na linijah k terminalom. Skanirni proces se izvaja periodično s tako periodo T, da lahko zaznamo najhitrejše spremembe fizičnih signalov neke signalizacije. Spremembe v času t odkriva tako, da primerja (aparaturna) stanja na senzorskih točkah v času t s programskim stanjem v času t, ki je slika (aparaturnega) stanja v času t-T. Če se ta stanja razlikujejo, pomeni, da je skanirni proces odkril spremembo in jo pošlje kot ustrezni vhodni signalni primitiv v vhodni signalni proces. Vhodni signalni proces razpoznava telekomunikacijske signale iz sosledja vhodnih signalnih primit ivov. Vhodni signalni proces je torej razpoznavni končni avtomat, ki kot izhod preda telekomunikacijske signale procesu obdelave signalizacije. Vhodni signalni proces je aperiodlčen in ga sproži odkriti vhodni signalni primitiv iz skanirnega prpcesa. Obdelava signalizaci je je končni avtomat in obdeluje vhodne telekomunikacijske signale iz vhodnega signalnega procesa, izvaja analize sprejetih signalov in podatkov v podatkovni bazi, sproži pošiljanje telekomunikacijskih signalov iz centrale v okolico. Če želi obdelava signalizacije odposlati telekomunikacijski signal, ki je sosledje fizičnih signalov, obdelava signalizacije preda telekomunikacijski signal iztiodnemu signalnemu procesu in le-ta oblikuje Iz fizičnih signalov želeni telekomunikacijski signal. Obdelava signalizacije je aperiodlčen proces in ga sproži vhodni telekomunikacijski signal, ki ga je razpoznal vhodni signalni proces. Izliodni signalni tiroces je končni avtomat in oblikuje izhodne telekomunikacijske signale, sprejete iz obdelave signalizacije, izliodiie telekomunikacijske signale oblikuje tako, da preko krmilnih točk perifernega vezja fjeiierli-a ustrcuno zaporedje fizičnih signalov (ustre^.nc tokoviio-nupelostne razma-e na liniji k terminalu), i/hodfii signalni proces je aperiodlčen in IskraData Družina računalniških sistemov za distribuirano obdelavo ISKRADATA 80-50 Pisalnik Samostojno delovno mesto Komunikacijsko delovno mesto Sinhroni terminal Samostojni matični sistem Komunikacijski matični sistem ISKRADATA 80-60 ISKRADATA 80-70 ISKRADATA 80-75 ISKRADATA 80-80 ISKRADATA 80-90 NAJVAŽNEJŠE ZNAČILNOSTI SISTEMA ISKRADATA • Modulnost sistema • Prilagodljivost sistema uporabnikovim zahtevam • Distribuirana obdelava, ki omogoča popolnoma samostojno delo delovnega mesta in dostop do baze podatkov v matičnem računalniku ali nekem drugem računalniku, ki je vključen v omrežje • 1—16 inteligenčnih delovnih mest • Disketna enota omogoča direkten pristop do vsakega podatka • Za večjo količino podatkov se priključijo na matični računalnik do 4 diskovne enote (40, 80, 160, 200, 300 MB) • Široka paleta možnosti priključitve perifernih naprav (standardni zaporedni in vzporedni vmesnik RS 232-V24) • Sinhroni protokoli ali asinhroni protokoli s kontrolo ali brez nje • Učinkovita programska jezika BASIC in PASCAL • Delovno mesto je nezahtevno za okolje • Večja učinkovitost z manjšimi stroški. Iskra Elektromehanika Kranj tozd lovama računalnikov Mednarodna razstava računalniške in informacijske tehnologijo Gospodarsko razstavišče Ljubljana 10. do 14. maj 1982 Informatica '82 bo skupna sejemsko-strokovna manifestacija raziskovalnih, proizvajalnih in zastopniških dalovnih organizacij, uporabnikov in strokovnih društev s področja računalništva in informatike. Razstava Informatica je namenjena - proizvajalcem računalniških naprav in sistemov - uporabnikom informacijskih sistemov in - vsem, ki uvajajo automatizacijo z uporabo računalniških sistemov. RAZSTAVNE PROfiRAM 1. Klementi naprav za obdelavo podatkov - m ikroprocesorji - periferni procesorji - integrirana vezja in drugi aktivni elementi - koneklorji, kabli, podnožja - pasivni elementi 2. Enote sistemov za obdelavo podatkov - centralne enote - pomnilniške enote (dinamične, statične, mehanične) - vhodno/izhodno kontrolne enote - druge podsistem sko enote - usmerniki 3. Periferne naprave in terminali - enote za Čitanje luknjanih kartic - enote za čitanje in luknjanje traku - magnetnotračne enote - enote za pogon magnetnih kaset - diskovne enote - pogoni za gibke diske - optični čitalniki znakov - čitalniki rokopisov - znakovni, vrstični in bločni tiskalniki - video terminali 4. Sistemi za otxlelavo podatkov - sistemi za splošno obdelavo podatkov - pisarniški sistemi - razvojni sistemi - poslovni sistemi - laboratorijski fiistemi - procesni sisVeini - vojni sistemi - osebni in domači srstomi - sistemi za /.ajomnnjo (nxinlkov 5. Progr .'i tiiska oprema - o.'^novua in sistoinska programska oproma - uporabniška programski) oproma y.:i poslovne sistomr - uporabniška programska oprema za vodenje procfsov - komunikacijska programska oprema - uporabniška programska oprema za tehnične in znanstvene namene 6. Aplikacije računalniških sistemov - telekomunikacijski sistemi - vodenje elektroenergetskih sistemov - zajemanje podatkov - računalniška grafika - robotika - vodenje tehnolosikih procesov - bančni sistemi 7 . Naprave za zbiran je in prenos podatkov - modemi za prenos podatkov - multiplekserji - kontrolne in merilne napravo - naprave za komutacijo B» OpK'iiia za iiruizvoflnjo r/ü'urialiiikin' - kazalfiii tn[>ril[ii instrui,;CTiii - elektronski merilni iristrun cnü - logični analiji - sistemi za n;K rtuvnnjt- \e'/ij - sistemi za izdelavo tiskinih vezij - sistemi za tc'Htiranjo tipkanih xi-zi j - sistemi za proizvodnjo intc^irinuih vi-zij 9. Metii ji za ?.apis podatkov - magnetni trakovi - magnetni diski, gibki diski - magnetne knsf^te - formular ji na iit-skončurm ixaku - papirni trak 10» Strokovna literatura - knjige - revije in časopisi - Uporabniška dokumentarija Simpozij (''^FORMATICA 82 je mednarodni simpozij za računalniško tehnologijo in probleme intorniatikf', ki hn v organizaciji Slovenskega društva Informatika, Elektrotehniške zveze Slovenije in go protiissa 1,s;r procesa obdelave sjtjnnli^-.ncij) . tabele programskih slik stanj v apar.itnrni oiir<;mi K aplikativno variabilno podatkovno bazo (AVIMl) , ki . vsebuje: . shranjevalnike rezultatov analiz sprejetih informacij iz okolice centrale Permanentna podatkovna ba/.a se ne moro sprominjali med eksploatacijo .sistema. Semi-perniain.-ntiiu pod.ilkuv-no bazo lahko spremicij.i samo [xjoblfiscmio o.sf^bjc , centrale s pomočjo konuind za komunikacijo clov samo rio pui iii.aiiualuf podatkovne baze Pl'1! in do sistHinskih varialiilnih pazo želimo spremeniti. Pri zasnovi in implementaciji tega sistema so sodelovali oziroma sodelujejo številni sodelavci Iz Tehničnega razvoja Tovarne avtomatskih telefonskih central in iz odseka za računalništvo in informatiko na Institutu Jožef Stefan. Vzdrževalne funkcije delimo na : - sprotno preskušanje in občasno (rutinsko) preskušanje sistema 8. LITER A TUBA /1/ C C ITT VII th Planar y Assembly, Geneva 198o, Volume VI, 7. Functional Specification Description Language (SDL) Recommendations Z.lOl - Z. 104 /1/ C C ITT VII th Plenary Assembly, Geneva 19 Bo, Volume VI.7 Man-machine language (MML) ; Recommendations Z.3X1 Z.341 /3/ H.Popović : Povečanje produktivnosti programiranja velikih sistemov Simpozij Informatica 73, Bled, 1975, 1.33 /4/ B.PojJövic, M,Dežman ; Funkcionalne automat-l ske telefonske mreže sa familijom Iskrinih elektronskih centrala. Zbornik YUTEL197e, A/5 /5/ A.Mohar, B.KlemeneIč, B.Popović : Modular electronic switching system for small and medium size offices, ISS 1979, Paris, Maj 1979 /6/ B.Popović, J.Stare, M.Meklnda: Modulami elektronski komutacloni sistem ISKRA 2000 Zbornik Y UTEL 1979, A/I-1 /7/ M.Mekinda, J.Stare, B.Popović: Javna digitalna centrala sa dencetrallzir ani m upravljanjem /B/ B.Popović, M.Exel : SLI jezik in formalni pristop za specificiranje in programiranje komutacijskih procesov. Zbornik YUTEL 198o, A/IlI-1 /9/ D.Novak, M.Exel, M.Kovačević, D.Kastelic: Jedro za podporo implementacije sprotnih sistemov. Časopis Informatica Bo, št. 2 /lo/ Structured analysis and design tectmiques, Softech report, 1974 /11/ M.Exel, B.Popović : SLI specification language - a tool for switching system software development, ICC 8) , Denver, Color ado, junij 1981 ODOAIJENI MOOUl 4I1DUL 1 lAROClDKOV «HES. 1 OtD. HCl). £ ^MtS, ' ODO. MOS. PDEI Z«(j!AJtJE SIIIALIIIN MODULS V OIGIULKO OMRdJE IS.KANAL vm/tZNOONE MAPRAUE V20A!EVA|II MOOULl AĐMIKIS1IIA1IVIII MGSUL a—rry V VZOR?E(ALKI CEIIIER .SLIKA 1 ARHniKHäRA SlSItHA ISUSA lOOO IIS IS OSIiaAVA Pg2)VA A IIS SKUPtNSKO SIIKAIO IIS OfiOELAVA POZIVA B Its l!S DBDEIAVA POZIVA C ns IH1ER-HLEHDMUNIKACIISKI SICNAL suu r PRIME« OUIIVE QBPEUVE KOKFERE^^IIE ZVE2E IREN NAÜOCNIKOV rPERIFERIU [NDFA Mseiizdrsii BEI J t i ^ e s 1 ptitiFtmiA lENOIA \(IIBHILII DED IISIIZ DRUGE (riETJC) SIRAli POZIVA) aacELAVA EIE STUn poz;i/A SKČ I2H0DIII {ASOVKI PROCES KLIC KRMILÜE AKCtJE rZHOORI SIEHALIII PRSCES IZHGDNA *RStA fAsovm peocES ENE STRAH POZIVA SHE ITS ( K ORUEI lIRETJIl STRANI POZIKAl S P INFORMATICA 2/1981 NOVI RAČUNALNIŠKI SISTEM ISKRADATA 19 ANDREJ URATNIK, LADO PETERNEU, JANEZ KOŽUH UD K: 681.326 Iskvadata 19 ISKRA ELEKTROMEHANIKA TOZD RAČUNALNIKI KRANJ Članek je kratek pregled laatnoatl novega raöunalniSkega aiatemn ISKRADATA ig.JiisteiJi je razvit na temelju licenfine^ raäunalnlka CDC CYBEH 1R-20, kl smo ßü rar.Sirili v üklüclu a potrebami naäesa tržlSEa. Opisane eo osnovne lastnosti in možnontl uporahL^ strojne opreme ter operacljflkl sistem ITOS 2.1. THE NEW COMPUTER SYSTEM ISKRADATA 19: The article is a brief overwiev of new sistem ISKRADATA 19 features. Sistem Is developed on the fcasis licensed computer CDC CYR™ 1R-20. We hnve extended it according to the needa of our market. Here is the description of the baalc features and possibilities of hardware application and ITOS 2.1 operatinf. system. UVOD CILJI PRI RAZVOJU SISTEMA ObiiioÈJe uporabe sistema ISKRADATA C1B-20 je pri nas zelo Široko: uporabljamo ga v raziskovalnih In tehničnih ustanovah, kakor tudi za poslovne nantene. Primeren je v nanjSih, pa tudi v velikih delovnih organizacijah, v zelo pestrih strojnih in programskih konfiguracijah eiatemov. Prav ta vsestranska uporabnost alstemov 018-20 nas je vodila pri odloöitvl o razSiritvl sistema s 8tallS£a strojne, kakor tudi proRramake opreme In ga zaradi njegovih sposobnosti pribliSatl veCjiD tajfuna Ini Sk im sistemom. Zasnovali stao Blstem ITOS 2.1, ki Je dosežek domSsf^ znanja. Predstavljamo «a vsem, ki se eanlnaja ea. napredek na tem pođro6ju. Pri razvoju sistema TRKRADA?A 19 so nas vodili naslednji cilji : - povečano Število uporabniških terminaJov -na - hitrejši odzivni fias (vlSja prioriteta) uporabniškega terminala - povečano število možnih delovnih postaj (vfork station) - na IS - poveiana zmogljivost pomnilnika - sistemski pomnilnik je bilo treba povečati iz obstoječih 64 K na 92 K b.ytov maksimalno -celotna zmo;;lJlvost pomnilnika (sistemski in uporahniSki) Je bilo treha povečati od obstoječih 256 k hytov na 512 k bytov, - pospeöno delovanje sistemskih perifernih naprav s poudarkom na vrstičnem tlnkaJniku in nft programih za posredni iapis već,la zniogljivost eunanjefri pomnilnika (možna uporaba diskovnih enot, 40/?S HB, 80/50 MB, 300/180 riB in kombinacij teh) - uvedtia prioritet v palcetni obdelnvi - uvedba nekaterih aiatemaklh storitvenih programov - or^ianiaaol ja sistema mora biti odprta za nadaljnje rasSiritve (komunikacije veä sistemskih tiskalnikov, krmilnih terminalov z vmesnim pomnilnikom, posebne periferne naprave, itd.) in - večji dele?, lastne udeležbe pri proizvodnji eistena. LASTNOSTI PROGRAMSKE OPREME ITOS Sistemski disk novega operacijskega sistema vsebuje dva sistema, ki se med seboj razlikujeta ^iede hitrosti delovanja in ätevila konfiguriranih ITOS terminalov. Oba Bistenti imata skupno propramsko knjižnico (program library) in sistem datotek (data base in library f iles-pr ograma ). UPORABNIŠKI A - SISTEM Ta siatem je enak obatojeÈemu »istemu ITOS 2.0, le da ima fiksno velikost ner.aščltenef^a podroSja za paketne obdelave (backfround) fi4 KB. Namenjen je predvaem za prevajanje COBOLSKIH Izvornih propxamov it> Ititoiasnemu delovanju ITOS terminalov. V primerjavi a Blatemom ITOS 2.0 je mopoSe konflpurlratl zmogljivost filavnefia pomnilnika do 512 KB in efektivno zmof^ljivost diskovnih enot Pfj ME, 50 MB In lao HB. UPORAEHISKI B - SISTEtl • IzboljSarif! lastnosti feintenri nmo dosinAH ) naslednjimi popravki in 'iorinln i i viimi operacljakefift aistenn ITOf' 7 reorfTiniKaci ja uporah« in r-i 7 s^i r ì'^rv poimilnika, ki zaseda operacijnki fiifitom - povečanje pomnilnika, ki Pi\ Kafi(,'rtajo ITOS terminali zamenjava obstojeulh krmilnih pro^rratnov perifernih enot e propjani i a da je 1 .4 C - povečanje polja TOl^FSJ^ kh prenos podatkov na trak ali disketo in obratno od 512 b na 2 kb spememba programa za InlciallKlranje eisteim dopolnitev pro/traiiR CONFIG üa konfiguriran je sistem In " S$POOTi datoteke in - izdelava novih sistemskih UTIL programov. delovanji; krmilnih PROGRATOV v sistemu ITOS 2.1 so stalno prisotni v pomnilniku naslednji krmilni pro/^ratri perifernih enot: - krmilni proijrami diskovnih enot - krmilni programi ITOS terminalov - krmilni programi linijskega tiskalnika krmilni programi zn posredni i?.pla nn tiskalnikih - krmilni program disketne enote krmilni program simulatorja nfignutnef^i traku na di.-iketni enoti - krmilni program vhoda paketnih obdelav in - krmilni program izhoda paketnih/obdelav. Izopnili smo ae nenehnemu prenonu krmilnih programov iz diskovnih enot v pomnilnik in s tem povečali hitrost delovanja perifernih enot. Hkrati smo modificirali tudi krmilni program za posredni izpis (spooler). V Biatemu ITOS 2.0 je bilo delovanje or ^Ttn i z Iran o tako, da je vaak izpisani stavek na tiakalnlku znhtevalnvoje čitanje iapiana datoteke. Sistem ITOS 2.1 fia je organiziran tako, da z enim samim Sitnnjem izplsne datoteke đo"himo 70-9tavltov za. lapis na tiskalnilcy (blocking mode). S tem amo znatno zmanjÈall Število zahtev za 6ltan,ie a diskovne enote in hkrati dosegli, da je hitrost izpisa na vrstičnem tiskalniku enaka njegovi nazivni vrednosti in neodvisna od aktivnosti drugih perifernih enot in obremenjenosti aistemsi. VEDliCOST POMNILNIKA KAHENJJ!NK0A UPORABNIKOM Neposredna namestitev krmilnih programov nekaterih perifernih enot v reisidenänem pomnilniku, blocking - naÄin delovanja progratia za posredni iapia, pove San Je števila terminalov in povečanje Internega polja TOBFSZ, je zahtevalo razäiritev sistemskega dela pomnilnika od 64 KB na 92 KB- Večje število ITOS - terminalov uporabnikov zahteva ea dobro delovanje sistema (zadovoljiv odzivni JSas terminala) povečanje velikosti pomnilnika, namenjenega za uporabnike. Sistem ITOS 2.1 dopuSča konfiguriran je velikosti pomnilnika do 512 KB, kar pomeni, da v sistemu z maksimalno konfiguracijo in neaktivnim področjem paketnih obdelav, pripada ITOS uporabnikom 420 KE pomnllrjika. Z' drugimi besedami, tak sistem dopuSča, da je 13 uporabniških programov velikosti 32.KB med izvajanjem stalno naraeSčenih v poiiinilniku (15 X 32 KE = 416 KB), V primaru, ko je zmogljivost pomnilnika nanjäa od vredrtosti, ki jo zahtevajo aktivni ITOS terminali, nastopi izmenjavanje programov iz pomnilnika na diskovno enoto in obratno (swapping). Princip iamenjavan ja je zasnovan na enakih principih kot v ITOS 2.0, KRMILNI PTiOGRAHI PERIFERNIH ENOT Sistem ITOP , 2.1 vsebuje krmlJne progrrime Ì7,daje 1.4 C, ki so tako kodirani, da ho lahko realđentnl v poimilniku ali diskovni enoti. Tako lahko poljubno, brez vsakrSne predelave teh programov, spreminjamo sistem, ki bo imel nekatere programe "core resident", odvisno od načina uporabe sistema In njegovih perifernih naprav. Spremenjeni so tudi nekateri načini prenosa podatkov do perifernih enot (A/Q, ADT, DMA). Tako je na priner krmilni program aa. vrstični tiskalnik pri izdaji 1 .2 C deloval na ADT (automatic data transfer) principu. V izdaji 1,4 C pa deluje v A/Q principu z dvojnim vmesnim pomnilnikom (double buffering). POVEČANJE POLJA TOBPSZ Sistem ITOS 2.1 (uporabniški B-sistem) ima velikost polja TOBPSZ 2 KB. To povečanje tudi delno pospeSi delovanje celotnega sistem. Po želji uporabnika se lahko to polje poljubno povečuje v mejah, ki jih dopušča področje POOL AREA PARTITION. Da ostane sistem kompatibllen s sistemom ITOS ?.0, amo v uporabniškem A-sistemu ohranili velikost polja 512 KB, kar je- posebno pomembno pri prenosu DUHP-informaclj iz sistema ITOS 2.1 na sistem ITOS 2.0. V primeru, ko na sistemu ITOS 2.0 čitamo magnetni trak, ki je bil generiran na sistemu ITOS 2.1 (uporabniški B - sistem), sistem izpiše sporočilo. MOŽNOSTI KONFIGUR IRANJA SISTEMA ISKFADATA 19 Spremenjeni program COHPIG in datoteka $$POOL dopuščata naslednje nove možnosti konfiguriran ja sistemov: - do 33 terminalov (MASTìTt + 32 ITOS USERS) do delovnih postaj, ki so lahko dodeljene poljubnemu ITOS terminalu. ITOS terminal z matričnim tiskalnikom predstavlja delovno postajo. - poljubno kombinacijo do o£iem diskovnih enot zmogljlvoRtl MR, ""jO IIB all 1 BO MB in - zmogljivosti pomnilnika od 128 IfB do 512 fB v koraku po 52 KB. KOV I STORITVENI PROGRAMI Novi sistem ITOS 2,1 vaabuje tudi celo vrsto novih storitvenih programov (UTILITY), kl ae lahko uporabljajo tako v A, kakor tudi v B uporabniškem sistemu. N&ivažnejSi programi so: program za čitanje In pisanje IHM-3741, ICOM ^n MDOS kompatibilnih disket uvedba prior itetnegji režim delovanja paketnih obdelav (BATCH) - program za prikaa stanja ITOS sistem in aktivnih uporabniških terminalov. Prvi program Je namenjen predvsem off-line poveeavl Blatena ISTRADATA 19 s jstemoin 1D-16B0/20 za zajemanje podatkov. Program Je uporaben 'tudi ea povezavo s podobnimi napravami druj^ih proizvajalcev, ki podpirajo format aaplaa IBM-5741. Uvedba prioritetnega režima paketnih obdelav Je zasnovana na naslednjih principih: - vsak program v vrati za paketno obdelavo dobi začetno prioriteto, ki Je odvisna od številke tericlnala in efektivne velikosti programa (vsak terminal ima vnaprej predpisano prioriteto) - prioriteta vseh čakajočih programov s časom linearno naraSča - vbl parametri prioritetnega načina obdelav-(začetne vrednosti prioritet za pcaameane terminale, hitrost naraSčanJa) so pod neposredno kontrolo operaterja operater lahko dodeljuje abaclutno prioriteto poaameanim fakaJoSira pro^jramom, lahko pa tudi uvede atari TIFO (first .In/first out) način obdelav. Program ITOS/tJSERS STAT^IS t1aje operiiteru popoln vpogled v do^^janje v aistotnu. Program daje.sliko vseh aktivnih ITO? terrnirifilov, ime lastnika, procedure ter ime in .l.iV,OLst . programa, ki se trenutno izvaja na doloČRnsri terminalu. Hkrati daje Inf or tnìci Jo o zasedenosti pomnilnika s strani operaci Jrìkef7i sistema in ITOS terminalov, • ve]jUoist, In dogajanje v neznßSitenem področju, odPitotek zasedenosti pomnilnika ter rtruf^e als temske-infornacije. Te Inf or mei je no zlaisti koristne pri sistemih z oddaljenimi terminali. Tako im:i operater popoln niirtKor nad dogajanjem v sistemu, kar' Je zfi interaktivni sistem ^.elo koristna informacija. NOVI PROGRAMSKI JEZIKI NA SISTKHU ITOS 2.1 Na sistemu ITOR 2 .-1 se lahko uporabi Jm jo naslednji novi prevujalnikit križni zbirnik CAfROO xn prevajanje ÌKVornih programov ' procesorja fl6800. Program generlr;^ izhodno liato )irovödenopi prograiiH z referenčno listo spremenljivk In datoteko prevedenih strojnlli koii - križni zbirnik CA68000. Program Je podoben programu CAßaOO, le da Je namenjen an prevajanje izvornih programov procesorja fl68000. RATron - fortranski predpreva Jalti ik. Progranmki Jezik sam omogoča strukV.uriratvü programiranje In a tam razumljiveJšo In lažje pisanje programov. lastnosti STROJNE OPfiRME STRTIMA 3SKHADATA 19 V sistemu IGKRADATA 19 smo gleda na vzajemno delovanje strojne in programske opreme in glede na željene lastnosti celotnega slstenB. vpeljali naslednje bistvene spremembe v strojni opreini: rìazSlrltev pomnilnika k 25Cì KB na 512 KR z dodatno vgraditvijo fitlrih pomn I In i ?ik i h ploää . Pomnilnik lahko tako Šlrlitio po 64KB pomnilni Sklh modulih. Razširitev podatkovnih kanalov (A/O In AQ-DMA kanala) za povečanje Števila vhodrio-lahodnlh enot. V ta namen smo razvili posebno vmesno vezje AQ EXT , kl nam omo^oCa vgraditev po 5 krmilnikov za prenos podatkov prek kanala AQ in 5 krmilnikov za prenoa preko AQ-DMA kanala. Tako bo lahko na procesor priključenih do 3? terminalov preko ätlrlh 8 kanalnih ađapterjev, do dva vrstična tiskalnika preko dveh kontrolerjev za tiskalnik In nestandardne periferne naprave (na primer grafični terminal, drugi računalniki itd.). Da bi povečali hitrost prenosa podatkov med procesorjem in terminalom, uvajamo nov tip krmilnika terminalov (BCLA) a vmesnim pomnilnikom, ki omogoča DMA prenos podatkov v centralni pomnilnik. Razvili Bino'tudi vmesnik po standardu RS 422, ki omodoSa priključitev terminalov na procesor s kabli dolžine do 1S00 m. Vmesnik je izpeljan tako, da na standardni B kanalni adapter priključimo posebno veaje (standard R3 422). Medtem ko ina naè terminal ID 168 možnost priključitve na ta vmesnik standardno, je v primeru uporabe terminala CDC 752 potrebno le-tepa modificirati, Baavita ja tudi pr 1 la/^odltev krmilnika diskovnih enot, tako da bo mogoče nn procesor priključiti tudi diskovne enote z «tmofiljlvosti 180 HB, t možnostjo katerekoli kombinacije med diskovnimi enotami: 25 tiB, 50 MB in 1R0 MD do skupno 8 enot. Zaradi razflirUev in Izbolj.'iav obstoječega Blatema ISKRADATA 18-20 ter zaradi možnosti dodajanja posebnih perifernih naprav, smo v sistemu ISKRADATA 19 predvideli dodaten >rostor za 26 modulov, kot so pomnUniške plošče, dodatni krmilniki n]i posebni krmilniki. Zahteve po večjem Številu modulov smo izpolnili tako, da smo Kaanoviili kabjnol; z dvema ohiSjom modulov. Kabinet v obliki onare Izmer 1610 x 750 x 750 mm vsebuje polef^ navedenih dveh okrovov modulov Se ustrezne napajalnike, veaje za vklop in diatribuoijo električne energije ter eno ali dve disketni enoti. iKboljŽava aparaturne opreme je zahteva ]ri tudi razvoj novih diagnostičnih prop/amov, tako da je potekal istočasno z razvojen strojne opreme tudi razvoj diagnostičnih programov za AQ, AQ-DMA razäirltve in BCLA krmilnik. V diagnostične programe uvajamo tudi dodatna sporočila o napakah v sistemu. PREHOD SEDANJIH UPORABNIKOV NA NOVI OPERACIJSKI SISTEM Pri izdelavi novega sistema je bilo tudi poskrbljeno za enostaven prehod uporabnikov iz staregfi na novi operacijski sistem. Tako mora uporabnik spoznati le nekatere nove sistemske funkcije, obstoječih aplikativnih programov ni potrebnp popravljati oziroma ponovno prevajati. Sistem je na razpolago v dveh osnovnih oblikah: - ITOS 2.1 SMD SL-156 - operacijski sistem na 3MD diskovni enoti (Storage Module Drive) izdaja SL-156 - ITOS 2,1 SHD SI.-156 COHM - operacijski sistem na SKD diskovni enoti in komunikacijskim podsistemom COMM izdaja SL-156 . Oba sistema se lahko tudi brez omejitev Instalirata na obstoječo strojno opremo, le da je sistem ustrezno konfiguriran. POVZETEK Novi računalniški sistem ISKRADATA 19 je bil KRrajen na temelju licenčnaga računalnika CDC CYBER ie-?0, ki amo m raz.^irill v skladu s potrebami naäega tržlšSa, V razvojnem oddelku naše tovarne amo za dalj 6asa angažirali vefijo skupino strokovnjakov in ti ao razvili in pripravili kompletno proizvodno dokumentacijo aa a istem ISKRADATA 19, ki ßa a ponosom in upravičeno lahko imenujemo "naš računalnik". Ser i jeko ga "bomo dobavljali v letu 1982, sedanji uporabniki C 18 pa bodo Imeli oožnost, da uvedejo novi operacijski sistem ITOS 2.1 . že v drugi polovici leta 1981. Novi računalnik bo nedvomno lahko v polni meri Eadovoljil naše aedanje in bodože uporabnike. Omogočil bo priključitev večjega števila terminalov, boljše delovanje perifernih enot in hkrati povezovanje v mreže za prenos podatkov. INFORMATICA 'BZ Parrnova 41. fi!000 Ljubljana, Jugoslavija informatica '6'i , vabilo k s B1NAHY UXTEHNM.; določa spremenljivko w, ki zasefla 10 fiksnih binariiiti lokacij (20 sosednjih zlogov). Te lokacije a o dostopne i/, vseh tistih drugih modulov, ki uporabljfijo enako določilu. Tudi določilo ik;l 1 X, 2 y (10) BIT (8), 2 z CHAR ( IN PASS 1 NO ERROKCS) IM PASS i Lista 8. Pro()r;im POZIV tin lovi knžo iipor.iliD IÌNTHY spreiTientJivk in ENTRY koti.sfmit. Z;>iiÌMi!vo Jo Uidi ohllku-v;iii)o funkci.jt? |i'(l)(X) v vrntici 16, ki k intU;ksnirn molia-nizinom closože pröistnvitev treh roKlifniti rimkcij {sin, fi in H) , funkcijn (i je Kutiiisijn Uir jo iaiiko clefinir.in:* v nekorti rirufioin modulu, tnko cl;i .sc ločoiio prev ■ Ü) FC3) ■> HJ DO I « I TO 3; PUT SKIP LIST('VSTAVI GET L1ST IN PASS 1 NO £RBDRCS> IN PASS £ PL/I-B0 VI.3 COMPILATION Of! INVERTI 1 A oooa INV« z A 0006 PROCEDURE OPTIONStHAIUJ; 3 C 0006 SREPLACE 4 C 0006 TRUE BY '1 .5 C 0006 FALSE BY '0 'Bi 6*C 0006 IREPLACE . 7+C 0006 MAXROV BY S6< e*c 0006 MAXCOL BY 40j 9 C 0006 DCL 10 C 0006 KAT(MA3CRDW*HAXCOL> FLOAT (24); 1 i C 0006 DCL 12 C 0006 FIXEDC6)J 13 C 0006 DCL C 0006 VAR CHARCSé) STATIC INITIAL 15 C 0006 ( 'ABCDEFGHIJKLClNOPaRSTUVWXyZ '>; 16 C 0006 DCL 17 C 0006 IWVEHT ENTRY IS C 0906 ltMAXBOW>MAXCOL> FLOAT(24). FIRE0{6)» MXEDH 19 C 0006 2D C 0006 PUT LtSTt'SOLUTIOM of SIMULTAMEOUS EaUATIOtJS £1 C 00IĐ DO WHILE(TRUE)J £S C aoiQ PUT SKIP(2) LISTCTYPE ROUS. C0L1MNS» ')} 23 C 0039 GET LISTCtJii 24 C 0052 IF N = 0 THEM 25 C 0059 STOPJ 26 C bù5c 27 C b0 5C GET LlSTtM); C 007S IF K > MAXROW t rt > HAXCDL THEH 29 c 0087 PUT SKIP LIST('MATRIX IS TOO LAHGE'JJ 30 C 0 0A6 ELSE 31 C 0 0A6 do; 32 C 00A6 put skip listctype matrix of C0EFFIC1E.>1TS') 33 C 00C2 put skip; 34 C 0 0 03 DO 1 - 1 TO n; 35 C 0 0E8 PUT LIST('ROW': *); 36 C 0119 GET LISTCtMATd^J) DO J - 1 TO H)); 37 C 0J73 EtlDl 36 C 0173 39 C 0173 PUT SKIP LISTCTYPE SOLUTION VECTORS'); 4« C 0I8F put skip; 41 C OlAO DO J ■ N + 1 TO «; 42 C 01B7 PUT LIST< 'VAR1ABLE'jSUBSTR(VAII-J-N^1>^ 43 C oirs GET LISTC<«ATtI.J) DO 1 = 1 TO «>>; 44 c 0S4D end; 45 C 0 240 46 C 024D CALL INV£RT(MAt.N.H); 47 C 0253 PUT SK1P(2) LIST{'SOLUTIOMS«'>; 46 C 026F 00 I " 1 TO n; 49 C 0264 PUT SKIP LISTtSUBSTR(VAR.I.l>*'=•); 50 C 02B4 PUT EDIT((tJAT(l.J) DO J = 1 TO M-N>J 51 C 0314 52 C 0314 £hđ> 53 c 0314 54 C 0314 PUT SK1P<2> LI ST('INVERSE MATRIX IS*); 55 C 0330 DO I <» 1 TO n; 56 c 0 345 PUT SKIP EDIT 57 c 03AF ((MATd'J) DO J = rt-N+J TO M)) 58 C 03 AF (X(3).6F(8'e>'SXIP); 59 c 03 AF end; 60 c 03 AF ehd; 61 c 03 AF end; 62 A 03 AF END leiv; code size = 03AF data area « 1120 FREE SYMS = 0031 CSHPILATION B_TYPE MATSIZE.LIĐ XBEPLACE MAXROV BY 26' MAXCOL BY 40; 3; Lista 9. Program INV na tej listi levo in zgoraj včitava s konzole koeficiente sistema hkratnih enačb in njihove desne strani. Vrstice 6 do 8, kj imajo za vrstičnimi številkami oznake +, so posledica INCLUDE stavka v izvirnem PLI programu; ta stavek vČita na mesta teh stic zbirko KATS12E.LIB . Vključitvena zbirka HATSIZE.LIB je prikazana na koncu te liste (glej zgoraj). Smisel vključitvene zbirke je v tem, da jo lahko vključujemo še v različne druge programe, kot bomo naredili kasneje, ko jo bomo vključili še v program INA^ERT (glej naslednjo listo). Polje koeficientov in rešitvenih vektorjev je določeno z MAT(26,40) v vrsticah 9 in 10. Vrsta PUT LIST stavkov izpiše sporočila na konzolo, kot je razvidno iz liste 11, z GET LIST stavkoma v \xsticah 36 in 43 pa preberemo s konzole koeficiente in rešitvene vektorje. V vrstici 46 pokličemo ENTRY proceduro ERT (program za obrnitev matrike), ki je PLI program z Uste 10, ki bo ločeno prevedena in kasneje povezana s proceduro INV na tej listi, ko bomo uporabili LINK ukaz. Preostali del programa natisne rešitve za spremenljivke A, B, C, ... sistema hkratnih enačb in inverzno matriko pri različnih rešitvenih vektorjih. Pri prekoračitvi obsega matrike 26 krat 40 ES natisne sporočilo o prekoračitvi (vrstica 29), kot je nazorno razvidno iz rezultalne liste 11. b^type invert2.prn V 1.3 COMPlLATiOM OKl INUERT2 dt disk print Lt LtST SOURCE PROGRAM SIWCLUDE "MATSIZE.LIB'J NO ERRORCSJ IM PASS 1 HO £RHaRC5) m PASS 2 Lista 10,:Lista na levi strani kaze pcxi-program (neslavno PLI proceduro) zn obr-nitev matrike. Kot je bilo že opisniio, so vrstice 3, 4 in 5 (znak +) posledica uporabe INCLUDE sfavka v izvirnem PLI programu, Ta podprogratn bo povezan glavnim programom INV (glej prejšnjo listo) po uporabi LINK ukaza. Pl,/I-a3 v 1.3 COMPILATIOM QF! IMVERTS t A a A 3+c tì+C 6 C 7 8 9 10 ] 1 IS 13 14 C. 15 C 16 C n C 18 19 eo 21 as 23 S4 25 26 0000 0000 0000 OOOD OO'OD OODD OOOD OOOD aooD Q023 0042 0059 OOS2 0082 0DE4 OOFA 0104 01D4 01S3 013A BI 89 01^9 OSlC Đ21C 02IC 02!C ItIVERT« PROČ SREPLACE MAXHOW BY 26* HAXcou BY i)o; dcl CD> AtMAXROV-MAXCQL)J FLOAT IZHit FIKED (0>t DO I " t TO r; s = AdfDJ PO J ° 1 TO C ~ i; A<.ltJ> ' ACIjJ+t>/DJ £ND; A<1,C) = l/DS DO K = 1 TO HJ IF K *» I THEW POJ d => A(K; TO C - i; ACK I ack^l) = eno; a INVERSE MATRIX IS 1.00 0.00 0.00 0.00 l.OQ 0.00 0.00 0-00 I.00 TYPE ROUTS' COLUMNS; 3^6 TYPE MATRIX OF COEFFICIENTS ROV 1 ROW 2 II<1.-1 ROW 3 <2*-1.0 TYPE SOLUTION VECTORS VARIABLE A (2.0.0 VARIABLE B !3.5.1.5.-1.2 VARIABLE C 12.3.4 SOLUTIOHS» A = 1.00 £.50 2.50 S ' 2.00 6.20 1.0(1 C " 3.00 7.20 0.50 INVERSE MATRIX 13 0.50 0.5D 0-00 1.00 1.00 -1.00 I.SO O.SO -1.00 TYPE ROWS. COLUMNS t 27.3 MATRIX IS TOO LARGE TYPE ROWS. COLUMNS* 0 END OF EXECUTION Lista 11, Lista zgoraj je rezultat izvajanja povezanih programov INV in INVliHT z Ust ') in 10. Ta povezava je bila izdana (generirana) kol nova CP/M zbirka z imenom INVICRT, in sicer po prevrxlu in povozavi prvotnih zbirk mVRlfll in 1NVEIÌT2 (listi in 10) . PL/I-8tl VJ.3 COMPILATION OF: OPTIMIST Dt DISK PRINT Li LIST SOURCE PROGRAM NO ERHORCSJ IN PASS 1 NO ERRORCS) ti« PASS £ 48 C DICE 49 A OICE CODE SIZE = DICE OATA AREA = 02D7 nìEE SYMS = OIBO EHD COMPILATI OiJ ejd optimist; PL/I-60 VI-3 CCMPILATIfflJ DF« OPTIMIST 1 A DDOO OPTIMISTI s A 0006 PROČ OPTiaMStMAUn; 3 C DD06 SREPLAC E 4 C 0006 PRAVILNO BY '1 'B. 5 C 3006 NEPRAVILtiO BY '0'B» 6 C 0006 NBESED BY 17 J 7 C 0 0 06 DCL e C ĐDD6 NIKALNO STATIC liJITIAL 17 C 00116 C 'ABCDEFGHIJKLKSNOPSRSTUVWXYZ» J ')» IS C 0 0 06 MALE CHARC32J STATIC I.-ilTIAL 19 C 0006 t 'ABCDEFGHIJKLMNOPaRSTUVWXYZ.J i-. ')} 2D C 0006 DCL 21 C 0006 POSLAIJO CHARC254) VAR» as C 0006 BESEDA CHAR(64> VAR; 23 C G006 DCL £4 C D0D6 (i>j) fixed; 25 C 0006 Zfi C 0006 DO WHILE(PRAVILNO); 27 C 0006 PUT SKIP LISTC'KAJ SE DOGAJA? '); sa C 0 0 22 POSLANO = ' '»• 29 C 002F DO UHILE 3D C OOSC t CSUBSTRtPOSLANO»LE;4GTH(POSLAWO)) 31 C ODSC ) "= '?'3>; 33 C OO0C GET LIST (BESEDA); 34 C OaA6 POSLAtJO = POSLANO ! 1 ' ' ! I SESEDAJ 35 C OOC9 end; 36 C 00C9 POSLANO = TRAi>ISLATE(POSLANO»iiALE» VELIKE); 37 C DDEC IF VERIFYCPOSLAWO.MALE) *= D THEiJ 38 C 0103 POSLANO - ' TO JE ZANIMIV PRIMER.'; 39 C 0110 do i = 1 to nbesed; 40 C 0122 J INDEX; 4! C 0137 iF J *= D THEN 42 C D140 POSLANO = SUBSTR(POSLA;JO»1»J-1) M 43 C đ19d TRDILNOCI) M 44 C 019S SUB5TBCPOSLA.jO» J+LE.JGTHCNIKALiiOcn3 45 C 019d ElJD; 46 C ai9d PUT L1ST<'KAJNE DA»' 1! POSLAiJO); 47 C OJBA PUT SKIP; ii Lista 12. Programska Usta na levi strani in zgorej opisuje program, ki daje na pesimistične odgovore uporabnika optimistične izjave v sioven-skem jeziku. Ta program je tako poseben primer t.im. dialognega sistema ter nakazuje tako možnosti programiranja podobnih sistemov. A.OPTIMIST KAJ SE D0QAJA7 ' NEj' NIH?E VAM NE BO ODGOVORIL. KAJNE DA< DA, NEKDO VAM BO ODGOVORIL. KAJ SE DO GAJA ? KDOR POZNO 'VSTAJA. ' NE DELA Z VES EL J Eil. KAJWE DAo KDOR ZGODAJ VSTAJA» DELA Z VESELJEM. KAJ SE DOGAJA? NIKOLI NISMO NlC TAKEGA TRDILI: NIHČiE NE 2:NA. KAJNE DA, VSELEJ SMO NEKAJ TAKEGA TRDILI« NEKDO ZMA. KAJ SE DOGAJA? NEKAJ TI NE 'POVEM»' DA NE floS MISLIL SLABO. KAJME DA, KAJ TI POVE^j DA BOS MISLIL SLABO» KAJ 5E DOGAJA? KAKSeN NESMISEL SE NE BO SMISLA. KAJNE ĐA> KOLIKSEN SMISEL ŠE BO SMISEL. KAJ SE DOGAJA? TRISTO KOSMATIH) KAJNE DA» TO JE ZANIMIV PRIMER. KAJ SE D06AJA? NESTROKOVNO NI EWAKO WEUSPE2NEMU. KAJNE DA» STROKOVNO JE ENAKO USPESNEMU. KAJ SE DOGAJA? KAJNE DA/ DA> ne» DA» ».» NIMA»»» SMISLA»»». t IMA IMA nima SMISEL SMISLA SMISLA KAJ SE DOGAJA? NIKOLI NISMO 'NEPRESPANI»' KER ZGODAJ VSTAJAMO. KAJNE DA» VSELEJ SMO PRESPANI. KER ZGODAJ VSTAJAMO. KAJ SE DOGAJA? "C Lista 13. Ta lista kaže izvajanje programa, ki srno ga poklicali v izvrševanje z ukazom OPTIMIST s konzole. Program se javlja z vsakokratnim vprašanjem: Kaj se dogaja? Pesimističnemu odgovoru uporabniku sledi optimističen odgovor programa. V osmem primeru so prikazani tudi stranski učinki programa {uporaba več zaporednih vejic). Iz izpisanega teksta na Usti je moč razpoznati tudi natančnejše delovanje programa. tera ruzmerja se pojavijajo večkrat (npr. ne - pi;szno srj pojavi štirikrat), zalo dti imamo v oh) i kova ne m stavku večkratno možnost substitucije. Program ne nelia spraševati in DO /■„-mkn med vrsticami 26 in 4B ae konča z znakom coritrol-z nti s control-c na začetku vhodne vrstice. Izhodni stnvek se oblikuje med vrsticami 28 do 32, ko DO zanka včitavn besede ter jih slika no konec obstoječega teksta SlJBSTR preizkus nn začetku DO WHILE zanke preizkuša na piko, klicaj ali vprašaj, ki je na koncu stavka. Pri tem je maksimalna dolžina stavka enaka 251 znakov (dodatni znaki se ne upoštevajo) . Ko je bil stavek v celoti včitan, se vse velike črke prevedejo v male, tako da je mogoče razpoznati nikalne besede. Ta prevod se opravi z vgrajeno funkcijo TRANSLATE, liot kaže vrstica 36. V vrstici 37 se uporablja VElüfY funkcija, ki zagotavlja, da je stavek sestavljen samo iz črk, nekaterih znakov in pike. Ce ta pogoj ni izpolnjen (npr. da imamo nekje "!"), odgovori program s stavkom Kajneda, to je zanimiv primer. Kadar vrne VERiFY funkcija vrednost nič, vsebuje stavek samo (prevedene) male črke, nekatere znake in piko. V tem primeru se izvrši DO skupina med vrsticama 39 in 4Ü. Pri.vsaki iteračiji se uporabi INDEX funkcija za iskanje naslednje nikalne besede, ki je določena z MIK ALNO (I) (vrstica 40). Če je taka beseda najdena, se J postavi na položaj nikalne besede in se beseda v prireditvi vrstice 12 zamenja z ustrezno pozitivno (trdilno) besedo. V tej prireditvi je SU13STR (POSLANO, 1, .1-1) tisti del stavka, ki se je oblikoval pred nikalno besedo; nadalje je C_TYPE KOPIRAJ.PRM TIÌDILSIO (1) nadomestna vrednost xa nikalno besedo in SUBSTR (POSLANO, J + LENGTH (NIKALNO (i))) je del stavka, ki sledi nikalni besedi, ki je bila v!nnie-njana. Stik teh treh segmt^ntov je nova oblika stnvka, kjer so bile vse (deklarirane) nikalne besede zamenjane z ustreznimi trdilnimi (nenikalnirni) besedami. Ker zoi-cenjajo vse nikalne besede z vodilnim presledkom, so lahko najdejo nikalni deli samo na začetkih besed. Tako se naprimer "nesposoben" zamenja s "sposoben" ali "ničvreden" z '.'nekajvreden" itn. Program OTOMIST pošlje oblikovani stavek na kon-zolo ter čaka na lüislednji stavek s konzole. V. programu OPTIMIST so mogoče tri izboljSavo. Če prekoračimo pri tipkanju s konsiole 254 znakov, se razpoznavanje vhodnega stavka ne bo končalo, ker progratn ne more najti pike. Zato je priporočljivo, da vgradimo v program preizkus, tako da ne prekoračiiVio maksimalne dolžine vhodnega stavka. Vključimo lahko tudi ON enoto, ki bo zaznala konec zbirke, tako da se bo profjram konča! na primeren način. Seveda pa jc mogoče predelati program OPTIMIST tudi tako, da bo zmogljivej.ši od obstoječega. Iz programa OPTIMIST lahko brez večjih težav naredimo program PESIMIST, če v listi 12 medsöbojno zamenjamo vrstice 9, 10, 11 K vrsticami 13, 14, 15. 12. Primeri z obdelavo zbirk Obdelava zbirk sodi prav gotovo med najzanimivejše primere slehernega progrnmirnega jezika. Uporabnik si skorajda vselej želi, da hi se tudi njegova konkretna obdelava podatkov shranila v obliki zbirke na disketi, čeprav dobiva rezultat na odgovore na konzoli ali tiskalniku. Ta ugotovitev velja še zlasti za kompleksne obdelave, ki jih ne želimo ponavljati in seveda z.i obdelave z velikim številom podatkov. Oglejmo si nekaj zanimivih jirimerov. PL/1-80 VI.3 COMPILATION OFt KUPIHAJ D( DISK PRINT Li LIST SOURCE PROGRAM NO E.nR0R ■) : ÜPEM KILE HZKOD) STREIAM OUTPUT ENV(B(8I92>> TITLEt 'J2.t2'J J DCL VRSTICA CÌIARC25')) UAHtVINGJ £«D DO WHlLEt 'I 'a)i READ FILE C VHOD) «RITE FILE (IZHOD) ENDI KOP IRAJI INTO (VRSTICA)i FROM (VRSTICA) J SliE AREA S VMS 0D73 0109 D34B COMPILATION Lisia 14. l.ista na levi prikazuje program za kopi ratije ene zbii'ki; na driigo. V CP/M sistemu so kot zbirka smatrajo tudi podatki, ki se sprejem,ijo iz ali oddajajo v pfjrifernD naprave. Vhodna ini(>nska zbirčna spremenljivka je .21, izhodna pa Ü2S2, ko se VilUD kopira na IZHOD. veže notranje zbirčno Ime k zunanjimi CP/M nčipravumi in zhirkami. Prvo zbirčno ime postane tako itne zbirke, vtipkano s konzole, preden se program KOPIRAJ začne izvajati (oznaka .^fl). Podobno se vtipka v ukazno vrstico tudi drugo ime (oznaka $2.jÌ2), tako da imamo vobče direktivo: KOPIRAJ tMEl .TIP IME2 TIP ko se zbirka IMEl .TIP prepiše v zbirko tME2.TIP. Vhodna zbirka mora obstajati, izhodna zbirka pa se izbriše, če že obstaja in ponovno oblikuje. Ta program kaže tudi posebno uporabo READ in WHITE stavka prt obdelavi STREAM zbirk: vrstica 15 bere STREAM zbirko v vmesnik VRSTICA , ki je dolžinsko spremenljivi znakovni niz. Vhodna vrstica do naslednjega vrstičnega pomika se včita v VRSTICA in dolžina spremenljivke VRSTICA se nastavi na včitano število podatkov, vključno a znakom za pomik vrstice (LF). Naslednji stavek opravi nasprotno dejavnost: WRITE stavek pošlje podatke iz VRSTICA v STREAM zbirko. Izhodna zbirka sprejme tako vse üiiake od začetka VRSTICA do trenutnega konca, ki je LENGTH (VRSTICA ). Program se konca, ko v vhodni zbirki včita STREAM konec, tj. znak CONTROL-z. V tej točki se vzpostavi END OF FILE stanje in izvajanje programa se ustavi. Vse zbirke se avtomatično zaprejo, spraznijo se notranji vmesniki in ohrani se novooblikovana izhodna zbirka. Lista 15 kaže primer izvajanja kopirnega programa, ko imamo ukaz KOPIRA; KOPIRAJ.PLI 3CON Tu je KOPIRA J.PLI vhodna zbirka, sistemska konzola je pa izhodna zbirka (^!CON). Rezultat tega ukaza je listanje zbirke KOPIRAJ.PLI na terminalu. Npr. ukaz A_aBLIKUJ PROGRAM ZA OBLIKOVAMJE IMEW 1W NASLOVOV.«. IME ZBIRKE t NASLOVI.MAS IME <12) i *DR. AMTOW P« PRIIMEK CSäiS ZELEZMIKAR ULICA S ŠTEVILKO CAPOSTOf)C30)i POST.ŠTEVILKA (10>l 61000 KRAJ CSSli LJUBLJANA DRŽAVA <25)1 SFRJ TELEFON tl5)) *<06U 312-938 TELEKS C J S) I '31366 YU DELTA IME (12): 'PROF. JOHH F. PRIIMEK (22)1 ARRQWSMITH ULICA S ŠTEVILKO (APOSTOF)(30)1 POST.ŠTEVILKA (10)« 0123« KRAJ C2S)> 'NEU YORK DRŽAVA C2S)i 'NEW YORK^ U.S.A. TELEFON C 15)! )CYZ-1234567890 TELEKS » 061-22-33-44 TELEKS (IS)« IflOOl-YU-ANTENA IME (12) t KONEC END OF EXECUTION •PARMOVA C. 41/11 'THIRD AVE. 55A4 •V DOLIiMI 25 KOPIRAJ D_X.DAT B_y,jNOV bi prepisal zbirko X.DAT iz diskovncii.i por.iojiM I!) v zbirko Y.NOV diskovnega pogona fl. Lista 17. I'rocjram OlilJKUJ z liali'; lf> (na nnslpdnji str.s-ni) sft iž:v;i]a v sixiclovniiju s konzolo, ko se vsLovi (določi) ime; zbirke, riiito |->n so vstavij.-ijo we podatki, dokler se ne poj.ivi ime KONEC , D_KOPIHAJ KOPIRAJ.PLI' tCON KOPIRAJ« PROČ OPTIONSCMAINJJ DCL (VHOD^IZHOD) FILE) OPEN FILE (VHOD) STREAM ENV(B(8192)) TITLEC 'SI.SI '>} OPEN FILE (IZHOD) STREAM OUTPUT EWV{BC8(9a)) T1TLE('»2.S2')J DCL VRSTICA CHAR(254) VARYING; DO WHILE( '1 'B); READ FILE (VHOD) INTO (VRSTICA); WRITE FILE (IZHOD) FROM (VRST I CA)i EN D j END KOPIRAJ! END OF FILE (3)^ FILE! VHOD=KOPIRAJ. PLI TRACEBACKI 044B a3AF 0135 END OF EXECUTION Lista 15. Gornja lista kaže primer upurabe programa KOPIRAJ iz liste 14, ko se vhodna zbirka, 1 .j. izvirni program KOPIRA ! .PIJ, kopira na konzolo (^CON). Zbir-čna imenska parametra sc; pojavita v ukazni vrstici. ^^'iiJsJüyii iiiii-ii^is iL'J.'L'is2}2yji'ii ii*!!*!]! V tetn pixlpoglavju si oglojmo dva uixjr.ibna progr.T-m.i, ki sicer za obllkovaiijc (OUl.lKUJ) in razpoznavanje (RAZPOZNA) zbirke imen in naslovov. OBLIKUJ prog -ram naj oblikuje STREAM zbirko posameznih imrn in n.-i-slovov, dostop do teli pod.-stkov pa imejmo prok profjraiiiM RAZPOZNA . OBLIKU.) proornrn v tisti 16 vsebuje [WMlatkovnu strukturo ZAPIS, ki s svojim formatom določa ime, prilmok, ulico, poštno Številko, kr.-ij, dri/.avo, telefon in teleks. Prek konzole si> vpi5e vsak od nriv€.-denili pofkitkov v zbirko, dokler upornbnik nn vtipka imena KONKC . Seveda morala imeti oba profjrümn (OBLIKUJ in RAZPOZNA) enako ZAPIS strukturo. Zalo bi lahko to strukturo liefinirali s posebno zbirko (nn disketi) npr. z itnenom ZAPIS,liCL, v oba profjiania pa bi jo vkl jučili na ustreznih mestih s stavkom % INCLUDE ' ZAPIS,IJCL'; V progranui liste 16 se vstavi ime zbirko prok kon-siolc s Slavkom v vrstii:! 26, pri o VAR; SREPLACE HEPRAVIL.JO BY 'Ü'B, PRAVIL.JD BY 'I'B; OCL l^HOD FILE," DCL 1M£_ZBIRKE CflARClii> UARYI-ìG; DCL Ktt^EC.ZBIRKE BlTCn STATIC liJITlAL fi'JEPRAVILiJOJ ; pltt LISTC 'PROGRAM 2A OELIKOVAhlJE IrtEig IiJ'); PUT SKIP LIST<- ;JA5L0V0V-.. IrtE ZBIRKE t '> : GET LIST<1ME_ZBIRKE)J OPEiJ FILEC IZHOD) STREAM OUTPUT TITLE CHE^ZBIRKE); DO tfHILE <"ü0.gEC.ZBIRtlt) J PUT £K1P<3) LlSTt 'IME (12)j ; GET LIST(Ii1£)J KONEC_ZBIRKE = < IME = 'KO.JEC'); IF "KONEC.ZBlhKE THEiä DO J /• izpisi navodila za vpis s kot^jzole put listcpf.iihek <2£>! get list{priimek); PUT LIST('ULICA S ŠTEVILKO CAFOSTDF)<30): GET LISTCULICAJi put listc'post-številka (10): 'j; GET LISTll VRH .JAD LOKO ' 'JUGOSLAVIJA' '061-22-33-44' '1 D001-YU-AIJTBJA' 'KOUEC ' Lista 18. Oblikovana zbirka NASLOVI..\A5 je biki dobljena z izvsijanjem programa OBLIKUJ 2 liste 17. iCot je razvidno, je zbirl^ii lip.i SIREAM iti vsak elemerst ZAPISa je samostojen znakovni niz. Vsak zapis je setio^ljen natanko iz osmih, po dolžini spremenljivih nizov. Ta pwiatkovni fortngt bo laiiko upoštevan tudi v programu za razpoznavanje v listi 19, Zbirka ,\'.iS je bila izjiisana s TVPE ukazom in njen prikaz je natančno njena slika tio disko'ti, pl/i-80 vi-3 compi lati dm oft razpožna Dl DISK PRINT lt ust source proqram A^RAZPOZNA razpoznavanje imem in naslovov ime zbirke« naslovi.was NO ERROR IN PASS 2 vpisi spodnjo in zgornjo mejol n PL/I-eO VI.3 COMPILATION OFi RAZPOZMA I S 3 4 5 6 7 e 9 io u 12 13 14 15 16 17 18 19 äi 21 22 S3 SU 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 46 49 50 B1 ss 53 54 55 56 57 S? 59 60 61 62 63 64 65 66 67 68 69 code data free end 0000 DODO 0000 SODO DODO SDOO 0000 0000 0006 0 0 06 Q006 0006 0006 0006 0006 0006 0006 0006 0006 0006 0006 0006 0006 0006 0006 0006 00Ó6 0006 0006 0022 0039 OOSS 00 6F l)06F 007B 00 87 ODAS ooa3 OOCB 00d9 sodo oodc 00f7 oflf7 00f7 oofc 0103 0120 0132 0139 0139 oiaa oiaa oiaa d1c7 oict 01c7 olea olea 0204 0232 024c 0271 0 299 0 299 0 299 0299 a2a2 02A2 • PRIMER #6' A.P.ZELEZN'IKAH • DATUrtt 31.3.1981 • RAZPOZNAVANJE IN TISKANJE IZ ZBIRKE • IMEM IN NASLOVOV RAZPOZNA« PROCEDURE OPTIONS (MAIN); DCL 1 ZAPIS* 2 IME CHAR C12> VAR< 2 PHXIMEK CHAR (22) VAR. 2 ULICA CHAR <30) VAR* 2 POSTNA.STEVILKA CHAR (10) VAR« 2 KRAJ CHAR (85) VAR> 2 DRŽAVA CHAR (25) VAR« 2 TELEFON CHAR (IS) VARj 2 TELEKS CHAR (15) VAR; IB EPLACE PRAVILNO BY '1 'B, NEPRAVILNO BY '0'B; dcl (sysprint. vhod) file; dcl tme_zbif1 get list ; do while (pravilno); spodnji = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; zgornji :: 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'; put skip (2) list ( 'vpisi spodnjo in zgorivjo mejol '>j get list (spodijji. zgornji); if spodnji = 'konec' then' stop; open file (vhod) stream input environment (b(l024)) title (ime.zbirke); konec.zbirke = nepravilno; do while ("konec.zbirke); get file (vhod) list (ihe>; konec.zbirke = (ime =' 'konec') ; if "kamec.zbirke then do; get file (vhod) list (priimek. ulica« postna.stevilkà. kraj« država« ijelefon« teleks); if priimek >= spoonjl « ' priimek <= zgori^ji then do; put skip (3) list (ine.priimek); put skip list (ulica); put skip list (postna.stevilka«* '> put skip list (država); put skip list ('telefoni'. telefon) put skip list ('telejit*. teleks); emd; end; end; close file (vhod); end; end razpozna; DR. ANTON p. ŽELEZNI KAR PARMOVA C. 41/11 61000 LJUBLJANA SFRJ TELEFCMl (061) 312-986 TELEX. 31366 YU DELTA prof« john f arr0wsk1th third ave. 5544 01234 new york new york« u.s.a. telefcw« XYZ-1234567690 telexi 96765432-w adam jabolko v dolini 25 69999 crni vrh mad loko jugoslavija telefoni 061-22-33-44 telex! loool-yu-antena vpisi spodnjo in zgornjo mejot a«i PROF. JOHN F ARROWSMITH THIRD AVE. 5544 01234 NEU YORK NEW YORK« U.S.A. TH-EFON: XYZ-1234S6789D TELEXi 98765432-W VPISI SPOI^JO IN ZGORNJO MEJOi KONEC « . END OF EXECUTION Liala 20. Zgoraj vidimo Izvajanje programa RAZPOZNA , Ko vpišemo s konzole ime zbirke ter spodnjo in zgornjo mejo (glede na priimek), se podatki izpišejo. Pri dveh vejicah na meji se izpiše celotna abirkn, pri mejah A , 1 pa samo ppiimiki med A in I. Program končamo, ko vtipHamo na meji KONEC in dve vejici. KRAJ); ; SIZE a 02A2 AREA = 0190 SYMS = 0 06D COMPILATION l.isl.i 19, l'rof|i :iin HA/,IW,NA no levi, rabi za rnKpoKii.-ivanjo ( i'/.pisovan jenih podatkov 1k poljiiljno zbirki.', ki je biln dLiI i kovana s pro-graiiiojM triij pod- ročje ( priimkov) . Ometiirno še, d^i je bila SySPitlN'i' zljirka u.!|J! (n oks-pHcitno s l'ÜINT prid'-vl;i>in v vi stici 29, da .smo lako nazorno pokazali obliko res^Ailtii\ijrire(ia izhoda. Ta sfavek je namreč odvečen, ker ima Pü'i' stavek v vrstici 30 tiiili ta učinek. 13. Uporaba PICTLl HE formata V tem poglavju si na kratko oglejmo t .im. PICTURE format izhodnih podatkov, ki je implementirali v jeziku PL/I-80. Ta format je usklajen z ANSI PL/1 staiidardom. (Subset G) , lì; Sii'ül^ä.'Uii'yi! !i^J°rir Ota PICTURE podatkovni format se uporablja za urejevanje numeričnih podatkov s fiksno decimalno vcjico. Vrednost takega urejevanja je znakovni niz, katerega oblika je določena z numerično vrednostjo in s PICT'UliE specifikacijo. Sintaksa tega Tormata je P ^picture specifikacija) kjer je picture specifikacija nizna konstanta, ki določa PICTURE specifikacijo. Tak format se lahko Ufjorablja v PUT EDIT stavku podobno kot drugi formati. Znakovna nizna konstanta za opis PICTURE specifikacije je sestavljena iz enega ali več naslednjih znakov g + * Z V f , - CR DB - S statični ali pomični znaki pogojna številčna znaka številčni znak znak položaja decimalne vejice vstavitverii znuki kreditni in dolžniški znak ter tnora izpolnjevati določena sintaksna pravila. Vsta-vltveni znaki se lahko pojavijo kjerkoli v veljavni {picture specifikacija) , toda ne smejo ločevati znakov PICTURE znakovnih parov CR in DIJ. Če odstranimo vse vstavitvene znake iz specifikacije, mora biti preostali niz sprejemljiv za (nedeterministični) končni razpoznavnik na sliki 3. Neoznačene poti pomenijo prehode, ko nobenega znaka v specifikacijskem nizu ne upoštevamo. Veljavne PICTURE specifikacije so npr.: 'B B Jf **V.99UB' 'S----, 999V ,99BCR' '99 : 99 ; 99' 'if*/**-/**-' ' ; H U t) S S S S S, S S S.V S S B B B : ' l'I: Se m^n^i {dSJ or m ata. PICTURE specifikacija uredi numerično vrednost v znakovno nizno vrednost z uporabo posaimeznih tipov PICTURE znakov v specifikaciji. Znaki '3*, ' + ', '-' in 'S' so statični ali pomični znaki. Tak znak je statičen, če se pojavi samo enkrat v PIC TURE specifikaciji, sicer je pomičen. Pri pomičnem znaku ustrezajo vse njegove pojavitve z izjemo ene pogojnim številčnim položajem. PIC~ TU lil! znaki določajo izhodni znak skupaj s predznakom numerično vrednosti in ta znak je dan s tabelo 1 in zaseda en sam položaj v izhodnem podatku. statični / nosil ni /.nnki znak S + _ 3 poz. + f 1 » % neg. - < 1 - I'ahela 1 Če j« PIC TURE znak stntlčert, se bo izhodni znak pojavil nn ustreznoiTi polo/.aji,) (mostu) izhoda. Če je PIC-TUKfS podatek primiren, se liri izhodni znak pojavil natanko Gill) mesto prrjil iiofiičto številko, nad katero se PICTURE 42 lA^BreK podatek pomakne, ali pa se bo pojavil nad zadnjim mestom, nad katerim se pomika. Vse druge pojavitve pomičnega znaka bodo nadomešcane s presledki skladno z opustitvijo ničtih številk v numerični vrednosti. Znaka ' * ' in 'Z' imenujemo pogojni številki PICTURE znglcov ali znaki za opustitev ničle. Vsak tak podatek je v PICTURE specifikaciji ppvezan s številko nume-rične vrednosti, V izKodu dobimo za vsako ustrezno številko nič izhodni znak ' * ' ali ' ' . Če je ustrezna številka neničelna, se na izhodu pojavi številčni znak. PJCTUHE znaki 'B', V , '. ' , ' : ' in ', ' se imenujejo vstavitveni (znak ' : ' ni vstavitven po ANSI standardu, vendar je bil dodan v PL/I-80 z.a prikazovanje nume-ričnih podatkov, ki predstavljajo čas). Vstavitveni karakterji se preslikajo sami vase na ustrezne položaje izhodnega podatka (B se preslika v presledek), če se pri tem kakšen vstavitveni znak ne pojavi v polju pomičnega znaka ali znaka za opustitev ničle. Kadar se vstavitveni znak pojavi v polju pomičnega znaka ali znaka za opustitev ničle, ki bi povzročil opustitev numerične Številke, se opusti tudi vstavitveni znak skladno s prejšnjimi pravili. V nekaterih implementacijah je 'B' brezpogojni vstavitveni znak in povzroči vselej presledek na ustreznem položaju izhodnega podatka. Po ANS! standardu se lahko taksen presledek prepiše (nadpiše) s pomičnim znakom ali z ^akom ' za opustitev ničle, PICTURE znak '9' v PICTURE specifikaciji določa, da se bo ustrezna številka numerične vrednosti pojavila na ustreznem mestu izhoda. Tako je '9' brezpogojni številčni položaj. Korespondenca (relacija) med številkami numerične Vrednosti v PICTURE specifikaciji se določa s PICTURE znakom 'V . Ta znak rabi za določitev mesta, kjer se končuje celi del in se začenjajo številke ulomljenega dela In tako določa razvrstitev znakov v numerični vrednosti glede na PICTURE specifikacijo. Če se ta znak ne pojavi, se predpostavlja, da se vsi številčni položaji PICTURE + J < 1- cc, J>S _ Slika 3. Ta slika prikazuje sintaksni razpoznavnik PICTURE formata potem, ko smo Iz niza PICTURE specifikaciji odstranili vstavitvene znake (/, . ; B) . Speciftkacijski niz vstopi v razpoznavnik v točki ZAČETEK, ko se najprej razpoznava nizni oklepaj ( ' ), nato ostali znaki, ko Imamo tik pred točko SPREJETJE še nizni zaklepaj ( ' ). Če se postopek izide, je niz sprejet, sicer pa ga bo sintaksni analizator prevajalnika označil kot napačnega. specifikacije nanašajo na številke celega dela (ne ulomljenega) in se zaradi tega v numerični vrednosti ne bodo pojavile na izhodu številke ulomljenega dela. Pri tem PICTURE znak 'V' kot edini ne vpliva na kakšen znakovni položaj rezultata. Tako je dolžina rezultata enaka dolžini PICTURE specifikacije, v kateri se 'V ne pojavi, toda je za en znak krajša, če se 'V pojavi. Očitno ima 'V tudi učinek opustitve znakov. Ulomkovne številke, ki ustrezajo položajem za znakom 'V se tako ne opustijo, če se ne opustijo vse ulomkovne številke. Splošno velja, da se za znakom 'V uvede ukinitev opustitve (torej se številke pišejo), če je poprej opustitev veljala. Vstavitveni znak za znakom 'V, kot je npr. decimalna pika, se ne opusti, če se ne opustijo vsi znaki za 'V . Znaka 'CR' in 'DB' pomenita 'kredit' in 'dolg' in sta v bistvu predznaka. Če se eden od njiju pojavi v PICTURE specifikaciji in je predznak numerične vrednosti negativen, potem se bo specificirani'par pojavil v rezultatu. Če pa je numerična vrednost pozitivna, se boäta na ustreznih mestih za ta znakovni par pojavila dva presledka (to se vidi v kasnejšem primeru). Dodatno k navedenim pravilom, obstajajo tudi izjeme, Če je numerična vrednost enaka nič inče PICTURE specifikacija ne vsebuje znaka '9', se bodo v izhodnem podatku pojavili sami znaki če se seveda '*' pojav- lja kot PICTURE znak; sicer se bodo pojavili v izhodnem podatku sami presledki. To pravilo je prednostno gJede r« prejšnja pravila. Kadar je predznak numerične vrednosti negativen in če ni nobeden od PICTURE znakov v specifikaciji enak znakom S, +, -, CR ali DB, se bo pojavilo sporočilo ERROR (1) ali sporočilo o konverzijski napaki. Vsaka PICTUR&specifikacija povzroči natančnost in obseg numerične vrednosti v rezultatu skladno z naslednjimi pravili: Vstavitveni znaki in znakovni pari za CR in DO ne vplivajo na natančnost in obseg. Razen tega bo natančnost rezultata za eno manjša kot je število statičnih/pomičnih znakov ali kot je število znakov za opustitev ničle plus število znakov '9' . Obseg rezultata bo nič, če se 'V ne pojavi. Če pa se 'V pojavi, bo obseg rezultata enak Številu pomičnih znakov ali številu znakov za opustitev ničle ali številu znakov '9' za znakom 'V. Lista 21. Program (oziroma zbirka) PICI .PLt tia des tli določa osem vhodnih vrednosti A(l) (1=1, ••• .«K W jih bomo med izvajanjem programa vtipkali s konzole, tri for m atne vrednosti Đ{J) (J = 1,2,3) in nizno vrednost C (Din) . Vsaka vtipkana vrednost se bo izpisala • v treh formatih, kot določajo trije PUT EDIT stavki. C.TYPE PICl.PLI PICI! procedure optxons CHAKOO) VAB STATIC INIT C CHAHO) STATIC INIT ('DIN')* I FIXEDi PUT SKIP LIST ('VPISJ 8 VHEDl^(ÜSTl ! ') I PUT SKIP) DO 1=1 TO BJ PUT LIST t'VREDNOST I* '(FORMAT 10/B) I 'i! GET LIST (A{I)>J en dj PUT SKIP LIST ('PRIMERI PICTURE PODATKOVl'>; DO 1=1 TO 8; , PUT SKIP EDIT (a{i)>b(1>*Cja(I)) PUT SKIP EDIT (A(I>*a(S)>A(I)> PUT SKIP EDIT (A(I)#B{3>*C»A(I)) (f( 10*2)icol( 15)/a(20j-ao)*p'/++*+++■+++/v++/'>; end; end pici; D.PiCl VPISI 8 VREDNOSTI» VREDNOST I VREDNOST S VREDNOST 3 VREDNOST 4 VREDWOST 5 VREDKOST 6 VREDMOST 7 VREDNOST 8 (FORMAT 10* 2) J (t. 00, (FORMAT 10*2>l -0-12 (FORMAT 10*S)t 1.231 (FORMAT 10*2)t -12.34 (FORMAT I0*a)i 123.^5 (FORMAT IO*e>l (FORMAT 10*a)> -123^.S6 12346.67 (FORMAT 10*8)1 -123456.78 PRIMERI PICTURE PODATKOV) 0.00 BBS»»***».»»*V*99BB DIN D.ODD s««.»»*,**«v**CR D.OO /+++*+++.+++*V++/ DIN -0.12 BBS»«**«*.*»*V-99BB DIN -0.120 -0.12 /+++*+++,+++,V++/ DIN/ 1.23 BBS«*****.***V*99BB DIN 1.23.0 j»»,»»»,»»»v»»CR 1.23 /♦++*♦+♦.+++* V<-+/ DJtt/ -12.34 BBS*«***«.*««V*99BB DIN -12.340 J#*.»«*,**»V**CR -12.34 /+++*+++,+++,V++/ DIN/ 123.45 aBS*«****.«*»V*99BB DIN 123.450 •••v**CR I S3.45 /+♦+,+++.+++*V++/ DIN/ -1834.56 eBS******.*»*V*99BB DIN -I234.S60 $»«.»»**«"V**CH -1234.56 +++,v++/ DIN/ 1234S.Ć7 BBS***»««.**«V*99flB DIU 12345.670 t»*.**»****V*»CR 12345.67 /+++*+++.+++*V++/ DIN/ -123456.78 BBS***V*99BB DIN -123456.780 t»«.•»•v»»CR -123456.78 /+♦+,+++,+++*V++/ DIN/ E^D OF EXECUTION .00 -•*•*••••••*12 s******»***iacR 12/ **********1*23 <■1*23/ '»•»•»•••»IgS^lCR 12*34/ 123,45 , $*******1234S. +123*4 5/ -«••»»1.234*56 S**»«*1*23456CR 1.234*56/ +»***12.345*67 S*»»»12*345Ć7 +12.345*67/ -***1S3.456*!'78 S***123*45081;R 123.456*70/ J V i me !_u_]5or ab^ 2' [f'™']! ll-i l'lCTtJR!: fi)i:iiiiit so uporablja zfi peikčii-.nvriuje poslovnih ixxlatkov . Možnosti njeyove unoi ;iti(- so /j Iu vay.novrst-ne, kot je r,-izvkJno iis sintaksjiega (lia.jrnin.-i iim sliki ü. Lista 21 kM?.(-i profjrriiD zt\ l?,pi£ titìli r.ii-liriiiii l'ICì'UHi; formntov l'.a vsakukratnih osem vrednosti, ki jiii vpistjiiici s konaole. Lista 22 kazi> iKviijnrijo firoiji am.i 1'ICl , 1'ocir ol.i-nej.ša pojasnila so duna v opislii Usi 21 iii 32. Lista 22. Lista na levi kaže Izvajanje programa PiCl. Najprej se pojavlja osem s konzole vpisanih vrednosti, ki smo jim izmenično spreminjali predznak. Za vhodno vretinost -123456.78 dobimo tri formatirane rezultate, in sicer -*itH23 .456 ,78, f!*il-»123,45678CH in/ 123 .450,78/. V vsaki vrstici imamo vrednost s konzole (format F(10,2) ali F(ll,3)) ter formatno in formalizirano vrednost ■ fJodatna literatura (20) .Schulz, Höhere PL/l-Programmierung, Zal. Walter de Gruyter, Berlin, New York, 1976 (214 strani, mehkovezana, visok stavek). Knjiga opisuje višje, vsekakor pa posebne, izbrane primere programiranja v jeziku PL/1 . Najprej uvaja formalna jezikovno sintakso, in sicer predvsem t.im. visoko sintakso, doćim srednjo in nižjo le omenja. Temu sledijo primeri iz konverzije podatkov, obdelave seznamov, hkratne obdelave programov (multitasking) ter primerjave strukturiranega programiranja s procjramskimi strukturami jezika l'l./l, Knjic).i le pisana strogo, natančno, poučno, skratka strokovno in razjasnjuje manj znana pofjlavja s področja PL/1 protra m ir an j;i . (21) A.Schulz, Hinfüliruiig in das Programmieren in l'l. 1, /.al. Walter de Gruyter, Berlin, New Vork, 1975 (306 strani, mehkovezana, visok stavek). i)elo je uvod v l'l./l programiranje za bralca v nemškem jeziku. INFORMATICA 2/1981 MALI RAZVOJNI SISTEM ZA MIKROPROCESOR 68000 M. ROGAČ, D. HAFNER UDK: 681.3-181.4 ISKRA ELEKTROMEHANIKA TOZD RAČUNALNIKI KRANJ Članek opisuje delovanje In uporabo laalefp. razvojnega aistema, ki temelji na mikroprocesorju 6B000. Sistem Je pooienben za. razvoj ve£jih mikroraCunalniSkih siatemov, zasnovanih na 16-bltnem mikroprocesorju 68000, Razvojni alateni je bil vkljuSno s aistemelcimi programi raavit v ISKJÌI, TOZD Računalniki Kranj. SMALL DEVELOPMENT SYSTEM FOR MICROPROCESSOR 68000: This article describes operation and use of Snail development system, "baaed on microprocessor 68000. Snail development ayatem is very important for further development of microcomputer systems, based on 16-bit mier opr oceasor 68000. Development aystem and ayatem software were developed in ISKRA, TOZD HaCunalniki Kranj. 1 . UVOD 2. ZGRADBA MALEGA RAZVOJNEGA SISTEMA V svetu In tudi v Jugoslaviji je opaeen prehod od S-bitnih mikroprocesorjev rta zmogljivejše l6-bitne. V ISKRI, TOZD Računalniki amo v mikroraSunalnlku ISKHADATA I6a0 dose<1aj upor obijali 8-bltni mlkroproceaor 6600. Ker ima mikroprocesor 68000 podobne sna Bi In os ti in deluje podobno kot mikroprocesor 6800, stno se odlofili sa nadaljnji razvoj na osnovi mikroprocesorja 68000. Razvojni alsteoi je namenjen za prelzkuSanJe modulov, ki bodo vkljuCenl v novi mlkroračunalniSki s la tem ISKRADATA 90, vzporedno pa tudi za prelakuftanje pripadajoče programske opreme, V ta namen Je bil razvit tudi križni zbirnik za mikroprocesor 68000, ki teče na mi ni računalni)* u ISKRADATA C-1ft. Mali razvojni siatem je izdelan na kartici, katere velikost je dvojna evropa. Strojna oprema razvojnega sistenu /slika 1/ vaebuje: -MIKROPROCESOR 68000 a 4 MHz sistemsko uro. Ko bodo dostopni zmogljivejäi mikroprocesor ji 68000, bo uporabljena 16 MHz sistemska ura. -SISTEMSKI R0«t obsejia 4K 16-bitnega pomni Ini Skeflai prostora in obaeßa lokacije med naslovi H'00000-H'01PPP. Sestavljen Je Iz dveh 8-bltnih EPROM-ov 2732, ki dajeta l6-bltno beaedo. V sistemskem ROH-u Je vpisan poleg nastavitve vektorjev tudi slateinski monitor . -niSTFMSKI RAM: obsepa 4K 16-bltneRi pomniInižke^ft proatora na lokacijah H'?00nCI-H'21 PPP. Sestavljen Je iz Štirih RAM-ov 4016. -SISTEMSKO ' VOBILOi sistemsko vodilo je raultiplekslrano, kar potnenl nanjše Število signalov .na vodilu, potrebna pa je dodatna krmilna logika. Naslovi in podatki bo inultiplekairanl, operacije na vodilu so asinhrone. EiŠTEHŠifn IStSrEMSKI r «IW BAM --- ' ^ Ji-/ 6BQ00 |OTfbüpLt±>|wi —^^—I Piirrmll ACIAZH-^-1 LOCIXA StSrEMSKI RAM Slika i! Zgradba mlega razvojne^ sistema -KONTROLNA LOOIKA; vsebuje logiko nepotrjenega. prenosa - prekinitev "bus tlBB-out". Če pride pri naslavljanju do naslova, lei sega izven'naslovnega prostora, procesor ne dobi potrditve prenosa podatkov In Èaka. Če po 0.1 ms ne dobi potrditve prenosa podatkov,. kontrolna logika sproži logiko nepotrjenegi prenosa, ki povzroSl skok procesorja v, preklnltveno rutino, preko katere sistem Javi napako v naslavljanju In vzpostavi zaöotno stanje. -V/li vhodno/izhodno veaje vsebuje đve'ACIA /asinhroni serijski komunikacijski vmesnik/. ACIA1 /na. naslovu H'3PP01 oz. H'3PP03/ je namenjena aa povezavo razvojnega aistena z Bas Ionom in tastaturo, ACIA2 /na naslovu H'3PP21 oz. H'3PP23/ pa je namenjena za vnos programov la mikroraöunalnika ID 1680 oz. mlnlraSunalnlka ID C-ia. ) aiaTEMSKA PBOQRAMSKA OPREMA 5.1 VNOS PHOOftAHOV Programa za mali razvojni sistem v zbirniku prevajamo s križnim ablrnikom, ki teče na minlraSunalniku ID C-18. Prevedene programe preko serijskega izhoda (RS-232) poSljemo v mali razvojni sistem. Monltornkt program za vnos podatkov v mrilijm razvojTiem sistetnu pretvarja strojna kode' eapioa S in jih shrani v RAM, 5.2 SISTKMSKI MONITOR Sistemski monitor je zapisan v sistemskem ROM-u, vsebuje naslednje ukaze: -DH XXXX YYYY Ukaz prikaže .vsebino pomnilnika od naslova XXXX do naslova YYYY. -STI XX5tX LL MM UD ... llkaK povzroti rta na naslove od XXXX naprej shranjujemo vrednosti LL, MM, nw itd. -GO XXXX likaü povp.roSi začetek izvajanja program na lokaciji XXXX. -T XXXX Ukaz povzroči izvajanje ukaza za ukazom od naslova XXXX dalje. Vrednosti registrov mikroprocesorja HfiflOOO se po vsakem izvedenem ukazu Izpišejo na zaslon. I ava janje naslednjega ukaza omo^j.očimo n pritiskom na eno od tipk tastature. Ta ukaz je krmiljen programsko in ne zahteva posebne strojne opreme. -P XXXX Ukaz povzroči na la ^n je podatkov iz ACIA2 v pomnilnik . od naslova XXXX dalje.Pro^^ram je zapisan v S forimtu. 4. ZAKLJUČEK Na malem razvojnem sistemu uBpei!no odkrivamo napake v proj;ramih in v krlftnem zbirniku. Prelakušjimo tudi module k» novi ralkroöunalnläkl sistem I0KRADATA 90, 5. LITERATURA t6-ElT MICROPROCEBROR, User "s ir»nuftl, Motorola 1979 nC68000 DESIGN MODm^E, User's guide, Motorola 1900 MCfißOOO SYSTFMS CROSS MACRO ASSEMBI.ER, Reference rnanual, Motorola 1979 PRIKAZ RAZVOJA OPERATIVNIH SISTEMA INFORMATICA 2/1981 VLADIMIR HOLODKOV UDK: 681.3.065 201L „VOJVODINA", RZ „VOJVODINA - AOP" NOVI SAD o radu jo đat prikaz razvoja operativnih sistema raöunara na osnovu analize dostupne literature. Analizom je ustanovljeno da postoji pet osnovnih koncepcija operativnih sistema. A SURVEY OF DEVELOPMENT OF THE COMPUTER OPERATING S!;STEMS The paper gives the survey of development of the computer operating systems. It made the analysis of fifteen books. The analysis indicates that exists five types of operating systems. I UVOD Jedna grupa autora pod pojmom operativnog sistema podrazumeva skup programskih modula unutar bilo kog rafiunara koji upravlja resursima i reguliäe rad hardvera. Pod resursima se podrazu-inevaju procesori, radna memorija, sekundarne memorije, ulaano/izlazni uredjaji, ulazno/izlazni kanali(datoteke, mreža za prenos podataka, terminali 1 sami podaci. Operativni sistem reäava konfliktne situacije metodama i tehnikama inter-rupta i optimizira izvodjenje svih programa ra-öunara i aplikacija korisnika. Programski moduli operativnog' sistema predstavljaju sponu iz-raedju korisnika i gole maäine (hardvera). Ova gpona je omogudena preko Interpretatora jezika operativnog sistema (job control language, operator control language, administrator control language). Svaki od ovih jezika ima svoju pragmatiku, semantiku i sintaksu u maäinskom smislu tj. radi se o formalnim jezicima razumljivim magini. Preko ovih jezika se mogu opisati: pravila dodele resursa i njihove razdele od strane više korisnika; redosled zahteva za resursima j koji moduli su nadležni za njihovo opsluženje; opis tipa resursa; nazivi programa; imena datoteka koje se zahtevaju itd. Ova grupa autora svrstava programske module operativnog sistema prema funkcijama koje obavljaju; * upravljanje memorijom * upravljanje procesorom * upravljanja U/I uredjajima * upravljanje informacijama. Svaka od navedenih funkcija ima sledetfe zadatke: * da prati i pamti status resursa kojima upravlja * da uskladjuje delovanje u smislu de-finisanja ko, kakve, kada i kako dobija resurse * dodeljuje resurse na zahtev (od trenutka kada je posao kreiran od strane korisnika podvrgnut obradi tj. posao je u stanju "submit") * oslobadja resurse na zahtev. Druga grupa autora smatra da je operativni sistem računara skup upravljačkih programa sa tri osnovne funkcije: * upravljanje računarom * upravljanje poslom * upravljanje podacima. Treda grupa autora postnatra operativni sistem takodje kao skup upravljačkih programa grupisa-nih u tri dela i * supervajzor je modul nadležan za upravljanje razraene podataka izmedj u centralnog procesora i perifernih uredjaja * monitor je modul zadužen za planiranje i rasporedjivanje resursa u skladu sa zahte-vima kreiranih poslova korisnika * direktor je modul nadležan za koordinaciju ostalih modula operativnog sistema a u njegovoj nadležnosti je i interakcija sa operaterom na glavnoj konzoli računata. Po prirodi svog rada mora biti rezidentan u radnoj realnoj memoriji. Paralelno razvoju tehnologije komponenti hardvera, razvijao se i operativni sistem u svojoj kompleksnosti, funkcionalnosti i obimu poslova koje je pokrivao. Biće prikazana istorij a razvoja operativnih sistema po generacijama /14/: Prva generacija toti posle ia (1955.-1962.) Jednostavni moni-poslova paketne obrade (batch) sa mo-gudnostima povezivanja vi Se poslova u jedan niz (batch stream). Dizajniran za rad samo na jednom tipu i modelu raSunara. Druga generacija (1960■-1968. ) Jednostavni načini rada (omogudavao je paketnu obradu, obradu u realnom vremenu, obradu transakcija ili obradu u režimu razdeljenog vremena).Imali su ograničene sposobnosti mul-tiprogramiranja, maltiprocesiranja i upravljanja podacima. Dizajnirani za rad na jednom ili vige modela računara. Treda generacija-(1965.-198?)Kompleksni višena- menski multiprogramski i multiprocesorski sistemi. NaglasaK je pomeranje dizajna sa paketne na direktnu obradu. Dizajnirani za rad na jednoj familiji rafiunara. Četvrta ta generacija (l977.-l9??)ModularnQ-slo1e-viti operativni sistemi napravljeni uz snažnu podršku firmvera. Vedina funkcija je apsorbovana na nivou softverskih uslužnih programa. Pomeranje operativnih sistema orijentisanog procesoru na operativne sisteme ori jentisane podacima (DB/DC koncept). Diaajnirani za rad u jednoj familiji računara sa više hardverskih generacija. 2 KLASIFIKACIJA OPERATIVNIH SISTEMA Na osnovu analize dostupne literature, pokazalo se da u osnovi postoji pet struktura operativnog sistema prilagodjenih za režim rada računara: * operativni sistem za rad u režimu razdeljenog vremena * operativni sistem za rad u režimu realnog vre-nena * operativni sistem za rad u režimu virtuelnih mašina * operativni sistem za rad u režimu sa više procesora i * operativni sistem za rad u režimu direktne obrade. ^■1 Operativni sistem za rad u režimu razdeljenog vremena (time-sharing) RaSunari za rad u režimu razdeljenog vremena nude direktnu interakciju korisnika sa ra-čunarom simultanim pristupom centralnom procesoru. Time-sharing predstavlja metòdu dodele vremena procesora nekolicini korisnika tako što se jedan vremenski ciklus procesora deli na intervale u kome jedan korisnik može raditi.Zahval ju jućitoroe , korisnik sistema dobi ja brzi odgovor na svoje zahteve. U jednom trenutku vremena, u radnoj memoriji se može nalaziti više programa korisnika računara. Preostali programi se nalaze privremeno smešteni na sekundarnim memorijama. Svaki program u radnoj memoriji ima svoje vremenske intervale tako da u planiranom intervalu, procesor vrši obradu samo jednog programa. Procesor može preneti svoju pažnju na neki drugi program i pre isteka vremenskog Intervala-'slu-Sajevima prekida zbog U/I operacija. Nafiin prenošenja kontrole procesora sa jednog programa na drugi je ovisan od strukture prioriteta posluženja i primenjenog algoritma, Dodelu vremenskog intervala u kome đe procesor raditi nad jednim programom obavljaju programi operativnog sistema. Neki od algoritama dodele prioriteta su: * ciklički algoritam posluženja po kome se zahtevi korisnika računara smeštaju red čekanja * modifikovani ciklički algoritam daje prioritet zahtevima sa kratkotrajnim vremenom obrade * još veče favorizovanje zahteva sa kraćim vremenom obrade daje t zu, foreground background algoritam. U ovom algoritmu se uvodi više redova čekanja. * može se nekim terminalima u konfiguraciji računara dodeliti odredjeni prioritet bez obzira na vreme obrade zahteva sa drugih terminala. Rezoni za koriščenje računara za rad u režimu razdeljenog vremena su sledetfi: * maksimiziranje koriščenja resursa * reduciranje vremena proteklog izmedju predaje zahteva za obradu procesoru i dobi janje rezultata za poslove manjeg obima (time turnaround) * osposobljavanje udaljenih korisnika za unoäenje podataka i prijem podataka iz računara preko komunikacione mreže * da se udaljenim korisnicima daju prednosti u posedovanju računara, prilagodjava-jući se njegovoj reakciji i U/I vremenskim intervalima potrebnim za izvodjenje programa * da se zadovolje zahtevi okoline koja radi u realnom vremenu i da se omogudi efikasna obrada zahteva (transakcija). Moduli operativnog sistema u režimu razdeljenog vremena koji su odgovorni za upravljanje procesorom koriste pet različitih tehnika dodele vremenskog intervala procesora: * sekvencijalna * natural wait * time slicing * prioriteti * po zahtevu (demand). Analiza pokazuje da se raćunari za rad u režimu razdeljenog vremena koriste u đve kategorije: * za paketnu obradu (batch processing) * za daljinsku obradu (remote processing) * za Remote Job Entry rad * za konverzacioni nafiin rada * za rad u realnom vremenu. Druga klasifikacija operativnih sistema za rad u režimu razdeljenog vremena je: * otvoreni operativni sistem, koji daje korisniku pristup svim mogućnostima (facility) operativnog sistema * zatvoreni operativni sistem, koji limiti- -raju korisnika primenoiti specifičnih pro-' gramskih jeziVa. Ovakvi operativni sis-? temi se koriste za konverzacioni način rada. Sa aspekta rasporedjivanja vremena procesora i dodele procesora, operativni sistemi se razvrstavaju: * sekvencijalno rasporedjivanje funkcija operativnog sistema sa podrškom perifernim uredjajima * multiprogramski sistemi sa fiksnim ili varijabilnim brojem poslova i rasporedom prioriteta * zatvoreni konverzacioni programski moduli operativnog sistema sa koriščenjem "time slicing" tehnike * multiprogramski sistem sa jednim poslom visokog prioriteta ili postoji foreground particija za rad sistema iz prethodne tačke * sistemi opšte namene za podršku otvorenom konverzacionom programiranju i podršku rađa u paketnom režimu rada sa podrškom perifernim uredjajima. Sa aspekta upravljanja memorijom susretu se siedete tehnike : « dodela cele memorije jednom poslu • swapping korisnikovih partlclja ♦segmentiranje stranica na zahtev • prelistavanje (paging). Ova tehnika se javlja kod raöunara sa virtuelnotn memorijom. Za efikasni rad, ova tehnika ima podržku sa dynamic address translation. Sa aspekta upravljanja informacijama treba istaći da postoji potreba za razdelom sistemskih pro" grama i njima pripadajudih podataka. Mogude rutine ea razdelu na više korisnika su rutine iz domena upravljanja poslom i upravljanja podacima. Razdela modula omogudena je dodelom odgovaraj udih atributa programu. Module sa atributom javnosti kotisti nekoliko korisnika i oni njih mogu menjati samo u okviru svog programa. Module sa atributom privatnosti koristi korisnik koji poznaje zaštitni kod identifikacije programa. 2.2 Operativni sistem za rad u režimu realnog vremena (real-time) Računar za rad u režimu realnog vremena mora biti sposoban da opsluäi veliku količinu podataka, da ih analizira i daje odgovore na sve vremenski zavisne đogađjaje. Računar mora biti sposoban da prima podatke onako brzo kako 1 dolaze jer u protivnom slučaju neki podaci mogu biti izgubljeni, osnovna jedinica rada je transakcija.Pod transakcijom se podrazumeva skup logičk-h i u nizu povezanih parova poruka. Kod jednostavnih računara jedan par poruka obezbe-djuje jedl:^u transakciju. Pod parom poruka se podrazumeva skup podataka koji se prenose u raSunar i dobijanje odredjenog odgovora i Računati ovakvog tipa rade u većini slučajeva u us-lovima postojanja komunikacione opreme. Polazedi od pretpostavke da su bazni operativni sistemi nezavisni od režima u kojem araöunar deluje, treba naglasiti da organizacija programskih modula operativnog sistema za rad u režimu realnog vremena je takva da je modul za opsluživanje komunikacione opreme njegov Sastavni đeo. Svaki od modula predstavlja interfejs sa korisnikovim aplikacionim rutinama. Ovaj interfejs 66 može omogućiti na dva naöinai * posebnim sogtverom koji je specijalizojvan za rad u režimu realnog vremena a predstavlja podršku radu operativnog sistema . , ' j * poseban operativni sistem je dizajnirap za rad u režimu realnog vremena a unutar sebe obuhvata module koji omogućavaju upravljanje paketnom obradom i module koji omogućavaju rad u realnom vremenu. | Kbog povedan ja propusne modi računara, operativni sistem dozvoljava 1 multiprogramsk'i rad. To ipak ne znafii da se svaki poseban program izvrgava brže ved naprotiv. Osnovne karakteristike operativnog sistema za rad u režimu realnog vremena su: * obrada transakcija * programi su rezidentni u radnoj memoriji duži vremenski period (zbog potrebe korisnika) * simultano procesiranje poruka (koriste se tehnike duple baferizacije, multlprogramira-nja i multi-threadinga) * upotreba tehnike "tasking" tako da se poruke ' i odgovori ameštaju u redove čekanja sa defi-nisanim prioritetima. Struktura operativnog sistema aa rad u režimu realnog vremena je data na sic: 1. Spoljni izgled ukazuje na aplikativni karakter operativnog sistema jer se koristi uz standardni baziii operativni sistem. Prikazana struktura omogućava zadovoljenje zahteva za perifernim prenosom a kontroliše i multi-threading deljenjem vremenskog Ciklusa procesora za potrebe raznih poruka koje stižu u računar. Omogućeno je 1 preklapanje rada procesora sa operacijama perifernog transfera (overlaying). Poäto se upravljanje u takvoj strukturi operativnog sistema vrši bez zahteva za resursima osnovnog mašinskog operativnog sistema, ovakav aplikativni karakter daje efikasniji rad u odnosu na koriädenje vremena procesora. Korisnikovi apllkacioni programi prihvataj u poruke koje su obradjene od strane sequence monitora 1 ako se na primer eahteva čitanje sloga tada rutina pros ledjuje ovaj zahtev preko request monitora. Dakle, svi korisnikovi aplikaoioni moduli se pozivaju iz jednog standardnog interfej-sa (sequence monitora) a prosledjuje sve zahteve na drugi standardni interfejs {request monitor). Sa ovakvom strukturom je moguće različite poruke servisirati u istom trenutku sa različitim rutinama za opsluživanje (handling). Važna komponenta prikazane strukture operativnog sistema na slici I je message block. Prava struktura message bloka je ovisna od dizajna korisnikove aplikacione rutine. Ovi blokovi su pod kontrolom communications bandiera i u njemu su rezidentni. Konkretne funkcije bandiera se dinamički menja-ju sa tipom aplikacione rutine. Vidljivo je sa slike 1 da operativni sistem ima tri monitora sa sledećim funkcijama: • request monitor . ispituje zahteve u request area message bloka , ako je prisutan zahtev za nekom drugom apli-kacionom rutinom od one nad kojom trenutno ide obrada, onda request monitor smeSta adresu message bloka u red čekanja sequence monitora . ako postoji zahtev za nekim od bandiera, onda odlučuje koji je i smešta adresu message bloka u odgovarajuću ulaznu zonu selektova-nog bandiera . predajo kontrolu service nwnitoru. * service monitor Service monitor po primitku kontrole od request monitora proziva specificiranim redosleđom handlere. Posle poziva bandiera vrši se predaja kontrole sequence monitoru. Ako sequence monitor odmah vraća kontrolu na njega onda to znači da ne postoji message blok koji čeka na neku apllkacionu rutinu. U tim trenucima nema više obrade zahteva. Tada service monitor predaje kontrolu osnovnom mašinskom operativnom sistemu izvodjenjem tzv. "multiple wait" instrukcije. Ovakav zastoj se odnosi na sve do-■gadjaje koji se tiču particije memorije namenjene za rad u realnom vremenu. Ovim se želi izbeći da service monitor analizira nove do-gadjaje npr. prijem nove poruke. Kada jedan od dogadjaja čeka da se pojavi u sistemu, tada operativni sistem vraća kontrolu na sleđeću instrukciju iza "wait" komande te service monitor ponavlja svoj ciklus: poziv bandiera i predaja kontrole sequence monitoru. Service monitor ima zadatak da prikuplja u "log" datoteku sve greške koje se jave da bi se sprečilo automatsko poništavanje prisutne aplikacione rutine od strane operativnog sistema. Ukoliko je u radu bio neki od bandiera ili drugi monitori tada u slučaju pojave bilo kakve greSke se javlja prekid koji ukazuje operativnom sistemu da prenese kontrolu na service monitor,. Tada je service monitor u poziciji dà Wäi'anàlizu greške • Nakon analize, service monitor informiše korisnika terminala preko komunikacionog softvera o tipu greSke i eventualno o toitie kako da se oporavi od nje. Ü tu Svrhu on generiša rtiessage blok koga communications handler dalje pros ledjuje zahvaljujudi posebnoj sistemskoj rutini koju poziva preko sequence monitora. * sequence monitor Sequnce monitor čuva tabelu koja sadrži adrese ulaska u svaku aplikacionu rutinu i adrese redova čekanja message blokova koji òekaju na svoje aplikacione rutine. Ove adrese su u tabeli sortirane po prioritetima u message area message bloka. Zahvaljujući toroe, sequence monitor vrši selekciju poruka za obradu. Sequence-monitor sadrži i tabelu naziva modula sa njihovim statusima. Ovi statusi su bitni ako se pojavi preklapanje (overlaying). Tada na scenu stupa overlaying banlder koji preko statusa aplikacionih rutina definiše startne ad-res.a rutina u radnoj memoriji i adresu preklapanja. 2-3 Operativni sistem za rad u režimu virtuelnih maSina —_ __ Pored interpretatora jezika operativnog siste. ma, prisutni su kod nekih iraSunara i interpretatori jezika virtuelnih mašina (virtual machine language). To je skup mašinskih instrukcija koje stoje korisniku na raspolaganju ali samo u toku izvodjenja programa, za olakšano upravljanje fizićkom mašinom i izolaciju korisnika jednog od dcugog, operativni sistem za rad u režimu virtuelnih maäina mora sprečiti korisnikove programe da izvode one instrukcije koje bi izazvale uništavanje procedura i podataka unu--tar operativnog sistema. Skup .Instrukcija iz "virtual machine language" je podskup originalnog maäinskog jezika ali se stvara iluzija samostalnosti rađa korisnika kao da mu pripada ceo računar. Neka u računskom centru postoji odredjena kon-.figuracija fuziČkog raiunara. Neka je takav ra-čunar kao proširena mašina /9/ snabdeven sa operativnim sistemom uslovno nazvan "Monitor Virtu-elne Maéine" (MVM), Neka je struktura ovakvog operativnog sistema takva da je omogućeno mul-tipleksiranje samo fiai&kih resursa od strane vige korisnika 1 da MVM ne nudi više nikakve druge funkcionalne pogodnosti. Pod ovakvim us-lovima MVM omogućava da se jedan stvaran radunar pojavljuje kao više zasebnih ragunara. Pored ovoga, MVM Stvara utisak postojanja viie "golih" mašina te svaki korisnik bira svoj operativni sistem koji de se izvoditi na njegovom privatiziranom računaru. Na slici 2 je data organizacija virtuelnih mašina koja de poslužiti ža objašnjenje mehanizma njihovog rada. Sa slike 2 je vidljivo da se pod MVM izvode pro-graijii operativnih sistema npr. OSI, OS2 1 OS3. Programi ovih operativnih sistema se nalaze u "problem'State" (stanje zadatka tj. Izvodjenja). Ali, oni se ponašaju kao da su u "supervisor state". TO znaöi, kada se izvode privilegovane instrukcije OS(i) operativnih sistema tada se generlše prekid koji ukazuje na predaju kontrole na MVM operativni sistem i on tada Izvodi privilegovane komande. Prekidi, generisani zbog izvodjenja privilego-vanih komandi predstavljaju interfejs Izmedju korisnika i MVM operativnog ;; ; a I:.:jna i ovim prekidima se ne remeti rad programa korisnika. Operativni sistemi za rad u režimu virtuelnih mašina se sastoji od dv^ komponente!' * upravljački program MVM koji izvodi funkcije multiplekslranja procesora, U/I uredjaja 1 memorije da: bi se- proizvela virtue Ine mašine * sistem za vodjenje konverzacije sa vlr-tuelnom mašinom (conversational monitor systems - CMS) koji izvršava funkcije: obrade komandi, upravljanje informacijama za potrebe rada računara i ograničenog upravljanja U/l uredjajima. Multipleksiranje fizičkog računara je dovelo do toga da komponenta CMS operativnog sistema koristi memoriju dodeljenu virtuelnoj mašini kao da, je to cela neprekidna memorija (single contiglous allocation) za izvodjenje samo jednog korisnikovog piDOgrama. Ova činjenica ukazuje na prlmenu jednostavnih tehnika upravljanja memorijom i procesorom. Upravljački program MVM u zajednici sa mogućnostima hardvera simulira da svaka virtuelna mašina ima procesor, memoriju, V/I uredjaje, ope-' ratersku konzolu i panel za nadgledanje rađa sistema. Pored ovoga, MVM omogudava ažurnost odredjenog skupa tabela koje sadrže opis i status svih komponenti virtuelne mašine. Preko ovih tabela se uspostavlja veza izmedju komponenti fizičkog računara i virtuelne mašine. Iako svaka virtuelna mašina ima svoj operativni sistem sa pratećim softverom, bilo bi ne efikasno da se svakoj virtuelnoj mašini ponavljaju zajednički skupovi programa operativnih sistema. Može se obezbediti posebno područje u kojoj će se vršiti razdeljivanje zajedničkih programa i podataka pri čemu je osnovna jedinica razdeljiva-nja segmenat koji ima varijabilnu dužinu. Razdeljeni segmenti mogu biti ili deo aplikacionog programa 111 deo operativnog sistema. Pri tome, svaki segnvenat se sastoji od jednog ili više programa u maSinskom obliku spremnom za izvodje-, nje ili se sastoji od jednog ili više područja sa podacima potrebnim za rad programa operativnog sistema virtuelne mašine OS(i). Jedna od prednosti segmentiranja je da se povečava efikasnost korlšćenja memorije i propusna moć računara. Kod jednog fizičkog računara, na kome se može izvoditi vlrtuellzaclja mašine, razlika izmedju "problem state" 1 "supervisor state" izvodjenja komandi je omogućila da MVM izvodi većinu instrukcija virtuelnih mašina. Kada se procesor nalazi u "problem state" radu, bilo kakav pokušaj Izvodjenja instrukcija koja menja ili proverava stanje celog računara izaziva programski prekid. Prema tome, izvodjenjem komandi virtuelnih mašina dok se nalazi u "problem state" modu,'MVK je obezbedjen od gubljenja kontrole. Kontrola se gubi nailaskom privilegovane komande te u tom slučaju fizički računar simulira odgovarajući funkcionalni efekat privilegovane komande tako što iz tabele opisa virtue Inog procesora, čiji je status posebno definlsan, gleda da li je virtuelna mašina sa izazvanom privlle-govanom komandom u "problem state" ili u "supervisor State" modu. Ako je virtuelna mašina bila u "problem state" modu, MVH de simulirati programski prekid na virtuelnoj mašini. Ako je virtuelna mašina bila u "supervisor state" modu, MVM će morati da dešifruje komandu i izvršlde simulaciji! te komande. so Sve ü/l operacije su simulirane. Kada virtuelna mašina pokuša da izvede U/I operaciju javlja se preJcid koji izaziva da se kontrola prenosi na MVH. Moguđe su tri situacije: * ako zahtevani uredjaj fiziSki postoji (ovo se proverava zbog prisutne opasnosti da se ne ažurira tabela statusa hardvera virtue Ine maälne od strane administratora sistema) i pridružen je na virtuelnu mašinu koja je generisala prekid tada se U/I operacija odmah izvodi * ako postoji sliöan uredjaj tada se odredjenim algoritmom mođifikuje U/I komanda i nakon toga se izvodi (npr, razdela jednog diska na više mini diskova) * neki uredjaj 1 su simulirani dodatnoiti tehnikom SPOOL-inga. Pokazalo se da je najpodesnija tehnika upravljanja memorijom "prelistavanje na zahtev" (demand paging) i svakoj virtuelaoj mašini se obezbedju-je sopstvena virtuelna memorija. Komponenta operativnog sistema rad u režimu realnog vremena MVM ne obezbedjuje upravljanje informacijama, Takva mogućnost je pod kontrolom konkretnih operativnih sistema virtuelna mašine OS(i). TO znači, upravljanje informacijam je u nadležnosti komponente CMS koja je dizajnirana za rad u okolini (environinent) virtuelne mašine, CMS opslužuje poseban katalog datoteka za svaki uredjaj sa direktnim pristupom (sekundarne memorije), CMS komponenta radi sa dva takva uredja-ja: jedan se koristi za držanje nerezidentnih delova CMS (sistemski disk) a drugi uredjaj se koristi za memoriganje korisnikovih stalnih datoteka, MVM komponenta dopušta da dva ili više ' virtuelnih uredjaja sekundarne memorije bude ma-pirano na istom fizièkom uredjaju te tada postoji potreba da u fizičkom računaru egzistira samo jedan stvaran CMS sistemski disk koga đe razdeliti sve CMS komponente svih operativnih sis-teiTÄ OS (i), MVM onemogućava korisnika da u toku rada vrši modifikaciju sistemskog diska. 2,4 Operativni sistem za rad u režimu sa više procesora Procesor je fizička komponenta računara koji sek-vencijalno sprovodi obradu definisanu programom. Više procesora može konkurentno da radi pri Čemu se razdeljuje zajednička memorija po jednom algoritmu zajedničkom za sve procesore prisutne u konfiguraciji. Ü računaru sa više procesora jedan se može proglasiti za centralni (onaj koDi radi sa podacima u radnoj memoriji) a ostali su terminali ili periferni uredjaji (kanali; koji prenose podatke iz okoline računara u radnu memoriju), U osnovi, postoji tri organizacije i načina rada operativnih sistema u režimu sa vi Se procesora /5/: * master-slave * separatno izvodjenje operativnog sistema za svaki procesor * simetrični ili anonimni tretman svih procesora , *■ Master-slave tehnika Kod ove tehnike, jedan procesor (master - gospodar) rukovodi statusom svih obrada u računaru 1 rasporedjuje ih na druge procesore u konfiguraciji (slave - rob). Na primer, master procesor bira obradu koja La u Ueogradu Beograd, 1977. 2. Broner 'ifu, D, MATEMATIČESKOE ORUSPEČUNIE SISTEM S RAKDELE-NIEH VREMENI Statistika Moskva, 19 76. 3. Cohen L. j. OPERATING SYSi'EM - Analysis and DGSign Spartan Book Co. New York (pr(;vod na ruski, 19 75.) 4. Donovan J. J. SYSTEMS PROGRAMMING McGraw Hill Kogakusha Ltd. Tokyo, 1972. 5. Ens low P. H. MULTIPROCESSORS AND PAEALELL PROCESSING John Wiley & Sons New York, 19 74. 6. Hansen P. B. OPERATING SYSTEM PRINCIPLES Prentice Hall New York, 1973. 7. Katzan H. ADVANCED PROGRAMMING - Programming and Operating Systems Van Nostrand Reinhold Co. New York, 1970. 8. ,Katzan H. OPERATING SYSTEMS - A pragmatic approach Van Nostrand Relnhold Co. New York, 1973. (prevod na ruski, 1976.) 9. Màdnick S.E., Donovan J.J OPERATING SYSTEMS McGRaw Hill Book Co. New York, 1974. 10. Martin J. COMPUTER DATA-BASE ORGANIZATION,see.edit. . Prenitice Hall Inc.,New York,1977, 11. Martin J. SYS^.-EMS ANALYSIS FOR DATA TRANSMISSIO^! Prentice Hall Inc.,New York,1972. (prevod na ruski, 19 75.) 12. paškeev S.D. OSNOVY MUL'TIPROGRAMMIROVANUA OLJA SPECIALI-ZIROVANNYH VVCl SLI TEL'NYH SISTE:M Sovetskoe radio, Moskva, 19 72. 13. Tebs D., Collins G. REAL-TIME SYSTEMS - Management and Design McGraw Hill Book Co. (UK), London, 1977. 14. Wéizer N. A HISTORY OF OPERATING SYSTEMS DATAMATION, januar 19SX. 15. *** IBM CICS/VS Application Progtatnmar Reference ■Manual (Cominand l.evel) SC - 33-0077 SJ KQMiJN/KACIONI '. SOFTVER Access Me thod Com Hon man 'd lor M« g. Bi. ^pccia! hanaicrs mrk Area Ccìntrol Handler 1 REaUEST MONITOR SERVICE MONITOR SEQUENCE- MONITOR | RUriNE Q Ri JEN T! SANE APLIK/CUI COLA MAŠINA f. Prošireni o par a ii v m siitem zq rad u roairtog vremena [tì] Slikal-Programska organizacija YÌriuelr\e rrašme l^J SPOOL-ing rje Boich Molti § SO. 3 O /-■-■fr.-Tjrj/ Termir\al(i} OPERATING SYSTEM CONTROL PROGRAM (Dato l^mmunicat/ons Syst&n) terminalske fun. (TAM) (TCP) (BMS) 4 Trar\ziino EppS: podruCjs 3RAMI kontrolne fun. Program \ Control si C3 D O Temporary Data Control Apìikacioni program DATA BASE inter/ace S/ilta 6: Programska organizacija operativnog sistema za rad u režimu direktne obrade U5] informatica 82 Mednarodni simpozij za računalniško tehnologijo in probleme informatike Sixteenth Internalicnai Symposium on Computer Technoiogv and Problems of Informatics mednarodna razslaira računalnišlte tehnologije International Extiibilion of Computer Technology Ljubljana; 10.—14. maja Gospodarsko razstavišče Ljubljana Ljubljana, May 10—14 al Ljubljana Fair INFORMATICA '82 Parmova 41. 61000 Ljubljana. Jugoslavija INFORMATICA '82 Parmova 41. 61000 Ljubljana. Jugoslavija INFORMATICA -82 Parmova 41.61000 Ljubljana. Jugoslavija INFORMATICA 'SZ Parirova 41. 61000 UtiUJana. Jugoslavija informatica 152 INFORMATICA 2/1981 PRISTOP K REŠITVI MEDRAČUNALNISKE KOMUNIKACIJE V SISTEMIH Z DISTRIBUIRANIM KRMILJENJEM ŽARKO NOVAKOVIĆ, BRANISLAV POPOVIC UDK: 681.3:621.398 ISKRA TELEKOMUNIKACIJE, KRANJ v referatu podajamo eno od rešitev za komunikacijo med računalniki večračunaltiiškega sistema. Rešitev je uporabljena v sistemu telefonskih central ISKRA 2000. Rešitev temelji na zlogovnem protokolu s potrjevanjem sprejema zlogov in je primerna za zvezdasto konfiguracijo računalniške mreže. AN APPROACH TOWARD THE SOLUTION OP COMPUTER COMMUNICATIONS IN SYSTEMS WITH OISTRIBUTIilJ CONTROL: The paper describes a solution to the problem of communication between computers in a multicomputer system. I'he solution is applied within ISKRA 2000 - a system based on a byte oriented protocol with acknowledgement of individual bytes and applicable in star computer networks. 1. UVOD Sistem ISKRA 2000 je modularni in digitalni sistem telefonskih central. Z modulom pojmujemo skupek telekomunikacijskih linij (terminalov) in je krmiljen 7. lastnim procesorjem. Moduli se povezujejo v sistem s pomočjo skupinskega stikala, preko katerega se povezujejo terminali s telekomunikacijskimi digitalnimi PCM potmi in preko kateregn komunicirajo računalniki modulov medseboj pri obdelavi telekomunikacijskega prometa. V pričujočem,članku bomo pokazali rešitev med-računalniske komunikacije. Osnovna naloga sistema medprocesorske komunikacije je obdelava telekomunikacijskega prometa, to je vzpostavljanje in rušenje telekomunikacijskih zvez med terminali, ki so krmiljeni z različnimi procesorji. Sistem ISKRA 2000 realizira telekomunikacijski promet mod terminali različnih modulov tako, da si procesorji modulov izmenjujejo sporočila, ko želijo ugotoviti pozvani terminal in telekomunikacijsko pot tako, da moduli pošiljajo sporočila samemu procesorju skupinskega stikala,ko želijo vzpostaviti telekomunikacijsko pot. 1'oleg te osnovne naloge pa sistem medprocesorske komunikacije služi tudi za prenašanje - sporočil o napakah, odkritih med sprotnim preskušanjem ali v času preskušanja na zahtevo vzdrževalnega osebja - statističnih sporočil in sporočil o meritvah prometa ter - sporočil za ad ministrira nje podatkovnih baz v modulih Sistem medprocesorske komunikacije je sestavljen iz serijskih asinhronih jiopolnoma dupleksnih kanalov med procesorji modulov in skupinskim stikalom ter iz programov v računalinlui skupinskega stikala in v računalnikih modulov. Sistem medprocesorske komunikacije je del operacijskega sistema v sistemu ISKRA 2000. Topologija medprocesorske komunikacijske nreže je zvezdasta: obstoji povezava od vsakega modula k skupinskemu stikalu preko serijskih asinhronih popolnoma dupleksnih kanalov. Zaradi zanesljivosti sistema je sis - ' tem medprocesorske komunikacije podvojen: imamo dva skupinska stikala in k vsakemu od njiju svoj komunikacijski kanal od vsakega modula. Konfiguracijo mreže glej na sliki 1» Protokol medprocesorske komunikacije je z ozirom na semantiko sporočil popolnoma transparenten zaradi številnih zgoraj naštetih nalog medprocesorske komunikacije. Zato ocenjujemo, da je protokol prima-en tudi za druge procesne sisteme, ki so realizirani z računalniškim distribuiranim krmiljenjem. 2. PROTOKOL MEDPROCESORSKE KOMUNIKACIJE' 2.1 Tipi in identifikacija sporočil V protokolu medprocesorske komunikacije ločimo naslednje tipe sporočil: ■ a/ enozlogovne krmilne signale b/ dvozlogovne krmilne signale c/ večzlogovna sporočila Tipi sporočil In mesto zloga v sporočilu so določeni z najtežjimi tremi biti zloga in sicer: 111..... enozlogovni krmilni signal 110 ..... prvi zlog dvozlogovnega krmilnega signala 10x..... prvi zlog večzlogovnega sporočila Oxx.....naslednji zlogi večzlogovnega sporočila oz. drugi zlog dvozlogovnega krmilnega signala (k = O ali 1) 2.2"'Usmerjanje sporočil Sporočila se usmerjajo s pomočjo:- ■ . a/ fizičnih naslovov komunikacijskih kanalov v skupinskem stikalu, iz katerih programi meclprocesorske ■ komunikacije v računalniku skupinskega stikala ugotovijo naslov modula. - računalnika, od koder sporočilo prihaja b/ naslova modula, kamor je sporočilo narncnjeno; ta naslov se nahaja v glavi sporočila ~ v prvem zlogu več večzlogovnega sporočila Krmilni sigiali se izmenjujejo samo med moduli in skupinskim stikalom in ne med moduli samimi, zato ta spor očila:, ne; vsebujej o i nas lovov. Skupinsko stikalo si na podlagi naslovov, ki jih ugotovi iz a/ in b/ ustvari tim. programski kanal - preslikavo izvornega modula "modul ." v ponorni modul "modul ." In obratno. Programski kanal je trojka ^ (smer, modul j, modul ^ ), kjer je 0 sporočilo gre iz modula . v modul . smer ' i j 1 sporočilo gre Iz modula ^ v miidul . "modul je indeks v tabeli programskih kanalov, s pomočjo katerega skupinsko stikalo ugotovi modul in smer sporočila. Na ta način je možno, da vsi naslednji zlogi Sporočila ne vsebujejo naslov, kamor je zlog namenjen. Ponorni modul ugotovi iz glave sporočila - prvega zloga sporočila, od katerega modula bodo prispeli naslednji zlogi. To glavo sporočila je izdelalo skupinsko stikalo, potem ko je ustvarilo programski kanal. 2,3 l'or mat sporočila Transparentnost podatkov v sporočilu dosežemo-tako, da imamo poseben format sporočila, ki določa tip, začetek in konec informativnega dela sporočila -podatkovnih zlogov. 1. zlog : 1, O, naslov izvornega / ponor nega modula 2. zlog r O, tip sjioročila 3. zlog ; O, število podatkovnih zlogov k-5 4. zlog ; O, znakovni biti podatkovnih zlogov 5. zlog ; O, podatek brez znakovnega bit;i k.^zlog ; vzdolžna paritetna kontrola Ker v podatkovnih zlocjili sporočila (glej 2.lì no moremo lirenaš.iti tudi ••'.iiakovnih bitov, jih zbei tsno v j risoLnii zlog - i-'.iiakovni /,log. Tako nain opisani [oi rii;i| sporočila omogočil prenos do sodom pod;itkov. Čt: želimo prenesti več podatkov, jih moramo pakirati v vč sjiojočil. 2.4 Potrjf!vanje zlogov in sporočil Sprejem in pošiljanje zlogov;med modulom iu skupinskim stikalom morata biti slnhronizirana moJsi;boj, kar jioni!;-ni, da sc naslednji zlog no snu: txlposlali, dokler ni sprejet prejšnji zlog na nasprotni strani, lo sinhronizacijo izvršimo s tim. pozitivnim potrditvenim signalom PACK., ki pomeni oddajni strani: - zlog je na sprejemni strani sprejet brez nEipak in - odpo.šlji naslednji zlog Če je sporočilo pravilno sprejeto, jxiSljo ponorni moiiul skupinskemu stikalu signal l'l:)()H oziroma signal ASVvH. Signal PKOM (pozitivni koiiei: sporočila) je sigtial, ki pomeni, da je sporočilo pravilno S[)rt;j»to in skupinsko stikalo, ko sprejme ta signal, sprosti prograniski kanal. Signal ASWR pomeni, da mu bo sledil odgovor in ob sprejemu tega signala aUujiinsko stikalo olirnci! stner programskega kanala. 2.5 Kontrola najiak Kontrola napak odkriva ii;i|)ake, ki so nastale inii.l prenosom zloga (paritetna napaka, premaknitev okn.i) oziroma logičnih riapak (prekrivanje zlofjov, neveljaven zlog z OKirom na stanje komunikacije in ozirom tia smer komuniciranja). Ce odkrije sprejemna stran napako mt^ri ])rerinsoni zloga, pošlje negativni potrditveiii signal NAfK, ki jiovc oddajni strani, naj ponovno posije odposlani zlog. I'o treh zaporednih napakah mtd prenosom, so poÄlje iz oddajne strani signal CI.R v skupinsko stikalo, ki poruši programski kanal. Med prenosom sporočila se računa vrednost v/.ilolžiH? paritete bitov v zlogih in se ob koncu S|)oročila prinvrja s sprejeto vrednostjo vzdolžne; paritete. Ce se ti dve vrednosti razlikujeta, je sporočilo nepravilno sprejelo in se odpošlje namesto l'IOOM signala signal o negativnem koncu sporočila NI'XJM. Iso izvorni modul S|.)rejnie NDOM signal, [iričiie sjioroči-lo ponovno pošiljati. Će sprt;jmo livakrat zariorodoni;.i N1X)M signal, programski kanal poruši s tM.li signalom. Med pošiljanjem zlogov KČct.ini. časovna kontrola du sprejema naslednjciga zloga oz. do sprejema potrditv«?-netp signala, ("e se ta časovna ko[>trola i-/.leči-! i.iri izvornem modulu, se posije sign;d C'l.li proti aku()insk<.— mu stikalu, ki ob sprejemu Lega signaln poruši programski kanal. lako moduli kot skupinsko stikalo lahko «Ikrijejo logične; na])ak(;, lako da ob vsaketn spr(;j<;lorn zlogu ugotavljajo, če jt; zlog veljaven gh^^tU; n.i tekiičr- ytanjt;, siiinr koniu-niciranja ter nti trenutno kiinngnracijo sistema. V primeru logične napake, se iiriHjrarnski kanal avtomatično jioruši. V vseli primerih napak (trikrat NACK, dvakrat Nl-UJM, iztek časovnih kontrol, logične napake) poskuša i-.-,vorni modni v:*-,poataviti komunikacijo preko drugega skupinskega stikala. Oba skupinska stikala delujeta f)0 principu "delitvf; obremenitve". Izvorni modul izbere pri vzpostavljanju koniaiiikacijake poti vedno (irvo [irosto skupinsko stikalo. s« 2.6 Kontrola toka sporočil Ker modul pošlje naslednji zlog sporočila soUi, ku je sprejet PACK signal, smo se s tem i/.ot|nili možnosti, do bi izvorni modul pošiljal zloge, iio fta bi ponor ni modul prejšnje zloge sprejel. Skupinsko stikalo vodno gleda, če je ponor ni modul pravilno sprejel zlog, predilo mu pošlje naslednji zlog oziroma predno posije l'AC K izvornemu modulu. Izvorni modul sprejme torej l>At;K šole, če je prejšnji zlog bil pravilno sprejet v ponor ne m modulu. Ker po istem kanalu med modulom in skupinskim stikalom lahko tako sprejemamo kot oddajamo sporočilo In ko modul sprejme po odposlani glavi sporočila iz skupinskega stikala glavo sporočila namesto [WtTdltveni signal, ima sprejem sporočila prednost pred oddajo SjioroSila. To pomeni, da se modul v tem primeru pripravi na sprejem sporočila, medtem ko odloži pošiljanje sporočila, ki ga je pričel oddajati. S tem smo [ireprečili kopičenje zahtev za komuniciranje v skupin-skoni stikalu. 2.7 Uvrščanje zahtev za komunicÌTanje V modulu se generirajo sporočila iz večih psevdopara-lelnih procesov, zato se sporočila v modulu uvrščajo v t.lm. "Izhodno čakajočo vrsto" od koder se jemljejo, ko modul sprejme po odposlanem sporočilu iz skupinskega stikala feignal za nadaljevanje pošiljanja sporočil C N T. Cfi sprejme modul signal zaustavljanja pošiljanja sporočil HLi' pomeni, da ne sme odpošiljati sporočilo, ker aell nek drug modul komunicirati a njim. C NT oz. Hi;r pošlJe skupinsko stikalo v izvorni In ponorni mociul, ko sprejme iz ponornega incxlula PlOOM signal. '/.aradi distribulrfinega krmiljenja in popolnoma decen-Ivalizlratie podatkovne baze tor zaradi asinhronega in neodvisnega delovanja procesorjev v modulih vedno oljstoji možnost, da želeni ponorni modul že komunicira z nekim drufflm modulom. '1'edaj skupinsko stikalo vrne izvornemu modulu po sprejeti glavi sporočim signal zaserlenosti HUSV tor zapiše izvorni modul v čakajočo vrsto ponornega mo(iula. Ko bo modul prišel na vrsto za komuniciranje z želenim modulom, mu bo skupinsko stikalo poslalo signal sproščanja HLSI) (dvozlogovni krmilni signal) z naslovom modula, s katerim lahko komunicira. Ce sprejme modul signal lülSY, lahko pošilja sporočila proti drugim prostim modulom. 3. /.AKIJUCKK V reloratu smo podali grobi oris jivotokola mwlpt ocesor-ske komunikacije, ki ga uporabljamo v sisUMnU ISKHA 2000. Izognili smo se podrobnostim, ki bi lahko zakriU; osnovne značilnosti protokola, ki smo jih /.cU^ti prikazati. Protokol je realtairan in omogoča »aneslJIve rnfdnioilular-ne povezave ter obnovo sistema iz nenormalnih situnc-lj, ki lahko nastopijo med delovanjem neodvisnih procesov. MODUL n PSOCESOS SLIKA 1 rOPOlOGIIA MEDPROCESOHS«EGA KDMUUICIRAIIJA V SISlEttU ISKRA 2000 INFORMATICA 2/1981 TESTIRANJE ENOT MIKRORAČUNALNIKA PROIZVODNJI F. NOVAK, A. DOBRIN, B. ROPRET, T. BLAZNIR UDK: 681.3-181.4.001.4 INSTITUT „JOŽEF STEFAN", ISKRA TOZD RAČUNALNIKI Opisan Je p.ostopek testiranja enot mikroračunalnllta ID 16B0. Testiranje se izvaja na posebno prirejenem testnem mikroračunalniku ID 1680. Testirano enoto povežemo s testnim računalnikom preko vmesnika, ki Ji posreduje testne sekvence io odčitava rezultate testiranja. Če osnovni "60 - NO Q0" test odkrije napako, sledijo testi za njeno lokalizacijo. Podrobneje Je opisano testiranje mikroprocesorske enote. TESTING THE UNITS OP THE ID 1680 rtlCROCOWUTER IN PHODUCTION. A procedure for testing the units of the ID 1660 mibrocomputer is described. The testing is implenented on a specially designed microcomputer ID 1680. The unit under the test is connected to the testing computer via testing interface which transmits test sequences and monitors test results. If the basic "60 - NO 60" test detects a fault, localization tests are resumed. Testing of the microprocessor unit is described precisely underneath. UVOĐ V proizvodnji mikroraSunalnikoT zavzema pomembno vlogo testiranje posameznih enot mlkrora-äxjnalnilM, kar je predpogod za pravilno delovanje konSnega produkta: ene od speciflSnih konfiguracij mikroračunalnika. Testiranje posamezne enote je v bistvu sestavljeno iz zaporedja teatov, od katerili je prvi in obenem osnovni "GO - NO GO" test, ki detektira eventuelne napake v enoti. Ta test torej odloSa, ali enota; ki je prišla iz proizvodnje, pravilno deluje, ali pa je na njej napaka. Zato je potrebno v njem podrobno preizkusiti vsa funkcije,.ki.jib ima testirana enota. V primeru, da je bila odkrita napaka, sledijo testi za njeno lokalizacijo. Lokalizacija napak ni vedno uspešna in je možno, da pridemo v primeru veSkratnlb napak do napačnih zaključkov ( protislovni rezultati testov ). Takrat je potrebno enoto s napakami roSno protestirati ob upoštevanju rezultatov avtomatskega testiranja. Frvl test za lokalizacijo napaka naj pokaže, če 80 v enoti fatalne napake, oziroma, če se enota sploh odziva na zunanje testne sekvence. Ostali testi preizkusijo delovanje posameznih funkcionalno zaključenih delov enote. Iz omožlce rezultatov sklepamo na lokacijo napak* TESTIRANJE ENOT MIKRORAČUNALNIKA ID 1680 Testiranje se izvaja na posebno prirejenem testnem računalniku IĐ 1680. Enote, ki jih testiramo, povežemo s testnim računalnikom preko vmesnika, ki je na drugi strani priključen direktno na si> stensko vodilo ( slika 1 ), Ha vaesnil^ za testiranje so realizirane naslednje funkcijet - ojačitev slstemakih signalov in obenem ločitev testirane enota od sistemskega vodila testnega računalnika; - logika za odjemanj« podatkov is testnih točk ( signali, ki niso dostopni na konektorju }| - logika za določanja smeri pretoka signalov preko vmesnika ( dvosmerne linij« podatkovnega vodila, preklapljanje adresnih linij nad istim pomnilnikom ); 1 k by tov RAM pomnilnika za. iBiaenjavanje testnih vzorcev in rezultatov testiranja ned testnim ra£imalnikom in testirano enoto; 'J- k bytov EPROM pomnilnika za reaidančne testne programe ( z možnostjo razširitve ); logika za nadziranje adresnega vodila EPROM pomnilnika ( indikacija, če se testni program pravilno izvaja ); vezje aa izvajanje programa po korakih ( step by step ), SISTEMSKO voon.o Slika 1 Enote, ki jih testiramo, ločimo na dva osnovna tipa: procesorske in periferne. Procesorske so tiste, ki vsebujejo mikroprocesor in so zmožne delovati samostojno, med periferne pa spadajo različne pomnilniäke enoto, vmesniki za periferijo in podobno. Pri testiranju perifernih enot RAM in EPROM pomnilnika vmesnika ne uporabljamo. Logika vmesnika odpira vmesne ojačevalnike tako, da pridejo na konektor testirane enote kar signali sistemskega vodila ( transparentno delovanje vmesnika ). Testni računalnik dobiva rezultate testiranja direktno preko konektorja sistemskega vodila, ter dodatno informacijo iz testnih točk. Podrobneje si oglejmo testiranje procesorskih enot; Testirano enoto najprej preizkusimo z detekcij-Bkira testnim programom < GO - NO GO ) teat. Ta program izvrši sama testirana enota, i-ezultat pa kontrolira testni računalnik, ki tudi sporoSi, če Je rezultat pravilen ali ne. Za izdelavo testnega programa Je bila izdelana podrobna ana- liza funkcionalnega delovanja testirane enote. Med izvrševanjem testnega programa mora vsaka : električna povezava med elementi enote vsaj enkrat zavzeti logično stanje "1" in stanje "O", dve sosednji povezavi naj izmenično zavzemata komplementarne vrednosti, rezultate posameznih akcij sproti kontrolira testirana enota sama, oziroma se odražajo v končnem rezultatu. Poleg analize testirane enote se ob izdelavi testnih programov upošteva tudi izkuänje in rezultate testiranja v tovarni, testni program je Se dodatno usmerjen v odkrivanje najbolj pogostih napak. Testni programi za lokalizacijo napak se izvršujejo korakoma pod kontrolo testnega računalnika. Podnožje EPROM pomnilnika testirane enote povežemo preko trakastega kabla z EPROM pomnilnikom vmesnika, kjer se nahajajo testni programi. Testirano enoto se resetira. Sledi izvajanje testnega programa po korakih. Tipična sekvenca testiranja Je sledeča: - testni rač. drži testirano enoto v stanju STOJ, - testni rač. dovoli testirani enoti, da izvrèi naslednjo instrukcijo testnega programa in zopet preide v stanje STOJ, - testni rač, prečita informacijo o stanjih v testnih točkah ter o stanju adresnega vodila testirane ©note in jo primerja z referenčnimi vrednostmi, - sledi izvršitev naslednje instrukcije. Izvajanje programa se prekine, ko se odčitane vrednosti ne ujemajo z referenčnimi. Iz mesta, kjer Je bilo izvrševanje prùgraraa prekinjeno, sklepamo o lokaciji napake. Izbira mesta testnih točk Je rezultat analize posamezne enote, običajno Jih izberemo na izhodih kompleksnejših funkcij ( n, pr, izhod deko-derja adres in podobno ). LITERATÜEA 1) R.S.Bradley; A three stage approach to Ißl board testing , Electronic Engineering, April 1981 2) K.D.Lippmann, E.S.Donn: Design forethought promotes easier testing of microcomputer boards, Electronics, January 18, 1979 JEDNA METODA PROCENE VREMENA TRAJANJA PRENOSA PODATAKA INFORMATICA 2/1981 VLADIMIR HOLODKOV UĐK: 681.3:621.398 ZOIL „VOJVODINA", RZ „VOJVODINA - AOP' NOVI SAD članak daje jednu metodu procene vremena trajanja prenosa podataka telefonskim linijama. Razvijen je algoritam koji na svom ulazu kao proinenljivu ima broj dokumenata čiji podaci su memo-risani na nekom medij umu. Izlazna promenljiva je vreme potrebno za prenos membrisanih podataka. A METHOD OF COMPUTING THE DATA TRANSMISSION TIME The paper presents a method of aaloulation the data transmission time through phone linee. The algovythm is defined. A input variable of the algorythm is the number of doaumenta ahiah adre stored on some of the stipage media. A output variable is the data transmission time. 1 UVODNA RAZMATIIANJA Ü praksi se ukazala potreba da se pri projekto-vanju kapaciteta komponenti komunikacione mreže i njenoj eksploataciji, dobiju podaci o vremenu trajanja prenosa podataka i to telefonskim linijama. Kako je pri proceni postojala varijacija obima podataka, moralo se idi na generali-zovanu formu prooene vremena trajanja ptenosa podataka. Algoritam je na svom ulazu imao obim podataka iskazan kao broj dokumenata čiji se meitiorisani podaci äalju a na izlazu se deblja vreme trajanja prenosa podataka. U tom pošma-tranju su brzina prenosa (u bitovi u sekundi) i dužina fizičkog sloga bili parametri. Za potre-bw korektnog rada algoritma bilo je neophodno formirati "početno stanje" koje je izražavalo uticaje fizičkih karakteristika pojedinih komponenti komunikacione mre £e. Fo preporukama CCITT koje važe i za SFRJ kao potpisnice, postoje standardme brzine prenosa podataka telefonskim linijama (baud rate) i de fin i Su se svi us lovi potrebni za kvalitetan prenos podataka. Ali, vreme prenosa podataka se he može dobiti jednostavnim deljenjem ukupnog broja bitova unetih dokumenata sa brzinom prenosa podataka koju diktira modem. UopSteni pristup reSavanj u problema procene vremena trajanja prenosa je diktiran velikim varijetetima konfiguracije komunikacione mreže i dinamičkom promenom obima podataka koji se prenose . Healna brzina prenosa podataka je ovisna od niza uticaja: Uti-caj smetnji U kontinulanom kanalu (fizička veza izmedju dva podema) se mogu posmatratij . linearna izobličer.ja . nelinearna izobličenja . smetnje: , aditlvne -fluktuacioni Sum (beli ili Gausov) -impulsni šumovi -interferentne smetnje . multiplikativne -varijacija prijemnog nivo signala (kratkotrajni prekidi) -frekvencijski pomeraj -fazni džiter -skokovi faze. Svi ovi uticaji su u krajnjoj meri iskazani jednim parametrom koji se može nazvati "stopa pog-reSnih bitova" (error bit rate) koji je ovisan od vrste telefonskog kanala 1 brzine prenosa podataka. Pored ovoga, CClTT daje Indikaciju da pri prenosu podataka npr. preko iznajmljene telefonske linije dozvoljen broj ometajudih impulsa u jednom satu vrSnog opterećenja iznosi oko 70. Kako je Čest slučaj da se ometajući impulsi javljaju u paketima sa velikim pauzama izmedju njih, realno je posmatrati impulsne šumove kao da iSe se u toku jednog sata ponoviti slanje četiri bloka. Naime, CCITT kaže da pri pragu prenosa od -2lđBmO na iznajmljenoj liniji se može javiti 18 in^iulsa svakih 15 minuta, te ako se tih 18 impulsa posmatra kao jedan paket inkorporiran u blok podataka onda u jednom satu ima takvih 4 paketa. Uticaj upravljačkih znakova i sekvencl linijskog protokola {DLCC - Data Link Control Characters) Na vreme trajanja prenosa, utiče i broj upravljačkih znakova za uspostavljanje komunikacija izmedju dva terminalna uredjaja i aekvence Iz konkretno primenjenog protokola. U zavisnosti od protokola (BSC, BDIiC, HDLC itd.) manja se i broj upravljačkih znakova i sekvencl u jednom bloku podataka koji se prenosi u jednom trenutku. Ako jé 62 linijski protokol primenjen na polu-dupleks tip prenosa podataka onda se javlja uticaj i obrtanja amara prenosa podataka (turnaround). U cilju zaštite podataka od smatnj'i u jednom bloku podataka koji se prenosi, postoje razni postupci kontrole pariteta bitova na nivou znaka i na nivou bita (LRC, VRC, BCC ili CRC kontrola). To su redundantni znakovi te i oni utiču na vreme trajanja prenosa podataka. ** Uticaj hardverskih karakteristika uredjaja koji učestvuju u prenosu podataka Modemi utiöu na prenos podataka svojom karakteristikom "time turnaround" i "baud rate". Periferni uređjaji (čitač kartica, jedinice magnetne trake, diskova, disketa i štampač) utiču na prenos-podataka svojim karakteristikama u pogled^ izvodjenja upisno/čitajučlh (read/write) operacija. Ovaj uticaj je znaöajan ako nisu primenjene tehnike duple baferizacije ili preklapanja (overlaying) U/I operacija sa prenosom podataka. Telefonska linija se može posrnatrati kao tala-sovod te postoji vreme propagacije signala koje se povedava po odredjenoj zakonitosti sa porastom udaljenosti prijeimog terminala. Vreme kašnjenja CPU moSe uticati i ono nije fiksno ved promenljivo. Ovo zavisi od opterećenosti raSunara u toku trajanja prenosa podataka. ** Uticaj konverzije kodova Prisutne su dve vrste konverzija u toku prenosa podataka;, . konverzija internog koda mašine u kod koji se koristi za prenos poda.taka (npr, ASCII u EBCDIC i obratno) . konverzija paralelnog niza bitova koji formiraju jedan znak u serijski niz bitova koji ulaze u modem gde se vr§i modulacija i obratno. Ali, u radu je data generalizacija koja so može primeniti i za druge uslove uz neznatne izmene algoritma. i OPIS ALGORITMA U ovom radu su koriSćene sledeče oznake: 'dok 'reo rec dlcc syn pad red bit rec/bl" ^TA -"smer ^blok " ^RD - broj dokumenata čiji memorisani podaci se prenose preko telefonske linijo jedan dokumenat se može posmatrati u smislu organizacije podataka na mcdl-jumima za pamćenje kao logički slog. Flziöka organizacija podataka je obična drugačija tako da u jednom logičkom slogu ima n^^^^, fizičkih slogova dužina fizičkog sloga na memorijskom inedijumu u znakovima maksinttilati broj upravljačkih znakova primenjenog linijskog protokola u jednom bloku za transmisiju (bez sinhroni-zacionih znakova, redundantnih znakova za zaštitu - CRC i znakova za popunjavanje - pading} prosefian broj sinhronizacionih znakova u jednom bloku proaečan broj znakova za popunjavanje u jednom bloku prosečan broj redundantnih znakova za proveru pariteta u jednom bloku broj bitova sa bitom pariteta po jednom znaku za kod koji se koristi za prenos podataka maksimalan broj fizičkih slogova u jednom bloku vreme obrtanja smera linije u sekundama (time turnaround) broj promena smera linije po jednom bloku koji se prenosi maksimalna dužina bloka za prenos u znakovima vretne čitanja jednog fizičkog Sloga u sekundama vreme pisanja jednog fizičkog sloga u sekundama Uticaj i ovih konverzija je zanemaren u priiren jenom algoritmu jer se pošlo od pretpostavke da u većini đanaSnjih uredjaja se koriste "bit slice" mikroprocesori. ** Uticaj manipulacije operatera sa memorijskim medijumima Ukoliko se u toku prenosa podataka radi sa jedinicama magnetnih traka, čitačem kartica, štampa-Cera ili drugim perifernim uredjajem, od interesa je posmatrati i vreme manipulacije operatera zbog potrebe npr. montiranja kotura.magnetne trake i slično. Pretpostavljeno je da u toku prenosa podataka (linija je aktivna} ü računskom centru je ostvarena takva organizacija rada da se na "host" računaru koriste jedinice magnetnih diskova a da se na udaljenim punktovima ne javlja potreba za manipulacijom sa memorijskim medljumiitia. Za vreme tj^jj i su potrebne napomene: jedinice dinkova i-li iii'uk.-La ( flol'i'y diok) Srednje vreme pristupa uj^isno/čitajuče glave jednom ci lindru je t^jjjj/3 gdc je vreme kretanj:i u/č glave da stigne od prvog do pos-lednjeg cilindra, t^^^j^ se može i izračunati kao max n. t^ gde je n broj cilindara za memorisanje une tih podataka sa dokumenata a t^ vreme potrebno u/č glavi da predje put iznedju dva susedna cilindra. Pored ovoga, javlja se uticaj rotacionog kašnjenja koje je dato sledečim izrazom: 60 / (2.N) a DOMEN FHImNS ALGOlU/fMA Algoritam je bio prvobitno namenjen i praktično proveren pod sledečim okolnostima: nema "space compression" dvo-žični prenos preko komutirane telofonske linije polu-dupleks tip prenosa "point-to-point" komuniciranje BSC protokol koji emulira IBM 37Ö0 terminal Remote Job Entry obrada nema overlayinga U/I operacija sa prenosom podataka. gde je N broj obrtanja osovine jedinice diska ili diskete u jednoj minuti. Kod jedinica disketa ae javlja uticaj tzv. vremena postavljarija u/č glave (setting time) a to je vreme potrebno u/č glavi da predje iz neaktivnog u aktivno stanje (neaktivno stanje je odredjeno metianičkom razdvojenoSću u/č glave od površine diskete) 1 neka je to vreme t^. Prema tome, srednje vreme pristupa fizičkom slo^ gu je dato aproksimativnim izrazom: - >1. t 00 Tjr + t (aeo) (i~HD iti i/NT) P * jedinice magnetnih traka ProseGno vreme pristupa jednom slogu na magnetnoj traci je dato izrazom: "v.FB + t (sec) ii-RD ili WRT) g de su; "pek FB N^/(v,Fß) - vreme pokretanja kotura magnetne trake - broj znakova u bloku upisanog ili učitanog sa magnetne trake - brzina jedinice magnetne trake u znakovima u sekundi - faktor bloka (broj fizičltih slogova u jednom bloku) r vreme potrebno da se svi znakovi fiziSkog bloka prenesu sa magnetne trake u operativnu memoriju - vreme zaustavljanja kotura magnetne trake može javtti jedan pogrešan bit pri brzini od 1200 bit/sec na komutiranoj telefonskoj liniji. To zna&l, da ako je dužina bloka za prenos 5 30 znakova i priinenjen je EBCDIC kod tada se na svakoh proseSno jedan blok javlja.jedan pogrešan blok koji se mora re-transmitovati. n - uticaj impulsnih smetnji će se iskazati kao broj ometajućih paketa Impulsnih šumova na jedan sat. Broj oraetajuöih impulsa se može dobiti merenjima koja su složena i dugotrajna. T - vreme trajanja prenosa podataka za konkretan broj dokumenata uz sve prethodne predpostavke. U razvijenom algoritmu (slika 1) je N^^j^ broj dokumenata posmatran kao nezavisno promenljiva a T kao zavisno promenljiva. Parametri su bili ^REC ^ promenljive su predstavljale konstante za odredjeni tip uredjaja, liniju i modeme. * čitač/buäaö kartica To je relativno spora jedinica te se radi sa tehnikom duplog baferisanja (u jednom baferu se formira blok podataka za prenos/prijem a drugom se nalazi blok koji se prenosi/prima), Broj bafera može biti veći od 2. Proaečno vre^ me formiranja jednog bloka za prenos može se dobiti aproksimativnim izrazomi PB L gde su: 1 6 0 blok X 80 ^lok 80 (sec) (i=RD ili WRT> X - broj bafera v - brzina čitanja/bušenja kartica u jednoj minuti * štampač To je takodje relativno spora jedinica namenjena isključivo za prijem podataka. U gornjem izrazu uitiesto 80 znakova treba da stoji npr. 132 ako se radi o Štampaču sa 132 pozicije za štampanje a pri tome je v brzina štampanja redova u jednoj minuti. Ostali podaci za potrebe rada algoritma su; DELAY PROP ■"ACK ßd n gr vreme kašnjenja CPU "host" računata je vreme koje centralni procesor upotrebi pre obrtanja linije a nakon prijema bloka podataka ("receive-to-tran-smit" kašnjenje). Ovo vreme može biti aproksimativno od nula do nekoliko sekundi, ovisno od brzine obrade podataka svih aplikacija na cačunaru, opteredenosti Cfälog računara i od primenjenog tipa softvera za podršku komunikacijama vrene propagaci je je vre ma potrèbno jadnom slogu da se prenese izmsdju modema. Ovo vreme je zavisno od me-djusobnog rastojanja otpremnog i prijemnog terminala. Krede se u granicama od 15 msec do 150 tiisec. vreme potrebno za prijem pozitivne potvrde primljenog bloka. Red veličine je 120 msec pri üüü bi. L/seo do 20 msec pri 2400 bit/aec standardna CCITT brzina preji<>.sa na modemu u bitima u jednoj aekiiridi inverzna stopa greške u bitima na telefonskoj liniji (koriste se CCITT preporuke). Na primer, na svakih n =10^ (jK Potrebna su slededa izračunavanja: - ukupan broj fizičkih slogova memorisanih na medijumu a koji će se slati preko telefonskih linija; "FIZS " "dok-'^REC - ukupan broj znakova za prenos (bez redundantnih, dlcc, sinhronizacionih i popunjavajufiih znakova): - ukupan broj blokova za prenos bez ponavljanja: n„ n TB 'tz ^blok - broj blokova čije se slanje ponavlja cbog uti-caja smetnji se može iskazati na sledeči način s TB (uticaj ssMìtnjiì PB "pB " sfw'"^ (uticaj impulsnih smetnji) - ukupan broj blokova za prenos jC tšdas n blok "TB + "PB + "PB bita se - u>:upan broj dlcc, sinhronizacionih, redundantnih i popunjavaj ud ih znakova je; '^RZ = ^"DLCC ^ "SYN + "RED ^ "PAD>-"blok - ukupan broj znakova koji «e Šalje u jednom sme-ru sa otprenmog terminala iskazanog u bttima je: "total " "bit'"" - ukupno vreme trajanja prenosa podataka bez korekcije je: - ukupno vrema korekcije je;"(slika 2) I - ft^RD-^iitEC/BL * "SMER'^TA * SiiRT'^REC/BL + •^DEIJiV ^ACK*-^lok , 64 - ùkupijó.' vreme, traj^ja .prenosa podataka je ko-naönoi T = T' 1+ T" Odredjeniin zamenaitia i transformacijama se moŽe dobiti zavisnost vremena trajanja prenosa podataka T od broja dokumenata N^^j^, dok su parametri brzina prenosa podataka diktirana od strane modema Bd i duäina fiziCkog s}.oga u znakovima ^REC- Konaäan izraz koji prikazuje vreine trajanja prenosa podataka je i T = a.N dok gdis'' 8U i .a J ^ aj: ^'rec a - 1 "BII/.., * ^ Bd , "IMP 'BIT pri Cemu su: = "dlcc' "sra "red + ''pad osovine jedinice disketa je 360 obr/min, broj cilindara je 75. Upotrebijeni su modemi PP-1200 proizvodnje Instituta "Mihajlo Pupin" iz Beograda koji je imao msec, broj obrtanja linije je a brzina prenosa je bila 1200 b/s. REC '1, Broj ometaju<5ih Impulsa pri prora5unu je zanemaren kao 1 vreme kašnjenja cpu t^^^y Ostale vrednosti sui n msec, tpjjQp=20 msec i Tabela 1: Resultati mörenja vremena na relaciji Novi Sad - Senta izvršeni 7;maja 1981. Broj pokušaja uspostavljanja veze Broj dokumenata Procena vremena (sec) Izme- reno vreme (sec) Razlika (sec) « greške 2 112 164 165 1 0.6 6 132 193 225 32 16.5 4 366 536 570 34 6.3 isti poziv 550 805 810 5 0.6 " 690 1010 1035 .......2b;..... 2.4 1728 2530 2592 62 2.4 II 1701 249] 2721 230 9.2 + '-rd-"hec/bl "smer'^ta ^rt* •"rec/bl ^ delay ^-^prop" •"REC/BL ^ACK 4 bstimacija algoritma Razvijen je program koji je omogudio đobijan.je diskretnih vrednosti za vreroe prenosa T 1 broj dokumenata N^qj^- To su bile promenljive u programu. Dužina fizičkog sloga L^^^ 1 brzina prenosa u modemu Bd su bili parametri. Posmatrana je konkretna komunikaciona mreža te je izvršen teorijski proračun po prikazanom àlgotitmu. Dobljene vrednosti vremena trajanja prenosa su uporedjivane sa vrednostima dobljene merenjem vremena na komutiranoj telefonskoj liniji iz-medju dva grada na medjusobnom rastojanju od oko 100 km. Neki rezultati su prikazani kao dodatak ovom članku. Merenja vremena trajanja prenosa podataka vrSe-na pu na komutiranom prenosnom putu koji se sastojao od dve övorne telefonske centrale u Novom Sadu i Subotici, jedne krajnje telefonske centrale u Senti, dve VF parice, dve parice (jedna u Novom Sadu a druga u Senti) i jedne ARM veze u Novom Sadu od mesne telefonske centrale do čvome {slika 3). Za podatke dobljene u tabeli su važile sledede vrednosti: KoriSden je inteligentan terminal ADDS System 75 koji eraulira BSC komuniciranje IBM 3780 1 ima dve jedinice disketa kapaciteta oko 1 MBv, vrednosti su. n^^^M, 5 30, track-to-traok vreme jedinice diskete je 3 msec, setting vreme je 15 msec, broj obrtaja Merenja vremena su vršena na joS nekim relacijama i dobljene vrednosti su bile očekivane prema proračunu. Analizom svih vremena trajanja prenosa podataka iizimajuöl u obzir kvalitet telefonskih linija u SAP Vojvodina došlo se do sledečih zaključaka: * broj ometajudih impulsa na komutiranoj liniji u proračunu postaje značajan ako je vreme tra^ janja prenosa podataka veće od jednog sata. Taj uticaj je izražen i u prekidima na zahtev linijskog protokola jer su uslovi za prenos podataka pogorSani. * Merenja su vršena uglavnom u prepodnevnim satima kada je telefonski saobraćaj intenzivan (period od 9,30 do 13,00 časova). Uticaj smetnji je postajao značajan u više od 30% utrošenog vremena na pokuäaj slanja drugih datoteka. Zbog neuspeha se odustajalo od slanja velikih datoteka {više od 1700 dokumenata). * Merenja su vršena na slededi način: za svaku datoteku je biran telefonski pretplatnički broj na kraju linije gde se nalazio prijemni terminal. Time se želelo uspostavljanje raznih prenosnih puteva da bi se na neki način uprosečio uticaj smetnji. Odstupanja izmerenog vremena trajanja prenosa podataka od onog dobijenog primenom algoritma iz ovog rađa je u prošeku iznosilo oko +4% {uzimajudi u obzir neobjavljena merenja). Ovakvo odstupanje se može ema-trati zadotfoljavajudim. Pozitivno odstupanje ukazuje na povedan broj pogreönih bitova iskazanog sa veličinom n^j^. Osnovne vrednosti razvijenog algoritma su u sledečem: * Obuhvatfen je niz faktora koji utiču na vrome prenosa podataka te se dobijaju tačnijo vrednosti. * Eazvijen algoritam je praktično upotrebijen 1 rezultati su zadovoljavajući imajući na umu predpostavke navedene u sekciji 2. * Algoritam je veojna jednostavan i programibi-lan i uzima u obzir dve veličine koje su od Interesa za posnmtranje sa aspekta korisnika komunikacione opreme: broj dokunenata i odgovarajuće vreitie trajanja prenosa. * Pri fiksnidi vrednostiina v.a brainii pCLvntiüa podataka u modemu i dužini fizičkog'sloya, moguće je formirati grafikon T=f(N, , ) ttiKo da korisnici opreme su u mogućnosti"" 8a veoma brzo doznaju koliko vremena je potrebno da se prenese odredjen obim dokumenata. Ovo je iiaroči-to bitno ako se radi o vülikoj radnoj argani-zaclji koja ima geografski dislocirane poslovne jedinice Inpr. zajednice osiguranja, banke, elektrodistribucija i sL.) a koriste istorodnu opremu, pored ovoga, poslovne jedinLue au če.s-to i u raznim tarifnim zonama 1>TT aaobraćajći te se na ovaj naćin olakäava i izračunavanje troškova prenosa podataka.Poslovne jedinicc ćesto imaju različite stepeno prosečncj godišnjeg obima podataka tako da grafikon' daje brzi odgovor na pitanje "Koliko vrentena je. potrebno da se prenese toliko i toliko dokumenata finan-sijskog knjigovodstva?". uf/cay fi7ickih ker ahteri !,iika Slika 1 Si^motsk/ prikaz algoritam / / /' / // .'t. l-yfjyC.ctà, Bri- .-'.V -fc/V ,■ ^ doJr ofpremn/ term/rtai S oipren^ni modem i tir, i Ja prijemni modem ■prijamni i er mi no! ^hj^Q Z: Raspored vremena po Jednorr> bloku -tS/ecfea blck t : {jauti raie z« 'Sii jedan hiaic Slikti 3; Konfiguracija za vrednosti 12 lob. INFORMATICA 2/1981 SODOBNI DINAMEC^'i POMNILNIKI ZA MIKRORAČUNALNIKE R. MURN, D. PECEK UDK: 681.3-181.4 INSTITUT '„JOŽEF STEFAN", LJUBLJANA, JUGOSLAVIJA V referatu prHtaaana probleioatikB zasnove in reslizacije pomnilnega modul« za sodobne mikro-raäunalniVe. Osnovni grsđni'ti modula so dinasnični .pomnilniki konfiguracije G*! K X 1. Referat je razdeljen v dve poglsvil. Prvo predstavlja realizacijo veaij za odkrivanje in popravljanje enojnih napak v pomnilniku, ter odkrivanje dvojnih in masovnih napak. Drugo poglavje pa prikaže čb-Bovno pogojsna krmili' vezja, ki skrbijo za optimalno reševanje'konfliktnih situacij. Le-te so pogojene s jjoseganjeu v pomnilnik f progrsaiako ali DMA), pojavljanjem in popravijacjeiE napak, osvezevanjita in besedno orientirano EaSoito pomnilnika pred vpisom. DYNAMIC «EKQTiY MODULES POP UP-TO-DATE MICEOCOMFÜTEHS. The design and realisation problematice of dynamic ^amory module for up-to-date microcomputers are given in this paper. The first part deals with error detection and correction circuits for single, double and burst errors. In the second part the time domain circuits for arbitration in conflict eituations ere discussed. UVOD Dinamični pomnilniki so pomembni gra- dniki nikroračunalniSkih sistemov. Vedno večje razvojne zahteve narek^-jejo tudi vedno bolj kompleksnfe pomnilničke module. Dosedanji 'i K in 16 K pomnilniški čipi so uspesno v uporabi in predstavljajo industriiaki standard. Nova generacije G't K PC nudi nadaljnje razvojne ugodnosti, prav tako pa zahteva nekatere specifiSne ukrepe v primeru pojavljanja trenutnih napak, katerih vzrok je v precejšnji deri odvisen od sevanja delcev alfa, saj tehnologija izdelave PC visoke integracije zahteve uporabo radioaktivnih elementov (radij, torij). V referatu Je opiagn razvoj pomnilnega modula sestavljenega iz PC velikosti 64 K x I a vsemi specifiSnimi vezji potrebnimi za priklju-ettav na eostiteljski mikroračunalnik, davni povdarek je na opisu veaja za- korekcijo enojnih napak in detekcijo dvojnih in masovnih napak, ter reševanju časovnih pogojev, ki jih določa optimalno vsklejeno delovanje pomnilnega modula in hitre inačice mikroprocesorja 6H0Ü. Podane so rešitve kompleksne konfliktne situacije, ki jo narekujejo; poseganje v pomnilnik (programsko ali DWA), pojavljanje ter popravljanje napak in besedno orientirana zaSčita pomnilnika pred vpisom. KtJiUi-n referata ni seznaniti bralca z uporabo in krmiljenjem dinam^ičnih PČ, pač pa prikazati kako bistveno povečamo zanesljivost delovanja pomnilnega modula, ga opremimo z dodatnimi funkcijami (zaSČita, signalizacija) in kako 2 materialno opremo reSuJemo konfliktne situacije v primeru, ko smo časovno zelo omejeni. POVEČANJE ZANESLJIVOSTI DINAMIČNIH POMNILNIH MODULOV Sodobni e^v K PČ kar najbolj ustrezajo razvojnim zahtevam hitro razvijajočih se mikroračunalniš-kih sistemov. Velika gostota pomnilnih celic, problem nečistoč, sevanje delcev alfa in kompleksnost vezij pa zahtevajo vpeljavo posebnih ukrepov za dosego visoke stopnje zanesljivosti. Izkušnje kažejo, da bo najbolj pogoste enojne trenutne napake, ki eo iz stališča diagnostike napak najbolj neugodne. Zastavi se nam vprašanje, kakšne testne postopke je potrebno izdelati,vendar tako, da ne povzročijo neprijetnih stranskih učinkov. Izkaže se, da so najbolj primerni detekcijski in korekcijski kodi. Enostavni in učinkoviti eo Hammingovi kodi za korekcijo enojne in detekcijo dvojne napake. Osnovnim informacijskim bitom (m), dodamo preizku-ševalne bite glede na parnost (k), tako, da dobimo potrebno število bitov n=m+k . Za dosego željenih lastnosti mora znašati Hammlngova razdalja đ=4 . S pomočjo izsledkov teorije de-tekcijskih in korekcijskih kodov ni težko določiti minimalno potrebno število bitov /1./. Za ß=a je ks^. kar predstavlja 62,5 odstotno redundanco. (Za s6mo korekcijo enojnih nspak Je ksit.) Kako realizirati vezje, ki bo izpolnjevalo dane zahteve. Vezje more biti dovolj enostavno in zanesljivo, upoštevati mora pojavitev napak na vseh bitih (iii*k), čas potreben za korekcijo mora biti čim krajši. V nadaljevanju je prikazana lastna zasnove sistema za korekcijo enojnih in detekcijo dvojnih nspak. Uporabljen je 8 bitni mikro računalnik in 64 K X I PC, torej 8*5=15 PC. Sistem je zasnovan na originalni Hammingovi zamisli /2/, kjer se podatkovni in preizkuSevalnl biti med seboj prepletajo, teko, da Je omogočeno enostavno dekodiranje napačnih bitov. la ■> o Po ■o o o h V) m 1 2 5 t 5 6 7 8 9 10 U 12 13 Pl 0 X X X X X X 0 X X X X X X 0 X X X X I 0 X X X X X 0 X X X X X X X X X X X X X Tabela 1 Blok shema detekcije in korekcije nepsk Tvorimo naslednji vrstni red podatkovnih bitov (U^» D^) in preizkuševBlnih bitov U^t Kot js TBzvidno iz Tabele 1, imntno za korekcijo enojne nspnke A funkcije parnoati P tP,. Znak X pomeni za vsako funkcijo ustrezni podatkovni bit, ki se upoSteve, ter ustrezni preizkuše-valrsi bit, ki omogoči sodo psrnoatno funkcijo. PQBBiney.ni otolpci ao binarno rakodirsni In kažejo vretnl red bitov, Xa detekcijo dvojnih napak Je dodana funkcija parnoati Pj , ki Jo do -ločajo vsi podatkovni in preizkušAvslni biti. Vezje za detekcijo Je ZEraJeno tsko, Üra kot ati'onaki efekt nudi detekcijo masovne napake "atuck at 1", čjo vezij F v KRAM. Pri čitanju s pomočjo vezij I'. pridSerjemo^stere in novo tvorjene pre-izkuÈevelne bite. Če ni nepsk bo vsi Pj enaki nič, prav tako je vrednost niS v toSki'-K., kl zavzame vrednost nič tudi pri dvojnih napakah. S pomoKjo siBnalov v točki P lahko loSimo oba primera. V primeru enojne napake v katerem koli bitu^iavzame ustrezen P, vrednost 1. Meato napake < doVoSi dekodirno vezje D, korekcij-Bko vezje K pa negira napaEen bit. Napako v bitu k. lokaliziramo a pomofijo vhoA kj. . Vezje D.oüioEöäi diagnostiko enojnih in dvojnih napak. Evojna napaka sproži alarm Ifi prekinitev delovanja. Hitrost javljanja in korekcija nepsk Je odvisna od hitrosti uporabljenih älpov. Tipi-Sna podatka za detekcijo in korekcijo eta 30-i^O na ter 50-60 na. Pri zapisu v pomnilnik znplSemo podatke v lU/VM in preizkuševalne bite, ki jiti tvorisno o pomo- — 6S KRMILNA VEZJA DINAMIČNEGA POMNILNEGA MODULA SllVo krmilnih vezij ?,h dinsmične pomnilnike je v najveäjl meri odvisna od tipa mikroprocesorjB v siatemu in dodatnih zahtev in funkcij, ki naj Jih pomnilni modul oprevlja, V opisanem primeru Rre ZB uporabo priljubijencRn 8 bitnega mikroprocesorja 6800 in sicer njegove hitre verzije (6800H, 2MHZÌ. Dodatna funkcija ki narekuje zgradbo krmilnih vezij Je poleg detekcije in korekcije napak 5e beaeđno orientirana za-Sdita pred vpisom. Posebne zahteve pri gradnji modula pa so bile naslednje: - kapaciteta module 256K "byt-ov - delovanje tnilcroproceaorja ne sme biti upočasnjeno - vsa krmilna vezje nsj bodo izvedena s popularno serijo Druga točka Je narekovala še posebaj skrbno Časovno analizo delovanja modula, posebaj zaradi velikoserijske proizvodnje, kjer ne nore-00 izbirati integriranih elementov kot pri izdelavi prototipe, niti nastavljati zakasnitev z nonostabilniml elementi. Analiza Je pokazala, da je s ataliSča projektiranja na "worst cace" proizvajalce edina mo-?.na rešitev uporaba Shottky tehnologije ze vse časovno kritična vesja. Pri projektiranju je bilo seveda potrebno,upoštevati tudi časovne zahteve krmiljenje PC. Kot najbolj neugodna a.e je pokazala zehteva po minimalnem času miro-rovanja krmilnih sienalov HAS in CAS (percharee time) med posameznimi aktivnimi fazami. Ta čas mirovanja nam precej zmanjša osnovno periodo 500 ns, ki nam je ns voljo za Izvršitev akcije v pomnilniku, saj Je povsem normelno^da podfiegamo v pomnilnik,v dveh zaporednih ciklih. Vendar to še nI vse. Ce nočemo upočasnjevati delovanja računalnika, moramo pravočasno zaključiti akcijo v pomnilniku s signalom "ready" Le-ta pa mora biti prisoten vsaj 30 - 50 ns prej, predno se cikel resnično zaključi,. To pa pomeni, da se nam nar'ih ^ÜO ns zmonjSa za dodatnih 50 ns. Različni proizvajalci PČ določajo različne čase mirovanja. Vendar so v primeru uporabe 68001! zanimivi samo tisti PČ, pri kBtftrih i" čas mirovanja man.1 kot l^Ons. Razlog je preprost. Ob prlčetku aktivne faze ot-gD«la še ne smemo posegati v pomnilnik, ker norsmo počakati Se na signal VMA, ki nai& pove, da Je adresa prisotna na vodilu. To specifikacij^ proizvajalcev, pa lahko VMA kaanl glede na za največ 150 ns. To pa pomeni, da nam Je ostalo na razpolago t . =500 - 150 - (50 do 50 300 do 320 ns. RlSmere prikazuje slika 1. A /z J T VHA, JToOin-t -V. I Jf5=k. 1 1 Slika 1 Seveda Je t . tako kratek, da v tem času ne moremo rairefitfi vseh konfliktov. Zato se Je potrebno odločiti za smiselno arbitražo ob upoštevanju karakteristik pomnilnih čipov in mikroračunalnika. Le-te BO naolednjes T DMA lahko Izvajamo le če je ji?, =1 - DMA lahko traja največ us * - osveSevanJe med DMA ni dovoljeno - vsi spominski cikli 00 tipa "read-modify" a) če je zahteva 7, n'write'moramo najprej ooKledfltl vrednost zsnčitnoRa bita b) Ce Je zahteva za "reed', pa moremo bitl pripravljeni na popravljanje potencialne napake v pomnilniku. - osveževal ni cikel traja tako dolgo kot spominski cikel Omenjene lastnosti nam vsilijo naslednje moEne aktivnosti : - med DMft prepovemo osveževanje (zaradi tega se zahteva po osveževenju javlja pogosteje) si.2 - .V primeru poseganja v pomnilnik brez zahteve po osveževanju in brez Indikacije napake cikla ne podaljšamo (računalnik deluje s polno hitrostjo) , - če odkrijemo napako v pomnilniku, cikel podaljšamo za 250 na da jo popravimo In pravilno besedo zapišemo nazaj v pomnilnik, (edino hitra'verzija PČ firme Mostek je dovolj hitra, da bi'napako lahko popravili v osnovnem ciklu - brez podaljševanja) si. 5 - v primeru ko sovpadata poseg v pomnilnik in OBvezevsnje cikel podaljšamo za 5Ü0 ns. si. 't - v primeru ko sovpadajo poseg v pomnilnik, napaka in osveževanje, cikel podaljšamo «a 75008 si. 5 - v primeru, ko odkrijemo dvojno ali masovno napako sledi signalizacija preko posebne linije - v primeru zahteve za v pis v zaSčiteno lokacijo cikel podal ji'iamo z« 'i. 5 'ig, kar je in-rtlVacija mikroprocesorju za prepovedan v|ms. - d. H -«« _ Wsvtf — e.ct£._ sae _ Ate/ae, S T. ■u 1_I—I—I—\—r slike 2, 5, 5 Sedaj se je potrebno odločiti ?.e zs vrstni red Izvajanja operacij. Tu je potrebno upoštevati tip uporabljenih PC. Ce PC omogoča t.i. skrito osveževanje (osveževanje tudi če je CAS aktiven) vrstni rod aktivnosti ni pomemben.(To lepo la--stnost imajo PČ tvrdke Mostek). Za vsa ostale l'è pa velja, da ima najvišjo prioriteto osveževanje, cele nato pa lahko pričnemo s spominskim ciklom. Če iz kaknlnih koli razlogov dano osveževanju najnižjo prioriteto, moramo podatke iz pomnilks ujeti v poseben register pred pri-četkoD osveževanja. Važen podetek za dinamične pomnilDike je pogostost osveževanje. V našem primeru je izračun naslednji: 2m8/l28 osveževanj ■ 15.6u8/osvežltev. Ker v primeru DMA ne dopuščamo osvežitev more ?0Kostost zahteve za osveževanje znašati ll,6ua. 15.6ua - čas trajanjfi'ĐMA(4uš} > II.Sue). PoMJeno VPdnoat zaoVro*lmo Tia llus. Ns osnovi prikazane snallze lahko pristopimo k realizaciji posameznih vezij, kl v medsebojni povezavi predstavljajo krmilno funkcijo pom-r nilnega modula. Zaradi nekaterih časovno zelo kritičnih zahtev, je potrebno ustrezna vezja zasnovati teko, de delujejo kar nejhitreje, čeprav obseg uporablJsDlh el«iii«ntov naraste (stremimo ZB paralelnim načinom delovanja). Paralelni način delovanja vodi v asinhroni zen, zato Je potrebno. ..vpelje ti dodatne informacijelce signale, B pomočjo ksterib delovanje krmilnika slnhro- nlžiramo. ! ■■ Poglejmo al podrobneje naJvaSneJSa vezja, ki tvorijo krmilni del pomnilnega modula. - detektor selekcije pomnilnega modula - Asinhroni generator signalov CAS, MUX - generator selekcije posameznih bank - vezje za nadzor osveievanja - generator pisalnih impulzov in detektor konca spominskega cikla - generator signala "ready" - generator bit« za zaiSito - generator asinhronih signalov DATA AVAIL, ERROR AVAIL, CORRECTED DATA AVAIL - hodzornlk podatkovnih pretokov - generator notranjega ooveževsnja - generator zunanjega osveSevanJa Selekcija spominskega modula Je hitro vezje, ki pogojuje selekcijo ene od Itirih bank. Zaradi časovnih omejitev veeje aktiviramo Se v delu periode, ko Je/(I ie aktiven (high). S pomočjo signala, ki pflve, da Je spominski modul selektiran in dveh dodatnih adresnih linij Aj^g in A^^ selektiramo eno od bank. Po specifikacijah proizvajalcev določimo ka-snitev med signalom MS, ki ga generira prvo vezje in signaloma MUX in CAS. Pri načrtovanju kasnltve moramo upoštevati "worst case" kssnltve signala RAS, teko de čas dostops glasi na RAS ne pa na CAS. Točna izvedba zakasnitve Je možna samo z monoflopom ali pa z zakasnilnimi linijami. Serijsko proizvodnjo pa opravičujejo zakasnllne linije. Nadzor osve£evanJa Je izveden s Števcem, ki ga poganja takt ^MHz, Ko Števec prešteje do vrednosti, ki pogojuje trenutek za osveievan-Je se ustavi in generira signal HEP HEQ. 0-sveževanje omogočimo (REF GRANT), ko ßl^ preide iz 1 v 0. ^ Spominske in osveSevalne cikle Je potrebno strogo razmejiti. To rožneJitev določa signal MCYEND (konec spominskega cikla). spominski cikel lahko traja Sam 00 ali pa 750 ns. Kot smo že konec aktivnosti e omenili,signal "ready" (RDY) pogoji Lvnosti v modulu. RDY lahko različno vpliva ne dolSlno trajanja aktivnosti v modulu. Možnih Je osem kombinacij, saj Je odvisen od treh signalov: napaka, osveževanje in zapis v zaščiteno lokacijo. Spominski modul omogoča besedno orientirano zaščito pomnilnika. S stališča programske opreme sta to dve instrukciji.ki zaščito aktivirata al4, pa deaktivireta. S stališča mater-rialne opreme pa Je zaščita enobitni register, katerega vrednost postane veljavna en cikel pred posegom v spomin in traja do konce spominskega cikla. Zaradi asinHronih vezij Je bilo potrebno vpeljati tri glavne krmilne linije, ki sinhroni-zirajo delovanje krmilnika. Linija DATA AVAIL pove, kda.1 so podstkl pri čitanju na Internem voallu, ERROR AVAIL pove kdoj lahko pogledamo v statusni register ze indikacijo napak, CORRECTED LATA na pove, kdaj Je izzvenel prehodni pojav vezja za korekcijo. Nadzornik podatkovnih pretokov Je krmilno vezje , ki skrbi za pravilno preklapljanje ojačevalnikov treh stanj. Z nJim krmilimo šest različnih ojačevalnikov, zato Je potrebno konstrukciji tega vezja posvetiti precej pozornosti, predvsem zato, da zaradi hitrih preklopov ne prihaja do kratkih stikov ne izhodi^ ojačevalnikov. Spominski modul omogoča zunanje in notranje osveževanje. Zunanje osveževanje Je izvede&a.. s sedem bitnim Števcem, vezje za notranje o-sveževanje pa generira negativni signal RPSH. Za katero verzijo se odloČimo,je odvisno od lastnosti uporabljenih PC. Ob koncu članka bi povdarili, da prikazani krmilnik deluje v večnivojski povratnih zankah in mora biti zaradi tega še posebej skrbno načrten in izdelan. ZAKLJUČEK Prikazana problematika gradnje sodobnega dinamičnega pomnilnika za mikroračunalnike pobega v področje Čiste materialne opreme. Članku nismo namenoma pridružili nobenih podrobnih načrtov, saj bi le-ti presegali okvir za katerega Je članek namenjen. Bralec, ki se bo pri svojem delu srečal s podobno proble-mstlko, bo morda v članku našel kak utrinek za nadaljnje delo. LITERATURA /I/ R, Murn; Postopki za povečevanje zanesljivosti digitalnih sistemov. Informatica 4, št. 2, I960 /2/ R.W. Hamming; Error detecting and error correcting codes. Bell Syst. Techn. J., 29, Jan. 1950 iforma ' Sixteenth Jnternatfonal Symposium on Cocnputer technology and Problems òi Informatics Ifiternalionat exhibition of Computer Tectinology Ljubijana. May at Ljubljana Fair ticaöi Mednarodni simpozij za računalniška (ehnalogijo in probleme inlOiTTiatike mednarodna razstava računalniške tehnologije Ljubljana. 10.^14. maja Gospodarsko razstavišče Ljubljana INFORMATICA 2/1981 U P O R A B N P R O G R A M J s to številko Irtformatlce začenjamo objavljati redno rubriko za uporabne programe. Odgovorimo najprej na vprašanje, kaj je uporaben-program in katera so uporabna področja računalniške uporabe. Začnimo z uporabnimi področji! Med nje sodijo prav gotovo poslovna metodologija, ekonomelrični izra^ čuni, napovedovanja razvoja gospodarskih dogodkov in njihovih teženj, planiranje proizvodnje In postopkov, mali informacijski sistemi, metodologija obdelave podatkov, upravljanje podatkovnih zbirk in baz, uporaba v tehnologiji itd. Konkretni uporabni programi so npr, programi za mati poslovni sistem, za glavno poslovno knjigo, za evidenco prihodkov in izdatkov, za mrežno planiranje, za obračunavanje osebnih dohodkov, za izračun različnih statističnih kazalcev, za urejanje podatkovnih zbirk, tudi krajši zabavni programi, ki kažejo določeno programir -no tehniko, programi za preizkušanje računalniških virov in naprav, za kriptografiranje, za prikazovanje trendov na zaslonu terminala in tiskalniku, za urejanje zbirk itci. Zlasti so zaželeni programi s področja rtčunnlnišlte metodologije ter zanimivi programi s širokega področja teli-noloških aplikacij. Rubrika "Uporabni programi", naj bi spodbujata avtorja, da napiše kratek prispevek v dokaj standardni obliki, in sicer; - kratek opis področja, na katerem se program uporablja s pripadajočo metodologijo - programska listn s komentarji {visok programirni ali zbirni jezik) - izvajanje programa na dovolj ilustrativnem primeru, po možnosti v realnem okolju. Programirni jeziki so lahko visoki in zbirni Jeziki, npr. PL/I, ALGOL, COBOL, FORTRAN, fASCAL, PORTI 1, LISP itn. Na začetku programske liste naj bo v komentarju natanko označen tip programirnega jezika in njegova verzija oziroma podatki o prevajalniku ali zbirniku na določenem sistemu. Npr.: PL/I-80, VERS. 1.3, CP/M 48k Avtorji prihodnjih uporabnih programov se naprošajo, da upoštevajo predpisano obliko svojih jirispevkov, kot bo razvidna iz objavljenih primerov. Vsak programski primer bo dobil tudi posebno označitev in sicer; ^designator^ ::= Informatica UP ([tekočo številk;)^ , ^ime programa^ , {^datum^ , ^ime avtorja) , (opombe) Designator ho prispevku dodalo uredništvo tik |Xid naslovom prispevka. Sintaksa pris^^evka naj bi bila tale: (Jnaslov prispevka) (designator) odat-ki iz liste 2. Te zbirki bi shranili na disketo tako, da ju je mor odčit.ivati iz zaslona. Äeveda pa bi ju lahko tudi izpisali. Takšen program bomo pokav.ali v enem od kasnejših prispevkov. tO- Program na listi 1 je modificiran program iz dt^la Literatura [ l"] Program Evaluation and Review ir-cliiiiqut; (FKUl ), Practical Basic Programs (Etl. Lon Pnole), Osborne/McGraw-Hill, 1980. DEJ- VOZLIŠČI ČAS (DNEVI) POJASNILA DEJAVNOSTI OPT NOR PES \ 1 - 2 4 5 7 Risanje logičniVi/leiiiiitnili načrtov 2 1 - 3 7 14 20 Dobava operacijskefia sistem.i 3 1 - 4 14 20 30 Dohnva upornbni-ške prorir.opreine 4 1 - 5 10 14 25 Nabava materiala iti diskov 5 5 - 6 4 7 10 Sestava ohišij in di.sktiv 6 2-7. 10 20 28 Izdelava tiskanih plošč 7 7-8 7 10 14 Dodelava plofič z «leintìnti 8 8-9 3 5 7 Končno •■sestavi j an j e aparat, opr. 9 6 - 9 0 0 0 Nema dejavnost 10 3-10 B 10 14 Modifikacija operacijskega sistema 11 4-10 0 0 0 Nema dejavnost 12 9 - n 3 4 Ć Preizkušanje aparat. oprenn? 13 10 - 12 2 4 5 Pi eizkuStinje proip arii. opt erne. 14 11 - 13 2 4 5 Končanje mikroraf. sistema 15 12 - 13 0 0 0 Nema dRjavnost Tabela 1. Seznam dejavnosti in tijihoviii podatkov kriiiitit ^ttftxvnost •Sük^i I, Usinerjoiì ginf za (lej.ivnosti iz tnbnle 1, ki kri^.c kr ilirriü |X)t dej.ivrio.sli I , 6, 7, 8, 12 in H . A.TYPE PERT.BAS 10 RE« VREDNOTENJE PROGRAMA IM METODA PREGLEDA (PERT) 20 RErt POLJE -A-! ZACETnIA 1W KOrtCiJA VOZLI SCA DEJAViJOSTf 30 RE.1 POLJE "S"; CASI ZGOMJIH 2ACETK0V DEJAViJOSTI aa REM POLJE "F": CA51 POZNIH KOtJCEV DEJAVMOSTl 5D REM POLJE "E"! PRIČAKOVALA TRAJAiJJA liJ UARIA;2>-S(eO0>#F(20Q)^Eta0D^E) 65 DEF FriRlZi) = l«THZl*100tl*O.S))/SOOO 66 PRIMT 70 PRINT "VREDNOTENJE PROGRAMA"; 80 PRIMT ■ IN METODA PREGLEDA CPERT)" 61 PRINT *ca = sesflteB = sa&ttsc&sSSC3is = s = c3:;ss = =ftttBa=s = = = = = = = =* 82 PHIHT " (JULIJ 193l# ANTOiJ P. 2ELEZN1KAR)" 90 PHIHT 10 0 PBIHT -VSTAVI ŠTEVILO DEJAViJOSTI " J ItD PRINT - V DAIJI MRE2I!"; 120 I;4Pl!T N 130 print MD FOR 1 = 1 TO N 150 PRINT löB PRINT "-----------------DEJAVNOST"; IJ*------------------' 170 PRINT "VSTAVI ZACETSO IN KONČNO VOÌLISCEs "j ISO INPUT A( I / 1)'AC I< 2> 190 IF A(I,2)-t=A(I> 1> THEN £20 20D IF ACI'£} JE PRIČAKOVANO TRAJANJE 320 Ed'l) = FMRKAl*M*4*B}/6) 330 REM E JE VARIANCA DEJAVNOSTI Siiti Etl'S> = FNRttB-Al)/6)"2 350 S(11=0 360 FCI)=0 37 0 HEXT I 38 0 REH 2ANKA ZA DOLOČITEV CASOV ZGODNJIM 381 RE« ZAČETKOV V MREZI 390 FOR I=i TO N 400 IF S(A)+EtI'l) THEiJ 420 410 s(aci'2}}3s(a(ij1>}*^e(i«1> 420 NEXT 1 430 FCACN'2))=S(AN TO Ufl STEP -l 460 IF FCAd'Ul'O TUE» 490 470 IF F 500 NEXT 1 510 V=0 520 C-tt 530 LEU 53J PRINT 54 0 FOR 1=1 TO N 55D REM IZRAČUN CASA MRTVILA V 51 560 Sl»F(A(I'2>J-SCAtI,J))-Etl'M 570 print ----...................---------------------------------- 580 PRINT 590 PRINT -DEJAVNOST-;I;"COD VOZLIŠČA";At I#1); 591 PRINT -DO VOZLISCA";A(I#2);•)-;- JE" 61(1 IF Sl0 THEN 74 0 670 PRINT -!!l NE ZACNl DEJAVNOSTI KASNEJE KOT PRI: -;S(ACI*n; 680 PRINT "111 DEJAVNOST SE MORA KONČATI PRI: ";F2)3 69 0 REM ZBRANA DQL1IMA POTI JE V L* VARIANCA V "V" 700 IF L>FtA(I'235 THEN 720 710 L=FCACI'2>) 720 V=V+ECI>2) 730 GOTO 790 740 PRINT -ZGODEM ZAČETEK:-fSCACI,i)); 741 PRINT TAB(313'-PQZEN ZAČETEK»"; 730 PRINT FCA(I..2))-E(I>n 760 PRINT -ZGODEN KONEC SS(A{I * 1)>fEtI't);TABC31); 770 PRINT -POZEM KONEC t "; F( A( I ' 2> ) 780 PRINT -CAS MRTVILA (REZERVA): "JSl 790 NEXT I 80 0 PRINT 801 PRINT 810 PRINT -DOLŽINA KRITIČNE POTI JE ";L 820 P=SaR(V) 830 PRINT -PLUS ALI MINUS'iP 840 PRINT -VSTAVI ZELENI DOVRSITVENl CAS (O ZA IZSTOP)-; S50 INPUT D 860 IF Đ<=D THEN tOIO 870 REM IZRAČUNAJ Z-RAZMERJE ZA ZELENO TRAJANJE 880 Y=(D-L)/P 890 REM IZRAČUNAJ ZBIRNO OBMOČJE PRI NOfirtALiifl PORAZDELITVI 900 REK NAVEDBA: SOME COM.BASIC PROGR.'STR- 128 910 R-EXPC-(Y-2)/2)/£.5066282746 920 Z=Y 930 Y=1/C]+.33267*AB5CY)) 94 0 T=I-R»C.4361836*Y-{.120l676»Y-2)+.937298»Y*3> 950 IF Z>=D THEN 970 960 T=l-T 97 0 PRINT "VERJETNOST DOVRŠI TVE S ČASOM"; 980 PRINT - TRAJAi^JA === -;D;- ===" 991 PRINT " ZNAŠA ===== ";T;" =====" 990 PRINT 1000 GOTO 840 lolo end Lista 1. Program PEST (točneje zbirka PERI.BAS) opravlja naiogo čaEO\-ne9a^in verjetnostnega (mrežnega) planiranja deio\Tiiii (proizvodnih! postopkov, kot kaže lista 2 (ko se ta program izvaja) . Program je napisan v jeziku BASIC (ta lista je v skladu z jezikom CBASIC2) za operacijski sistem CP/M (48k). Program pojasnjuje samega sebe in 12 liste je rzavidna njegova semantika. to A^CRUWa P^JiT CHUN VER 2.0 7P VREDHOTENJE PROGRAMA IH HETODA PREGLEDA {PERT) (JULIJ 190U ANTOM P. ZELE2NIKAR} VSTAVI ŠTEVILO DEJAVWOSTI V CANI «REZIl? IS -----------------DEJAVNOST 1------------- VSTAVI ZACETMO IN KOUCiJO V02LISCE: f 1/2 VSTAVI OBIČAJNE TRI CASOVME OCENE ZA DAMO DEJAVNOST (A>M30 -----------------DEJAUJOST 4------------------ VSTAVI ZAČETNO in KOMCNO VOZLIŠČE: 7 1,5 VSTAVI OBIČAJNE TRI CASOWE OCEIJE ZA DAiviO DEJAWJOST CA,MjB): ? !0>14,25 -----------------DEJAV.'JOST 5------------- VSTAVI ZACETUO IM KONČNO VOZLIŠČE« 7 5,6 VSTAVI OBIČAJNE TRI ČASOVNE OCEiJE ZA DAMO DEJAVfJOST S 7 4,7, ID -----------------DEJAViviOST 6------------- VSTAVI ZACETND IN KONČNO VOZLIŠČE: ? S,7 VSTAVI OBIČAJNE TR: ČASOVNE OCENE ZA DANO DEJAVNOST (A,M,3); 7 14,20,28 -----------------DEJAVNOST 7------------- VSTAVI ZAČETNO IN KOTCWO VOZLIŠČE: 7 7,B VSTAVI OBIČAJNE TRI ČASOVNE OCEHE ZA DANO DEJAVNOST 7 3,5,7 -----------------DEJAVNOST 9------------- VSTAVI ZAČETNO lil KONCHO VOZLIŠČE: 7 6,9 VSTAVI OBIČAJNE TRI ČASOVNE OCENE ZA DAIJO DEJAVNOST CA,M,BJ: 7 0,0,11 -----------------DEJAWOST 10------------- VSTAVI ZAČETNO IN KONČNO VOZLIŠČE! 7 3,1 O VSTAVI OBIČAJNE TRI ČASOVNE OCHJE ZA DANO DEJAVNOST CA,K,B}« 7 6,10,14 -----------------DEJAVNOST II------------- VSTAVI ZAČETNO IN KOtJCNO VOZLIŠČE: 7 4, J O VSTAVI OBIČAJNE TRI ČASOVNE OC EH E ZA DANO DEJAVNOST (A,M,B} : 7 fl,a,0 ------------------DEJAVNOST 12------------- VSTAVI ZAČETNO IN KOMCNO VOZLISCEt 7 9,11 VSTAVI OBIČAJNE TRI ČASOVNE OCENE ZA DANO PEJAWaOST CA,M,B>i 7 3,4,6 -----------------DEJAVNOST 13-------------- VSTAVI ZAČETNO IN XCWCNO VOZLIŠČE: 7 10,12 VSTAVI OBIČAJNE TRI ČASOVNE OCENE ZA DAfJO DEJAVNOST CA,M,B>: 7 2,4,S -----------------deja\jwost 14-------------- vstavi začetno in končno vozlišče» 7 11,13 vstavi običajne tri casowje oceme za oaho dejavnost ca,m,b)< 7 s, 4, 5 -----------------DEJAVNOST 15-------------- vstavi začetno in komcno vozlišče! 7 12,13 vstavi" običajne tri časovne ocene za dano dejavnost ca,m,b> j 7 0,0,0 dejavnost J tod vozlišča I do vozlišča 2 ) je kritičen dogodek. pricakovauo trajanje! 5.167 stan. deviacija: 0.5 !!1 ne zacnl dejavnosti kasneje kot pri: o 11! dejavnost se mora končati pri: 5.167 DEJAVNOST 2 (OD VOZLIŠČA 1 DO VOZLIŠČA 3 ) JE NEKRITIČEN DOGODEK-PRIČAKOVANO TRAJANJE: 13.833 STAN. DEVIACIJA« 2.167 ZGDDEN ZAČETEK: O POZEN ZAČETEK: 20.668 ZGODEN KONEC« 13.833 POZEN KONEC i 34.501 CAS MRTVILA (REZERVA): 20.668 DEJAVNOST 3 (OD VOZLIŠČA 1 DO VOZLIŠČA A ) JE NEKRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE! 20.667 STAN. DEVIACIJA: 2.667 ZGODEN ZAČETEK: O POZEN ZAČETEK: 24.167 ZGODEN KONEC: 20.667 POZEN KONEC: 44.834 CAS MRTVILA (REZERVA)« 24.167 DEJAVNOST 4 (OD VOZLIŠČA 1 DO VOZLIŠČA 5 ) JE NEKRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE! 15.167 STAN. DEVIACIJA« 2.5 ZGODEN ZAČETEK: O POZE« ZAČETEK: 16.5 ZGODEN KONEC: 15.167 POZEN KONEC: 33.667 CAS MRTVILA (REZERVA)! 18.5 2 rv< •— B C M g ^ m M C S.g- D < ^ II a N = tu ^ S s § g ro' a r ^ a g ts 13 = „ to O B — S g" ? : " ^ < m' ra s Ü- o C-< - C 0 3 K o' Lr;c C X m £ 'S' 0 IT C S ■J TT s' £ 3 ä a 0 < i.' ■3. S ?r N 3 r- n — — S 3 o, N (5 E. D iT i: I s. i i N ^ 5 S 5 -g I' 3 n re' 0 " g. öa ti ^ 3 = ~ (->< te Aj E ^ -O z: rJ s ~ T TT fi jr — o _ ei I 1 si g § ^ = 'S- 3 = v < = ^ ^ ta— v I« a ^ o TS ; 3 S I ° i' a š- z ^ s o ts Iš S? g H' o- S- = it s 5 ^ s M " o ■ tlE NEKHITICE» DOGODEK. PRIČAKOVALO T»AJAMJ£t 7 STAN. ĐEVIACIJA: 1 ZGODEN ZACETEKJ 15.167 P02EM ZAČETEK» 33.667 ZGODEN KOMEC: 22-167 P0Z&4 KOHEC: 40-667 CAS MRTVILA (REZERVA)t 18-5 DEJAVNOST 13 COD VOZLIŠČA 10 DO VOZLIŠČA 18 ) JE NEKRITtCE» DOGODEK. PRIČAKOVANO TRAJAHJEi 3.833 STAM- DEVIACIJAl 0. S ZGODEN ZACETEKt 24.166 POZE» ZACETEKi 44.834 ZGODEH KONECi 27.999 POZEN KOMECt 48.66? CAS MRTVILA CREZERVA)t 20.668 DEJAVNOST 6 COD VOZLIŠČA 2 DO VOZLIŠČA 7 ) JE KRITIČEN SOGODEK-PRICAKOVANO TRAJANJE» S0.333 STAH. DEVIACIJA! 2.333 11! KE ZACMI DEJAVNOSTI KASNEJE KOT PRI: 5.167 Ml DEJAVNOST SE KORA KONČATI PRI: 25.5 DEJAVNOST 14 (OD VOZLIŠČA 11 DO VOZLIŠČA 13 > JE KRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: 3.833 STAN. DEVlACIJAl 0.5 l!l NE ZAČNI DEJAVNOSTI KASNEJE KOT PRI i 44-834 MI DEJA^^OST SE MORA KONČATI PRI: 48.667 DEJAVNOST 7 (OD VOZLIŠČA 7 DO VOZU SCA 8 ) JE KRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: 10.167 STAN. DEVIACIJA: 1-167 111 NE ZAČNI DEJAVNOSTI KASNEJE KOT PRI t 2S- 5 !1! DEJAVIJOST SE HORA Ka-JCATI PRI ! 35-667 DEJAVNOST 15 (OD VOZLIŠČA 12 DO VOZLIŠČA 13 ) JE NEKRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: O STAN. DEVIACIJA: B ZGODEN ZAČETEK; 27-999 POZEN ZAČETEK: 48-667 ZGODEN KOMEC: 27.999 ' POZEN KONEC» 48.667 CAS MRTVILA (REZERVA): 20.668 DEJAVNOST B (OD VOZLIŠČA 8 DO VOZLIŠČA 9 > JE KRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: S STAN. DEVIACIJA: 0.667 !!! NE ZAČNI DEJAVNOSTI KASiilEJE KOT PRI: 35-667 t!l DEJAVNOST SE MORA KONČATI PHI: 40.667 DOLŽINA KRITIČNE POTI JE 48.667 PLUS ALI MINUS 2.82S36825749 VSTAVI ZELENI D0VRS1TVEWI CAS CO ZA IZSTOP)? SO VERJETNOST DOVRSITVE 5 ČASOM TRAJANJA 50 -o« ZNAŠA ===== 0.681274513491 ====<= DEJAVNOST 9 (OD VOZLIŠČA 6 DO VOZLIŠČA 9 J JE NEKRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: O STAN- DEVIACIJA! 0 ZGODEN ZAČETEK: 22.167 POZEN ZAČETEK: 40-667 ZGODEN KONEC: 22-167 ■ POZEN KONEC; 40.667 CAS MRTVILA (REZERVA): 18.S VSTAVI ZELENI DOVRSITVENI CAS (O ZA IZSTOP)? 60 VERJETNOST DOVRSITVE S ČASOM TRAJANJA 60 ZNAŠA ===== 0.999968925415 ===== VSTAVI ZELENI DOVRSITVENI CAS <0 ZA IZSTOP)? 55 VERJETNOST DOVRSITVE S ČASOM TRAJANJA ==«» 55 ZNAŠA ===== 0.987414391335 ====• DEJAVNOST 10 tOD VOZLIŠČA 3 DO VOZLIŠČA 1 11 ) JE NEKRITIČEN DOGODEK. PRIČAKOVANO TRAJA-JJE« 10.333 STAN. DEVIACIJA: I ZGODEN ZAČETEK: 13-833 POZEN ZAČETEK: 34.501 ZGODEN KONEC: 24-166 POZErJ KO>JEC; 44-834 CAS MRTVILA (REZERVA): 20-668 VSTAVI ZELENI DOVRSITVENI CAS tO ZA IZSTOP)? 45 WARNING NE VERJETNOST DOVRSITVE S ČASOM TRAJANJA === 45 == = ZWASA === = = Ü. 0973905817168 ==.3«« VSTAVI ZELENI DOVRSITVENI CAS (O ZA IZSTOP)? O DEJAVNOST 11 COD VOZLIŠČA 4 DO VOZLIŠČA IÜ ) JE NEKRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: Q STAN. DEVIACIJA: 0 ZGODEN ZAČETEK» 20.667 POZEN ZAČETEK: 44-834 ZGODEN X0(4EC: 20-667 POZEiJ KONEC: 44.834 CAS MRTVILA (REZERVA): 24.167 DEJAVNOST 12 t OD VOZLIŠČA 9 DO VOZLIŠČA 11 ) JE KRITIČEN DOGODEK. PRIČAKOVANO TRAJANJE: 4-167 STAN- DEVIACIJA: 0.5 tli NE ZACMI DEJAVNOSTI KASNEJE KOT PRI: 40.667 lil DEJAVNOST SE MORA KONČATI PRI: 44.834 Lista 2 (nadaljevanje s prejšnje strani). Ko je izračun končan, lahko vtavljamo še podatke o želenih do\'TŠitvenih časih (poteh), ki se razlikujejo od izračunanega časa kritične poti (pri verjetnosti dovršitve 0,5) . V našem primeru, ko smo imeli kritično pot 48,667 plus/minus 2,828 , imamo pri vrednosti poti 50 verjetnost do-%T'Sitve /.68 , pri vrednosti poti 60 pa že verjetnost 0,99997. Pri podkritični dolžini poti 45 se najprej pojavi opozorilo, verjetnost dovr^itve pa se zmanjša na vrednost 0.017. Izvajanje programa se konča, ko vtipkamo za do\Tsitveni cas vrednost 0. Dani program PERT lahko še v marsičem dopolnimo, tudi tako, da nam shranjuje podatke v obliki tabel t posebnih zbirkah na disku. IZPISOVANJI- SPLOŠNIH I'üLO/.NlC Inlorrsvitir.n Ul^" 2 PO I,O IlVtJHKl l'!«l U. m,'linik sislem DKl,tA-M VI.2, I,ÌAS|C2 1 . Po(l| [)ćje iiriorMbe pi ofirani.i Pror)r;iin izpolnjuje'fivojne sjilosiii; j)oli)/nic(! (obr. št. 10) . IVxhilku rrp.i i k sdkvončne d.itolekf;. Posniiie/.ni /,-i[iist tu diitoti-'kß iiniijo slecif^čo obliko; priimek imi» [»stanova (ulicii št. I ki;ij j znpsek |J Čn v k,]kšnf;m [Xiifu ni iistreznc().-i podntk.i, je v tem polju 2. l'rotrramHkn list.T in kr.-itck opis pronraniii frotjj-atn POLO Je so s t.i vi jen iz ginvnerjri (P0LO:i)in dvijl) pnmožnili mofiulov (POI,Ol in POI.{)2) , •Stavka in :f4 clt'fiiiiratn vhodno o-/,, i/,hodno dato-t1^ko. Slavki - "i;* (i«fi(iir:i.io i/-pisc, ki ko enaki t\a vseli jioložiiicali (koiustfinlni nii-.i znakov) . S|)r«meidjive nize l/,vle«oino iz /.iinisov s iioinočjo podprotitaiua EX'CIÌ (modni i'Ol.Ol) . S po(lt:irof]r,'jinaii SIOHK (tnndnl P0L02) po-stosmina tvorimo i/.ti ;.! RFM P0l,ri2 22 PRINT OAMA$ Moyp Tri |:2"/ifOAMAff 24 PUT r-r/. 2000 HliTiPNlI ' 1 1 1 I U'j t aj o g O ■O ^ li O 1 > 5 O in, ■J. i I .J 1' m 1 ? 10 11 43 44 4A 4(1 4V 50 fV. AO A£l 70 7A 7a BO 13 B4 flif. 94 9 A 9B 100 t O? 104 .1 O/, ioa J 09 :iio 11.1 ■11 114 IIA Ufi 119 .K'O 1000 I ool 1 00? 1 oo:< 1 004 1 100 110? 1104 2000 A 7 n I 0 II I I ■<■ I 4 I I I ? Ifl Ali F'rt ):■ ; UOli-lfiül f os; I-Il I- : HAI; I I'll:! I ' ri;m pnr -- main Fd-M lUH . Ai.f-oT>( ) ni M i .GAMA'M I :'oy. cin fftrtiii riHTO 1000 ripf^n "cosripl.aox• i-nii; inpìit ^n XrORTiANr/AT IIUJ f>I:rtll|-NTIAI. Ar;i::f;B;;; RFAiuid i::nRnt;i7F OPEN "PRINT.PIIL' FÜR (UVIPIIT tPX , HKrirtN I ZAT KIN SErjUf-NT I AL AncFRK utFiTTi-.r.'Ff;n)i'i:i<:;:r7P: i?oz SiTPAi::!, = ViOl 01 -A?!! -fi41 " Iipiri"si nurwiiko orusitun tni-cirmatika" 000 I..MIHI JANA. PAIfMOVA 4!" NAHFN$:r::"PI..ACn O MARCICNINF- 7A CASnpl;:;" CAS«='7A l-FTO 1TO0" gi;T HZ Moyr i-RriH iii/r.,Ai FAI.==::':IO-/; f : Ai. i, r X T H' f A11 ■ A1. » A I Mf- AW A SI i fl U $ . A 7 N I'S P H, J. ) r.7.= ^ C-)f-T +17, Mciyi: FROM Ar/..r-irTA!t-:i;iori CAI t FX7Rf UPMAi. tiitif-t r KIN ASI CiUi , H7NFSFK ) I FN(AIMFi > ri A M A A ) Ml- % I I ■ f,i",f- K (M.) t II t MI • 1. CAI I, STORP ((.lAMA'i; 1 i fn AtiC'lis.SPACF^n l'O'/O PRTNTNPRINT MnuF Tfi Anci^i'/or, PKT 11'>■7, \ F'UT 11?:; GAMAt-ilF'nH. tSPAPP I. ( 1=;'/ 1 I STRACS. f-S SF'ACFj. nyzì tdi-'Oi 1. ttipACFi ( > i si ivAct PAM. STlIRFfr.tìMAI. ) BAtìA$=lIpn3$+WACI"*< 39"/. > -KIPO?» CAI I S rCIRFOlAHrtili) print MOVI- TO A[ir$=i?oz pi it .l-?"^ BAMAf "!ÌPAI:;F S ( > -1 A7NI: !5FK'Ì I ÌÌPAC.F:Ì ( > ü 1Vi7NPRFMi CAM. RKIRPUiAMAIi) 0AMAi^-i^NAMi:rN1.TSPAi:Fi ( MìZ ) ( NAHFHt CAPI RlnRF(OAMA'|:) fiAMA'P^^CAi;}. t Si'Al :i -Pf X ) l CAIVt. CAI P STOftl-fOAMA'l.) P CIR ( « 1 4 PRINT Moyp TO AlcC'i,.::i;;>07; pu! »:'7. NFXT K TF cy.-1 iHl'N P.OTO 1100 noto 44 IP n-/:=:o TiiPN onro 1100 R I MP ■!.::=■ ■ riNASI OU!t=::" V fl"/NPSFK'l,== ■ • («pni PRINT FRR PRINT FRI • . FRINT FlV f $ (FRRX > FNn S im (• x t r (-/api S 'i,, :i m- *, n A s; 1 - oy t. 7 np: ; k * i RPM PÜI m ¥"/,= pofi(/APii:i. ■*" (f y-/, = : | ihfn 00 (ti 10 K'Ji'^^PllS* ?APrSl., " ! • . 1 X) I MFM.aSrm. ( 7Al-1'5'|.. 1X> . \ \ /5::=po;:;(7APfi;t- ■ 1 • vxxi-i > (iflTO I? 7%-j- osf 7AP iii'i, " i • .;r/. ) TMF«=:spo'i, < 7 APIS J., :r/. t/'/. -1 ) x% = PO!-;(7AF HH. • i ■ .7-/.ti > lit ■( TA t^SFn» ( 7 Al> r Si , 7X+1 1 7%":p-n::;(7APT!-ii.. ■ 1 - .xx+i i ktìa i't'-lìfo't (/ac i s-i, .xki i .7% - i ) XX ■•POR ( 7AP I S» . • t • .7X+1 > 7NF KFKi-- Sr fl» ( 7.'.r' TR» . 7% H •7.Z- I ) nasi I " . •■iiii.Tr.Al; lUlllINll INFORMATICA 2/1981 NOVICE ZANIMIVOSTI Računalniška industrija v ZDA (1980) V številki 2/1980 časopisa informatica smo prikazali stanje računalniške industrije v ZDA za leto 1979. Letos ponavljamo to poročilo za leto 1980, izčrpne podatke za leto 1979 pa najdemo v Informatici 2/1980, Leto 1180 označujejo v /-DA koi t<-ž.iV)ic) Irto računalniško industrijo, in sicer zarndi qoapod,irsko inre-.sije v Ameriki in Evropi. Sto ameriških račun.ihiiškili podjetij je proizvedlo 55,6 milijard dolarjev, kar jo 20,4 % več kot v pretoklem letu, pi i tt^tn mi.' je pavt-f.sl tudi obseg razvoja in raziskav (HH) za Ta bol a 2 Tabela I 10 največjih (v milijonih dolarjevj do^^k 1 [BM 21.367 18.338 16,5 2 NCR 2.840 2.528 12,3 3 C DC 2.791 2.273 22,8 4 DEC 2.743 2.023 35,0 5 Sperry 2.552 2.270 12,4 É Burroughs 2.478 2.442 1,5 7 Honeywell 1,634 1.453 12,5 8 Haw.-Pack. 1.577 1.147 37,5 9 Xerox 770 570 35,1 10 Memorex 686 658 4,3 Skupaj 10 3V.438 33.710 17,0 Skupaj 100 55.626 46.220 20,4 Prvih 10 v 100 70,9 % 72,9% Povečanje dohodka ( v 100 milìjonili [lovocanjo dohodka 1980 tkjlrlj jCV) tast iìnhfxlka i-mo CÄ) 1 tiSM 3 .029 16,5 2 DEC 712 35,0 3 Control iJata 51B 22,H 4 Hew .-Paok. 'l^O 37,5 5 NCR 312 12,3 6 Sperry 2H2 12,4 7 Wang Labs 271 66,1 ß Xerox 200 35,1 M H oneywell 182 12,r> 10 Texas Inst. 164 1 1 Comp.Sciences 145 34,8 12 Data General 133 24,7 13 Storage Technology 124 25,9 14 Prime Computer 115 75,0 15 Apple 105 !75,1 16 Teletype 105 72,4 Skupaj 16 6 ,764 20,7 Skupaj 100 9.344 20,4 Tabela 3 20 najboljših v povečanju do hodka (v mili skupna rast (%) jonih dol; rast 1 v ZDA ■ (%) irjev) rast v inoz. (%) dohodc;k 1980 dohir-ok 1980 1 Sanders Assoc. 208,5 91,5 n.p. 145,0 49 2 Apple 175,1 163,4 224,7 165,2 47 3 • Philips Inf. Sys. 100,0 100,0 11.p. 50,0 98 4 Tandem 93,9 58,7 179,4 128,8 53 5 Intergraph 93,3 80,1 153,7 56,5 90 6 Dysan 86,1 79,9 127,7 62,9 85 7 Computer vi s ion 85,5 72,7 108,3 191,1 41 8 Paradyne 83,2 74,0 108,9 75,9 77 9 Prime 75,0 59,9 95,8 267,6 27 10 Teletyjje 72,4 62,1 n.p. 250,0 29 11 CPT 68,9 44,7 157,7 76,4 76 12 Wang Lahs 66,1 68,8 61,5 681,8 t I 13 Lanier 64,1 60,6 129.,7 128,0 54 14 Triad Systems 61,0 61,0 n.p. 60,2 87 15 Anacomp 60,1 60,1 60,0 57,0 89 t6 Commodore Int. 54,1 -13,2 105,2 9H,7 6Ü 17 Appi icon 51,4 35,2 136,6 68,5 82 Ifl Auto-trol Technology 51,3 58,5 27,1 50,8 97 19 AM International 49,0 49,(1 49,0 98,8 65 20 Printronix 48,B 37,7 93,0 48,9 99 n.p .-nil Jiiiembno òiif^ ril ììiUì^ s I g I -i « 1 ^ ^ - 1 i ° Pillili - ^ < t^ = ^ s ^ " g- = ^ -I Tabela 4 10 najboljših v operativnem dobičku (v milijonih dolarjev) 1980 1979 spi^^embe 1 IBM 5.231 4.649 12,5 2 DEC 434 327 32,6 3 NCR 390 348 12,0 4 Hewlett-Packard 261 184 52,7 -.5 Sperry 255 206 23,7 6 Control Data 238 176 35,1 7 " Honeywell 186 152 21,9 8 Burroughs 145 456 -68,2 9 Vang Labs 113 70 64,7 10 Data General. 105 92 14,6 Skiipaj 10 ■ 7.379 6.660 10,8 t Skupaj 100-' . 5i500. :v Tabela 5 e f g r 10 najboljših: kapitalni izdatki (v milijonih dolarjev) spremembe 1980 1979 (%) 1 IBM 1.985 1.548 28,2 2 DEC 321 125 156,4 3 Control Data 296 208 42,8 4 NCR 156 115 36,2 5 Hewlett-Packard 148 115 28,7 6 Burroughs 147 100 47,0 7 Sperry 117 75 56,7 8 Wang Labs 96 65 48,9 9 Storage Technology 76 56 36,0 10 Automatic Data Proc 70 65 7,7 Skupaj 10 3.412 2.470 38,1 Skupaj 100 4.077. 3.975 37,1 Tabela 6 Tabela 7 ìMm ilpiil . B e » » o ^ 10 najboljših: izdatki za R in R (v milijonih dolarjev) 1980 1979 sprememba H 1 IĐM ■ 1.277 1.125 13,5 2 DEC 217 155 39,9 3 Sperry 216 189 . 14,1 4 NCR ■ 201 171 17,5 5 Control Data . ÌS3 149 22,4 6 Burroughs 175 152 15,1 7 Honeywell 150 117 28,2 8 Hewlett-Packard 139 103 35,0 9 Data General 68 54 . 26,2 10 Amdahl 63 . 42 49,3 Skupaj 10 2.688 2.257 19,1 Skupaj 100 3,713 3.057 21,5 10 najboljših: zaposleni (v tisočih) 1980 1979 spremembe % 1 IBM 278 270 2,9 2 NCR 66 65 1,6 3 DEC 60 50 - 21,0 4 Burroughs 57 57 1,4 5 Control Data 49 48 1,4 6 Sperry 47 46 2,8 7 Honeywell 29 29 1,8 8 Hewlett-Packard 28 25 12,0 9 Computer Sciences 15 13 10,6 10 Data General 14 14 4,3 Skupaj 10 643 616 . 4,5 Skupaj 100 863 806 7,1 Tabela 8 10 najboljših: procesiranje teksta (v milijonih dolarjev) PT sprem. CD PT/CIJ mesto 1980 % 1980 % med 100 1 Wang Labs 252,3 112,0 681,8 37,0 11 2 Lanier 110,1 48,6 128,0 86,0 54 3 DEC 82,3 102,5 2.743,3 3,0 4 4 Xerox 69,3 35,1 770,0 9,0 '} 5 Raytheon 67,5 37,8 225,0 30,0 34 6 Exxon 66,2 31,9 86,0 77,0 71 7 CPT 65,7 68,9 76,4 86,0 76 8 Burroughs 49,6 1,5 2.478,0 2,0 6 9 Philips Info Systems 46,0 100,0 50,0 92,0 98 10 Nßl 40,1 95,5 43,2 93,0 109 PT - procesiranje teksta, CD - celoten dohodek conductor (6,5), Ampex (12,2), NCR (12,3) in Honeywell (12,5) (v oklepaju je prirastek dtìhodka v % glede na prejšnje leto). Merilo adravja (ali konjunkture) industrije je prav gotovo rast dobička (ali točneje rast gotovinskega pretoka iz operacij), ki se lahko pretaka v fonde za kapitalne investicije ter v izdatke za raziskave in razvoj ; vse to bistveno vpliva na prihodnjo rast podjetja oziroma na obseg proizvodnje. Operativni dobiček,prikazan v tabeli 4, Je določen kot dohodek iz proizvodov in uslug; od tega so odšteti stroški prodanih izdelkov, izdntki za R in R, prodajo in administracijo. Tak dobiček je merilo dobičkonosnosti in večletne primerjave tega merila so bistvene. Že v letu 1979 se je povečala kapitalna poraba ža 30 v letu 1980, ko je IBM upočasnil svojo rast, je znašala ta poraba še vedno 2% Ì> (glej tabelo 5), pri 100 podjetjih pa v povprečju 37 Celotna kapitalna poraba je dosegla več kot 4 milijarde dolarjev. Iz tabele 5 se vidi, da IBM pri tem še krepko vodi s skoraj 2 milijardami kapitalne porabe. Podobne težnje rasti porabe so opazne pri proizvajalcih rniniračunalnlkov in procesorjev teksta (DEC, HP, Wang). Računalniška industrija je bila zaradi težkih tehnoloških pogojev, kratkih produktnih ciklov in hitrih tržnih sprememb dokaj dober investitor v razvoj in raziskave. R in R vključuje finančno izdatke za nenajavljene nove proizvode in usluge v samem podjetju. Od 18 % izdatkov za R in R v letu 1979, je bilo v letu J980 doseženih že 21 % ali 3,7 milijarde (glej tabelo 6) . Izdatki za R in R so se glede na prodajo povečali,iz 7,5 % nn 7,6 Največje povečanje izdatkov za R in R je bilo doseženo na področju pisarniških sistemov (procesiranje tekstu), in sicer do 102 %. V tem desetletju se pričakuje tudi znatno povečanje izdatkov zn R in H na področju programske opreme. Povečanje zaposlenih v računalniški industriji ZDA v letu 19B0 je znašalo 57,000 ali 7 % v primerjavi z letom 1979, kot kaže tabela 7. Prviti tO podjetij je zaposlovalo kar 74 % vse delovne sile, pri vseh 10 pa so dohodki rasli hitreje kot zaposlenost. To pomeni, da jo produktivnost zaposlenih naraščala, in sicer s 5;),600 ciolasjev na zaposlenega v letu 1979 na 60.100 dolarjev na zaposlenega v letu 1980. Dohodki na področju materialne opreme z,) procesiranje tekstov so narasli z,-i b'\ %, in sicer rja vi-(»dnost 8äl milijonov dolarjev v lotu 1980. Vodilni proi:svnjaloc j<.' bilo podjetje Wang l.nbs, ki jt-; svoj doliodek povečalo /.n 112 % oziroma na vrednost 252 jfiiliJojiov daliii-jev (tjlej tabelo 8). Ta bežen pregled poslovanja ameriško računalni-skc industrije v letu 1980 kaže, da je v vzfKmu šo vi-dno ini-kroračunalniški proizvodni segment in da -so («sarniski sistemi hitro rastoče področje upor iibc: oKtronia pl.isin.i-ja. Hkrati narašča tudi pretok doh(Klkov v raziskoval ni' in razvojne dejavnosti, zaposlovanjt» narašča i-.tncrtKi oh povečevanju produktivnosti zaijosleiiiii - A. 1'. /.I'lf'/niUai Prihodnost proceüorja lì O G G V preteklih mesecih Je Intel izzval püüornoat z 32 bitnim mikroprocesorjem ÌAPX 43?. O novih 16 bitnih procesorjih pa ni bilo nohenlh itifor-möcij. Sedaj pa Je Intel napovedal predstavitev dveh 16 bitnih mikroprocesorjev, ki ista uktizno kompatibilna a procesorjema aoa6/ßOBß, Projekt 1APX 186 Je hardwaraka rozätritov ÖÜ6U X enako arhitekturo in enakimi perifernimi Integriranimi vezji. 1APX 286 bo imel bistveno raaäirjen nabor ukaaov, ki bo alajäfivnl impìa-mentacljo kompleksnih operacijskih sistemov in visokih jezikov. Ta mikroprocesor reapolaga s riziCnlm naslovnim prostoro/n obsega IG Mülogov in 2 virtualnisil velikosti 1000 Mzloßov. Enota za upravljanje s pomnilnikom bo iategrirsna v procesorskeo člpu. Drago Novak Uporajia eno.slranskil) diski't za dvostranski zapis in branje Pri uporabi dvostranskili diskotnili iirogramov Jr> bilo ugotovljeno, dn je iiri t. im. ono.stranskili disketah (IBM) možno čitati tudi na drugi strani diskoti, Kasni^j-ši (ioskdS je prikazat, da vc^lja to (udi /a druge diskete (Am|M>x, OKC). S posetinim programom fornKiliranio(ali iniclaliramo) tudi dru()0 stran (v dvoHlr;iiiskein ilisktH-tiem |)ro()raiiiij«:HaJah Kaffah, ISHIA, oplOS, 7BliO Le Cheenajf France 19-S3 oktobar.Vuniah. ZWiemaiJa Third Conferenae of the European Cooperationi in Infarmatiaa Org. in infomaùije;A.Horfig, Stata MR Ltd.,Walkden Houae Melton Street, EwUm Hood, London NWl lEB, UK 17-19 november,London, Velika Britanija Snd International Sympoaiwi on taohnioal diagnoatioa Org. in infojiiaoije:In8titute of Haaauremnt and Control 20 Peal Street, London VB 7PD, UK 18-Bl november, Vama, Bugari ja COMPCONTROL 81 Olìg. im infoimaaije: Vnion of Nschantoat Engineering, Kakovaki St. 108, Sofia - 1000, Bulgaria 14-18 december, Veraaitle, Franaija Sth International Conference on Computing Methoda Org.IDFIA Infomaoije;IHRIA, Service dea Kelationa Exterieuree, Domai» de Voluaeau, B.P. 105, 78163, Le Chesnay, Frmoe 1982 lato Ol^,Ceaelleohaft fur Informatik FUß Informaoije:A.J.W,Duijveatijin,POB SI7, ?S00 Enachade The Satherlanda se-i9 oktober,Anaterdam, Haoaemaka Intarnatùmal Sympoaiin on Algorithnio Lmguagea ORg.IFIP TC2. InfomaoijeiAlgOTitnia Languagaa 81,Hatheinatiaal Center, Kruialaan 413, 1098 SJ Amaterom , The Satherlanda 26-30 oktober, Lyon, Franaija Hato Sympoaiiin on Artificial and Uman Intelligence Qrg.Hman Faatora Subcomittee of H/^ Infömaoije:Atiok Elithoni, The lioyalFree Hoapital, Pond Street, London HU3, ÌQG, EngUmd B7-B9 oktobar,London, Velika Britanija TBSmEX,Conferenoe and exbithion devoted to etectronio teat and meaauraaent inatrmentation Org. in in fornacije.'Trident International Exhhitiona Ltd, il Plynnuth Poad, Taviatook, Devon PLI9 8 AV, WC 10~11 novembar, London, Velika Britanija Survey data proaeaaing now:miorooamputere,data baaea, dat» preaentation and diaplay teahniquea 27-t9 januar,Bindhovan, HiKoaeaaka HioroeleotTvnioa - Znd Europem miaroglectronio Congraaa Org. in informacije: Hicroelaetroniaa, PO Bog 428, Loa Altoa CA 94022, USA 3-4 februar, London, Velika Aritmija Electronic OEM Aeaembliea BS Org. iia informaoijaiTrident International Exkibitiona Ltd. 21 Plymouth Poad, Taviatcck, Devon, PLia SAU, UK Z4-Ze februar, London, Velika Britanija Miaroayatema 82 Org, ÌM infonnacije; IPC ExkCbitiona Ltd., Surrey Houae, 1 Throalay Way Sutton, Surrey SMI dW, VK 30 marec - I april, Brighton, Velika Britanija Sth International Conference an Confuterà in deaign engineerinq Org. in informaoiJe:Jud^ Vare, Conference Searetary, IPC Science and Technology Prega Ltd, POB 63, Ueetbury Houb», Bury Street, Guildford CUB SBH, UK 6-8 april, Torino, Italija Sth International Sympoaiwi on Programing Org.Jetituto di Soienxe dell Informazione . U~16 ,fuli, Washington, ZDA Informacije:S,Ftmahi della Roooa, latituto di Sciense dell . sth International Conference on Computere in Chemical Informaaiona, C.M.D AgasHo iZ Torino, Italy Peeearohe and Education 24-2 fl maj, Berlin, Z/f l/emSija Sth Vorld Conference IHSKO Orff. in informacije: Geaetlaohaft Meos und Hegelungsteahnik Graf-Recke Straaag 84 -B.F. 1139, D 4000 Duaoeldorf 1, BDR Qrg.ICCCRS Informa. V zgornjem desnem kotu izven modro o/.nričciiega i nha oštevilčite strani članka s svinčnikom, tako da jih je mogoče zbrisati. Časopis lNl''ORMA'riCA Uredništvo, Parmova 41, 61000 Ljubljana Naročam se na časopis INFORM A 1'K;A . 1'i odpJačiln lioiii izvršil po |)rejemu vaše polo?,nief'. Cenik: letna naročnina za delovne oiganizacije r>0(),»0 din, za posameznika 200,00/1ÜU,00/50,00 din Časojjis mi pošiljajte na nnslov stanovanja delovne organizacije. Priimek............................................ Ime............................................... Naslov stanovanja Ulica.............................................. Poštna številka_Kraj ...................... Naslov delovne organizacijo Delovna organieacija................................ Ulica.............................................. Poštna številka_Kraj....................... Datum...........................Podpis: INSTRUCTIONS FOR PREPARATION OF A MANUSCRIPT Authors are invited to send in the address and short summary of their articles and indicate the oppioximate size of their contributions ( in terms of A 4 liiper ) , Subsequently they will receive the outer's kits. Type your manuscript on the enclosed two-column-format manuscript paper. If you require additional manuscript paper you can use similar-size white paper and keep the proposed format but in that case please do not draw the format limits on the paper. üe accurate in your typing and through in your proof reading. riiis manuscript will be photographically reduced for reproduction without any proof reading or corrections he-fore printing. INPOIlMA'riCA, Journal Headgu.irters Farmova 41, 61000 Ljubljana, Yugoslavia I'lfiaso pnt<>r my subscription to INKOlìMA'l'Ic: A and send ine llie bill. Annual subscription price: companies l)S ÌÉ 22, individuals US 7,5. Send journal to inyQ home aridress Q c oj n pa ri y ' s atitires s. Surname.................................. Name..................................... Home address Street.................................... Postal code ___City................ Company address Comjiany.................................. Strtset...........................j........ Postal code_City................ Rate.......................... aiynfituce Use a ooofl typewriter. If the text allows it, use siinilo spacing. Use a black ribbon only. Keep your copy witiiin the blue inargin linfs on (he ii'ifwr, typing to the lines, but not beyond them. Double spaci' between paragraphs. First page manuscript: a) Give title of the paper in tlie upper box on the firsl page. Use block letters. b) Under the title give author's names, company tumn', city and state - all centered. c) As it is marked, begin the i)l)slrnct of tiie |)a[ii'i-. 'I'ypi' over both the columns. The abstract stiould be wi illf~n in the language of tlie prijxjr and shouhi not cxct'scd ID lines. d) If the [Taper is not in Knglish, drop 2 cm afti'i' havimj written the abstract in the language of the paper and write the abstract in I5nglish as well. In front t)f the abstract put the English title of the pajier. Use bki. k letters for the title. The lenght of the abstract should not be yreatßr than 10 lines. e) Drop 2 cn> and begin the text of the pajxir in the lofi column. Second and succeedinQ pages of tlie tnnnuscrijrt: As it is marked on the pajiei; begin thè text of the sccunil and succeeding pages in the left upper corner. Format of the subject headings: Headings are separated from text by double s|-iaring. If some characters are not available ou your typwriti^r write them Jegibly in black ink or with a pencil. Do not use blue ink, because if shows poorly. Illustrations must be bi.it k and white, siiar]) and cleiic. If you incorporate your illustrations into the tt^xt keep the proposed format. Illustration can also bo placi«! al the end of all text material provided, hownver, thnt they are kept within the margin lines of the full si/.e two-column format. All Mlustratioris must be plaotsl into appropriate positons in tiie text by the iiuthor. Typing errors may be corrected by using white corrct liun paint or by retyping the word, sentence or |v>ragraph mi a piece of ^>l)a(|Ue , white [Vij^r and pasting it nearly over errors Use riencil to numl>er each n-jge on the upper-right-li.md corner of the niaiiuscript, outside the blue margin lini's so that the numbers may he erascxl. v KORAK.s TEHUÙLOG^d .. ; V ^ßAK^Z' D'$L TO : • * ' % * • . ^ JZ • • • -t m 9 » ff» Delavci DO DELTA proizvajamo najpopolnejšo jugoslovansko družino računalnikov, katera obsega celotno območje od m ikro računalnikov do največjih 32-bitnih sistemov. Poseben pomen dajemo aplikacijski programski opremi. Ob izbiri segmentov je bila naša skrb posvečena povečanju produktivnosti in čimvečjemu prihranku energije ter surovin. Programski moduli za področja procesne kontrole, planiranja in upravljanja proizvodnje, ter finančnega poslovanja, predstavljajo integralen pristop v izgradnji informatizirane proizvodne delovne organizacije. Naši računalniki so narejeni tako, da niso element prestiža delovnih organizacij, ki jih kupujejo, temveč so orodje razvojnega inženirja, projektanta, delavca v skladišču in drugih. S takim načinom dela vstopa DELTA skupaj s svojimi uporabniki v informatizirano družbo prihodnosti, , , če zelile več informadj o DELTI, piSite na naslov: ELEKTBOTEHNA — DO DELTA. Služba za komuniciranie s iriiSćem, Parnnova 41, 61000 Ljubliana. ss CENIK OGLASOV Ovitek - notranja stran (za letnik- 1981) 2 stran--------------------------- 28.000 din 3 stran--------------------------- 21.000 din Vmesne strani (za letnik 1981) 1/1 stran-----;----------------- 13,000 dirt 1/2 strani —---------------------- 9.000 din Vmesne strani za posamezno številko 1/1 stran------------------------- 5,000 din 1/2 strani----------------------- 3.300 din Oglnai o potrebah po kadrih (za posamezno številko) il.OOO din ADVERTIZING RATES Cover page (for all issues of 1981) 2nd page------------------------ 1300 2 3rd page------------------------ 1000 2 Inside pages (for all issues of 1981) 1/1 page ----------------------- 790 2 1/2 page ----------------------- 52Ü Ü Inside pages (individual issues) 1/1 page '----------------------- 260 ß 1/2 page ----------------------- 200 SS Rates for classified advertizing: each ad ----------------------- 66 $ Razen oglasov v klasični obliki so znželjene tudi trajSe poslovne, strokovne in propagandne iiifurtnacije tn članki. Cene objave tovrstnega materiala se bodo določale sporazumno. In addition to advertisrnent, we welcome short husitie.ss or product news, notes and articles. Hie relutixl cliai-ges; are negotiable. 8ó SLO,VENSKO DRUŠTVO INFORMATIKA , Parmova 41, 61000 Ljubljana IZJAVA Podpisani ......................................................... izjavlj.im , cl.L /.filini vstopiti v Slovensko društvo INFORMATIKA in da sprejemam Statut društva (objavljen v časojjisu Infotinalir-a štev. J, stran 67, letnik 1981). Podpis ; Ime in priimek: Točen naslov; Datum :