Si informatica IskraData Družina računalniških sistemov za distribuirano obdelavo ISKRADATA 80-50 ISKRADATA 80-60 ISKRADATA 80-70 ISKRADATA 80-75 ISKRADATA 80-80 ISKRADATA 80-90 Risalnik Samostojno delovno mesto Komunikacijsko delovno mesto Sinhroni terminal Samostojni matični sistem Komunikacijski matični sistem 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 koiičino podatkov se priključijo na matični računalnik do 4 diskovne enote J40, 80, 160, 200, 300 IVIB) • Š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 Tovarna računalnikov a. MO časopis izdaja Slovensko društvo INFORMATIKA,-61000 Ljubljana, Parmova 41; Jugoslavija UREDNIŠKI ODBOR: Člani: T. Aleksić, Beograd, D. Bitrakov, Skopje, P. Dra-gojlovic, Rijeka, S. Horlžar, Ljiibljana, B. Horrat, Maribor, A. Mandžić, Sarajevo, S. Mihalić, Varaždin, S. Turk, Zagreb, ' Glavni in odgovorni urednik: Anton P. Železnikar TEHNIČNI ODBOR: Uredniki področij: ■ " V. Batagelj, D. Vitas - programiranje I. flratko - umetna inteligenca D, Ćećez-Kecnnanovlć - Informacijski sistemi M. Exel - 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, Raj kovic - vzgoja in izobraževanje M. Špegel, M. Vukobratovlć - robotika P. Tancig - računalništvo v humanističnih in družbenih vedah S. Turk - materialna oprema A . Gorup - urednik v SOZD' Gorenje Tehnični urednik: Rudi Murn ZALOŽNIŠKI SVET ' T. Banovec, Zavod SR Slovenije za družbeno planiranje, Ljubljana A . Jerman-fllažič, Republiški komite za družbeno . planiranje in informacijski sistem, Ljubljana B. Klemeneič. Iskra, Elektromohanika, Kranj S. Saks Ida, Institut za sociologijo pri Univerzi v Ljubi jani, Ljubljana J. Virant, FaknU.eta za elektrotehniko, Univerza v Ljubljani, Ljubljana Uredništvo in uprava: Informatica, Parmova 41, 6100Ü Ljubljana, telefon (061) 312-988, teleks; 31166 YU DELTA Letna naročnina za delovne organizacije je 500,00 din, za redne člane 200,00 din, za študente 100,00/50,00 din, posamezne številke 100,00 din Žiro račun šf.; 5G10.1-678-51841 Stališče urefiništva se latiko razlikuje «I mnenja avtorjev. Pri financiranju revijo sodeluje tudi llaziskovalna skupnost Slovenije. Na podlagi mnenja Republiškega sekrotarlata za prosvHto in kulturo št. 4210-'I4/7'J z dne I ,2.1979, je časopis oproščen temeljnega davka od prometa proizvodov. Tisk: Tiskarna. KRESU A, Ljul.ljana Grafična uprema: liasto 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 informatikata yu issn 0350-5596 letnik 5. 1981 - št 3 VSEBINA A .P.Železnikar I. G . Pyle . D. Vitas A .P.Železnikar J. Lenarčič J. Lončar Ž. Mljajlović A . Jovanovič N. H ad j ina A . Smailagic M.Šubelj, H.lVobec, J. Korenini 55 J. Lončar A .P.Železnikar 3 Tiha revolucija 4 Using ADA for Specification and Design 11 Podela na slogove srpsko-hrvatskih reči 15 Jezik PL/I in mikroračunalniki IV 25' Avtomatsko prepoznavanje predmetov v robotlKìranem procesu emajlipanja 33 O jednoj metodi proračuna optimalnog balansa 38 Turing Machines as a Programming Language 47 Postupci za sprečavanje potpunog zastoja i permanentnog blokiranja sistema na modelu gi afa sistema 51 On Solutions for Sonse Ojieii Problems in tiie Design of Multiprocessors Operating Systems I'rimer komunifcacijskogn protokola 60 Primjena inverzione metrike kod optimalnog balansiranja 63 UvodvCiVM 73 CP/M programinii priročnik I 77 Uporabni programi aO Novice Jn zanimivosti 81 Srečanja 82 Avtorji in sodelavci informatii Publish^ by INFORMATIKA , Slovene Society for Informatics, 61000 Ljubljana, Parmova 41, Yugoslavia EDITORIAL BOARD: T. Alelcslć, Beograd, D.fiitrakov, Skopje, P. Dra-gojlović, Rijeka, 5. Hodžar, Ljubljana, B. Horvat, Maribor, A. Mandžić, Sarajevo, S. Mihalić, Varaždin, S. Turk, Zagreb. EDITpR-IN-CHIEF! Anton P. Železnikar TECHNICAL DEPARTMENTS EDITORS: V. Batagelj, D. Vitas - Programming I. Bratko <- Artificial Intelligence D, Ćećez-Kecmanović - Information Systems M , Exel - Operating Systems A . Jerman-BiaŽič - Publishers News B, Džonova-Jerman-Blažlč - Literature and Meetings L, Lenart - Process Informatics D, Novak - Microcomputers Neda Pepi£ - Editor's Assistant L. Pipan - Terminology B. PopovtC - News V. Rajkovie - Education M. Špegel, M. Vukobratovtć - Robotics P. Tancig - Computing In Humanities and Social Sciences S. Turk - Hardware A . Gorup - Editor In SOZD Gorenje EXECUTIVE EDITOR; Rudi Murn PUBLISHING COHNCIL T, Banovec, Zavod SB Slovenije 2a družbeno planiranje, Ljubljana A . Jerman-Blažič ^ Republiški komite za družbeno planiranje in informacijski sistem, Ljubljana B. KlemenElč,'ISKRA , Elektromehanika, Kranj S, Saksida, Insitut «a sociologijo pri Univerzi 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 rate for abroad is US for* companies, and US ^7,5 for individuals. Opinions expressed in the contributions are not necessarily shared by the Editorial Board. Printed by: Tiskarna KRESU A, Ljubljana DESIGN: Rasto Kirn JOURNAL OF COMPUTING AND )NFORM/#fCS YU ISSN 0350-5596 VOLUME 5, 1981 - No. 3 C 0 N T E NTS A. P. železnikar 3 A Silent Revolution - I. C. Pyle 4 Using ADA for Specification b. vitas and Design 11 Syllable Division of Serbo- Croatian Words A .P.Železnikar 15 PL/I Language and Micro- computers IV J. Lenarčič 25 Automatic Recognition of Elements In Robotized Proc«^ of Enamelling J. Lončar 33 A Method for Calculation of Optimal Balance Ž. Mljajlovié 3B Turing Machines as a Pro- A, Jovanovié gramming Language N. Hadji na 47 Algorithms for Prevention of Deadlocks and Permanent Blocking in a Computer Sys- tem Using System Graph A . Smailagić SI On Solutions for Some Open Problems in the Design of Multiprocessors Operating Systems M.šubelj, R.Trobec, An Example of Communi- J . Korenini 55 cation Protocol J. Lončar 60 An Application of the inver- ■ Sion Metric for Calculation of Optimal Balance A .P.Železnikar 63 introduction to CP/M 73 CP/M Programming Guide I 77 Programming Quickies 80 News ei Meetings Authors i l\ > s J TIHA REVOLUCIJA ÜDK: 681.3-181.4 INFORMATICA 3/1981 ANTON P. 2ELEZNIKAR, UREDNIK "MlkroračunalnlSka era je pred nami, je v stanju »talnega raavoja od leta 1975 dalje. Takrat so se pojavili prvi mlkrorafiunalniSkl industrijski Izdelki, ko je. dalo podjetje Altair iz .Albuquerqua v Novi Mehiki (ZDA) na träläöe prvi mikroraÖunalnik v obliki sestavljenke. Razvoj Kilkrorafiunalnikov je v industriji in tiha revolucija prihaja iz proizvodnih 'organizacij. Podjetje Intel je proizvajalec neprekoaljlvlh mikroprocesorjev in ima danes praktično najmočnejše raznovrstne mikroprocesorje (8088, ÌAPX186, 1APX2B6; - IAPX432).---oziroma . mikroprocesorske družine.' Zmogljivosti teh procesorjev presegajo zmogljivosti še do v&eraj -veljavnih IBMovih ■standardov oziroma iBHovlh sistemov. Ob t,im. materialni proizvodnji naraäiia z nezmanjšano močjo tudi " Informacijska proizvodnjas na trSiSSe 'prihajajo programski paketi, od operacijskih do uporabniških sistemov. Usodo mikroračunalniškega tcžiSfia krojita predvsem dva operacijska koncepta In sistemai CP/M in Xenix. Na področju osewbitnlh in gestnajstbltnih procesorjev , se je mo£no utrdil CP/M, kot novi val pa prihaja iz operacijskega sistema UNIX izpeljani XENIX In äe druge operacijske Izpeljanke obeh sistemov. tla ■ osnovnih' operacijskih sistemih temelji Široko zasnovana in razvejana proizvodnja slatemskih programov, prevajalnikov za visoke programima jezike in u^rabniäkih programov. Ta programska Industrija se razvija predvsem prek malih in srednjevelikih podjetij,. ki oblikujejo zares porazdeljeni tip proizvodnje, ki se medsebojno in povratno podpira, pospeguje in napreduje navzgor po strmih finančnih spiralah. V povezavi s hitrim tehnološkim razvojem procesorjev in programske opreme velja omeniti tudi bistvene tehnoloSke .dopolnitve periferne opreme za mikroračunailnlške sisteme.. Diski tipa Winchester s pomnilnimi obsegi od 10 do 600 milijonov zlogov ter s svojo veliko zanesljivostjo v delovanju postajajo standardni dodatki . tem ,sistemom ter tako odrivajo včerajšnje upogljive diske na področje prenosa oziroma vstavljanja in in izdajanja podatkov iz wlnchesterskega diska. Kvaliteta enot z upogljivimi diski pa počasi dosega mere zanesljivosti, ki veljajo za winchesterske diske. Na tržiSče prihajajo tudi novi ,integrirani krmilniki za winchesterske diske (npr. pet integriranih vezij podjetja Western Digital) in vmesnlška vezja za upogljive diske (Shugart). Pojavljajo se ceneni iglični tiskalniki, ki omogočajo uporabo znakov nacionalnih abeced in grafičnih znakov ter tiskalniki za kakovostni zapis z nacionalnimi tiskalnimi glavami. Se pred kratkim se je dozdevalo, da je razvoj in plasma mikroračunalniških sistemov veČ ali manj določen za naslednje desetletno razdobje in da, bodo merila rasti ostala nespremenjena. Tehnologija je namreč daleč presegla danaSnje stanje uporabe in daje Številne možnosti za raz^voj novih, zmogljivejših in cenejših "sistemov z "uporabo na""]hovfe'j'Sè, próTavajane tehnologije. In vendar se je brez fanfar in potihoma zgodilo to, . kar so strokovnjaki že dalj ' časa pričakovali: v prostor, mikroračunalniških sistemov je vstopil največji in najmočnejši proizvajalec velikih sistemov ■podjetje ia»l. IBM prihaja- na tržiSče 2 osebnim računalnikom, torej z najmanjšim predstavnimom računalniške družine. Ta računalnik naj bi prišel v široko prodajo v ZDA Se letos, v novembru, prodajali pa ga bodo v trgovinah kot blago za široko potrošnjo. Ta odločitev podjetja IBM je podobna strategiji prodaje IBMovih pisalnih strojev in tudi začetne cene se .gibljejo v sprejemljivem "intervalu 1565 dO 5000 ameriških dolarjev. S to potezo spreminja IBM tudi svojo dosedanjo strategijo tehnološke zaprtosti in vabi k sodelovanju in razvijanju novih modulov za svoj ■ sistem različne proizvajalce materialne in programske opreme. Tudi sestavine najavljenega osebnega računalnika so tujej Intelov osembitni procesor 8088, operacijski sistem CP/M-86 (Digital Research), ÜCSD pascal (Softech., Microsystems) in IBM Personal Computer DOS, ki je ponovitev sistema CP/M (Microsoft). V čem se kaže odprtost IBMovega koncepta za druge proizvajalce? Operacijski sistem IBM PC DOS bo vseboval dokumentacijo izvirnih programov (s ,komentarji) za osnovni V/I sistem. (BIOS) in za diagnostični program, ki se začne avtomatično Izvajati po vklopu računalnika. V priročniku računalnika bodo objavljena logična in tehnična vezja, priključnlce in "specifikacije pripadajočih standardov. Tako bo moč na IBMov sistem neodvisno in samostojno priključevati- poljubno periferija, dodajati nove sistemske in aplikativne programske pakete, nove plošče tiskanih vezij itn. Tudi DO Delta, SOZD Elektrotehna je na sejmu Interbiro '81 v Zagrebu prikazala' in najavila svoj.- novi mikroračunalhiški sistem Delta 323/Ml, ki uporablja procesor Z80, 80k zlogov hitrega pomnilnika, do ■štiri enote z upogljivimi diski, slnhrone in serijske V/I kanale itd. Tudi" ta računalnik uporablja operacijski sistem CP/M ' in kasneje MP/M in CP/NET. Tudi peltina proizvodna veriga je odprta za jugoslovanske proizvajalce od tiskanih . plošč do operacijske programske, opreme. Deltin jugoslovanski koncept se tako uvršča med proizvodne koncepte razvitih, se ne zapira, omejuje in ograjuje proti takoimenovani ■ konkurenci: nasprotno, vabi jo k sodelovanju, k rentabilni in ekonpmsko upravičeni proizvodnji, k pokrivanju zahtev domačega in tujega tržišča, k regularni računalniSki proizvodnji v SFRJ, Tiha, mikroračunalniška revolucija je na pohodu tudi pri nas. Razlogi podjetja IBM za prestrukturiranje proizvodnje so znani: prepočasna rast v primerjavi s proizvajalci malih računalniških sistemov. Tudi nerazviti lahko osvajamo računalniSko proizvodnjo na njenem spodnjem^ lažjem, toda tehnoloSko in-tržno' utemeljenem koncu. Nismo Se zamudili trenutka, ko se za naslednjih nekaj desetletij lahko «ključimo v klub proizvajalcev računalniške tehnologije. Ali bomo administrativno, po merilih nesppsobnili sebi preprečili" vstop v področje ekonomskega, delovnega in človekovega zamaha navzgor? INFORMATICA 3/19^ USING ADA FOR AND DESIGN SPECIFICATION I. C, PYIP UDK; 681.3.06 ADA UNIVERSITY OF YORK, DEPARTMENT COMPUTER SCIENCE one of the major problems In Information Engineering la that of knowing how to apeolfy a system aattsfactorlly. The specification occupies a key place in the system life-cycle, concerning the relationship between the client apa the syatara engineer, as well as being the starting point for the design. In this paper I present one major oonolus Sion (that a Specification Language does not solve the problem) and report preliminary work on the use of Ada in t te specification and design stages of Information engineering. i- Hequlretnenta specification It la esaencl.il to have a statement of what jin Infornaticn system Is supposed to do, both as a basla Cor the duatgn work nc the beqinntng of a project, and as an independent Input tn the verification of che dcHvered product at the end. The b.talc dildiiuii.-i tn negot lat iona for n softw.ire contract is that the client wishes to be assured that he Is going to get uhat he needs, without having to do Che aystera .lesign himself. The speclftcatlon and the deslRH are usually so Intltiiiteiy related that It is virtually inipasslbla to get .in adequata, specification without hiving done the design; so where Is the .contract to start? The probleo lies In the fact that the client has hla particular aren of expertise uhlch does not (normally) cover specifying Information systems. It Is for the contractor, racher than the client, to formulate the specification - but It must b« to the client's aatlafactlon. Tharo have been a number of atteiapta to overcoaa this problem by having the apeclflcatlon written in atyl-laed Engliah. Tlie claaalcal example of this is Cobol. .Although Cobol was conceived before the problema of requlrementa specification had been, recognised. It was an attempt to define irtiut Che prograa was required to do. A Cobol program uaa Intended to define the Job to be done, using a form of English so that the 'user' could wrlce it himself. Clearly that Intention has not been achieved. The designers of Cobol recognised that Its users would not liko matheaatlcs, so the notation was carefully chosen to permit wocds rather Chan matheiaatlcal symbolsi ADO A TO B GIVING C. I maintain that this Is only the tip of the iceberg. What clients really object tn is not matliematlcs but formality. The cosaotlc features of Cobol eliminating the mathematical symbols do not overcome Chls problem. Rqually any other formal Inngu-igo for specifying an Inforaatlon syatem, auch as PSL (Telchroew 1977) SPECIAL {«eum,inn 1976), HOS (Hamilton 1976), SREP CAlford 1977) ot PDL (Calne 1975), meets the anrae objection: If Che e/atem Is to be specified tn chls way at the start of the ccmtrftct, how Is the client to reach that position? Because of this argii.nent, I rujecc the common view Chat systems should be contractually spuclfled using a 'Specification Languane' designed for the purpose, neona-sarlly formal, capable of being Interpreted by « crim-puter. It Inflicts the culture of the !ìyacem Eni^lnesr on the client, In a way that c!ij client will (naunlly) be unable to tolerate. Requirementa Model The above negative conclusion suggests a re-thlift^ of the purppae of the specification. The client ulsh^ to determina as early as possible that a aystem cart" be designed to «eat his needs subject to hU constra^ts. lie will probably not bs able to state explicitly whaélMs needs and constraints are, but he will reeognise corf^f-mance or inadequacy if he la told clearly enough. How can we give him the Information for his slon7 The Job of'the system engineer at the early st^es of a contract la to provide the client with enough Infer-mation (but not too much) to permit this check, lis Is not a fornai check! it la 'the satisfaction of the client . There Is a place for formalism in requlremftnta analysis, but It is not at the interface betwee%(1ia client end the aystem engineer: it is within the engineer's area of concern, where he can interpret ^ to the client. The formal representation of ^he requlr^|{^itt nay be cons Id e rad to be a requtreiienCa model. The fe^t stage of a contract la therefore to establish a req^li^S-meats model, to the satisfaction of both Che cllent"(so that It expresses his needs and constrathta) and the engineer (so that It provides the basis fthr a design and implementation). l^. Client's View No single view of the requirements model will satisfy Che user, any more than a single teat of autogram demonstrates its correctneas. The client's satisfaction and confidence can best be achieved by a raiijtl-pllclcy of views, from different angles, concenttattsii on dlffurent aspects, but all of the same underlying m##l. This lias been called 'animation' of the model. Thi.s we nay iMve examples of what the target s$i««ii might do In various particular clrcumsCancSs; we may Fia e analyses of cases th.jt have been covered Co locate li^fon-siatene Los or IncomplcCeneaa ; we may h»ve resource ^t l-mices for Che tnrgec systemj wo «.ly have resource eftl-mitea for the proiuction contract. In ^ome cascà the client may be willing Co study the formal model leàelf (obviously advnntageons), hut this should not be t^kan for granted. Any single vlnw can be checked by the cllnnti hla confidence la .lohlnved by the variety and mulclpllcti^ of chi! checks. ' i'!iiiì Ili if.'c'ì Viow A ilri'jhì Iiio'li;! ( l.il , w!)ic!i mini: 11.1 / h(! uii:r;iiL kliiJiì jinaLysts of tUe model. Darhi^ chc [tarlol ivhnr» tlm rsqti L rbim3;i!:s nilt;! in baing bul.lt, It L3 iifCfiSB.arilv Uco.-nplata, uii.l -iriy «ont.iln ;i:nblsultle3. Orna of the prtnclpsl re.iisoji« iVir consul lil:itlii'> tlia inf urm.it lun as one mod a i. Iii to .illnw tilt! ;ir>.ilyslii to be .n.iJi? for consistency antl coinplntenesa-TtiG kind of notacloo usüd to hiillfl up and modify thi; moi.il conili p)iia«r ami riot lnten:lt;l to bi; ua:)i;r'jt!iti)nblu by the cllosit. Tilt! mndol should ilinost certainly be field in a coiiipatcr-ni'iiilpiil.ibLt!. form, both for aase of mod t E Icfit I on as facts about It ire diiscovararl, and for Hunlyists tHrou.r>li the application uf various aoftw.ire tools. IJ.; dlaciiüs later jh^t form a Jio'lel 'niolit ta\te< I'l* Ur-'i-mls^ttonal Viiiw In Host cases the cllant ani the Rns-inaer are nr<»an-Isntlons rather than Individuals. The reqnIremeats ara probably not known in total to any one person, althaiit^h several people thcouj^hoiit the client organiantion :ould Cli-.'ck tliam ftir satisfaction from some partlcuiac points of v.leur. Llltevilse tha en^Inoerini; organisation will ax(wet to partition the formulation an;l design work amonti niombers of Its staff. For this reason atjaln, uie find It neceasar/ to have on(! model with Tiany views. It Is common j'len acr|iiirlni5 Information about th? r«<|ulreiiients that the enHlneer f>ct9 Incoaalatent statü-iiiiiiit3 froa client's stuff. rhls to b<; is expected In a hiimiii orijaiilsntlon, and should lead to a račo^nUlon by the ..-itglneer of a hitherto unnoticed subtlety, or a dcct-Hloii by a more senior member In the client orijanlsatlon on which st.ituraent to belleva. (Or the decisimi to adopt several provIsloaally, intendliif! to r.;;)act one after liiipUcatlima have been explored.) With current techfiolovsy, It algo happens that eni-tHeers s'lve lUEferp.ut ( Inc.ortfii'stent) intecpretation« of the requirements model. Tills Is clearly undesirable, and since ft Is In the eni;liieer'a iiren of exp^irtlse, should not bo tolerated, llerivntlons from a t!o,iimo'.i iiioflol sive the best tiUanzu of avoldlnK confusion. Keiulreiiiiints and Dcssli'^n Tim rei]iilrcm3nt;s are oeede.-i • to allow desip.n to ■!>n_i;ln. liuqulreaents state what la to be achieved; dusl'jn tforka out how they are to ho aeliteved. Both the requirements an! the .iesltjn liave -to ho apaclfled In -ioini; way; as WJ shall see, tlio liešU'n eventually le.ids to a proqraiii. At many stajjes during the destilo, prOfTress consists of Identifylni; subs idlary , requl remants , and uxpresslufi the solution of one part In terms oF subsMlarlcs to he desli-nod aubsequoatly. Thaa the ahove discussion ilao applies to a considerable estent to tile suhsequnnt stages of dtaliia, after the requirements hivo luen identified. TIk! aliin if leant difference here Is that hoth 'requtrar' aud 'desijiuer' are memhars of rhu enislneer'fi organ Isa t Ion, and can be etpji'.ted to hive a much closer rapport an.l common pliUosophy than betvriaii idie lent .and the eiiijlneer. In particiliar tlif: .irisniiun:, te.i) the relationship between these? To whit .-»xtent do they contain the sama iiifur-nitlon? Wiat Is Involved in tlie prostflssion from r.;qiiirer,ieat;5 specification to eventinl protraili? 1.1. Sliie aiivi St rue t urn .In Impoctant question at this paint is wiiether thü requirement's apecIf Icat l.ou iind uvuntii rl proijraii are e.^isent tally ilffcreiit In nitnre, so that a different nutation must he used irrespective of the amouat of Information concerned. Tf there are d i f fot'ince-i, ue .nuat discover tiiéir 'orl.ijins ini consider liow tiiey can be reconciled'. The specification is of coufse sitorter than the pro-■E;ram, so contains less Information. Tile first point to consider Is whuther there is any infnnnatlon in the specification vjliich ts not In tlia pro.;;rniii. In conventional pro^carainlati technolo,.->y, the answer Is yes: much of' the ' InfoCLOat Ion about- ovf;rall Intention Is absent frofn the progr.am (unless the designar his taken, care tu incorporato the specification aa co.iirnents ). . Vlewtid In retrospect, after the program has b'>üi! desli'nad. It Is advanta;*eou3 (for pro;;ra:ii irilntemnce) that the projràm text should incorporate information about the requirements, namely the functional specification. IJe can tlieroEore tonslder the next question: wiiat is the additional information in the program which Is mir in the functional spacIfIc.itlon? Broadly thä answer Is that the prO[;rain contains mare laechanlstlc detail. Durliiß -the deslsn stage, the increase of Informar loa is progressive, as the needs for particular program units are recognised,- their necessary chacacteriatics are Identiflad, and the technUi'!®'' to be. used to obtain tlione characteristics "are determLied. Oaä sl.qnlflcant difference in notation ' Is that between a dlai-ram and tent. He h'lve reported (i'yle 19H-:H so:iie implica t tons of tills, relating to MASCOT diagrams to correspondln° Ada text. Mthnuish a tllOHfam may be a useful primary starting point. It, Is not a good working inedinin during the deslsjn sca!;e, becau.se uf the mechanical dlfficiilty of keepln? .-i set of diagrams up to date. in the absence of .a '.iraphlc.s editor, it is better to work uttii a text representation'(which can be easily edited). aaJ derive- tlie dia.U'airis fra.n the tost. l^eali;n and Pro^ ramming; . It Is a primary basis for tiiis -work that tbe deslRO process covers a graduai development of the' projjr.am, by n serie.s of transforraitIons. At each stage tliere Is a '(Mirrent nnderstan-llng'; there Is no clflar .separation betwaea des lj;nl ih», .-in Infonuat ion system, and pro!;ra:iinIn^i It. destsn can be vle-wed as .'in Incoinplote program - tiiat Is .'I program In wliicli certain entitles or concepts are used which have not yet tiie.-aselves been do.sli>ne.'l. There la no aiie-le suddea transition from "deslrfid eff.-jct" to "iiie.-ias of achlevin.q effect", but such tr-|iisitious _ Increnental ty (throm^li intormadiatc^ apecl flea t l.ous ) throuiiii-iut tlie dvialp.n process. ~ iiurini; the sta;;e, the program is necessarily iur:(i:np(.et.j : !:o:iLe parts which ire eventually nee-lad Nave not yet been coasIdere-1. Ac tha baivlnnlniJ of the ' .;!e3li',n .'ita;;'; I'e hive only the overall specification; at the end we h-ive tha whole pro;;ram'. \ pfagrammlui', ian'.;iriive ^hich is capable of statlrig specifications an-.t prop, re'i 3 ive detail is also appropriate for e.xpress in.n a de.sii>n. l\ eninpller for a such a laniju.if'K wan Id re.|ect a liesiin, bec.ansc It would be an lnco:i)plett! pro;; I'.i.ii. • Ikiiwver, the d laRiiaat ic m,-issai;n3 fro:ii th.; i-.o.npller woubi he Important, ss th.3y would l-lnn-tify o-.aissinns, ani -Iraw .attention to- any lncousir,ten-c i es. ■ . »0!iti;n acttvUtus Thl.i vluu of i;r!i'tii:il triirmltlon from funcLtoml speclElcncLoii to uvunCunl pr-Mrjr.in ii tt'C!rl1.(!s oni' 'lü ircli for effectltff! tnf^irm.itlon u'lighicarln? tochiilnuii. )Hr BtartlnK polne Is tliHt tlura Is .m HSfiontlil slmlTirKv heciJeetidia cis h« pcafernhle. No design goes straight from start to finish, and a sood design tool la one which psrmlcs the designer to locate the relevant mistake òr dor.isltìn point, and recover aa much is possible of Ctie work which h.iB been done after the mistake or decision. Citren these points, it is desirable to use a con-alsccnt an! coherent notation throughout the deslsn process. le there ace to bs any iHacont Inulti «a In the deslsn notation, there jre sure to be'errors (omlsslorts and Inconsistencies) which will need further effort to detect and correct- High level profsramrnlns lan.rjuages arc obvlotis tools to use for this purpose. They already indurle Eciciires for separntlou of concerns and limiting scopes as n means of reducing inter-dependency, Jiid are Supported by tools which check for Internal conslatnncy. Ada as a Pro^ri-im Deat[»n Lfin^uaga The features of Ada for progr^mmlnf; In the larije (separate couipllatlon, i^lch n datubnan containing inutu-ally consistent compilation units, which Include pickasjus and I;enürlc program units) mske it a very attractive prjsp'icc is a prograa design langoage. Within program, Ada reci)S"Ues the ■llstlnctloil hotwden specif teat Ion .ind body of a prugrain unit; in other words, between thu Information available e«tecnilly about chat; unit («hlch tlie rr-HC of Che program may use) and the Internal Infor-■nltlon (which determines haw that proijrmn unit is dcstfinjd to work), T!iq siimo kind nf disLlncClOd npplles b.-'tuaun thf! spjdlflcntlon of t pronrin i wholf; rml its ro ill i'ltliin. I -I I su ro«o:;n i tint pj'f..;rniii.'! ai'f »jrlctiin liii-.i c.-■ii-'iic 11 ly, usu'iLly by .nore tinii nnti persoli, an) provi Iss flit lextuil suparatlon uf specifications ani bodiau. The mudu le strne tilCö of A.la pro;; rams (more powerful than che traditional bloRk structure), coi^ather with thi! visibility rules and the separate compilation feature», make Ada very suitable for use as a program design languißo. Subsequent soctions liscurta Its virtues and some of Its defects. F.Kaiaplea of ^ m a Proijr.iin Design L ■>n|{uai;e To illustrate this point, coiislder chn foUowiac, prosrain unit for a Elltratlojs plant pruceJura 3rN(;u?_Fli;rF,« la begin STIHTJJP; loop r;Li!.\N_PiLrKt liiten.lijd til dunote proc ! Itaes, but ciicrnatly tl)«y nre Just un.luclarud I Ioni I f kirs. Ala illows us to exjärüf;-! the eaaantl.il characli^rIstlca oP tiiesj iia.for phnsea-as a packaije spac If Icat Ion : packav,'! MM'!k_PUARIC=i Is procedure fiTAKT UP; proceduru IlRLlVKKJitATRH; pi-Qccdura GLKAM ^'ILTRH; procedure CLI>;!H:""DrWN; eni MAJOR PIIASKS;" Thin package specification can he separately cninpll^ In Ada. Once tills has been dona, the [I.TKK p^ran can bià made Into a proper conpllatton unit: by ^Ivinft lt a context apecifIcatIon : I; I with MAJnil_PI|.\SI!S; use MA.!'l!l_PHASES; The deslan would tlwn be progressed by wrlclnfj tho f,ii;k-age body tor MAJD'.l VilASF.S, Tills l9 top - doju leslnni As another lllustraeloii, tho filtration plant eontains a nu.nbar of valves which control the flows of fluid in tho plant; cliey fire .lU used In slrailir ways, «0 ws will certainly need ficllltloa to manipulate thein. The actual dütalls of the valves will probably anc be feown to the . desliiner Initially (they .nay not yet h.iva "lioan manufactured nr sülectud), so Inf ormi t iun Éibouc Ihe* Jill be dlscüverol (or nai;otlatuf) in th« design pru-ii-aWes. However, we caa riicocd p/irtlal. Information tho.il .ttumi thus : (•enarlc cypa VALVfi la (<>); packinR VM.VSJWTMLS Is ty(v VALVE_.irATlJS la (OI'KN, OLDSED); typj CinWvlRL la imw MATIIKAI.; typa V\1.VR_PAl{AHKTR'iS In ri'cord CDNDITION : VALVF.jlTATlJS; COYtiML ! CIUNViÌlT u ad milord; CaMTKOI, VALVR : army (VALVE) of VAtVR^PAllteiStlSH end V^LVI^''D^;TA[LS; ~ This show» that wo know alr«.idy that Cher« will be a numbur of kialvos, nltlioii.;h we have not yet decidui^ (or illscovored) Viow iiimy tht^re will be or what they wilt, be called. Kach vilVf nlnlit bo open or closed, and Mill najd an Incticnal rncord of Its currunt condition and the r-h.innul to which it la eonmscte I. Further design work miy elaborate thla, wh.^n w.i dlscovor for enaoplis )al of onei « t'l li . ji type.VALVE PARAMETERS Is record . OPERATE t CHECK- : . L^MP ! eni record; array {VALVE_ST\TÜS) of CHANNEL; array (VALVE STATUS) of CHANNRL; CRtNNELj• ~ . ■ Further development will Idenelfy procedures to carry out operations on the vaivas, such as • procedure MOVE tf(VLVE (V : VALVE; TO ! VALVE STATUS). Thts Is botton-up dcBl(|n. As a third lllustraclon, consider programs Involving iiiiiTierlcal calculutlo.ns. Errnrs of numerical aDalysia must be considered, and decisions .must be- taken about tepraaentatlona - (fixed point, floating point; single length, double length). Ada permits'the program to be written usliig numeric types of as yet unspecified precision, by using a generic parameter such as type REAL 1« digits <>; We can express «ensibl«-range« and formulae thus type PRINCIPAL ANGLE la new REAL range 0.0 .. Z.O*Pl: function ARCj_CÖS(X : REAL range tI.O .. 1.0) return PRINCIPAL_AKGLE range 0.0 .. PI; PSI : PRINCIPAL ANGLE range 0.0 ..PI; ALPHA: REAL rangl 0.0 .. 2.0; ,t- range.ABStl.O- BETA) .. (l.O+BETA) BETA : MAL range 0.0... 2;0;' — range ABS (ALPHA - 1.0) .. (ALPHA + I..0) ' Th0 acttifll preclBton needed , may be Investigated as a part of Che design activity, aepàrite Ero.n establlshln.? the algorithn to be used. i*!' Support Aids' ulth Ada. ' Clearly Ada'has much to offer: in many aspects' of program design. • The major benefit from u?lng Ada.as a design language is that it gives a saooth crfinettlran froa the requirements to the eventual program. Incidental benefits are that' software tools designed for use .-with Ada programs may be used with the partially - designed program, and are likely to give help to the designer dur-, ing- the design process. With* Ada, i»e already have ruttl-neotary design analysis tools.' ■'liaaglne a partially designed Ada program .submitted to the compiler. Diagnostic messages'are likely to be i i given; 'in these-will.be useful check-lists for ' ' the deslROer; identifying -iteiiiB which must be studied , further.;' At some stage a sufficient set of . EacilltleB-and ;typea can be written to form a program unit utiich aay-be compiled without diagnostic messages : this will . then, identify., the separat^ subunita and module bodies which ; must be written subsequently'. When a module._ body Is' written, the compiler-«ill automatically check.for consistency with Its specification. Throughout the text written'at any, stage, the. strict . typing rules' will ensure that entities are named and .us'ed in consistent ways, and also give early warning of any. usage lAich appears inconsistent. This idea has already been used to gopd effect. In (i real, project, to -enforce house, s.tahdards on design, documentation. An Ada library package was written, introduc-. Irig types for the various kinds of entity Involved, with the possible values enumerated, e.g., type FILE ACCESS is . (RE.AD, UPDATE, APPEND, CREATE, DELETE);-type'FILE_AREA :is " ■ ' . (INPUT, REVIE'W'Ì MAIN OUTPUT, CONSOLE);. ThM glyes a basi3 , for ' analytical - checklng. of - the algo-rlthms and ranges. In.this .case, for exanple, we show the ranges for the argument and result of- the ARC COS function, and Introduce variables with much mora precisely defined properties than usual. . We can also add further facts, such as. — assert ALPHA BETA >-1.0; . — assert ABŠ(ALPHA .- BETA) <- l.O';- and confirm the sense of formulae: and procedure specifications for relationahips between them. The actual design, is. written as separate .compila-^ tlon units, in.the context of this library unit, so that' they all use thè same, nomenclature, and the. irelatlonshlps are expressed consistently. Other; Ada language- tools will also assist the. designer ^ a diagram generator will show relationships .plctorially; a formatting printer will keep programs neat while they are undergoing development; a crons-refc'rence generator will allow.usage of entities to be connected with their.definitions; and an Ada-specific editor would almpllfy input. PSI ARC_GOS( (ALPHA »* I + BETA ** 2 - 1.0)7' ( 2.0 * ALPHA * BETA ) );• , The subtypes.for PSI and ARC_COS'RETURN are consistent; the argument oE AkC_COS has the right range since' . (ALPHA -h BETA) ** 2 >- l.Oj (ALPHA - BETA) *» 2 <- 1.0 ALPHA ** 2 + BETA ** 2 + 2.0 ALPHA * BETA >- -1.0 "ALPHA *». 2 + BETA ** 2 - 2.Q * ALPHA * BETA <- Ù0 -2.0 * ALPHA.*.BETA ' <- ALPHA ** 2 + BETA ** 2 - 1.0 . , <- 2.0 * ALPHA »-BETA- -1.0 <- - • .: '.',-( ALPHA ** 2,.+ BETA ** 2-- 1.0 ) / . C 2.0 * ALPHA * BETA ) <=• +1.0 . Inadctiuacy oE Programming Languages .Having noted the relationship . hetwaen . programming and design, ' we must beware of going too far. Conven-r tional programming.languages do not permit the expression of some crucial design information. We diatinguish hetyeen declaratlona and statements, as- 111 ordinary programming languages. For the purposes -of specification, declarations are relevant hut -atate-raants are not. This.is because the specification has to define the effect but not the means; the stntements express' the means bui; not (explicitly) the affect. To specify a design, we want the functionality implied by a, sequence.of statements. Ahnthor way of seeltig this . distlrietloii, .--Is_______tQ... .-recognise that - the' functional relatianahips ace ti permanent feature of tlie system, to be.' described in its specification and satiafled by the designer. Permanence is the crucial fact: invariance' of the functionality during -execution which' Ls independent of-the particular dusli-n. Stiitcinants .ire necessarily dynanlc, slncc uicli Is oxecuce;) ..at ii p;irtlciil.ir ttaie In thr; pco»rmi, .in.! Lt cIviriRii» tliii stato of the system. The inA.lor itcElclency of .aost proi>r.i tuliii L.in^tni'i'H Is th.'it they Jo not allow thü effect of i piece of program to bf! Rt.itei, utiior th.in by .Its ticnii!) - the =ißf|Meri:Le of stateaieiidH to .ichlevo that effect. Wf focnalng attention on this point, ua can besLn to ch.iracterlse Information syatcms« .IftJ rlescflbe the wnys in tfiilch their functionality injy be expresae.-l. Another w;iy of puttlnR. this to consller the stnteinentn m-i aamlcolons Interaporserf In a piece of pro-Brna. The atatoüients deacrlha transitions from one fitite to asiothar; thj aanilcolons corraapani to states (which art! not explicitly Joacrlbedl. What we ijant La the reverse eiaphaslftr eKpllclt ileacrlptlon:; of the »tateß that are relevant, but elision nf thii decailad rleacrlp-tlon of the transit Iona. Shorteomlnga of i\ila iis a ml. The benefits ilescribed above arise from the rules nf Ada, ensurlns consistency »nđ compatibility of Inter-faCBS. IJiit there la nothing In Aia concernliig the prn-gnitn semantics, that la the functionality of the program ijfiitB, defining their desired offecta. We nou consider how the semantics of a p rag ram nay be expre.'^sed in an Ada-Ulte notation. An subprogram Is specified by Its heading, which gives the name and parameters. The Inteniod effect of tiie aubprogrnm Is nut specified; It la usually expressed Implicitly in the name, Q-%* [f we lmi!>lnn the initt.il and flail states as polnta In a state space, an.l the fuiictton il 1 ty spjcIf Icatlofi as a reL.itlonahip hetween them, then tlie nntiire of the (luati;n task, la to discover tra (•.•ctnry (n tha sente spice which is feasible and compatlbSi- with the resoiićtea ■ivillablo. The trajectory la not discovered entirely In one leap (altholiijh i bre.iltthrouKli In rea I la In,!< feastbl|i.ty u;ì4ialLy Implies thU); we do not InciLi; a cnntlniiouS |ra-.leccory Chrwugli stato space, but: i nnnbjt oC IntortnoiS&bo points, with appropriate reIntlonshIpn b;'tween the.n. Vcrlfylnis this design connists of Shuwlnjl that the relatloaahlpg lavnlvlni? the intermediato atatci cm he combined top.cther to jjlve the roqntrt'd relationship between tha inltlnl ant final states. Subprosrams Wa can gpacify a subproqrnm In this uay, subjest for the moment to the limitation that the state space can oTily cover tha variables in scope at tho time of the action, and no.commitment la made as to their cepreaeJitn-tlon. «here the subpro.^rara Involves only Intornal mni,pu-latloas, we can express the relationship as an assertion, e. [>. procedure SiWP (A,l> : In out DAT.\ ~ ,assert A'tN = H'Oiit; — assert HTM - .\'OUr; ); function S()ST (X : FLOAT) return FLOAT; proceiiure MOVE VMVR(,V : VALVR; TO i VALVE STATUS); Tho reader of such a prosram la simply left to ijuess thnt bacanae the na.me la SQIIT, the function takes a squire cuot, and bacauGO the procedure Is named HOVIi_VALVF., it cause the specified valve to he moved to the statua given by tho second parameter. FornnlLy, Ada does not deal with the program semantics, above the level of the elementary atateraents. The body of a procedure uKpresses the actions to be carried out whea the procedure Is called, In terms of the indivi-, daal statements (whose scm^intlcs are Jeflnedl, But this la ton mechanistically detallod, to be rei^arded an the aemantlcs of the procedura Itself, that Is, of a statement calling that siibproi;rain from (ilsewhere. Thla Is the crucial dlfüerence between requirements specif 1 catloti and eventual proigram - not so much level of detail as the difference between Intent and achievement; between tho effect obtained and the way of obtalnlntr lt. Conventionally, the effect Is conveyed by the choice of Identifier, usually suppl.^mented by commenta. What we aeed is a means of expresstni; the relationship betwaen the states of thu system iiiiinadlately befora and Inniiediately after a call nf the procedure : what In the probran proving literatura are known as the preconditions =jnd postconll-tiona of the action. The effect of tha procedure is stated by the 'assert' predlcatea, where the IN an.l our qualifiers denote the Initial and final values of the parameters. (These are not necossary for pure J^ ami oüt parameters.) Tha assertion here la a ralle of prellmlnnry Ada : revised Ada does not contain assert stnteaenta. Tlie role 1 see for assertions la as dtfclaratlong rathnr than aa statements. The assertions specify the hlr;h-leval semantica of the subprogram, and could lii principle ba checfeej against the body when It Is evontinily written. Tha description of the affect for procedure SWAP rests aolaly on the notion of equality. Other buli(iro-grams msy depend on .noro powerful notions: function l3_l!VeN (1: INTEniilt) return HOOLHAM — assert l:i EVEN'KETURN " (I mod 2 = 0); This depanda on tha notions o£ arlthnetlc an) the operations of tha type INTEGRI«; the effect of thu function, stated by the assertion, la to calculate a result which bears the given relationship to tlm paramater(a). The HETUHH qiiaLlfler on the function name denotes the result. Hora notions of arithmetic are needed for: Z" Transitions In Stata Spnce At a sufficiently large scale, and at a suEflclently small sole, the concept of an action Is Important In Information systeins. It could be job In- .t hatch process Infl system, or a single .nachIne instruction. It carries out a particular effect. In .i finite tlina, by pattino the syata.d In a final state which Is In some way related to fta Initial statu, taking finii:.» r.!3ourcos to do It. (An:! It raay f,aU.) A nticessrtfy lul sufficient d.iai'rIptlou of (he functionality of auch an action Is the relationship betwaen the Initial ani final statics of i:he system. function SQRT (X ; flEAL range Q.O .. RE\I.'LAST) return REAL — assert SQUT'liCTilRN > - (1.0; — assert (ArtSCSQilT'SierURN**?. - lt>< — STrlT'KF.TUKN * UKAL'EPSILONV, Hn-iinrlcal analysis la required here to atfttn the rela-tloiislilp. Soma optimisation Is Involved - the InteaClon ts to gel the best passible result, whoac squar« la closest to X. We could perhaps hive done better by flrat defilila», tlia notion of 'ne.irest': geaairlc Uyps T ts" pr Lvatoi . ■. with fi'inctioii F (X .• t) return lìIvM; fune t tua NRAUKBT (X : REAL) ri;turn T La fimćtLoTi CLOSE (Z : .T) . . return jlEM, riingti 0.0 .. MAI,"LAST .1 s bßgin return ABS ( F(Z) - x ■ _ ami CLOSi;;, . hea-ln — for nil K in T Hsaert CLOSE(HEAIlES-rRETURM) <= CL0S1!(Z); Olili NEAREST; ani instanttating this'in the present case: subtype POSITIVE' ilRAL la .' ■ REAL ränge OTo .. REAI.'LAST; function SQUARE C* : POSITIVE_^REAL) return TOSITIVK REAL — aasert SQUAKE'RETURN = ì{ * X; function SQRT ' (X : POSITIVE_REAL) return POSlTEVE_RKAL Ì9 new NEAREST (T ■PÖSITIVE_REAL; , F »> SQUAHE); Incldontally, this shows that the result of the f)rl-glnrilly atated function' ahoulri have b^jtin specified .is FCISlT.lVE^REAL. This discussion has riellbar.itely st-irte-'l with slinpl«! SKnmpl'iS. To express the functionality of aure compi 1-cateij aubpro.^ra.iis, we fln.l It necessary to stati suha Iii l-ary notions in tiinm o E which the desitei relationship will be expressed. These typically concern properties or entities of a ^Iven type, so occur In-the specification of a package introducing' the relevant data type. Packages ■ . A package Introduces a act of facllitlas that may be used la the progra;» around it. In the atate-tranaltion modal IL cacreaponds not to an individual transition relationship, bat to the concepts underlylnt; a set of trnnsi-tlona. CharacteriatlcaUy, in the abstract specification of a package ire Cinti not transitions but Invariants. The types introduced in a package, and the suhpro-Brains Introduced to manipulate objects of tlmt type, .have their own Internal requirements. The types express package-specific concepts (whose implementation details are hlJien), and the invariants express -perinanent properties nf those concepts which -ire suppu.rtod by all the manipulations. Assertions in the package specification can express these luvarlnnts. I5y placlnj; th^m In the -T nill I Cut Last Item -- null for first i t'j In Tnij'!'; 1 In iiiirs'ie' specification, we miike them visible with ;;he package, and thus applicable to entitles outside th:; |iickai;e. For eKample, where a type is defined In the i>a<:kar>(i, variables of that typo .Hay be declared outside. The üsser-tlons about tha type In the packiiije spec 1 Eicntloii apply to all variables of that type., and can be resjardod as both preconditions unii poa tcond It Iona for every manipulation dona by tlie package. In the case of private typos, where ill manipulations on such variables tiava to bs In the package, they are Invariants. The folloulaR exaraple In Ada shows hnw this might arise with queues. generic type- OBJECT; package QUEUEJUNDLlNQ Is type ITEM; type POINTS« is accsss ITEM; type ITK'I l;i record COHTE.VrS ; ilSJKCT;' ; POIMTEK. .. .. I'llKVI.OUS : I'OI.NT.I-.H en J record;. ■ '. ,, — for all AMY_POrNfEH rln POEMTKH.-isHcrt . • — ( ANYJ'OCHTKH.NE.XT = nuU or else ANVJ"1 INTER. fiUKrlplir.VlDMS = ANlf_?;)INTF.lO .'inil ( ANVJ'OfNTI'.R. PiiEVIOUS ■ null or p.;!!!.? AHYJ>:U;.lTHR.l'.tl!VH)'J;;,>4:?,XI' - At«J>(nNTi;R); type. OUEÜE Is reciiri KlRSt ; POI.NTE't; ' — null If queue In empty LAST : ['fUMTKR; —, null ..If queii'.; ' U lempty end record; — for aU. A'JV.JJUEIIE In OlMillF, assert,.' C AUVJJUEUE.FIRST ' .null or else ANy_QÜI5 U E. Fl It ST. Pil E V t Ò U'5 » null) a nd r — C ANV_OIIEUF.,L.\ST null oc elso ' ■ A.NYJ!Ui;Uß.LAr.T.NF,Xr = anil); .procedure STRIP (ONE, A:TOTimit : QUEUE); ~ move (ISE.FIRST to littcome ANOTHERjL/iST end QIJEUKJIANDLING; lie can use these, assertions usicful.ly when writlo.t', the bodies: package body rjUKllEJIAfJIlLINO is procedure STRIP (ONE, ANOTIIHR ;■ QUEUE) ts -- ,aove ONE.EtUST to beco,ne ANOTiì^.R. LAST THfS ; POIN'l'EH; .b'iiiiii — issert FIRST /= miUj : — Rain.-ithln.(! to ..nove THIS := O^JE.FIRST; — assert Til IS. PREVIOUS - null; — since It WIS the first Item •; . . ONE. FIKST :» TIllS.NSXr; ONI!. FIRST. PREVIOUS ;=null: -- mark U as first Item In rjueuu THIS.I'HEVIOUS AWOTHSR. LAST; — attach It to other-queue TlllS.NE.^i: := null; — mark It .:is last Ite.n In queue AWmiER.LAST.NIiXl' ; I'll IS; — adjust previous l.iat Ite;» ■ ANOTIIF.R.UAST rillS; — new last item — assert ANaTHEIi.LA.ST.NliXr. = null; én.-l STRIP; end QUEUE HANDLING; The .assert Ions i;lvo us preconditions about the parameters on entry to the proce;lure. Ue can (.and most) check that ijverythlni; we chiiiße In the procedure (apart from loc.il varlaULiüO conftirmK to tlie n^siirtlons en It. In the contcut of this p:ickai;e, uslni; the. notions It Intro luces, we c.in Mt.ati: tin; se.Tiantlcs of other procedures; '' procedure AI)[)_ri)_QIIF,IMi END (I:OH;IK.I;T; 1); in out QÜKIIE — .assert Q'f)Ur,L\ST.CONTENTS - I ~ .isaert Q'OUP. L.\ST, PREVIOUS - Q'IN.LAST ); ■ d, Cout Inuln^ Syst«; N.it all Inforoatlon systeiis can be specified by a st.'ite-space transition, althnu((h. there may well ba Inner lijvi.'ls iif detail for i/hlch that model Is valid. A principal characteristic of embedded computar sye-teiSB Is that thay are required to perform some function 'continuously' rather than as a iSlscretB action. In terms of a state model, they have to maintain soma relationship over a period of time, while wnclous perturbing Influences apply, which must be observed and responded to. Here concurrency can no longer be Ignored. The major omission for the above state-space Is ita inability to comraunloate with other systems. moftel Me have revlei^ed tlie prospect of Ada as a Program Design LansuiiBEi •»"<' found that It has adequate not.itlons for the major Issues, particularly structural ones. A serious deficiency remains, that the specifications of Interfaces do not specify effects; the enphasls in Ada (as in any prograiamlng lansuage) Is on transitions between states, rather than the states themselves. The notation of Ada can be stretched to cover these points, using declarative aaaertlone. Tnterconmmilcatlon At a higher level than the 'action' level, the crucial functionality la not the state changes, but the Information communicated from one system to another. The basic purpose of a communications protocol Is to allow two partners to cooperate by each knowing about the Internal state of the other: the communication Is used to convey the state Information. Me can cower the elementary input/output characteristics by treating them as channes of representation. They establish a mapping between internal states and Jhe environment of the Information system, thus allowing the scope of the state-space model to be extended to cover actions involving data input and output. Thus we may have for MOVE_VALVe the postcondition that valve V is in the state TO. (The procedure aay be developed by adding the possibility that If the required postconrlltlon cannot be reached In a given time, an exception Is raised.) The representation change covered by the elementary Input/output is that between Internal descriptors of the valve status and the corresponding actual valve state. We normally work with two complementary relationships: desired aCateClnternal) to actual 8taCe Kako problem rastavljanja re£1 na slogove nije konačno lingvistički resen. Iz do sada izlolenih činjenica sledi, da svaki pokutaj automatskog rastavljanja mole dati samo delimiCno zadovoljavajuće reSenJe u odnosu na Pravopisom postavljene zahteve. 12 U daljem tekstu ovog rada opisujemo program koji vril rastavljanje konsonantskih grupa, opciono, prema Bellćevlm Ili Stevanovtćlra pravilima. Navedena su takodje 1 reSenja nekih drugih problema u automatskom rastavljanju refi. 2. OPIS PRAVILA Postupak za odredjivanje granice sloga se zasniva» u opStetn slučaju, na odredjlvanju po1o2aja susednih centralnih fonema u reCl 1 Ispitivanju svojstava konsonanata koji se nedju njima, eventualno, nalaze. Pri tome, kao centralne foneme u srpskohrvatskom Jeziku se mogu pojaviti: (a) vokali (a,e,1,o,u)i (b) glas r, koji se kao vokal pojavljuje u sledečim siuiajevlma: -na početku reCI, Ispred konsonanta (npr, rt) -u 1nterkonsonantskom položaju {npr. krt) -na kraju reil, iza konsonanta {npr. masakr) -ispred o postalog od 1 (npr. gr&ce), (c) glasovi 1, m, n na kraju reči. Iza konsonanta (npr. bicikl, njutn). U daljem izlaganju centralne foneme Cerno označavati slovom ■ v a marginalne slovom k, sa ill bez Indeksa. Pravopisnim rastavnim znakom {-) oznaCavafemo poloiaj granice sloga. Jednosloina reći, tj. re«i u kojima se pojavljuje saiDO jedna centralna fonema, se ne rastavljaju, pa nede biti predmet daljeg razmatranja. Kod v1£es1ožnih reCI, Izmedju svake dve centralne foneme može postojati grupa, marginalnih fonema, pa se u svakoj viiesložnojj re£1 mogu Iden-tlflkovati segmenti oblika; {n>0) ... (x). U odnosu na ovakav raspored centralnih 1 marginalnih fonema se odredjuju pravila o granici sloga. .Izlažemo dalje pravila koja su zajednička svim u Uvodu pomenutim skupovima pravila: (Oj) Ako reC počinje konsonantskora grupom, onda ta konsonantska grupa pripada slogu obrazovanom oko prve centralne foneme. (0^) Ako u (X) n-0 111 n=l. onda je granica sloga Iza v,; v,-k%2 . Radi jednostavnijeg izlaganja pravila o rastavljanju konsonantskih grupa označimo skup svih konsonanata sa C skup strujnih dentalais,ä,z,i) sa S skup praskavih {b,d,g,p,t,k) sa P skup pravih sonanata (v,j,1,1 j,r}sa fi v,k"v2 Tada, prema pravilima koja potiču iz (BeliĆ/SI/) za dvočlanu konsonantsku grupu k^kj vail: (B,) Ako 1) k,eS i kgeC, ili ■ii) kjcC-R i k^cR, onda se grupa k^k^ ne rastavlja, tj. v^-k^k^Vg (Bg) U svim ostalim slučajevima grupa k^kj se rastavlja, tJ. v^k^-kjvg (Bj) Za u (X), konsonantska grupa se rastavlja prema (B^) i (B^). Prema pravilima koja potiču iz (Stevanovič /M/), za dv (S,) za dvočlanu konsonantsku grupu k^kj vaŽI: Ako i) k,cP 11), rastavlja, tj k^eR kgeC-R, ni k^eC, onda se grupa k,kg v,k,-k2V2 (Sg) U svim ostalim slučajevima grupa k^tig se ne rastavlja, tJ. v^-k^kgVg. (Sj) Za n>3 u (x) konsonantske grupe se rastavljaju prema (S,) i (Sg). Pravopisom su dopuStene veče slobode u rastavljanju red na kraju retka no što ih daju izlož^ pravila, ali kao ito je ranije rečeno, pojmot^ "lako" i "teäfco" izgovorljivih konsonantskih%rii-pa su neodredjenl. te se stoga ne mogu formaline opi sati. Primeri reči rastavljenih na slogove prema pravilima (B) i pravilima (S) su dati na slici i. Ovi primeri su pravopisni primeri "teško" izgiO-vorljivlh konsonantskih grupa. Kako se taUve , grupe rastavljaju bar jednim od skupova pravila (B) ili (S), može se kao heuristički savet usisfo-Jlti da se pr1 rastavljanju prednost daje onisp skupu pravila koji rastavlja konsonantsku grtpu. Na slici Z su prikazani primeri rastavljanja "lako" izgovorljivih konsonantskih grupa. Na osnovu opisanih pravila, konstrulsan je pMg* rara koji rastavlja reči na slogove. Osnovni feraci u programu su; 1. identifikacija prefiksa (videti 3(b)); 2. identifikacija prve centralne foneme slevi na desno; 3. traii se sledeča centralna fonema; 4. ako ne postoji, stop; 5. ako Je pronadjena, ispituje se priroda sk^pa marginalnih fonema i postavlja se granica sliga. Dalje ispitivanje se nastavlja od poslednje Identifi kovane centralne foneme. Ide se na korak 3. "3. OGRANIČENJA Navodimo dalje slučajeve u kojima dolazi do odstupanja od izloženih pravila: (a) U latiničnOD) zapisu reči, slovne oznake Ij, nj, dj, dl stvaraju neotklonjiv ambigvitet j^r se mogu interpretirati 1 kao oznake glasova i kao oznake grupe glasova (npr. dd u odjednoa 1 rodjandan). Ako su oznakama ,]jt ài pret- stavljena dva glasa, onda $e, prema pravopisni» pravilima, ovi glasovi razdvajaju (tj.od-Jednom ali ro-djendan). Prema tablicama bigrama'u srp-skohrvatskom jeziku CTomiC/Jö/), frekvencija pojavljivanja pomenutlh oznaka kao oznaka za Jedan glas Iznosi 1,6t ukupnog broja pojavljivanja slova u tekstu a kao oznaka za dva glasa svega 0.05S. Otuda sledi da se,redje greil ako oznake dj,;1J, nj. dž tretiramo kao oznake za jedan glas. (b) Prefiks se. preoa pravopisnom pravilu, Izdvaja u samostalni slog. Sa stanovišta automatskog rastavljanjft reči na slogove, problem prlCInja-vaju oni prefiksi koji se zavrSavaju na konsonant (npr. raz-, od-, ob-, itd.). Ovde se. takodje, radi 0 neotklonjivoin ambigvitetu (npr. imamo raz-vu£i ali ra-zuin]. Identifikaciju prefiksa je FBoguie izvrilti konsultovanjem tablice prefiksa ali to ne daje uvek korektno reSenJe. Primeri identifikovanih prefiksa su dati na slici 3. Silini se problemi javljaju 1 sa sufiksima (npr. konsonant-ski umesto konsonan-tski). Takodje, Izvestan broj reći se rastavlja prema semantičkoj podeli (npr, ga-vran umesto gav-ran). Potpu- . no reiavahje ovog problema bi se sastojalao u ug-radjivanju u program osim reCnika prefiksa i sufiksa, i reSnika reil koje se dele prema semantičkoj podeli a koje imaju znaCajnlju frekvenciju u Jeziku, (c) Transkribovane strane reCi se rastavljaju prema pravilima Iznesenim u taiki 2. Primeri su dati. na slici 4. Napomenimo da pri izvornom za-.pjslvanju stranih red, prema pravopisu, treba poitovati pravila izvornog jezika. Navedimo na kraju 1 dva pravopisna ograničenja koja se odnose pre na rastavljanje reći na kraju retka nego na prirodu sloga: (d) Ako u reCI poslednji slog tvori samo jedan vokal ili samo konsonantska grupa, prenošenje se ne vrSi. (e) Pri rastavljanju polusloženica na rastavnom znaku (npr. Sar-planina) ovaj znak ima vrednost slova i prenosi se u sledefi red. Dakle, Sar-planina. LITERATURA Bel i<;,A./34/: Pravopis srpskohrva tskog knjlžev-, nog Jezika, Beograd, T934, 15-18 Pravopis /60/: Pravopis srpskohrvatskoga književnog jezika. Novi Sad-Zagreb, 19E0, 530-131 Stevanović>M,/64/: Savremeni srpskohrvatski jezik, Beograd, 1964. 152-156 Kokov1«,H./79/: Slogovna struktura srpskohrvat-skog jezika. Seminar za. matemati£ku ,I Ingvistiku, Matematički institut, Beograd,; 1979^. Tomić, T./78/: StatistiCka anal.iza srpskohrvat-skog teksta pomoću raiunara. In: Kompjuterska obrada lingvističkih podataka {^d.H. Sipka), Institut za jezik i književnost u Sarajevu, Sarajevo, 1978, Z21-2'3B " ZAHKA eELICo*o**ZAH-KA ^ STEV«.**a.ZA»HKA ' BCWBA ................ BUMBAR BELtC..V..BUM-BAft STEVt.....BU^MBA(! sunce BELIC.....SUN»CE STČV......SU<-rtCE BRATSTVO BELIC.....BRAT-STVO STEV...,..BRAT»'STVO SXKOtSKi BELIC.....SXKOL'^SKI STeV....,,SXKOL"SKI SREDSTVO BELIC.....SR ED-ST VO STEV......SR£0>-STV0 SUDSKI belic,e..asuđ»ski stev,.,„.sü0='sk1 SI .1. "Telko" izgovorijive konsonantske grupe SEDLO BELIC.....SE'^DLD ................ VerXBATI BELIC.....VE^ZXBA^TI ST EV,................ MISXJI .................. ST£V..*.«.HI-SXJI sestra SELIC....,SE"-STRA STEV......SE-STBA ORUSXTVEN BELIC.....DPU'SXTVEN stev................ ZEHLXA BELIC............. STEV............. SLAVLXE BELIC.....SLAV»LXE STEV......SLAV-LXE SI.2, 'Lako" Izgovori jive konsonantske grupe 14 RAZVUCXI PREFIKS*..RAZ BeLIC...*.VU"'CXI PREFIKS...RAZ STEV............ RAZDPUZXAN PREFIKS...BAZ BELIC................ PREFIKS...RAZ STEV......0'>RU<»ZXAN OTPBEKITI PREFIKS...OT BELIC............... PREFIKS...OT STEV................ SI .3, Prepoznavanje prefiksa FdESKD BELIC.....FRE^SKO STEV............. KULOARI BELIC.....KU»'LO A'>RI STEV................. K0K8AJN BELIC.............. STEV............... PARDON ..........PAR^DON STEV......PAR-DON BOR 00 BELIC.....BORICO STEV............ SI,4, Rastavljanje stranih reči INFORMATICA 3/1981 JEZIK PL/I I N MIKRORAČUNALNIKI IV UDK: 681.3.06 PL1:181.4 ANTON P. ŽELEZNIKAR SOZD ELEKTROTEHNA, DO DELTA četrti del dlanka o uporabi jezika FL/I-80 na mikraračunalniškem sistemu (kot je npr. Delta 323/Ml) prinaša uporabo tega jezika v komercialnih obdelavah. Pri tem se najprej raziskujejo decimalne aritmetične operacije in njihov pomen pri komercialnih podatkovnih obdelavah. Dan je pregled pretvorbe med .podatkovnima tipoma decimalno s trdno vejico in binarno a plavajočo vejico. Pri izpisih se izdatno uporablja tudi PICTURE format. Članek obravnava v okviru te tematike tri praktične primere, in sicer naört odplaSevanja posojila, navadno amortizacijo in podrobni ter formatirani ~nafirt odplačevanja posojila. V sklepnem delu so nakazane prednosti programiranja v jeziku PL/I pa tudi zahtevnost, ki je prisotna pri takem programiranju. Dani so podatki o ufiinkovitosti s prevajalniki generiranih kodov za različne mikroračunalniSke prevajalnike. PL/I Language and Microcomputers IV. The fourth part on PL/I usage with microcomputer s presents its application in commercial data processing. First, the decimal arithmetic operations and their importance in commercial data processing are examined.-An overwiev is given dealing With data types in fixed decimal and floating binary» PICTURE format is applied for several data presentations. Further, the article shows three examples: a simple loan payment schedule, ordinary annuity and formatted loan payment schedule. In the last part of the article some advantages of PL/I programming are pointed out"and benchmarks for several compilers are listed. .jezika PL/I v komercialnih 14^ Uporaba obdelavah Doslej smo spoznali že vrsto primerov, vendar nismo zapisali ni6esar tistega, kar je bistveno za komercialne obdelave. Najprej poudarimo, da moramo spoznati podrobno decimalne aritmetične operacije. Pregledali bomo tudi pretvorbo med podatkovnima tipotha decimalno s trdno vejico in binarno s plavajočo vejico. Pri' tem bomo upoštevali uporabo knjižnične funkcije FTC (plavajoče v snakovno). Imeli bomo primere z že obravnavanim PICTURE formatom v okviru decimalne predstavitve operandov. 14.1. Primerjava decimalnih in binarnih operacli PL/I je jezik, ki omogoča izbiro v predstavitvi operandov glede na potrebe neke specifične aplikacije.. COBOL, ki je jezik za komercialne obdelave, uporablja decimalno aritmetiko. Tudi jeziki tipa BASIC, ki so predvideni - za komercialne obdelave, morajo imeti decimalno aritmetiko. FORTRRN uporablja vselej binarno aritmetiko s trdno ali plavajočo vejico in podobno velja tudi za PASCAL, ki ima navadno moänost večje natančnosti. Podatki s trdno decimalno vejico so osnovni pogoj za komercialne obdelave. Vzemimo tale dva programa : in đec_primerjava t oroc options(main); del i fixed, t decimal(7,2); t = Of do i = 1 to XOOOO) t = t + 3.aOf end; put edit(t) (f(iO,2)) ì end đec_primerjava; bin_primerjavaj proc options(main); del i fixed, t float(24) } t = O, do i = i to lOOOO; t = t + 3.10; endf put edlt(t) (f{10,2))f end biti primerjava; Oba programa prištevata . vrednost 3.10 desettisočkrat. Razlika med njima je v tem, da dec^rlmer java izračuna pravilno vrednost 31000, bin_primerjava pa ' izračuna vrednost 30997,30. Razlika je 2,70 zaradi binarne aproksimacije vrednosti 3,10, ko se napaka tega približka razširi desettisočkrat. Ce predvidevamo, da bomo imeli pri komercialnih — "WW obdelavah vselej pretvorbo ulomka 1/10 v vrednost Ofl, je pogoj za natančnost zagotovljen. ' Pri pretvorbi ulomka 1/3 v približek 0,33... pa bi se napaka približka tudi lahko razširila. 14.2. Decimalni izračuni Uporaba tipa decimalno s trdno vejico ima prednosti in pomanjkljivosti v primerjavi s formatom pomične vejice. Decimalna aritm&tika zagotavlja, da se ne bi pojavila izguba bistvenih številk rezultata. Zaokrožanja na najnižjem mestu ne bo, pojavila pa se bo potreba za obdelavo eksponenta, kar pa bo operacije ' le pohitrilo. Ker so vsa mesta podatka bistvena, mora programer upoštevati obseg aritmetičnih operandov. PL/I komercialni podatki imajo svojo natančnost in stopnjo. Natančnost je določena s številom decimalnih mest spremenljivke ali konstante, stopnja pa določa Število mest ulomljenega dela. Natančnost tipa decimalno s trdno vejico je največ 15, stopnja pa ne sme preseči natančnosti. Tako imamo npr. določilo: del X fixed decimal (10,3); Konstanta -123.45 ima natančnost 5 in stopnjo 2. V računalniku ae tip decimalno s trdno vejico shranjuje kot več parov elementov, kjer je element binarno kodirana decimalna (BKD) Številka. V enem zlogu sta tako dve številki. Najvišje BKD mesto je prihranjeno za predznak, kjer pomeni O pozitivno in 9 negativno število. Število 83.62 se shrani kot 08 36 20, ko sta v zlogu po dve Številki. Negativno število ■ je desetiški komplement (glede na aritmetične operacije). Vrednost -3 se shrani kot 97, ko imamo 99-3---> 96+1---> 97. Pri seštevanju in odštevanju dveh Števil, katerih (natančnost, stopnja) sta tp,q) in (r,s), se nižja stopnja poravna z višjo (npr. prt q 'večje' s). Pri množenju ni problema poravnave decimalne vejice, povečata pa se vobče natančnost in stopnja rezultata. Pri deljenju ee lahko pojavijo .^e rezalne napake. 14.3. Konverzija tipov trdno decimalno v pomično binarno in obratno Vzemimo dani program in si na njegovem primeru oglejmo konverzijo: konverzija ; proč options(main); del FTC entry(float) returns(char(17)var)j del d fixed decimal(8,2), f float binary) d = -123456.78; f = char (d) ; f = 0.314X59265 eij d = FTC(f); end konverzija; V tem primeru se trdna decimalna vrednost d najprej - Inicializira na vrednost -123456,76. Nato se uporabi vgrajena funkcija char nad d in se oblikuje znakovna nizna konstanta 'b-123456.78', kjer je b presledek. Prireditveni stavek f = ohar(đ) pretvori trdno decimalno v plavajočo binarno vrednost z možno rezalno napako. Nato shranimo v f vrednost števila pi kot plavajočo binarno vrednost. Prireditev iz f v d ' povzroči rezalno napako ulomljenega dela. FTC funkcija se uporabi nad f in tako dobimo znakovno nizno konstanto dolžifee 17: 'b3.14159200000000' kjer stoji b namesto znaka +, pri negativi vrednosti pa imamo na tem mestu minus (-«^, Prireditvena operacija d = FTC (f) povzroči V d vrednost 3.14, ker ima lahko d skladno z določilom le dve mesti za vejico. Veljaki zapomniti, da dopušča pomična binala predstavitev približno sedem in pol decimal^li številk, pri več številkah pa se pojavili«} konverziji rezalna napaka. 14.4 Primer načrta odplačevanja posojila Oglejmo si primer komercialne obdelave podat^v na listi 23. Ta program natisne nafrt odplačevanja posojila pri dani obrestni meri 4n mesečnih obrokih. Vhodne vrednosti (s konzoi») SOS posojilojemalec, posojilo (celo^^i posojilna vsota), obrestna mera^ mesečni ob#ek ter tekoči mesec in leto. Za vsak meseo se potem izračuna ostanek posojila kot ' posojilo - (posojilo + obrestna_mera * * posojilo) - obrok V programu liste 23 imamo za ta tzrafun iteracijo med vrsticami 35 in 51, ho "fl® vrednost posojila zniža na nič ter je posojilo v celoti odplačano. V tem programu je posojilo trdna decimalna spremenljivka (z maksimalno vrednostjo 9999999,99), Vrednost obroka je omejena z 99999,99 , ko iroaaio določilo (natančnofe, stopnja) = (7,2). Obrestna mera je določena s trdno decimalno (4,2), torej z najvišjo mero 99,99 % . Spremenljivki mesec in leto se nanašata na tekoči mesec in tekoče leto. Na listi 24 ijnamo izvajanje programa z ItäSite 23. Dodatna pojasnila niso več potr«bÄ, omenimo le, da se posamezne konstant^, spremenljivke in izrazi izračunavajo s l^e natančnostjo in stopnjo: obrestna mera (4,2) ' posojilo"" (9,2) obrestna_mera*posojilo (13,4) (trdno, dec) 1200 (4,0) (obrestna mera»posojilo)/1200 (13(4|, ker velja pri deljenju (13,13-13+4-0) Jš Deljenja s 1200 nastane zaradi izrai«Ve obrestne mere v proccntih (deljenje s 100) pifsk enoletnega razdobja (deljenje z 12). Vmesni rezultat ;se zaokroži (round) na druf»m decimalnem mestu in prišteje k posojilu. 14.5. Primer navadne amortizacije Oglejmo si program na listi 25, ki pri dij|tji obrestni (anuitetni) meri Izračunava trenistoo vrednost (tran_vred) ali obrok ali ätevSo obrokov (stev_obr). Ta program prikazuje vr^o komercialnih izračunov z mešano ariumetäto (plavajoče in trdne decimalne vejice). Amortizacijski program Izračuna neznfAo vrednost z uporabo statičnih formul, torej rr# z iteracijo. V teh formulah mora l&i amortizacijska obrestna mera vaSja od t^e. Tako imamo tren^vred = obrok(I-(1/(l+i)exp n)/1 kjer je i amortizacijska obrestna mera in n število amortizacijskih obrokov. Nadalje in^e obrok = tren_vred(i/{1-(1/(1+1)exp n))) Ì7 Lista 24. Lista na desnl. strani kaže izvajanje, programa OBROKI (zbirka OBROKI.COM), ko se najprej , vstavijo vhodni podatki, za vstavitvijo pa se avtomatično začne, izraćun, ki upošteva v celoti . izplačani znesek posojilojemalca in obresti na prvotno posojilo (totalno obrestno mero, .ki so razlikuje od bančne obrestne mere),. ■ Inflacija pri odplačevanju ni upoštevana.'. 8 A g S g t t. X a -r- oä •I- It ■..■g . A L I. s ■s ° o.. IJ JU > o 4, o L a «Io % t g^ i: o « - » n C *t *J JA vt ^ .S. a J] « > .v-S ca ^ ™ T- W U 4> n <9 -O a»-; E^V-t o ra T> .5 * 1. 4. i^V C ro ID ^ » - " C »i , S ä I.. .p. 41 -F^ a ■H > e ni s td (-1 O E 'H ' Ij Oiu- C C bi o ■ la o k H (D ,10 u CUfC 01 -H D. o o a ns « S 0 En W M O a • N O Ö. I- C CN 0 ^ n) 0 d) -H tj -H ■n 4J -H -H 10 3 W Ä ■n g N -H N 0 a . fl ^ m ■H (0 > R-n M S Q. 0 C os XI - o C w w w k 'f r- * M -o TJ (M S « 01 . '.H (0 T) g - - Ot ^ «k TJ • 41 oj n 01 C KI N ^ a a<0 o « t- -K ^ —' »fl ^ w «) O ■W (9 U là ■ . K « .ä ii.iuw|uaMpjai(n 3888838 m säs OUUUUUOUUUUUIB ^ «i- UJ H, o o «1 I- « < s s UJ 4 Ul a I- uj a O -C ae z o a u. Lj CUT-, a ■ . n) o . . > ^ . ; X 41 ü f-4 — o o. nf . o 1" Oi -H X ■ Ä X H 10 (O 0) lu e H 4J C m i3 cpi M 'H C M o . •H Cf D- 1-13 CC (d no > O. O. ni (fl ra — fs tn C 01 ■ 0) 3 o -H 3 ra M k; k +1 11 10 - ft o w . w +J n sO> E i i ji a o s i .3 rt •i a. v ** o C t. T 3 ol to -a «rf m ui a ^ o 3 • s o Cl 0 1 k o M i a co I J S v S L» o» "a "O (u 01 fl/ "D. o ^ .s .2 T> ^ ■o t- Ci " m X T3 * L o 11 •I- .a ^ K o w 41 Ul C rt — m f>j > ™ ^ m rg u w ^ -O u l. C; St, " m u u >,. * u ■S g ^ I 10 Of b (u e, k VS ^ Q;QBROKI ■■ PosojilojemaLec; '«JTON PaveL Zeleioikar - Posojilo: Din 5000U'. Obrestna mera (S); 32.5' ' - ■ «esecni obrok: Din '4000- ■ - ■ . . ■■■ Tekoči mesec (številka), .leto: 9,1V81 Loto nesee Posojilo Obrok SteviIka obroka 1901 19ä2 1983. 1Ü 11 1 ■ 2 3 5 Ó 7 8 ; 9 .10 11 12 1 . -SÜOUO.OO 4000.00 1 ■ 47354.17 - 4000.00 2 44036.68 . 4000.00 ,3 41845.59 ■ 40ü0'^00 4 .309 78.91 4000.00 5 ■ 36034.59 . 4000.00 6 33010.53 4000',pp - ■ 7 29904.57 ■ 4000.00 8 ■26714.49 4Ö00.00 ■ 9 23438.01 . 40ÒO'.0'Ó io 20072.79 4000.00 11 16616.43 4000.00 12? .130Ì6.46 4000.00 13 ; 9420.34 4000.00 14 5675.47 :; 4000.00 .; 15; : 1829,.18 .'■ 16>8.72 16' .izplačal v ce Loti Din ■■ 61878.72, 23',75'X na prvotno posojilo. Posojilojemalec; CANTON Pavel ieleinikar) Posojilojemalec: "C , ; , . . , . ^ tJ o ä C il o ■ v O O •r-. aj O O tn 1 in ^ S 3 £3 C a E JJ O S-S.. u C V) Of u £ S sè i H. p o u u 0» m N i Ü . 19 -J JiC O \ D U ..oh ^ o \ o il ^ t. _l ra 1/1 v p Jf fl « O m o 3's,3' w v) ^ qj O V u »1/1 ^ v» la (A •Z 3-Z 3-Z f\ -M Q. V» d •« «-I > a o u 13 < (rt fti V» ffl ^ w % ift ^ w> C O it u O i. C C tn • .O ja ' ID o o o A n M M I ^ I R ^ S. ^ ä. w fM ^r«. a ^ d -r- o o -f- Ji ^ o r^ m -C> in O +J . v . □I o. O.. HV o •J 'i- o o 14 ir Rät; 5 ■ "t 3 o vt O ? !» \ a u n —«in T^ -r- ta _l O ^ 'O - 01 O U .O ^ a 'S ■. C o +• * 3 u 5 . Ol I. ti i. ■ w-i .» jj in + T- ù. qi O * .t; + s ® o a u 4.1 o • « 4.. Ol 4f » in (A 0 M 'f- o -■a s, " p- u .n ' u a o u tn M . — 01 o o,Ji •»m f *> ■o u (« ooioscof o -a. s-laoi uint-in gaia- 1 8 3'a ooSSoaooSSpoo 5 a.o oS 3 3 a o 8! 3 3 äoooooSSSSJ 3S§SBggB3S? o u u v» C 18 Lista 25. Program na listi spodaj izračunava navadno amortizacijo ter uporablja pri tem direktne formule za izračun vhodnega parametra pri danih treh vhodnih parametrih (trenutna vrednost, amortizacijski obrok, obrestna mera in Število obrokov). Program je preprost in je podrobneje opisan v tekstu (podpoglavje 14.5). m I« T- n u X *J ■<. o " ul ^ C u o n fl K C » b 'O ^ > U £ o. f * s - a 2 o £ a tu Lr o in t' A E g o - il . ^ « Sit ( -O M m It a □ Tjij I: -u 01 ^H >, a n I. Is * -i ^^^ a ( O II ^ 10 « m C b X o M 4- ^ ■T- » f U U I/ f « "O O N . « > ■» N (S L T) Z g« t n k O - c'5 Z ü S t: 0) h M CI \ a. I II ^ ^ s K4 M V U O U ** O -o g gi s I > 91 ^ ti JU , £ Z S,- S Ä ■ T-i -s «p u ro i ® a t « I .S ! n 3 v w , u u t. 1. v u I i- Di amort iza NAVADNA amortizacija Vstavi vrednosti ali □ za vsako Iteracijo Trenutna vrednost SOOOO Amortizacijski obrok 5Q0Ü Amortizacijska obrestna isera 'S2.Ì Število amortizacijskih obrokov O 12 amortizacijskih obrokov Trenutna vrednost O Amortizacijski obrok 3000 Aflortizaeljska obrestna mera 12.5 Število amortizacijskih obrokov - 36 Trenutna vrednost znaša +89 675,70 Din Trenutna vrednost 50000 Amortizacijski obrok O Amortizacijska obrestna mera 12.5 Stevilo amortizacijskih obrokov 36 Amortizacijski obrok znaša +1 672,69 Trenutna vrednost *C Din A> Lista 26. S pozivom AflORTlZA se začne izva| program (zbirka AMORTIZA.COM), ki je v ob| PLl programa prikazan z listo 2S. S programom lahko Izračunamo enega od vhodih parametrov pri danih treh vhodnih parametri». Izjema je le amortizacijska obrestrla mera, kije ni moč izraäunavati s tem programom. Za vrednost, ki jo želimo izračunati, vsta^^imo ničlo, nakar se pri danih ostalih podatkih ta vrednost izračuna vselej v peti vrstici. Ve^co lahko vstavimo, če je vrednost glede'tina prejänji izračun ostala nespremenjena, LÄtia : tudi kaže, kako iz programa izstopimo. ä >» S s »H o S n s: 2 t a. <1 S E. I 3 r- (V VI M a JI -u T .2 .S A a J ^ à* JJ UJ o a o. S at a m o 5 5 S " ti o. ■r- O N- .f -O L> 01 S fl> X ■a .1- v s a> 'f 'i S d L, I »t 1 3 « a a a a . liP"""' • X s - iJsI, n ■C 3 ti I. t S .5 < -t S v o n ■ri o s € 0 1 o M >.2 <0 ^ •O -f-(U I. k. % S n 10 u I ig iS ..t < o 4 t -r- ^ a ♦ S ^ ■M W trt > O t o £ M Ul t g n Ji, Sin > o o Ji «i ■g •O ti •r" Jd - ... -r* «n- ■C' v i x te >-83. roäaäS—äS ^ I U aa aaaau.li. SS3SSÌÌSS8S8SSSSgS8 3SS5ÌSS.S5j wwhrfwuvpua0uc3ooooDaoaooaooooooooQaoaa o o.a q ^^ ( in končno Se n = - Uog (l-tre'n_vred (i/obrok) ) )/log (l + i) Program ima eho glavno zanko (lista 25, vrstica 29 do 72), v kateri se tren_vred, amortizacijski obrok in ■letna, amortizacijska obrestna mera berejo s konzole. Uporabnik mora vstaviti tri 'neničte vrednosti in eno ničto vrednost pri vsaki iteraciji. Program izraSuna vrednost, ki je bila vstavljena kot ničta vrednost. Vrednosti se ohranijo do naslednje iteracije in vejico {') uporabimo, če vrednosti glede na prejSnjo iteracijo nismo spremenili. Vgrajena funkcija CHAR(x) povzroči konverzijo vrednosti x v znakovni (številčni). niz. Vgrajena' aritmetična funkcija CEIL(x) vrne najmanjše celo število, ki je večje od x ali enako x. Glede na prejšnje formule lahko ugotovimo, da imamo izračun izraza 1-1/(1+1)**stev_obr tako pri izračunu tren^vred kot obroka. Vrstica 42 izračuna ta izraz in ga shrani kot vrednost X. Pri tem vemo, da je x le približek decimalne-■vrednosti, določene s tem izrazom. " Če vstavi uporabnik ' ničlo za tren_vred, se. izvršijo stavki med vrsticami 46 in 50. Pri tem se .računa tren_vred z uporabo zunanje subrutine "ftc", kot je določeno z vrstico J 5.. Pri tem imamo tren_vređ = obrok*dec(ftc(x/i),15,6) (v .vrstici 47)> kjer je x/i plavajoče, binarno, funkcija ftc. pa. to preslika iz plavajoče v znakovno obliko. Če je npr. x/i enako vrednosti 1. 23.4567E+PI, se z ftc ta vrednost preslika v Ì2i34567, ki je za preslikavo ,v decimalno sprejemljiva. Pogoj ERROR(l) se sproži z. ftc in označuje konverzijsko napako, ko argumenta s plavajočo vejico ni moč pretvoriti v 15-mestno decimalno število. Funkcija "dec" (glej vrstico 47) se uporabi nad znakovnim nizom' za konverzijo z določeno natančnostjo (15) in uloraljenlm območjem (6), nakar sledi multiplikacija. Kako smo se odloči,li za ti posebni vrednosti natančnosti in območja? Vzemimo preprostej Si primer del obrok fixed decimal(7,3), tren_vred fixed decimal(9,2), Q fixed decimal(u,v)j tren_vred = obrok*Qi kjer moraitio določiti konstantni vrednosti u in v. Spremenljivka tren_vred ima natančnost in območje (9,2) in ima tako sedem mest v celem in dve masti v ulomljenem delu. Sedem mest v celem delu bo generiranih tedaj, kadar bo imel produkt obrok*Q natančnost in območje (3,2), (10,3), (11,4), .(12,5), (13,6), (14,7) ali (15,8) in bo prireditev k tren_vređ odrezala vse ulomkovne številke ^a drugim decimalnim mestom. Ker ima obrok natančnost in območje (7,2), lahko izberemo (15,6) kot natančnost in območje za Q, tako da dobimo (min (15,7 + 15+1),2+''6) = (15,8) kot posledico pravil, ki veljajo za multiplikacijo. V primeru a i b C (u-,v) . lahko . vel j ^ z'a c ' ■ u = 15, v = l5-p+q-'s ■ ' . , kàr povzroči v našem primeru ■ v = 15-9+2-2 = 8, torej (u,v) = (15,6) kot (u,v) za O. Program v listi 25 uporablja za izpis trGn_vrQd PICTURE format v vrstici 50. ' ' Kadar je uporabnik vstavil neničto vrednost za tren vred in ničto vrednost za obrok se začne izračun obroka z vrstico 56, ko imamo obrok = tren^vred*đec(ftc(i/x),15,8); Tu veljajo za izračune različnih vrednosti in za prireditev podobne opombe kot smo jih imeli za izračun tren vred. ■15. Primer 'formatiranja načrta odplačevanja posoj ila ■ ■"■ Program y listi 27 je podoben progrimujz -liste 23, ima pa razširjeno analizo in priÜazovalni format. Ta program včita več podatkovnih enot, in sicer; PV trenutna vrednost (tudi zaČe.tna)..■. yi letna obrestna "mara. ■ •.•••; PMV mesečni■obrok ir letna inflacijska mera ■ . sm začetni mesec, odplačevanja (1 - 12)' ' . gy začetno leto odplačevanja (0-99) fm obračunski (fiskalni) mesec, konec fiskalnega leta (1-12) dl prikazovalni format (ravnina) (0-2) Začetna (trenutna) vrednost in mesečni obrok sta spremenljivki tipa trdno, decimalno (10,2) in dovoljujeta vrednost do 99999999,99 din (vrstici 16 in 19 liste 27). Letna obrestna mera in inflacijska mera sta izraženi procentualno z najvišjo vrednostjo 99,99, kot je določeno z vrsticama 24 in 29 listo 27, Mesečni spremenljivki sm in fm ter letna spremenljivka sy imajo trdni, ■ binarni format. Spremenljivka dl določa količino prikazanih podatkov v vsaki posebni ponovitvi programa, ko njena vrednost O povzroči okrajšani prikaz, vrednost 1 dodatne podatke,' 2 pa podrobno zasledovanje poteka izračuna. Program ima glavno.zanko med vrsticama 97 in 126-, . ko se začetna vrednost povečuje aa mesečne obresti in zmanjSuje z mesečnim obrokom, dokìer ne doseže vrednosti nič. VeČ primerov izvajanja.: programa je prikazanih v listi 28. Prvi primer te liste kaže minimalni prikaz, ko imamo posojilo 50000 din, pri 14 4-nih obrestih, z obrokom 3000 din ' in inflacijsko mero O %. Odplačevanje se prične v oktobru 1981,■fiskalni mesec pa je februar. Za tä primer je prikazan datum letnega obračuna z vrednostjo, obrestmi v februarju, obrokom,-plačano (odplačano) vrednostjo in višino obresti, plačanih do zadnjega meseca obračunskega leta. .. ■ ■ ■ ■ DrugI primer liste 28 kaže izvršitev pro'grama za enake vrednosti kot v prvem primeru, vendar z uporabo prikazovalnega formata (ravnine) 1. Tudi v tem primeru imamo podatke iz prvega primera, izpostavljene pa so letne obresti. ii> Lista 27. Program na tej odplaSevanju .posojila. listi je zanimiv .aràdi tega, ker daje možnost infUci.e pri oapiacevan^u Hkrati' nudi tudi možnost Izbire UstaS^ nf razikne globalnega dO podrobnega (naört meseönih obrokov) . Ta program deklaracije v periferni naprave (konzola, tiskalnik), pri ferner lahko z enostavno modifi^^^ vrstici 6 dosežemo brisanje zaslona za poljuben terminal, ^ista se na ^ ^^^^ strani, K razumevanju delovanja tega programa nam p^aga lista 28, k:er je priKaz ^ zbirke POSOJILO.COM in tam so razvidni tudi vhodni podatki in nastavitev prikazovalnega lormat i > ' t» T* ? INJ > {L HI I <0 i D a w v 'f » ki •» bi -p- ^f » 'F' X. m ^ a. > ..as « o È "I >t « IX. ttkM w 'S ? £ ^ tA M w> a. w w X ^ II w [ VAlil s 6--- g O V- fJ afe •• ■■ iz ra « ^ ^ «r ^ o u s 3 t| M O w ** * o ** ** ** rg 0. 4» > O •»-••- H- C C -> u •«« •«< »«Il v W •^'O ^ B« e« — «I» ^^ ^ •w^w-w-www« I 4 cL^Oa I «J Ol n a '<1 * O ■(■ A S ä n , <9 K K ► ^ 4J «« 4-t «J e xSìèSt - J: II M II II S f A t ä- — K •»TJ e 0. E 4-+ — 1 II 1 _ ^ 0. 0 a. £ u v t u II M II II a. H- Q. K -1- a. a. M u .. ^ w sy 0. ^ìiè » 4- H tk - I xa. O "t R ^ ^ R R ^ s 'k Ä a ooooooooo \ \ ». » o d o a. o Š i 3 ^ ja ^ -^ • JU fl) • M • U Ü HM 01 1. 4> Ul iii ibtii ipA^aiibai cu it a^ia-onTj-o-o-a-OTaTs-oTjTj-oTj-otJTj "o-a'OTj-oTj'O'O'o-atJ-o-o-o-u-a o -o "O "D kwmkmkkmxxxkwxmkxmm»« ilEiSSo.- I 'S U r u 3 SS s 3 o <4 u) u < -I a. a o H 1- a S Ul -J v to v I 0£ a."i: g 2 s > T- ti «t ? £ a 2 t; 3, fIS o O) 4-* TJ saàs JI N ^ £ SI § >1 H S s a I f. a C o € "S §1 u <1 » r t I Ü i I I S -I-ž.. t s Ml 0 n 333 ig I« u u ^ r* fi a a a a a I o I 13! J o • !3! I o t Ì3! I o c_ I o '. 13; i o i I irt . 131 . u. o O O . Ot < «J kJ !S833 OtJOuO i^oT? u U ì2 ìS 3 S O 3SS&15 u o TI »1 TJ Lista 27 (nadaljevanje) , Ta^ del progrania POSOJILO kaie med drugim (na svojeni koncu) tudi vrsto subrutin za ■ tiskanje posaroeznih delov tabel-- v listi 2S . (prikazovanje,, pregled, glava tabele; vodoravna črtG tabele.; Itii.). Za izpis razlifinih ■ podatkov se uporabljajo stavki "PICTURE formata. -S iS ■ .r 3. -- S-- ^ ^ . M t,- «I Ö v (J 01 C KI (Ab 'S «) u ^ v E 1> t- ■ iti « -J » ui o u u -f t. 3 2 JS 8-g o. a. a. i S m u Ol C K ->- a -Q Q. ■D □ — « o o -I L- U a O t 1 II I SDtaasof^fSOfS!^ i ss .oioitiv Utibvtifi«iu ««Ho-o-a-oujujiui SSSggSSSS! uuovotbAfOJO Ul « e> < SS KJ3 M 0£ U9 55 ca M m t- jei » s Tretji primer liste 28 uporablja enake začetne vrednosti kot prva civa primera, vendar prikazuje tudi vbg vmesne podatke (prIkazbvalril format 7.) . Zadnji primer liste 28 upošteva pri nekoliko spremenjenih vhodnih podatkih (obrok, fiskalni' mesec) tudi neniCto inflacijsko mero, kiznaSa .25 .%, Ta mera je za obdobje odplačevanja, posojila konstantna, čeprav v naäih praktičnih obračunih, inflacije nikoli ne upoätevqmo pri ■ odplačevanju posojil,, je zadnji primer liste 28 zèlo poučen in nam postavi ja'vprašanje, ali so ' inflacijska gibanja reš stabilizacijsko, ' gospodarsko In tudi strateško tako nepomembna, da jih v poslovanju ž denarnimi sredstvi ni vredno upoštevati. Zaradi inflacije., ap konstantno zm.anjšuje vrednost obroka, hi iz začetne vrednosti 4000 din v oktobru 1981 pade na dejansko vrednost 3120 din v.oktobru ia82,■; Za razumevanje delovanja programa POSOJILO, si oglöjmo še pomen spremenljivk med vrsticami 15 do 29 liste 27 : ' , . P ima začetno vrednost PV,;toda se med iz- ■ vajanjem programa spreminja (vrstice 64, 102 in 10.5) ,- ' :: PP . celotna- vplačana vrednqst -(vrstica 106) .. PL vrednost za trenutno prikazano vrstico,.. ki hrani P za prikaz (vrstici 109 .in '■ . ■ . ; PMT obrok je v začetku PMV, med izvajanjem , ■ programa pa se spreminja (vrstici .70 in' 104) INT izračunane obresti za tekoči mesec (vr- ča V) o o. ■o S? TJ -v» v u N ^ Ok o A r- X >N H II ■g e t s t I . ? -I si H 'i a- n B a n "D II —• "O -rf C « cm u u 4j u Xl u I >t- J .1- ? •>" Ol -f- «I .a s 3 t* u >. o -J ID u u -■QU — N V N f - a ) "W W ' (O l>J -O O - «M v ^ \ xt ■a è n a t. >0 v DL.« <- ■■ 0. », 3 M U ' " J •a -J X ■ C ig M gj u >• t, ■» - -Ll ■S, i za- £ I .IM ,3 ST ■ (t) e & J-^ N > m—- ■ » k -> tJ \ IS «I KM S a _ f v _ — o . ir> t « o -> = t " jj a T) I. 3 U ..V " - >. a- .J z < a a. 'fa 3 a o ••i 4-1 S g" ^ l"tS C ' u 4» l: ^ CL a n ™ 3 " ^ u a o. - -i a s '•SS «rf IS <*• -M cžS il; SCM >/> Đ o Q Q r (M rg O ^ « O " ! S3383SS( L>uuuuuci uoqi oi O u4i q>4>ij 4i b V V A>8: POSOJILO I PR€6LE0 ODPLAČEVANJA POSOJILA lae izhoche zbfrke , Vrednost 50000 Obresti U Obrok 3000 Inflacija C» O Začetni oesec 10 Začetno leto 61 Fiskalni aesec 2 Prikazovalna ravnina ietni rezultati : O Letne obresti : 1 Vse vrednosti : 2 O t PRESLED OOPtACEVAHJA POSOJILA 1 1 Obrestna' mera 14,00Z Inflacijska mera OO^ODZ 1 )»atuiii| Vrednost |Plus obresti'] Obrok iPlac. vrednost] P Lac. obresti 1 |02/82| j 02/831 104/831 40 162,851 4«6,S7 7 758,62] 90,52 1 905,71] 22,231 3 000,00] 12 368,58] 3 000,00] 45 150,66] 1 1 927,94] 50 000,00] 2 631,421 5 849,14 5 927,94 Vrechost , Obresti , Obrok Inflacija (» , Začetni mesec , Začetno,leto , Fiskalni «esec , Prikazovalna ravnina Letni rezultati : O Letne obresti : 1 Vse vrei^osti : 2 1 104/831 1 905,711 22,23] 1 927,941 50 000,00] 5 9 27,94] 1 Obresti pUcane v letu *S2-'83 znašajo 78,80 1 Vrednost , Obresti , . Obrok Inflacija C« , Začetni oesec , Začetno Leto , Fiskalni mesec , Prikazovalna ravnina Letni rezultati : 0 Letne obresti r 1 Vse vrednosti : 2 2 1 PRE6LED ODPLAC E V A N J A POSOJ ILA i 1 Obrestna mera 14,00% Inflacijska iKra 00,00x ■ "1 iDaturo] Vrednost |Plus obresti] (»irok iPlac vrednost|Plac. obresti | 110/811 (11/81 j 12/81 101/821 (02/821 1 50 000,001 583,331 47 583,33 555,14 45 138,47 526,62 1 42 665,091 497,761 i 40 162,351 468,571 3 000,00] 3 000,00 3 000,00 3 000,00] 3 000,001 2 416,67] 4 661,53] 7 334,91] 9 837,15] 12 368,58] . 583,33] 1 138,47] 1 665,09] 2 162,85] 2 631,421 1 Obresti placane v Letu '81- -'82 znašajo 2 631,42 1 |03/32| ÌG4/3ZI |05/S2[ t06/B2| |07/8Zj |0d/82| I09/S2Ì 110/821 I11/Ö21 (12/821 101/831 .r02/831 37 631,421 35 070,« I 32 479,611 29 858,54) 27 206,391 24 524,301 21 61Q>2j 19 064,87i 16 287,291 13 477^11 10 634,551 7 758,62j 439,031 409,161 376,931 348,351 317,411 286,12 254,45 222,421 190,021 157,241 124,071 90,521 000,001 000,001 000,001 000,001 000,001 000,00j 000,00[ 000,001 000,001 000,001 000,001 000,001 14 929,551 17 520,391 20 141,461 22 793,111 25 475,701 28 189,581 30 935,131 33 712,711 36 522,69 39 365,45 42 241,381 45 150,861 070,451 479,611 858,541 206,891 524,301 810,421 064,871 287,291 477,311 634,55] 758,62 5.849,14 ! PRE6LED ODPLAC EVANJA POSOJILA 1 1 Obresti placane v letu •e2-'63 znašajo 3 217,72 1 Inflacijska mera 00,00!C 1 1. 1 Obrestna oera 14,002 103/831 104/83] 4 649,14] 1 905,71] 56,57] 3 000,00] 22,23] 1 927,94] 48 094,29] 50 000,001 5 905,71] 5 927,941 iDatua] Vrednost j Plus obresti! Obrok ]PLac. vreAiostlPlac. obresti 1 102/821 40 162,851 «8,S7| 3 000,001 12 368,56] 2 631,42] 1 Obresti placane v letu ■82-'83 znašajo.. 78,80 1 Obresti placane v letu 'S1-'82 znašajo 2 631,42 9Q,52| 3 Oaa,QQl 45 15Q,86J 5 849,141 I Obresti pUcane v letu '82-'83 znašajo 3 217,72 I Lista 28. Ta lista prikazuje delovanje programa POSOJILO, ko se izvaja zbirka ' .POSOJILO.COM. Ha tej strani lists imamo tri .priroerre ■ Z V -^^wl^diroi. pt®a^i .tèda ^■jf^sS.l/etìsni prikazovalnimi foiaaati. Infiaclija znaSa üu O %. » »Sa X u o « « SÜ s s:: ^ Ss s;5 eii-ESSj: > o o s am rt C3 Ki-0«0«-rtrtrtrtrt ^ivtMiMrtrtrtrtiomm oSoEoSÄSScot™ rt o< »- <» M -J- r^ eo •-•-i-(MPj(MiMrtrtpnrt ooooooooooin H °v ooogruooopfoooo^ «aoOro^fior^mtarsjo rk-'O^Oin'd'Kìro^J»-»-» 3 S s a Kl f315 * " ~ o r. st « - o ^^ NNKiiAeoPah-roOcor- ssažasfesssr ugioooo-Hoeeg aioc-ijNcMjiuioaiB g 4J pH 4J 'H -r-i ß O -H ■ («-H^OfiDU H no -n Ä 4) -Si ra -r-i H iji m A; C > O nxi o 10 "I 01 .r^ o -H -H C t-i tJ r-t N u E TJ (0 ro 0) -H d) n • > s-HM-iidtn^-uCM u> o o O. a Ti H C tr-o o m n. " ncjc-n' ifldltuOiUl d) a-H -H 0) n e >0 ro y ((J Ji ^ .H C JJ 10 n) > u il gidMiHiBmnJCUT^ o IH TJ tì M m d) Ü > C d N 4J o -rt -rH » (1) 3 J3 M £ TJ O -n 'H W -S 3 -n C o -n m R >oC4-i'Ha)(0ji:.c! aj a rt e >N > m -ri — N CXHJ _ — -H r^ nt C (UfSOEid'-.'HO •n Ji -rl 0) tu C C Ij 4-1 >0 4J C N C 4J . _ . djfdrt M(U(1>04JPU •11 e > -H II >_■!:! fflO+J-^HC T-io^o) (ti o Srt-nMOCioi C Oj ji C fti ft TJ — (B 3 -ri m d) O n 01 aOtJCK J30 (u tX -H in oj > Ji 00 C <1> O > U <3 tM ^ -r-i-ri T-I 4J m rt -rt -H d) -H -H J: > C 4J o T-i 1-ij; -H a a) > 4J (O o 3 (O M M rt m !D 01 iJM e e in -H -H -H H u IH i(i -ri HC o > lin ü (U 3 • iH -ri rt OJ -p >ü n an5CrHCrtrt-H (U > (O^^lH^j ^ Ol HiUfcjcoqiMN J a p- o< a ^J N -H e ß -.-t .h Stlce 99, 102 in 113) YIN - obresti na zaäetku tekočega leta [vrstice 93, 147. in 148). IP v celoti plačane obreati (vrstice 91, 100 In 147) ' - 1 obrestna mera, ki je v zafietitu enaka yi, tj. letni obrestni meri (vrstica 67) INF procentualna devalvacija denarne enote aaradi inflacije (vrstice 107, 113 in 114) ci trenutna devalvacija zaradi inflacije ■ (vrstice 74, 107 in 108) fi fa)ttor za Izračun trenutne inflacije ..(vrstici 73 in 108) Omenimo še, da sta P in PMT delovni spremenljivki za vrednost (glavnico) in obrok, tako da se, pravi spremenljivki PV in PMV med Izračunom ne pokvarita. Uporabnik lahko za vsak podatek vtipka znak če 2eli ohraniti že preje (v prejSnji iteraciji) vtipkano vrednost tudi v tej iteraciji. Izvajanje programa se začne z vrstico 35 liste '27, ko se najprej izda anak (ali zaporedje znakov) za brisanje zaslona (clear). Glede na uporabljen zaslonski terminal moramo-spremeniti deklaracijo v vrstici ,6., . ko vstavimo namesto znaka 'CTL z' .predpisano' zaporedje krmilnih znakov (npr. za HOME in-nato-brisanje zaslona).' Ker bomo uporabili.' OPEN stavek, ■ nastavimo najprej past z.ON pogojem za možne OPEN napake ,(ođ vrstice 38 do" 42) .. Z', vrstico 46 vstavi »porabnik ime zbirke, ki je bilo äe prej inlcializirano z ' vrstico ,. 32 kor 'gcon'. Ce vstavi uporabnik vejico, postane konzola naprava za izhod. Sicer pa se odpre izhodna zbirka kot normalna PRINT naprava ali pa se uporabi fizična naprava za listanje (npr. '$lst'). Napake se signalizirajo z uporabo vrstice 88.. Glavna zanka programa začenja z vrstico 97 in se ponavlja, dokler vrednost posojila ne pade na nič. Mesečne obresti za trenutno vrednost (glavnico P) se izračunavajo in sumlrajo z IP v vrsticah 99 in 100. Ko obrok preseže ostanek vrdnostl v vrstici 103, se obrok zniža na pokritje ostanka. Celotna plačana vrednost je sešteta v vrstici 106, Inflacijska mera pa se določi z vrstico 107. Program ima možnost izbire treh prikazovalnih formatov (ravnin), pri tem se uporabljajo PICTURE stavki in drugi pripomočki. Nekatere subrutina, ki sestavljajo prikazovalni mehanizem, so Se posebej zanimive (na koncu programska liste) In jih je vredno prebrati za uporabo v kasnejäih programih. 16. Sklep V zaporedju člankov o jeziku PL/I-80 in njegovi uporabi (glej navedbe 22, 23 tn 24 na koncu članka) smo pokazali tudi nekaj .značilnih primerov, ki so zanimivi za prakso. Prevajalnik PL/I-80 je realiziran tudi na sistemu Delta 323/Ml, ki uporablja operacijski sistem CP/Mf ta računalniški sistem je bil javno prikazan v' Zagrebu na razstavi Interblro '81. Z uporabo jezika PL/l-80 na sistemu Delta 323/Ml' je dana možnost tudi našim uporabnikom, da začno intenzivneje uporabljati jezik PL/I pri programiranju sistemskih in poslovnih nalog. Za konec zapišimo äe tole; programima jezika BASIC in PASCAL sta prirejena in namenjena začetnikom na podroÈju programiranja. Za razliko od teh jezikov pa zahteva jezik PL/I več programirnth izkuSenj, nadarjenosti in znanja ter daje bolj učinkovite objektne (računalniške) kode kot prej navedena jezika. Učinkovitost kodov (prevodov), generiranih z različnimi prevajalniki za mikrora£unalnike, jé bila prikazana v članku (25). Pri izvajalnem času 1,00 za prevedeni PL/I-80 program so bili dobljeni časi za druge mikroračunalniške prevajalnike tile: jezik C čas 1,11, RATFOR 1,18, FORTRAN 1,21, kompilator BASIC 1,32, PASCAL HT 1,35, Intel PL/M 3,43, UCSD PASCAL 3,86, FORTH 6,07, PASCRL/M 32,14, CBASIC2 34,57, Microsoft COBOL 365,30 itd. Bralce, ki jih je problematika programiranja v jeziku PL/I zanimala in se sami ukvarjajo s prograunlranjem v tem jeziku,, vabimo, da pošljejo v objavo svoje prispevke v okviru rubrike "Uporabni programi". Uredništvo si bo prizadevalo, da objavi v tej rubriki tudi fi^im več uporabnih PL/I programov. Dodatna literatura (22) A.P.Železnikar, Jezik PL/1 iti mikroračunalniki I, Informatika 4(1980), St.4, 3-10. (23) A.P.Železnikar, Jezik PL/I . in mikroračunalniki-II, Informatica 5(1981), 5t.i, 16-27. (24) A.P.Železnikar, Jezik PL/I in mikroračunalniki 111, Informatica 5(19B1),. št.2, 31-43. (25) J.Gilbreath, A High-Level Language BencVimark, Byte 6(1981), Ho.9, 180-198. Obveščamo vas, da imamo na zalogi še 40 izvodov zbornika simpozija Informatica '81. Cena enega izvoda je 1000 din. Naročite ga lahko na naslovu: Slovensko društvo Informatika, Par m ova 41, ćlOOO Ljubljana . informatica t informatica 8 m AVTOMATSKO PREPOZNAVANJE PREDMETOV V ROTOTI Ž IRANEM PROCESU EMAJLIRAN J A „ JADRAN LENARČIČ UKD: 681.3:007.52 UNIVERZA EDVARDA KARDELJA, INSTITUT JOŽEF STEFAN, LJUBLJANA V na'äem delu podajamo inžeBirsko obravnavo prepoznavanja predmetov v industriJ-skiam procesu emajliran J a in možnosti aplikacije na mikroraSunalnilcu. Opisujemo računski:'poatopeVt za avtomatBko določanje števila;in položaja svetlobnih senzorjev za. podani nabor elementov .pri konstrukciji robotakefsa sistema, sa prepo-.zaÄyanJe. Določanje, šifre poBoinežnim predmetom naslanjamo na rainimlzačlji kva'r dratné pogreške med prejeto in' nominalno kodo, ki Jo preuredimo sa aplikacijo .ùa mikroračunalniku z uporabo korolaclj. Rezultati naäe obravnave se kažejo v ■^enostavnosti in učinkovitosti ter predvsem v cenenosti izvedbe sistema senzorjev, za prepoznavanje In v. obdelavi prejetih podatkov. Pomembnost našega dela pa Je; v opisanih možnostih industrijske aplikacije. AUTOMATIC RECOGNITION OP ELErffiSTS IN ROBOriSED PROCESS OP ENAMELLING.: . This work deals with the éngeneèring way of recognition of elements in an industrial process of enamelling and tl^e poBsibilities of 'its application on microcomputer. We describe in particular the process of an.automatic choice of number and positions-of light sensors for the given, set of elements in construction of à robot system for recognition^ The determination" of cipher of single element, is based on minimisation of quadratic error between the received and nominal code which we elaborate for application on microcomputer by. use of correlations. The results, of this research are evident In the semplicity and efficiency, but above all in the inferrior cost of the realization of the sys-r tem of sensors fpr recognition and also in the elaboration of the received ■ data. But. the importance of this research is above all, aa mentioned, in the possibilities of industrial application. ;ÙVÓD ,'ÌBodóbni razvoj robotike Je precej usp.enno us-taerjéh predvsem, v področje itidustri jskih ma-nipulatorjev. Da je teniu tako, seveda ni ria-'ključje., saj- so'to siatemi, ki v n«JkrajSom času opravičijo drago investicijo. .iponiemben podsklop nekega industrijskega moni-.pulatorja Je sistem ae.n«orjev, od knterei^n , kompleksnosti močno zavisi univerzulnont in uporabnost manipulator Ju, oziroinn Jr siti'üktui^H sistema senzorjev v neprnj dntin i-obotovo namembnostjo. V večini Induntrijskih uplikncij predstavlja ta sistem lè nekaj stikal ali tipkal primerno razporejenih v robotov! okblicj ali-na samem'robotu, a čemer lahko Ea'omejene. potrebe povsem dobro .modeliramo proces. Obstajajo'ptf seveda aähtevnejäi procesi, za katere pötrebujetno kompleksnejäe in obsežnejSe Etì'ukture senzorjev, ki pmöuoSajo r^voj učin-. kovitejSe^n kniiilnetja sistemak V industri jak ih aplikacijah pa je pri Gradnji posameznih pod-sklopbv velikega po.mena postavka cene, kar, na ^ulost močno oitrejuje konsti'uktorja pri razvoju »stre/.nih podaklopov robota. Lahko trdimoi da je '.',a vf>f?.irio i.nciuntri jaki h manipulator jev cena- 'TT 26 uportvliljenih aenzorjev napram ceni celobtioga . fìisteaia sanemaj'ljivo majhna, kar pa je sevtìda pogojeno predvsem z nezahtevnostjo nalog in opravil, ki jih ti roboti v industriji izvršujejo. Pri projektiranju induatrijskega robota za emajliranje je potrebno vključiti tudi sistem senzorjev, ki oniogočajo avtomatsko prepoznavanje obdelovancev v realnem času. Robot Je vkljuSen v delovni proces ob emajlirtii liniji, po kateri e konstantno hitrostjo potujejo predmeti za emajliranje, ki jih robot prepoznava in pravilno obdeluje. Ponuja se množica načinov kako iavesti prepoznavanje. ?ielo drago, vendar gotovo najbolj učinkovito, če izvedljivo, bi bilo prepoznavanje vzorcev aa etnajliranje s televizijsko kamero in us-"itrezno instrumentalno in- programslio opremo. Predmeti bi se gibali inimo robota, ki bi JB- obdelavo tako prejetih informacij določil geometrija posameznih elementov in hitroot njihovega potovanja. S temi podatki "bi oblikoval programe, oziroma bi na osnovi svoje dinamiko in danih kriterijev optimalno ali kako drugače definiral nominalne tirnice, katerim bi sledil ob Eamem emajliranju. Jaano je, da nam današnja računalniška tehnologija še ne omogoča čeaa takega. Numerično izračunavanje tra-jektorij poaaiEesnih stopenj prostosti i-obota iz podame trajektorije robotovega vrha je celo aa minimalno konfiguracijo toliko komplicirano in počasno, da ni uporabno za aplikacijo v industrijskem procesu v realnem času, da ne govorimo o težavah, predvsem Časovnih, ki bi Jih prinašalo že samo detaljno razpoznavanje elementov. Zaradi tega se največkrat odločimo isa enostavnejšo varianto, ker nam to omogoča tudi oljravnavani industrijski proces. Seznam elementov, ki jih je potrebno emajlirati, Je namreč v naprej znan. Zatorej poteka določanje nominalnih trajektorij robota na nalogo in se na tak ali drugačen način shranjuje v ustrezne podatkovne strukture v robotovem pomnilniku, čemur navadno pravimi učetije robota. Potrebno Je le konstruirati, mehanikbjji, ki bi o-raoßocal prepoznavanje in ločevanje meti danim naborom predmetov, kar pa je raziuv.ljivo daleč enostavneje, ceneje in predvsem i.L',v«dl j .i vo . Namen nnčega dela Je opi,s in prikfiz eno izmed teh možnosti, Ictiko bi, čim ceneje in dovolj u-Člnkovito, industrijsko in na oanovi, največje verjetnosti prepoznavali v dveh diinotizijah o-nolično definirano vKorce, katex'ih kode so v naprej podtme kot logične funkcije v časovnem pror.toru. Gi!it;('i;i pn pr tem vHIJuriijt? :!iini maino Število točkovnih t>"Mtlobni,li :iecižorjev rotocelic. Bralca želimo seznaniti. 7, mctoiìoló-gijo pravilne iisbire tako položaja kot tudi i^tevila fotocellc. V bem je pravzaprav tudi pomembnost našega dela in ne- v neki posebne vrcte i,zbrani tehnologiji ali obdelavi pre;^ te informacije, ki bi uporabljala tako lmen|i-vane metode umetne intelieeace. Hinimizacijski postopek števila fotocelic i0 iübor njihovega položaja glede na Obešene predmete aa emajliranje sloni na analizi vseh možnih stanj tako, da startamo z najboljšim stanjem in 7, iKločevanjciu nadaljujemo k slabšim, dokler ne pridemo do rešitve. Tako eva3ai-iramo minimalno potrebno število fotocelic za razločevanje danega nabora pretisetov, is» točasno pa pridemo tudi do podatkov, kje na^ te celice ležijo. Obravnava motenj in iskan,je ustrezne šifre obde],anih predmetov vsebuje ipi-ntmizBCijo kvadratne poßreake med sprejeto ia nominalno kodo, kar je izvedeno z uporabo kö-relacij. V našem delu najprej poenostavljeno prikažeao proces emajljranja, na katerem apliciramo sistem senzorjev aa prepoznavanje predmetov -obdelovancev. Opišemo težavo, s katerimi se oj^cčujeiiio in razložimo smisol in možnosti ij* porabe 1'otoccllc. Kato podamo avtomatski postopek minimlEaciJe števila fotocelic in sio-er v konstrukcijske namene ter na koncu podariio» obravnavo prepoznavanja predmetov v realnem delovnem okolju in diskusijo o možnostih aplikacije na mikroračunalniku. Vse podane al.go* ritme podpremo z enostavnimi primeri. 0FX3 ROBOTI?,TRANEGA PlìOCESA KHAJLl lìANJA Kot smo že omenili, se borao tokrat omejili na obravnavo eiateiaa uenzorjev za prepoznavanje obdelovancev npj.icirani'gii na realnem botÌ2d,ranem procesu omajli i-on je, ki, je dol produkcijskoga procesa elementov gospodin opreme. Robot jo nameščen ob omajlirni liniji, po kateri potujejo obenoiii predmeti, ki Jih robot najprej prepozna ìcl nato prinuirrio emajliram V ta namen Je na liniji fiksirana točka, ki s.lu-ži kot časovno in prostorsko izhodišče in ključnijga pomona za fii nhroniüaci Jo robota z linijo. RoìJot je namelčen- tik za sinhr'oniaaci;Ìsko to^ 'čko, senzorni -sistem pa tik pred njo glede na Bi"banje linije. Obdelovanec mora torej najprej prepotovati sistem fotocelib, s katerimi ga robot prepozna ter šele nato prekorači sin-hronizacijsko točko in sproži sinhroni7.aclj-ski impulz, ki opomni robota, da prične z emajliranjem. Postopka prepoznavanja in emaj-liranja potekata časovno paralelno in sicer ■tako, da robat med emajliranjem tekočega pre-:dmeta prepoznava sledečega, kar mu omogoča ustrezni večprogramski raikroračunalniski■parket. Blika 1 prikazuje stilizirani-emajlirni proces. " . UVOf tv^Uob» Aitmani tmhrwU*9cijtka. iotk^ -^-O-: I I I L- tensor/t -T- .-J I i-. ro^t I mikr9n.iunali¥k I I_________ dokaj enostavno rešljdv tudi. z nezahtevn.o tehnologijo, težavam, ki jih prinašajo motnje v' eamem industrijskem procesu, pa se moremo izogniti s primerno sprotno obdelavo prejetih podatkov. : . Seveda zaradi tega postopek prepoznavanja vaorcev, ki ga konstruiramo v našem delu,, ne vsebuje tako imenovanih elementov umetne inteligence in "ga v takšni luči „tudi ne nameravamo prikazati. Naš namen je. namreč sestaviti . ' postopek ali celotno proceduro za konstruiranje sistema senzorjev in nato ustrezno-prepo-ztiavanje, ki bo dovolj cenen in učinkovit z uporabo najenostavnejše industrijske tehnolo-, gije. Posamezni elementi so podani s .svojo kodo, ki jo predstavlja neka ön - off funkcija. Na sliki 2 je za statični primer prikazana matrična rasiporeditev fotoeelic. fototeUcA O N-a e/emtni 4 maif/ka. Sl.l: Eznajlironje in prepozrjavanje elementov a pomočjo sinhronizacijske točke SI,2: Statična pBepoznavna matrika s fotoce-licami PROBLEMA T IKà PBEPO SN AVAN JA D VOD IMEN 2I0N ALK IH ELEMENTOV ..ZA EKAJLIHANJE Proces emajliranja, s katerim imamo opraviti. Je dinamičen, vendar dovolj .aiiostaven za obravnavo, saj je hitrost linije konstantna. Njegova dinamičnost je celo zaželjena, ker omogoča elegaatnejšo in kompleksnejšo proceduro. Nabor elementov, ki jih je potrebno prepoznati, je v naprej podan, kot je tudi podana.hitrost linije. Difflénzije poaaraean.lh ploskovnih elementov so definirane in se ne spreminjajo tekom izvajanja procesa, njihovo število pa :je lahko praktično poljubno veliko. Tako postavljeni problem prepoznavanja vzorcev je Celotna koda h je torej skupek funkcij funkcija pa je zbirka K on - of£ komponent, ki. popisujejo stanja v fotocelicah. N je število vrstic, K pa število stolpcev prepoKnnvné matrike, katere elemente tvorijo soležne fotocelice. Kompletno število fotoce-lic je H-NxK. Vsak element je podan s svojo kodo, ki se zaradi svoje redundantnosti pre-transforcnira v ustrezno šifro, katere dolžina N'* je pogojena s številom vseh elementov in ; zaradi česai' velja neenačba n'ìsN. Šifra elementa je ime elementa, s katerim neposredno operira robotov mikroračunalnik. V drugem primeru, ki je prikazan na sliki 3, opazujemo dinamični prooea.■Ugotovimo, da je potrebno število fotocelic n^N in jih razpore-, dimo v stolpec enega nad drugim, mimo katerega, 28 ■w pot'jje predmet, ki ga žcliino prepoznati. t 4 O Mm S ma.tftirA SI.5: Dinamična prepoznavna matrika s fotoce- liCEuai Poatopek prepoznavanja Je razdeljen v K časovnih trenutkov tako, da za vsak k=l,2,___,K presledamo stanja fotocelic. Ce eta K in N v statičnem in dinamičnem primeru enaka ter če sta procesa pravilno umerjeaa, Je sprejeta koda elementa v obeh primerih enaka. Izvedba Je v dinaitiič.nem primeru nekoliko zahtevnejša, vendar dovolj enostavna, Je pa aato število upoL-ablJenih fotocelic razumljivo K krat raanj-Se, Prepoznavni matriki sta popolnoma enaki, le da 80 funkcije f^ .f^, -.. za dinamični primer podane kot funkcije časa, kar pa Je s stališča računalniške obdelave popolnoma vseeno . Prejeti kodi nato dekodiramo in Ji priredimo šifro, ki je po dolžini krajéa ali kvečjemu eiuika. Zal pn Tiaradi motenj v industrijskih procesih to ne moremo narediti neposredno. Zaradi mehanskih električnih ali tudi drugačnih vplivov prejeto kode ne ustreaajo nominalno definiranemu naboru. Prirejanje utjtiei:ne. šifre Je znto podrejeno dodatnemu al(Xoi'itinu, ki (.;lef!e no obliko in podobnost prigotih in nom.i i!B Jnih kod no osnovi največje verjetnosti i.',lif;re najprimernejšo ßirro. I7.BTKA. MXNH1ALITEGA ŠTEVILA FOTORKI IO Itt NJIHOVE LEGE V PREPOZNAVNI MATRIKI Kot Je bilo rečeno, aloni naS poctopek prepoznavanja na tem, da tmumo že v naprej dan nabor vseh elementov, ki Jih Je potrebno e-innjlirati. Videli smo tudi, da Je pri dinaini- (\noin pt.'ocof.u ilMi-vilo pcjfccf.-lm i ti l'';i oc-■ I'.c K l:r0t inanjüe kot [iri ;;; t .'il. ič neiu pr i.inorii. V tem poglavju pa so bomo nekoliko dlji; ljojhuiì 11 i. pri problemu' izbire najmanjšega potvcbnega ntü\fi-la fotocelic tsr nJihovcfj;a poloìó;jJ.-; v pn poz-n;ivfii tniitriki, rta bi nc laliko pi'epoznali in i/,ločili vr.Bkega izmed celokupne Kbirke predhodno definiranih elementov. HaiiireS, locJČno težnja konstruktorja Je, da pri gradnji sißtema zn prepof.navtinJe upoi'abi kolikor se v v \o o) Koi;ak 2 ' C; A f 0 ' Po!.!l;av i i.= j. il. Zii rianr: v.fodnosti n'' in' K^' i::.- o ) ■f ® 0, 0 verii. rain:i.iii.i-v.ur,i Jo (1) in teytiraj dobi.Jeni" n'ali Jo večji nli maiijai o"d M'"'In nadaljuj u C o V \o o y ko roko Kl Kornk ? ■■ ■ Ce ve], j a . ■ . ■ ' . n) n'- ^ ' Htn In ref:it;v:i .minioiauci.jskßca probleiiin (].),', b) fl' n i-l ■ pOBtfiyi, ;i.n se vrni h koraku -2, . . ■ <;) ni rijTi.U-.ve, por.tnvi ' in N^ + 1 in so vrii'i h kora- ku 2. . . ■ Gl.'l : tlö."bfjr; prtsdmetov. Kn . prepo-''.''^^""'-!'^ Collimo'.runkcijc kjer; je. ii Sttìvil.kn vt.'stx- oe v'prepoznavni matriki,, k pu ä't;(5v;ilka predmeta . ■ ■ ■■ v] =10 O f^' = 0 O O ; ■r^ =10 0 . r^i' =10 o i J - o o o p = o 0.1 • H EÖKVÄN.riä MINIMI ZAC IJSKEOA-.HtOBLEMA' l'.uručn.i aljior';i torn .n«s y.a i za- četno vTed.tioiiti pripelje: do večjefra ali muri;)- e (.':'.1 ■ fi t uvi 1 il 11 41 v j.d o o k; v i. v n .1 c n C n i, li /r e š i t e v . Kütoixi ,homo iiporn|i:i :i i pri f;:;ri.idnji. ralßtemn kìi prci.io:-:ri;i VM[i jo , j« p i'od v s em odvisno od .nnSfimi ■ tr^nutiiei^a ffi:'.položeii,jji, knr c^tovo ni. iinari-^slvvt■.■nOi vßndfir, kot bomo kiiötiejo , videl i, pa KO t.ndi tu ökvivn nekaj tohiiiSke? logike. ■ , Hol?,ni i;iiiq oi.iÌ£i!:iti šo proced^trp rainiiiiÌ7;Bci,|c "i Levila ro toüollc in i tfkànja nj ifiovih položaji; v na zac o t ni .fiktivni prepp^tiavn: .matriki.. V t n namen no uporabljamo ooküga optiiiiiiia(;lJ-iMKcya postopka ia neoiiiojune r.alfladnice ;',na- .. n:ih iiiotod, ker bi bi.l l.(i-tn. nopr.iiiiòrt!i;i in hi prinaSal voti k.ot/iplikani j kot \JGodiiont.l.. NaSa pr'OfSidnra temei j.i. na oj)a;:ovanJii vr.oh inoSniJi ■litaiij po določenem vrr>t;rioni riidu in Kicer o.ci najliolJšiM po korakih k. nl.abSim fio eval nm; i j-'ošitev. Ohio;njeno m:! niiiiizru:ijhko pi'oc.edüro rajo -obra-;'/loKÌiiio na enoMtavn.niii pr:i iiku'M . liik-ijuio pei.ian nnl)or priiduietov aa (iliki. 'I, ' ? r^ - O O O TJ ^ 1 1 O p 1 0 0 = 'O o o ■p . f. o. d 0. PoEitopek iiadaljujoino s pr.-inierjavo pónanioBnih funkcij pri-n = konatoritfi kd,,?', ter-tvo- rimo pomožno matriko Y. To nt\reur('d'rao,ul i. če jim pvedtiorlio no dodamo nuk.'ilc!'Iii lUidrn kov. V prejšnjih poglavjih smo obdelali avtomatski postopek konstrukcije senzornega aistemfs g fotocelicami za prepoznavanje med podanimi predmeti s fikoirano geometrijo, .t'oritopek temelji na minimi zaci Ji števila upoi'abl jenih enot. Rezultat procesa dinamičnoga prepoznavanja elementov za emajl Iran j o Jc čju-.ovno podana funkcija h imenovana tudi koda elementa. Ru-ziiniljivo Je, da je zaradi motenj, V i naiitopn-jo v industrijskem procesu, oprijeta koda h^ lahko rnslična od katerekoli nominalnih kod hi^, Napačno bi bilo ali vruij m- r.prejemljivo zn proceH, da bi zahtevali ponovitev sprejemanja kode. .Potrebno je na osnovi nekega kriteriuma iz dane množi.ce nominalnih kod izbrati tisto, ki je sprejeti najbolj po.-dobna. HatematiČao moremo problem podobnosti formulirati z najmanjšim kvadrationim odstopanjem I? min, kjer je T časovni interval, v katerem opaau-Jemo potek funkcije kodo, h^.Ct) jo spT'eJeta koda, h^'l(t) pa i-ta funkcija iz nabora nominalnih Icod, i=l ,2, ... ,L. Izraz (6) lahko prepišemo v naslednjo obliko T r i'- - . ^ \hlit) dt - li^(t)h^tt)dt, (?) Po definiciji jo korelacijaka funkcija podana a izrazom (8) S primerjavo ^7) in (6) UEOtovimo, da so in- tegrali na desni .strani enačbe (.7) kofeVacij-ske funkcije ined hj,Ct), in za; T=0. Sle- .di •,.-•.. i ■+ 6 , - 2«' »r-f »nn , *T 'rr ■ *nn • ~*ra ' Vt»! nn B/^S ^ o if, in JTi^ nn kjer je Icriana korelacija, in J (9) pa sta avtokorelaciji funkcij-h^ft) in h^^Ct) pri ^■■=0. Očitno velja C takrat sta sprejeta in i-ta nominalna koda identični h^Ct)=h^(t)) min $ B .0 t-t- ■ (10) a a si* ki je rešitev prbtilema (6), kar pomeni z upoätevanjein lastnosti da je ' i' + - Si'- è 0. (11). Heenačbo (11) preureuredimo v sledečo obliko •S-f^n -fn^ M... (12) vsota vseh enic v funkciji h^. Hitrost'računanja na mikroračunalniku je: zanemarljivo'majhna, saj pridemo do iskanega inaksimurDa v končnem številu korakov (L). Določevanje'najbolj verjetne šifre predmeta glede na sprejeto kodo torej poteka preko modificiranega korela-cijskega filtra, ki neki prejeti kodi pripiše tisto šifro, katere pripadajoča nominalna ko-, da Je nojtolj podobna prejeti. Prepoznavanje in nato prirejanje Si.fre elementom za emajliranje poteka istočasnp.z emajliranjem predhodnega, elementa. Robot .sprejme šifro in odredi prirejeno datoteko svojega pomnilnika ter ob .sinhroriizacijskem impulzu prične z emajliranjem. Vf.ì računski postopki potekajo v realnem,času, tako da ne vplivajo na proces ali^ kako drugače povzročajo mrtvih časov-delovanja robota. Dovolj so enostavni in prikladni ■ za mikroručunalniško obdelavo in'dovolj učinkoviti za industrijsko aplikacijo. ^rr ^^ neodvisne od indeksa i, zatorej ne vpliva na rešitev minimizacijskega problema (6). Iz tega aledi, da je z upoštevanjem vsebine neensčbe (12) iskanje podobnosti >ij,(t) z naborom h^(t), i=l,2,,..,L iskanje sledečega maksimuma - fi max, i ■ i»l,?,...,L. (15) EHOSTAVKI PRinER .Za ilustracijo naših predhodnih ugotovitev obdelajrao enostavni-primer,'ki ga-podaja slika 5. -- • . ' 1 r-i r Označdjio levo stran izraza (15) z grško črko in zapišiino detaljneje Vi ■T Ihj,(t)hj^(t)dt - . - Ct}'"dt —^ fli«x, o " . 1- 4 SI. 5; Primer pi'ejete in nabora nominalnih kod kar v diskretnem časovnem prostoru po analogiji zapišemo N-K HK -mux, i=.l,2,...,L, 3 (15) hp in h^^ sta podani kot zaporedje ničel' in enic in je zato njuno množenje, soštevarije in'-odštevanje ter na koncu iskanje maksiinalnf,' 'i vrednosti r.elo enostavno. Drugi dol iarazti -(15), ki j.-! analogan avtokorelaciji, jo kar Podano imamo torej eno prejeto kodo h^.-oiiooioill in tri riomitialnš kode hi=1111111111, h^-0100011111, h^=oil0000111. najprej izračunamo vsote 2 2:.h,.Ck)h;'^(k) = 2(on .-i.o-io-aH-o-i-i-ii-ii) » k-i ^ 13, = 10, ■if-' X fk)h^(k) = 10 (16)- in nato FS?" 32 •lÖ -I T E V,dO'- = 10, Ji o p Ilh-Ck)^- G, k. 1 -lO T -5 i^, čosar dobimo, da jn •i, "i ' t - — (IV) Cia) Očitno reiiitcv niinoG» prolileina podobnosti iriGd prejeto in nominalno korJo Vodu h^, kaj;-pa fimo tudi pri Sukovali . Tej kodi nato pri-piSomo ustrezno äifrö, ki Je priin3rna za mi-kroracui5alni!Üko obdrslavo. Stilizirano prikii-zujerno postopek aa aliki G. H9il£LKUtttt PiL-teits nòmi»Uk/H4 hemitKii. i/Ut koda OttdtHA Itód4. vMttfta. kod* ttU lil.6; Pr-iPf5janjo išil'fe prejet L kodi ZAK1„I LIČEK V riJiocni de.l.ij smo op i cal i prohloni pi-f^povinava-njfi i.-l tinontov/ v roboliv.irniioni i fitUu.tri jsketn pi-ornsij on^ajl irnnjD- l^rodBtnvili smo avtomat- [jontopek mi ni,mj ,|e Števila nvotlohn.iii Goni-.orjnv in določanje n,jiliovogfi poloSaJ« glede na elemento, ki Je v veliko poiiiofi konstruktorju pri iiač.l-tovunju roboLcikcp;!! olötetn» '/.a (iropo?-nav!uiJc, Ponl.ojjok f;t!!0 uredili v korfi^no obl.iko, ki Je f.fiiü pi'i jurrn.-i /.<1 lipoj'idio n.'i d i ci l-n I ni.'in i'hóu-nalriilìiu, Uporntmor.t postopka J'i toliko vet':Ja, kolikor Jr Stovilo elementov -/.n emujli- Tunje l.n kolikor bolj üO geoniiftri J sko kortiplÌ~ cjriin.i, iicij JO tiikrrit nemot^oči! nr> ptiirot; f.i. ti Mrijboljfto vari unto rojipore^di Lvc nvotVo>i-nih sen/orjov, i"c tiinnj p.i njihovo loiniinalno potrebno in j-.ndoctno "itevilo, Üevedw pa J^^ postopek pfimnron rofievunje problema, k;i«i' imaino v luipfcj dfino množico otomontov l'.n i?i[iaj~ lirarije, ki no v dvoh diiiicniiijnh (.'noi ično določeni. . Opi sai i smo iiio?,noBt oi'.načevnn ja pooainoKnih elementov a kodo, ki Jo dcfinir.-ni.-i n nlj'uktu-ro robotovccjj siKtoina za prepo'/.nuvanje. tovili smo, du jft v realnem induistrijiìkoiii o* kolju prif"okovati motnje, ki onemogočajo orto«-stavno sprejemanje kode in pretrtinaformlrsnje v šifro primerno za naduljno obdelavo. 1'oka» zali smo, Jenko v zaneintirljivo ki-at,kein čnrm isli.i-ati tinto iiifi/o, kntere prip.'idnjočs nominalna koda je najbolj podobna prejeti. tovnofit predlai^aneßn algori tnin je toliknria, ■ da je Uirtrezna za neposredno aplikacijo na ki-'oiilnoin mikroračminln i ku j'obota. Z razvoje® paralelprogrninci je zato oinojj;DČc-no emnj^ liranjo in nprotrio prepoznava nje elementov. Opisana procedura in inotrumentulna oprema «a prepoKtiavanjo elementov gotovo ni oa najviSjem akadeinijkem nivoju, temveS ravno naspi'otno, aaj Je to bil tudi nami>n avtorjev. Vendai^ pn je dovolj učinkovi. ta in neoličutl Ji va na jnptnja, da Je i?;r 0 2. za udaljenost ođ toCke x, do nje same vrijedi (2) d(x,x) = 0 3. ako je udaljenost izmedju dvije toćke jednaka nuli onda- ge te toćke podudaraju ' (3) d(x,y) = 0 '^x y 4. udaljenost izmedj u proizvoljnih toöaka x i y jednaka je udaljenosti y i x. (4) d(x,y) =..d(y,x) 5. za tri proizvoljne točke x,y,z e x vrijedi nejednakost trokuta (5) d(x,z) b dx odnosno, , /0 ^ - _ ■y ■exp 2 3 ^^ ^ x-a i ' „ ■ ' • gdje. je ' zs ya, tada vrijedi slijédetfa tvrdnja • i ' ^ Da bi- vrijedilo; nj^ < itij ';hu?:no je jäal bude a+b < m, i ; li ;. ; Neka su i ■ . . ' ■ ■ : ; m^ - matematičko očekivan^© distribucije zadAne sa (B) . ' ; ' ; . Hj - matematifiko očekivanj^ distribucije zadane sa (Br),.:tađa:vrijedi Ulljedeđja tvrdnja Da bi. vrijedilo Mj ■"'2' ."^ovcilj:no, jp da bude : . b < a + e ! ( ;• ; i ■ ; ■ i Prednje tvrdnje nas uput^ùju da treba razvijati takve algoritme koji rte ođredjenim postupkom smanjivati rađijuse iz.kojih se promatraju p e ir, Sime u stvari, smanjujemo matematičko očekivanje, a to onda vodi do toga da se smanjuje vjerojatnost izbora loSih vrijednosti funkcionala f(p), za razliku od Sisto Slučajnog izbora gdje to, nije slučaj. V . ■ [ U tabeli 1 .zadani ,su statički momenti. M^. Na slici 1.' vidimo rezultate uzorka od 100 vrijednosti funkcionala (sumarnog debalansa) kada su birane p g ir na slučajan'način;; Dobiveni su rezultati! : Minimum funkcionala =134,75 Maksimiun funkcionala = 473 4,5 ' Matematičko očekivanj.e = 1488,2 - Minimum funkcionala dobiven je,.-kod .rasi» red a danog u tabeli 2., a maksimum kod rasporeda danog u tabeli 3. Ka slici. 2.. vidimo rezultate od 100 vrijednoaljl funkcionala kada se permutacije biraju.iz okojji-ne miniraiuna funkcionala dobivenog ha~ slučajan način, a!iz rađiusa.kugle.R = S koriat^öi lančanu metriku. Dobiveni su.rezultati 1 Hinimujn funkcionala =39,0 , ' ■ .' Maksimum; funkcipnala=3100,9 ' 7 Matematičko .očekivanje: = 1045^56 Raspored' koji odgovara minimumu funkcionala naveden je u tabeli 1. a maksimum funkcionala u tabeli 5. Tiam ì anj ll 175 (»J KtattM w 1* M a« 21 22 ti 2« 25 iS 27 2B 29 50 52 ■uutu aaaut 0 -69 -51 176 -511 -»la -517 A70 79 15 55 -152 -«e ' »5 J» 55 J6 » 58 59 «0 •1 •2 •5 *5 •e •7 *6 •UtliU BOM« 15 -6S5 • « 21 -259 - 55 17 11 -259 15 91 •121 •75 - 9 -191 BI BraJ Issati» S» SI » 5« 55 56 57 59 59 «e 61 62 63 «A •l«cl£kl MWl 15 « 3 -11 -a»9 » 5 -11 - 5 . 2 17 -UJ 17 -17 «tm •nj lapatt» « W 67 6a «9 To 71 n 75 7» 75 76 77 7a 79 BO •UtUU «OBUt 5 « 5 -26 & •11 27 -25 -m 75 •9 51 mj livatle« SI 62 a; «» a$ 06 m ss. «9 9» 91 92 95 9» 95 » •t«tim «»nt -57 - » 9 0 -u -25 - 7 » 65 M 21 ei 21 51 51 !7: ■) «Ji. t i:sc 7 üTs.-; I=ü7 17)7.7 isei.7 I ii -I fit. e seil B luv» JJCS.S >79fl.6 4017. e acut J O.C»*» C.OIOB s-osee : 3} DI Tööoii 0.0047 I a.ao« aoaoo OAoao O.QOOO 0.0000 "[ D.oau 39. s Broj Bjllt* 1 £ 5 4 5 6 7 e S 10 11 U 15 14 15 là 191.« teoj lapati» 52 7} 16 37 13 79 t» bi t>i Ub 51 « 07 «3 o5 eotltki wammt -11 27 175 -259 -162 22 -«57 -*5 -57 9 J -JI - 7 31 •11 «e.» •roj 17 la 19 20 21 22 23 » 25 26 27 2M 29 50 51 CS3. D k») lapatle* m 90 91 92 17 19 23 20 U 55 77 52 12 72 59 75 •05.0 StatiEki nurt 65 51 21 •9 -69 ■511 15 tsl -Z>t9 «9 251 -U 17 «59.0 >nij K]»ta 55 55 56 37 50 J9 «0 *1 «2 •5 «4 *5 «6 «7 •m U11.0 lopatica 7a 93 OS 56 30 39 60 63 25 7« b 5« 9* 55 69 13S<.0 6catl£ki aguBt 51 0 61 - 9 U 55 17 -113 - 59 -317 -2J -1*5 -55 21 5 5 se U17. 1 i 1S7& 1 BnJ Bjaata •9 50 51 52 55 5» 55 56 57 5B 59 60 61 62 6} 64 u tooj löpatle* » SI 96 *7 67 2 im 55 57 A 1 n 15 9H1 26 kijn 20 29 ■»Ai 53 m 7 5 1« 1II3. 1 1916 2 **** ♦"J • P 7 "COl -JI 15 -3*1 >nj «aau 65 M 67 6e 69 70 71 72 75 7» 75 76 77 7a 79 BO ::!9 2 Breg mpatm 5» 56 22 •1 «6 50 *9 6« 50 27 «0 10 21 31 42 3 Btaii£tl mant -«S a iTiš -259 -m - 9 «2 » «aa ^ 79 ai 61 -152 15 jslKi- •»j Kiaata M 9 »t «0 «5 J 10 62 65 66 M 7o 71 *) 76 21H 3 •tatukl mnt IV -179 -501 -«12 U •75 -y» 0 -17 5 25 •1 -26 22 91 75 :75t J 3t3S t tetST o.os« o.oiai 0. DS2} 0 OS}) T j 0.0 m 00261 0.0261 o.eis» J 0.01 il J e CUI tocco a Oese Quieta ■ ■■"■Si 0.065» 0.05BS , '■-jl* Miiià SS? Äa S a &Ä I 3) Kl ^ " 8 R I " ^ S "SS KSIJ äsä Ras »ÄS s dg J5SS a SS® f! S^ Ti SÄ3 s ss-g SS» ff SR JR-V s Sft SiS^Ü RR7 sir'S RÄÖ Äsa Rfs's! $ Ka IT. A ä SS 3 i ÌR-^. Ä&f EvX » «-g ff> WS ^ " " s iÄS 7 s rr E 3 Sffl.^: e JE s 5 s iS s SS SÄJ g ft?; »ft? ^ M «TI 4 m (fv f\l ■t 4 lO to ■ £ I gss syst SSS • ss» SÄ SSS ass SS" lil I Sä:: ss^ ■r» Tfc 4» IIS . Il3 Iii Ii Iii III III S ' Ä I KS ^ ( s SS3 ^ Ä S K f*N C< s Ü £ Ä S S asa t s Sì» SPS n RS ® fSJS 2 s 5» w S ftj « g 3 s SS" Ä 3 s s 4-t r« M lO H ' ? g« RS'" SSS » SIS 1 A if s , s ft? " S K t Ä ■RS« s 1 " t ÄS" s S 1 .«Sg Ä.3 S J-3 R R S ÄS:» rf^ lO p^ "TI sag " S t aa ^ .ÄS? ÄftS ■g K g ( SS R3 R 1 SSS * S S" 8 s & ÄlÜS KS s iS Ä SSJ ■"»a ìRys! S S ft s s iO 1 "SI 3 SÄ A s K Ää^RI j ® (y <^ a ^ SS 7 pl\ o ^ K\ r t*(w)=v. yf for Bomo i and all J^l v^-v. Linguistic semanticB. Every Turing machine ^r an, alphabet 7 can be represented by some 8ei^ Thue process (ie. the set of productions ov# the alphabet V). -V i fi Z ■i This approach is useful ^n the theory of formai'languages. It is need in solving some denlBioit probleas in this theory. TURING 1. Language TUEIHG 1 ìb more compier than the language TUHIBG 0, thou^ it is designet having Turing machines ae basis as wall. The basic characteristics of TUHING 1 programme are: Every TURING 1 programme is a finite sequence of instructions and commands. {The language contains composition and branching of Turing machines. Instructions of the language make a cuaiulative hierarchy; at the initial stage of the hierarchy there are a few basic instructions. TURING 1 admits direct implementation of new instructions by simple naming of programmes which are built up by use of earlier defined programmes or by use of basic instruct- . .ions and commands, 1. Hierarchy of TURINS 1 proKrammss. Let S be some (infinite) set of syntactic objects, for example Aulo,31 Hierarchy of TURING 1 programmes is any ayatem' CT., U,, C,,..., ; where T^j £ S, Tq is called the set of basic (atomic) programmes, are partial functions satisfying ■Ko - Ut, for all is 1-1 ■ff» £. .. . Also, and W, satisfy the following recursive conditions: = f® ; for i>l, Tj^ is the set of all finite sequences of elements of and coimnands IP X THEN n; GO TO n (xtV, ne« ). S'orali tew C;: TiU Following the above definition we have the situation: Elements of the,set T are called the TURING 1 programmes, If Tt-W and = , then T is the-name of t. N is the set of names and is the set of named TURING 1 programmes. . • . ■ Remark 1;.T^'is.the set of basic (atomic) TURIHG 1 programmes and {I£FT, RIGHT, STOP, DELETE} V {ERIMT xlxeT} Remark_^ Particularly interesting are the following types of .hierarchies 1. (idéal-case) Svery function is total. In tW.s case, clearly, for all tew , S - N^ is infinite. 2. Por allL«^ H^ is finite. Sometimes it is assumed that every Turing machine has name,e,g. for every ^Puring machine m there is tsT, such that m is a translation of t and (t) exists. 5. (real case) For all Nj^ is finite end there iis so that for all i ? k, M^ « ^ . Prom riow on we assume the first case. Remark 3,. It caa be assumed that H^ is recursive for all ^^ e.g. for any coding function •• T ; 5 the set of all codes IJi -tv \ txttJ;\ÌB recursive. The same is assumed for N. Functions iT,' are effective too, e.g. for some coding fimctions _ we have ' T t. a i A/ ■ i (!• CAJ f is recursive (moreover it may be assumed that f is primitive recursive). The above conditions of recursivenjess are clearly eatiefied in the last two examples of TURtKG 1 hiertochies. Definition, t e.T has ranic k iff 11 T^ -- t has rank O if t^T^. Rank defi- nition enables inductive definitions and proofs of properties of TURING 1 programmes. X s T. ^ ... K T f N T = ut; ■Vl^LJ » U M = UN. A-'v* is the sat of all words over V. ^^ Index p neans that JT^ is partial, i.e. domain (Mf) S. «.ftwvi. < Figure 2: Cumulative hierarchu of TURING 1 prograiiunes 4Ö RIGHT STOP DELETE PRINT X 2. Operational semantics of TURIMO 1 progra- miBBB. -B—. To every TURING 1 programme t < T naturally corresponds some Turing machine. As usxial, some mechanicaje device with tape infinite in both directions, and head which writes and erases signs, and which can be moved for one cell left or right is assumed. Hence^we have the following meaning of earlier mentioned instructions. LEPT meaning move the head to the next left cell and pass to the next instruction} otherwise stop. " as above right instead of left " stop " write blank " write sign x Commands have the 'following meaning. IP X THEN n means if the current cell content is X then the action transfers to the n-th instruction; otherwise pass to the next instruction. 1 " transfer the action to the n-th instruction. Hence, ip,, toen.. corresponds to the branching of Turing machines. If teT, t=r,... t^, t, e N, then icTt,, (i -ik) designates the compostiton of Turing machines corresponding to the names Theorem 1. Por every Turing machine m there is a TURING 1 programme equivalent to m. ■ Theorem 2. For every TURING 1 programme t ft Tj^ there is a Turing machine equivalent to t. Theorem 5. Por every TURING 1 programme tei there is a TURING 1 programme t 6 T,, equivalent to t. Thqorom J has a special interest, because its proof is used to construct a "compiler" which translate TURING 1 programmes in equivalent Turing machines. ^aar.i^j. Every ttT is equivalent to some t'é^T, which is built up without use of command GO TO.. The command GO TO n is eliminated as follows GO TO n IP ai THEN n IP ag THEN n Theorem Let T„be any finite subsist of S. liet (T,, , bo any system-in • which the comtnanda IP,. MEN., and GO TO not used, i.e. every T(. is a set of finite ^ quences of elements of . Tlien there is # Turing machine m which has no equivalent TURING 1 programme. Proof of Theorem 1. We may assume the following for a Turing mainine m: (1) m is represented by a sequence of quadri^ les of the form q x |^y]Pt as the qiÄntuple q x y o p is equivalent to the pair q X y r r y o p (2) If a state p occurea in m, then for each aeV there is an instruction in m starting Äth p a. In this case, the use of skip symbol-llf'"is not necessary, so we may assume that does^ot occur in m. (5) Every permutation of instructions of m j^-ves the sajne Turing machine, hence we may ^fS-ume that all instructions of m starting wilf^ a same state p are grouped in a block of m. Also, we introduce the following convention for TURING 1 programmes: Let "f be a sequence of names of TURING 1 programmes, and possibly of-"lines of the form IP X THEN C i TL where xfeV, CeN, nfeto. This line in % is eliminated by the transfoi^a-tion IP X THEN e } n —IP x THEN k-(2 STOP r GO TO n where k-length(T), ThuB,"C represents a TURING 1 programme. How, for a Turing machine m which satisfies (1) - (.3), the correspondent TURING 1 prolan mme is built up by use of the following t^^s-formations: ^ IP aj^ THEN n Necessary change of labels in IP..THEN,, ape made. The use of command IF x THEN n is essential in writing TURING 1 programmes as the next theorem shows. qqx rLi yj IP X THEN LEFT RIGHT STOP PRINT irj t d The labes J is the least index of an ini^ru-ctlon in a starting with p, otherwise J-lengthCm)+l. Proof of Theorem 2. Let t^ ... tjj and i n, t;^ is defined taking t L - s, e = (sa'OP),J(GO TO ..)=:; gfH. Pefinition of the tree Bt , T^ M. IB^ = (B^, &) Br is the set of reatrictions to the initial segments of , of the below defined functi- i ons f. Hence, we define the branches of the tree IB ^ . 1. dom(f)ow,or for some k«to, dom(f)=lc^i range(f) e cox (KUVUV U {s} ). 2. f(o) = (o,T). 5. f satisfies the following recursive conditions: Assxmie f(i-l) = ié 3.1. Case y-etf. Let ^ fv ,. • If /S eNU {^and , then f(i)=.(G+l,|i) If- rf, = S then dom(r)=i. If/^is the command IP x THEN p, x€V, ptìeo, then f(i)«(d+i,x) or f(i)=(J+l,x). 5.2. Case ot= g. Then T^ is the command 0 GO TO p, for some p. Let Tp = ^ . Suppose p ^n. Then: . If /1CN U (6} then f(i) = (p, fi). If "{i> is the command IF x THEN q, x e V, . qeto , lihen f(i)=Cp,x) or f(l)o(p,x). Suppose p >n. Then f(i)=(n+l,s). 5.3. Case c<.evuv. Then T^ is of the form IP X THEN p, Where J.= x or st = x . Let (i- T. 3.3.1. subcase Suppose p Én. If iieii u then f(i)=(p,ii ). If J^ ie the command IP y THEN q, for some y, q, then f(i)=(p,y) or f(i) = - (P,7), y&v. Let p?n. Then f(i)=(n+l,a). 5.5.2. Subcase x. If fićNU ^Bi , then fCi)=(d+l,(3,). If («. is the command IP y THEFf q, then f(i)-(d+l,y) or f(i)-(ä+l,y), y 6 V. Every, node of the tree 03^ has a designation. If t A Br t dom(f)={o,l,...i,kJ and f(k)-(j,JL), then ((.is the designation of the node f . Example. The following TURING 1 programme changes 0 to 1 1 to 0, to the right, from the. initial head position. . k = {0,l,2,,,.,k-l} 42 COMEL) IP O IP 1 STOP HmSRE HIGHT GO TO ERIHT RIGHT GO TO THBW 1-XUM 7 p^ designates a r e EHiira 1 IBIHI 0 STOP RIGHT GO TO .. I P. —i- V/ 'T-^s Figure 3 Approximation TOiaoram; Let t e N and V!Z-»V lie a tape description. If TCv) exists then there is tie N, built up of STOP, LEKP, EIGHT, DEIiEIE, PRINT x only Also, t-Cv) exists, ^d tCv), Proof. Induction on rank (f). Erasing all commands from the finite branch of the ta?ee (0^ which computes V, we obtain t', Basis of the tree ^ (Finite representation of the computation tree) The tree iB^ is constructed by a small tree Ct , by an iterative procesa. is defined similarly as the tree B^ , vdth the following difference. In the definition of B-^ , the clause 1. is fluhatituited with: for some k dom (f) ■ k. The clause 2. is extended with; if dom (f) - (0,1,...,k) then f tk Ì3 1 - 1. Definition. Let T, be trees and bo leaves of the tree T. The tree is made by putting the trees to the top of the tree l!,over Figure 4 the leaves ............ More precisely It is assumed that S^^ are paimfise disjoint. If T is a tree, then 5 is the ordering illation of the tree T. Further, we define a sequence B^ of trees; - Ct ,n+l K where are the leaves of the tree l&J , and are (some) subtrees of Cv • Then, , is one direct systH>B with respect to the natural embeddlngs Mieorem 6. IB, - liffl B^ . Topcloffieal semantics. The domain B.^ of the tree (B^ - (B^, c) is '^e subset of Baire space tJ^ (it is the subsft of Cantor space as wall). Writing down definition of the computation tree ^^ , it Is easy to see that (B^ la at most n^ in, the arithmetical hierarchy. Hence, the trei semantics for TURIHG 1 programrnes is deterÉb-ned with a functional : ( «r ), , S (eJ-)- {xl where for T e H ,C,to,TI), «t to U Icui , 3. Semi-Thue procesaes. Betnl-Thue processes can be taken as an alt«t^ native semantics for TURING 1 programmes, Ih one approach, the tape description is almost empty, i.e. If vj Z-»V is a taps deecripli.-on and e stands for blank symbol, then the^ Is n«ico such that for all keS^lkt ^n we ti^e v(k)-e. definition. The Input is any pair ( where vt^'aeZ, In the above definition is a situation word, a is the head position} if 0£:a«iu ^id ^m f^ti « than the head is over the m-tk cell whose content is Ì*-b.-i > Semi-Thue process assignet to the filNG 1 programme f is defined by: Let r- r, r^.... r,^ and input w»( Productions for J^ are w/t —» w/v^ for all 1, 1 ^n, if T£ ^ K - Is), then productions w/i iw/G , 3 « 1+1 iw Ti. w all belong to 5{. If *! B s then the corresponding produc^n for is w/ì->w/b» over V. V* - 1®} 1 V* is the set of all wo«d» If ri" a, then no production corresponds to If T; is I? X THEN k, then the corresponding productions are w/i wA if X. w/i w/iTl if Ha^ X. If (or S) then the corresponding production is w/i —♦ w/s. .. If tf ia GO TO k, then the corresponding production iB w/i w/k if fj^ ^ S, otherwise w/i w/s. We observe the following: w/i —> w/j is read "the.result of application of the i-th instruction is the result of application of the. J-th instruction" w/i ■—»iw/d is read "after the application of i-th instruction, the J-th instruction is applied" iw —» RIGHT w "the result of application of i-th instruction is the result of application of the instruction RIGHT to w" w/a . is read "Tbb STOr instruction is . applied to w" ]&eamplB. The TURING 1 programme COMEL has the following set of productions; w - (/jt- ,a), a feZ, w/COMH, w/1 . ■ w/1 w/4 . if 0 w/1 —> w/2 if 0 w/2 w/7 if 1 w/2 ^ w/3 if I . w/3 ^ w/n . w/4 —, w/5 —, 5w/6 4w PRINT Iw w/6 w/1 5w RIGHT w w/7. 7W/Ö ; 7w ->PRIBTOw ■ w/8 —, 8w/9 8w RIGHT w w/99 w/1 The productions for basic TURING 1 programrnesj LEFT .LEFTCV,a) ^ (V,a-1) . RIGHT RlGMT(n,a)-v(V,a+l). DaiiTE DEl,Ea'EWxp,a)-^(Je/i ,a) if ia)l£/a-l, léaélC^ix^) ])ELETE(f if or 0 a { is tlie blank). PRINT X PRINT X («Ly ( «i x/1 ,a). ir PRINT x if a" - 1 + k + 1 (41) PRIKT X k ; Example. W© ilustrate- tho application of ßomi-Tlius processfor -r COMHi ond th^o input w=(Oll0,2) . (0110 ,2)/C0M,EL-> (0110 ,2)/l^ (011(),2)/i—>■ (0110,2)/?-*7(0110,g)/8-.PRIWT 0(0110,2)/8-^ • (001Ó,2)/88(0010,2)/9->RXGHT(0010,2)/9 (0010,5)/9,-^(0010,5)/l^(0010„5)/2 (0010 ,?)/?.-> 7(0010,3)/8^ P1ÌINT 0(0010,3)/8 (ÓOOO,3)/8->8(0000,3)/9->RIG!1TCOOOO,3)/9 ■ (0000,i)-)/!^ (0000,^O/'l--»'K0000,i))/5->PRINT 1(0000,4)/5 (0001-^5(0001,4)/6 RIGHT (0001,_fl-)/6-!»(0001e,5)/6H«.(0001e,:3)/l^ (0001e,5)/2 ^(0001e,5)/3-^(0001e,!j)/s. The above interpretation allows an extended notion of TURING 1 proeraraiaes, that is, programmes which are not ranked. To be more precise, it is possible to build up recursive structures, i.e. such procrammeB which aro already called by its subprojjrammos. It is easiest to see .this idea in the following (celebrated) example.of factorial function. - -PACTORIAL: COPT ■ ■ ■ MINUS 1 ■ ■ IP 0 THEN 7 ■ PAGTOHIAl , ■ ■■■ ■ ■ MULTIPLY 6 STOP ■■ ■ 7 IJSFT PRINT 1 - LEFT ■ • GO TO 6- To explain this prograirimo, wo remind to the Standard notation for Turing machines: a* denotes a block of a's in x consecutive cello, a V, and a* means that the head of the machine is on the first cell of the block. A positive integer x is represented by and empty cell by 0, ' ■ '■ Then OÖPT" acts as follov/a MINUS 1 acts as followa :x+l 1*01* 1^0' MUI.TmY nctf! as l^^'^-^of"l'^ *'^ It is easy to write down TURING 1 pro Bramili as which have the intended action of the above instructions, An oxaiiiplo of computation Under PACTORIAi:, function: l^ol'öl'ol'o-l'olio ■ i'o ì* o l'Eolo ■ i o We see the followiiif';: ..-•. When'PACTOUIM, io used uu an inntructl- } on, i.o. if it is (inllod durinij un axQcuUion of ia tlie loiißfcii oj; tho word JL. 44 a programme, then STOP acts as RETURN in some higher proßramming lani^ge. The star above an arrow in the example denotes call of the instruction named FACTORIAL. Thus, the depth of the use of this instruction is 5. As an illustration of the Approximation Theorem, for the Input w=C0110,2) and T» » COMHi we have the following TURINS 1 programme without commands ; PRIEir 0 BIGHT PRINT 0 RIGHT PRINT 1 RIGHT STOP T(w) = ■c'Cw). In fact this Is a destlnguiahed branch of the tree 6. Denotational (Set theoretical) semantlcB. This semantics is based on denotational semantics of D. Scott and C. Straohey. The domains are defined as inputs and outputs of TURING 1 programmes. Inputs and outputs are tape descriptions and head positions. We define the domain D vrith D = F X Z where P is a set of functions from Z to V. Every fep is called a tape description; every z e Z denote a head position. Instead of tape description we also say valuation or an assignement. The following cases could be distingui shod: 1. P = Z->V. 2. P = (f I fiZ-^V and for all z eZ, except finitely many, fC2)=e} 3. P »V. Obviously 2. and 3. are equivalent. Let us suppose that we have any of the above cases. Three kinds of Interpretations could be noticed for Ttì H: ff- : H —> (D -»if) : N —♦ (mxD — Zr : N —, (D^D).. Informal meaning for „"tß , S t Let te Njf is the name for ta "C, t^ ... T:^} for weD, S-(Tr)(w)=Cvj^Vg...) represents the computation process for the input w, i.e. Pigure 5. which represents the "value" of t for the input w, through the correspondent branch of ttie computation tree . /<(T) (l,w) is the label of the instruction in T applied in i-th step, i.e. /<(T)(i,w)=J, where ttj is applied in 1-th Cija-putation step. JEr('r) is a partial function J5r(T);D^D coruéspo-ndlnß to the computation, i.e. JI('t)(w)»Vj^ the preceding picture C s means STOP). Cleaà?, it is partial function, because there are Sfinite branches in B,- j for inputs computed Iftir-ough these branches B"(r) Is not defined or more precisely, Jtr(T) diverges for these inputs. Note. By KSnig's lemma, for all t N, if m-r is infinite then lia® infinite branch. However, this does not mean anything, or at least, it does depend on the type of the dostaln as the following example shows. Example. IP 0 THEN 1- 0 designates bla:^ EIGHT GO TO 1 STOP p o ■ 5. —» oa- Pißure 6. The machine corresponding to f searohes foSE the first blank to the right. Hence: 1, If P = Z-»V than there is an input for , which ^ diverges, e.g. f given by V xeZ f(x) - 1. 2. If PSiV® is a set of almost oonst^rit .functions, then r converges for ev|>a?y input (though there are no upper bound for the computations)i Hence König*s lemma "does not" hold in the case 2. question, If P = V^ and If D^ is infinite^ is there an input w for which f divepges? Using the computation tree (B^ , S'(r) is easily defined. Now we give formal definitions of the integ|ipre-tations ff; /I, fl. Let; f=6'(r), c=/<(t), wü D, w-(f<,a), We define f(w) inductively. It should be ntti-oed that the definition is on the rank of the complexity of elements of N. Let us suppose that v^^, c^ are deflnet^ 1 I" f! Let We have the following cases t X. - {STOP} , 1.1. Tj^^i^ H, then v..^^» (vp, ^ c-^^ c^+1. 1,2. is a còsnmand, then v^^j^ = v^^, 2. 3. if is STOP, then if is GO TO then ^i+l^J* if is IP i mEH then t^^j^bv^, if X "i+l fr^ otherwise. We say that t converges to v if for input w, in r(t:)(w)=.(vj,v2,.,.), there is i such that tg. is STOP and VaVj^. In that case we define Ä(r^Cw)«»v. If there Is no i for which is STOP, we say that V diverges in w and write Hote that IF .. IKEB ..and GO TO .. could be defined as functionals as follows. I ! N X Co —> V X to e-(ip X mm d) r ©xfj(w) if f = otherwise i-th instruction of t X i+1^ G : H TO i) 5-(rj)(w) (when.GO TO j is i-th instruction of r) Rpogyamminf; system. Software environement which supporta programiiii-ng in TÜRIHG 0 and OJUHING 1, is developed and impleinentad on a DEC 11/70 computer of Faculty of sciences, Dept. of Hathematice,' Belgrade, The package is written in BASIC and is used for training by students. The .systeiB oonsiats of eight functional se^e-ntB, as shown oa Figure 7 and uses the following files. TOS -."source" TURING 0 prograniiiieB (i.e. with 'faults) TOSD. - TOS directoi^y TO - corect TURING 0 programmes TON - names of progracinies in TO, f.e, TO directory Tie - "source" TURING 1 programmos'(i.e. with faults) TISD - file TIS directory T1 - corect TURING 1 programmes TIN - file Tl directory TOR - system description and user'.B guide "jTO-aoufce mardpulato^ -j TP-translator ^ 4^tto-ax6cutQr I -I Tl-source manipulator ^ HTl-translator I -ITl-executor | -I service routines 1 _I system description Fig^ure ? : : ' TO-manipulator provides usual editing facili.-ties available in terminal operation, is well .as the maintenance of the "dirty TURING 0 programmes" file ~ aK)S. TO-translator ohecka syntactic correctness of the entered TURING 0 programne and maintaines , the files TOH, TO, TIN, Tl.. . The main duty of TO-executor ia to supervise the TURING 0 prqersuiome execution, entering and checking the data as well. The programme execution can be either direct or can use Semi-Thue processes,^ in which case TURINS 0 programme is first transformed-in Semi-Thue productions, followed by the word transformation (i.e. the corresponding Semi-Thue system execution). Tl-source manipulator performes similar tasks as TO-souroe manipulator, but with TURING 1 "source" text. Tl-translator checks TUliING-1 programme for correctness, writes the correct TURING 1-programme tree in file Tlj translates TURING 1 programme' in TURING 0 programme (optional) and eaves the TURING 0 translation, thus updati-ng the files TON,'TO, TIN, TI. Three ways of execution of TURING 1 programme are supported (Tl-execu-tor)rTURING 0 translation execution, direct execution (using TURING 1 programme structure tree), and execution via corresponding Semi-Thue process, 1 name of Tl prograaime 2 number of input arguments 3 number of output arguments " 4 addresa of name in Tl 5 address of name in TO (if exists) 6 comment ; , 7 final, state. - Figure 8: file TIN atruoture 4 Z 3 h ff t. t >1 .lb << ft n ■ i M-1 w n is the addree of tbe nana of the proESranme in the file TIN n. is tbe addreaa of the i-th instruction of the progranme in the file s 0 means that this progremme has translation in the file TO ± M T'. Figure 9t file TI etrueture t^ are inatruetions of TURING 0 prograusme t, •/»dJ-Knt.^ t u.-ri (i 31 Säj OHSPHBntffisira rigura 10t fila TO layout BIBLIOGRA-HTf. 1. S.Alagić, Maiheinatical Foundation of Pro-gramining Languages, Infermatila 74, Bled 2. J.E. Donahue, Complementary Definitions of Programming Language Semantics, Lecture Notes in Computer Science, (eds) G.Qoos, I, Hartmans, 42, Springer - Verlag (1976) 3. M.J.C, Gordon, The Denotational Description of ProEi^emming Languages, Springer - - Verlag, Hew Torlc (1976). C.A.H. Hoare, P.E. Laner, Consistent and Complementary Formal Theories of the Semantics of Programming Langiiagos, Acta Informatica, 5, (1974). 3t D.Monk, Introduction to Mathemätibdl Logic, Springer Verlag, Berlin 1976. 6. D. ääbtt, Data Types as Lattices, SIÀM Journal of Computing, (1976) Voi 5. — • »i 7i D. Sòott. Logic and Programming Languages, Communication of the ACM, Vol 20, Nò ^ <1977) 8. R.ll; dtonnent. The Denotational Semantics of Programming Languages, Communicätioiliä of the ACM, Vol 16, Ko 8 (1976) Cromemco System Three Computer N I s Mikro-kompjutor za profesionalnu upotrebu 11 ili 22 Megabyte Winchester Hard disk Kolor grafički sistem visoke rezolucije system zero-namijenjen za specijalne apuiicaci % »» Ekskluzivni zastupnik za SFR Jugoslaviju agromarketing 41000 Zagreb, B. Adžije 7/1, P.P. 5 Telefon: (041) 417 662. telex: 21741 POSTUPC I Z A SPREČAVANJE POTPUNOG ZASTOJA I PER MANE NTNOG BLOKIRANJ RAČUNARSKOG SISTEMA NA moTjelu grafa sistema NIKOLA HADJINA UDK: 681.326:519.17 SVEUČILIŠNI RAČUNSKI CENTAR - ZAGREB u radu su, ha osnovu nužnih 1 dovoljnth uvjeta za potpuni zastoj 1 permanentno blokiranje, Izvedene i dakasano osnovne tvrdnje za očuvanje slgurnoK stanja sistema. Ma osnovu tih tvrdnji uvedeni su postupci za sprečavanje pojave potpunog eastoja 1 peraianentnog blokiranja, ALGORITHMS FOR PREVENTIC« OF DEADLOCKS AND PCRHANENT BLOCKING IN A COMPUTER SYSTEM U3INC SISTEM GRAPH. Based on necessary and surficient conditions for deadlock and pernanent blocklng, defined by directed graphs, assertions for safety state are introduced and proved. By means of these assertions algorithms for. prevention of deadlocks and permanent blocking are introduced. 1. UVOD Sprečavanje potpunog zastoja ti] predstavlja poseban problem u izgradnji računarskih sistema, tj. kod usvajanja strategije pridjeljivanja sredstava. Sve metode i , postupci vezani su na jedan zajednički osnovni princip da Je u postupcima pridjeljivanja potrebno održati slanost stanja sistema. Zahtjev za sredstvcm bit će zadovoljen ukoliko je,novo naštelo stanje pridjeijlv^ja si-gufip. Uz takvu pretpoatavku nije moguće doći u stanje potpunog Mstoja. Dakle, opće je rješenje za sprečavanje zastoja da su sva stan^ pridjeljivanja sigurna. Za višestruko korištenje sredstava trivijalno rješenje za sprečavanje zastoja 1 permanentnog blokiranja je da se samo po jedrwffl procesu dozvoli držanje sredstava, sto . . dovodi u biti do jednopro^amskih operacija umjesto viSeprogramskih operacija, te se izbacuje iz upotrebe, kao nepraktično. Mnogo praktičnije je rješenje da svaki proces zahtijeva i dobije sva sredstva koja nm trebaju. Proces ne može biti blokiran, Jer u toku izvođenja ne traži dodatna'sredstva, nego ih samo oslobađa, tj. proces može iinatl samo priđjeljer« sredstya,. ili „samo a;aht-Jev.e..za.,sifeđstviiiia,. ali ne oboje. Na taj način su sva stanja sigurna i' sis-t^ ne mbfe doći u^tanje potpunog zastoja. Loša straiia ovog rješenja ja da su sredstva zauzeta puno prije nego se stvarno koriste. To dovodi do niskog koeficijenta iskorištenja ^dstava, odnosno do niskog stupnja propusnosti računarskog sistema. PERMANENTNO BLOKIBANJE To je situacija gdje se neki zahtjevi procesa nikada ne dopuštaju. Perm^entno blokiranje se dogada u potpunom zastoju, ali se isto tako dogada kada se nekim proceslnia nikada ne dopuštaju zahtjevi, lako bi oni bili mogući, tj. ne bi izazvali potpuni zastoj [23. Takav uvjetni zastoj [DQŽe nastupiti iako ne postoji (»tpuni zastoj, .a prouzrokovan Je raspoređivanjem procesa u izvođenje po nekoca pravilu (raspoređivao procesa). Primjer Neka se sistem sastoji od (a) dva tipa sredstava,S •1 ^ svaki sa po jednom jedinicom i (b) ođ tri procesa Pj^, P^ i P^. Potpuni zastoj će se dogoditi u ovom sistemu'ako proces Pj^ drži S^, a zahtijeva S^, dok proces Pj drži s^ a zahtijeva S^. Neka raspoređivao procesa poslužuje po r^oslijedu prljave (engl, flrst-ln-flrst-outj FIFO) 1 neka u početnoj situaciji proces Pj^ drži sredstvo S^, a P^ drži sredstvo S2. Neka P^ i P^ zahtijevaju sredstvo S^^ 1 Sj dok P^ zahtijeva samo Sg. Neka prvo Pg zahtijeva Sg, nakon toga Pj^ zahtijeva S^ i' konačno P^ oslobađa Sg, Navedena situacija prikazana' Je na slici 1. FIFO, raspored Slika 1. Uvjetni zastoj 48 Pune strelice označavaju pridijeljena sredstva, a iacrt-kane zahtijevana sredstva. Presječena puna strelica znači oslobađanje sredstva. Budući da se Sj zahtijeva prvo od Pj po FIFO pravilu S2 mora biti pridijeljen prvo procesu Pj a onda P^. Međutim, kad bi se Sj pridijelio procesu Pgi sistem ne bi više bio u slfurnom stanju. Prema tome, raspoređivao neće pridijeliti sredstvo S^ dok dopuštanje zahtjeva ne rezultira u sigurnom stanju. No, to se neće dogoditi dok P^ ne oslobodi sredstvo S^, a Pj^ ne može osloboditi sredstvo S^ dok se ne dozvoli zahtjev procesa P^ za sredstvom Sg. Dakle, iako Je sistem bio uvijek u sigur-nota stanju, bilo Je neinoguće dopustiti zahtjeve procesa Pj i P5. Ta situacija' se naziya- uvjetni zastoj, budući Je rasporedivać prooesa zbog FIFO pravila uveo logićke uvjete, pored onih za pridjeljivanje sredstava, te Je na taj način blokiran siguran zahtjev procesa Pj^ za sred- . StVO Sg. Kad god postoji mogućnost rasporedivača prooesa da blokira sigurno stanje, potrebno Je verificirati da li je sistem ušao u uvjetni zastoj. Ovaj tip zastoja se može izbjeći krSenJem pravila raspoređivanja. Rasporedivaću prooesa se nameće uvjet ekspeditlvnosti koji zahtijeva đa rasporedivač procesa dozvoljava zahtjeve tako dugo, dok su oni sigurni. No i pored ovog uvjeta, može nastupiti situacija permanentnog blokiranja u nekins slučajevima. Npr., neka sistem posjeduje (a) Jedno sredstvo S sa po dvije Jedinice i (b) tri procesa P^, P^ i P^. Procesi Pj^ i Pg zahtijevaju po -Jednu Jedinicu sredstva S, a proces Pj zahtijeva dvije Jedinice. U početnom stanju Jedna Jedinica sredstva Je pridijeljena procesu Pj^. Za takav sistem se lako pokazuje da postoji beskonačna sekvenca pridjeljivanja, tako da proces P^ ne može nikada zadovoljiti svoj zahtjev. Ako sistem sadrži konačan skup procesa i svaki proces završava nakon konačnog vremena, tada se beskonačna sekvenca ne može dogoditi. Za gore navedeni sistem prooesa i sredstava postoji slijedeća situacija. Svaki puta kad prooes P^^ ne drži sredstvo prije nego P^ oslobađa svoja sredstva, i svaki puta kada Pj ne drži sredstva, P^ zahtijeva sredstvo prije ■ nego Pj^ oslobađa svoja sredstva. Ako Je prioritet procesa Pj niži od prioriteta P^^ i Pj, tada se procesu P^ neće nikada dozvoliti zahtjev. Ako prooes P^ zahtijeva obje jedinice, i ako Je primjenjen uvjet ekspeditimosti, tada P^ neće nikada zadovoljiti svoj zahtjev, bez obzira na njegov prioritet. Prema tome Je P^' permanentno blokiran, a rasporedivač će zauvijek posluživati zahtjeve procesa P^ i P^. Dakle, iako je potpuni zastoj spriječen, moguće Je permanentno blokiranje. Uz uvjet ekspeditivnosti na rasporedlvač prooesa se može primijeniti uvjet eventualnosti koji dozvoljava da raspoređivao blokira sigurne zahtjeve, ali samo na konaötK» vrijeme. 3. SPREČAVANJE POTPUNOG ZASTOJA NA MODELU GRAFA SISTEMA Za opći postupak sprečavanja od zastoja potrebno je unaprijed poznavati maksimalne zahtjeve procesa za sredstva. Maksimalni zahtjevi procesa predstavljaju najveći broj jedinica nekog sredstva koja proces treba u nekom trenutku. Ti zahtjevi se mogu spremiti u matricu zahtjeva [oj^jJ ; 1=1........ j=l...... m, gdje c^^ predstavlja ■ij . maksimalni zahtjev procesa P^ za sredstvom Sj. Za graf sistema postoji, kako Je već rečeno,'dodatno ograničenje za svaki proces P^ i sredstvo Sj l(Pi,Sj)i + |(Sj,P^)| « o^j« tj tj. suma pridijeljenih i zahtijevanih sredstava za svaki ■ proces ne smije prekoračiti maksimalni zahtjev, a taj mora biti manji ili Jednak broju raspoloživih sredstava. Stoga se uvodi graf maksimalnih zahtjeva stanja S, kao graf sistema stanja S aa n^j brojem dodatnih strelica zahtjeva (P^tSj) za svaki proces Pj^ i sredstvo Sj, gdje Je Tako graf, dobiven iz stanja S, predstavlja najlošiji slučaj budućeg stanja T(.S — T) koje je dobiveno uzastopnim zahtjevima za sredstvima ograničenim makaimalnim zahtjevom. Slika 2. predstavlja graf maksimalnih zahtjeva. Dodatne strelice zahtjeva su iscrtkane, uz pretpostavku da Je t=3. Slika 2. Graf maksimalnih zahtjeva Zastoj se u ovakVora grafu može spriječiti ukoliko se tie dozvoli pridjeljivanje ako ono ne dovodi do potpuno reduoibilnog grafa H]. Potpuna reduoibilnost ovakovog grafa znači da i najlošija situacija stanja pridjeljivanja može biti uspješno obrađena. Valjanost ovog postupka dokazana je u ClI. Postupak redukcije, koji određuje da li jé graf potpuno . reducibilan, potrebno je da zahtijeva redukciju prvo s procesom P^^. Ako Je graf sistema bio potpuno reduciran prije operacije pridjeljivanja, tada on ostaje takav i nalwn pridjeljivanja sredstava procesu P^.. Ovaj rezultat Je analogan postupku kontinuirane detekcije koja je utvrđena u Cl]. Kada sredstva sadrže samo po Jednu jedinicu, tada postoje efikasniji postupci testiranja nego redukcijama gra-" fa maksimalnih zahtjeva. Pridjeljivanje proizvodi potpuno reduoibilnl graf onda i samo onda ako proces za koji se vrši pridjeljivanje ne lezi na ciklusu u grafu maksimalnih zahtjeva, ü tem aluSaJu se koristi slijedeći način detekcije. Iz grafa maksimalnih zahtjeva se napravi neusmjereni graf siateBia. Neussijereni ciklus se definira kao sekven-cija neusmjerenih lukova (a,b), {b,c)..,(r,a) u kojoj se svaki luk pojavljuje samo Jednom, Luk (a,b) u neuanjere-nom grafu Je isto što 1 Cb,a). Sada se sigurnost stanja sistema dokazuje ispitivanjem postojanja ciklusa. ' Teorem 1. Stanje u grafu maksinelnih zahtjeva- na sredstvima sa po Jednom Jedinicom je sigurno onda i samo onda ako neus- . mjereni graf maksimalnih zahtjeva ne sadrži neusmjereni ciklus. Dokaz {a) Neka usmjereni graf maloimalnih zahtjeva ne sadrži ciklus. Tada graf maksimalnih zahtjeva (usmjereni) sigurno ne sadrži ciklus,^a to povlači da buduće stanje nije stanje potpunog zastoja. (b) Neka neusmjereni graf sadrži ciklus. Lukovi neusmjerenog grafa mogu se prociijenlti u strelice i neusmjereni cikiua postaje usmjereni. Dakle, graf sistema sadrži ciklus, dovoljan uvjet za zastoj za slučaj sredstava sa po Jednom jedinicom. Budući da su sva stanja neusmjerenog grafa identična, dokazali smo i tvrdnju da su sva stanja u grafu sistema' sa maksimalnim zahtjevima sigurna onda i samo onda ako neusmjereni graf sistema ne sadrži neusmjerene cikluse. Sprečavanje zastoja bazirano na maksimalnim zahtjeviina .Još uvijek dovodi db neiskorištenJa sredstava, Jer procesi ponekad ne troše maksimalan"broj deklariranih sredstava odjednom^ Iz tog razloga za slučaj sredstava sa po jednom jedinicom postupak se može realizirati preko matrice povezanosti grafa sistema TlI. Proces P^ koji ulazi u graf sistema s određenim zahtjevima, ulazi i u matricu'povezanosti koja definira njegovu povezanost u grafu sistema. Prema tome, na matrici povezanosti potrebno je provesti operacije koje šu izomorfne na grafu sistema. Teorem 2. ' Potpuna reducibilnost grafa sistema G odgovara nul-mat-.rici povezanosti A. Dokaz Slijedi direktno iz definicije matrice povezanosti i potpuno reducibilnog grafa ril. Potpuno reducibilni graf sistema sastoji se od izoliranih čvorova, a to odgovara samim nulama u matrici povezanosti grafa, tj. nul-matrici. Teorem 3. Redukcija grafa sistema s procesom P^^ odgovara postavljanju i-tog retka i J-tog stupca u matrici povezanosti A u nul-redak, odnosno.nul-stupac. Dokaz.. Pošto redukcija grafa 3 procesom P^ proizvodi izolirani čvor, čiji Je ulazni i izlazni stupanj Jednak nuli, tada po definiciji, da Je suma ulaznih i izlaznih stupnjeva čvorova grafa jednaka ukupnom broju lukova u grafu, proizlazi ispravnost gornje tvrdnje. Prema tome se, na osnovi gornja dva teorema provodi postupak sprečavanja zastoja na matrici povezanosti i to na slijedeći način. Kod ulaska procesa P^^ u sistem potrebno Je ispJ.tati da li Je redak matrice, koji se formira ulaskom procesa Pj^ u graf sistema, nul-redak. Ako jest, tada prema teoremu 3 u Cl] proces P^ ne utječe ha izmjenu sigurnog stanja. Ako redak nije nu],-redak, tada se matrica povezanosti proširuje novim retkom i novim stupcem. Daljnje ispitivanje sastoji se u pretraživanju matrice povezanosti za postojanje nul-retka. Ako takav postoji, tada on proizvodi odgovarajući stupac u nul-stupac, a taj može proizvesti novi nul-redak. Tako, ovim transformacijama matrica A može postati nul-matrica. Sto je dovoljan uvjet za ne postojanje zastoja. Pojava i-tog nul-retka Je moguća zbog dinamike sistema 50 (oslobađanje sredstava), a ona znači da proces P^^ nema ' vise nezadovolJenih zahtjeva, te se može Isključiti i2 razmatranja potpunog aastoja postavljanjem i-tog stupca matrice A u nul-stupac. Poredak redukcija matrice A je nevažan [15. jj. SPREČAVANJE POJAVE PERMANENTNOG BLOKIRANJA Za sprečavanje ove pojave mora biti zadovoljen opći uvjet da sistem na smije nikada dostići stanje u kojem, bez obzira što procesi rade, neki zahtjevi ne mogu biti zadovoljeni, U mnogim sistemima, posebno tajno gdje je nizak stupanj iskorištenja sredstava, statistički dolazak zahtjeva i oslobađanje procesa može aprijećiti pojavu perraanentnos blokiranja. U mnogim slučajevima potrebno Je provesti zaštitu na slijedeći naČin, Sistem se opisuje sa dva vektora t i u sa po n elemenata, Kada proces P^^ postavlja zahtjev za sredstvima, element t(l) se postavlja na vrijeme traženog zahtjeva. Kada se dopušta zahtjev procesu P^^, element t (i) se postavlja na specijalnu vrijednost, npr. -1. Vrijeme čekanja (w) koje je proces P^ čekao da mu bude zadovoljen zahtjev može se,računati od trenutnog vremena (t^) na slijedeći način: Ako je t(i) : -1, tada je w=0, Inače Je w = t^ - t(i). Element u(i) daje maksimalno vrijeme koje proces P^^ mora čekati prije nego' raspoređivao procesa aktivira posebnu strategiju pridjeljivanja koja omogućava zadovoljavanje zahtjeva procesa P^^. Raspoređivao procesa zadovoljava sigurne zahtjeve prema svom pravilu, ali periodički ispituje vektore tlu nebi li pronašao neki proces, npr. P^ koji je 6ekao na zadovoljavanje svog zahtjeva preko maksimalno dozvoljenog vremena čekanja. Kada se takav proces pronađe, aktivira se alijedećl postupak; (a) Pronalazi se sigurna sftkvencija izvođenja koja se sastoji od procesa P^ i svih procesa koji imaju prid-jeljeno barem jedno sredstvo. Nastoji se pronaći sekvenoija u kojoj Je P^ što bliže početku. (b) Zahtjevi se dopuštaju samo za prvi proces u sek-venciji sve dok taj proces ne oslobodi sva sredstva koja su mu bila pridijeljena. Nakon toga se dopuštaju zahtjevi slijedećem procesu u sekvenciji sve dok 011 ne oslobodi sva pridijeljena sredstva, itd. To se nastavlja tako dugo dok se ne oslobodi dovoljno sredstvo da i zahtjev procesa P^^ bude aiguran. Procesu P^ se tada dopusta zahtjev. tc) Svaki proces različit od P^ se ispituje da li ii njegovo maksimalno vrijeme prekoračeno. Ako tada se proces koji je najviše prekoračio vrijfflR^ proglašava procesom P^^, te se cijeli postupak U^aav-Ija od (a). Ovaj postupak ne narušava uvjet eventualnosti ali n^e u koraku (b) narušiti ekspeditivnoat formiranjem zahteva procesa P^. 5. ZAKLJUČAK Kako su postupci detekcije stanja potpunog zastoja često vrlo složeni i zahtjevaju znatan utrošak sistemskog vremena ri], potrebno je koliko god je to moguće 'prvenii^^ö-, no spriječiti pojavu potpunog zastoja i permanentnoj blokiranja navedenim postupcima, prvenstveno onih koji'^iäovo- de do visokog koeficijenta iskorištenja sredstava. REFERENCE: ti] Had j ina, N. Postupci detekcije stanja potpunogi^s-toja računarskog sistema na modelu grafa sistema, INFORMATICA 2/W9, it-l?. [2] Haberman, A. N., Prevention of System Deadlock, Conm. ACM (12)7, 1969, 373-377, 385. C31 Hadjina, N., Postupci pridjeljivanja u višestruko korištenim raSunarakim sistemima. Disertacija, 1079. a i 'i-: k f T I S i:. i ì: ON SOLUTIONS FOR SOME OPEN PROBLEMS IN THE DESIGN OF MULTIPROCESSORS OPERATING SYSTEMS ASIM SMAILAGIC UDK: 681.3.065 ELEKTROTEHNIČKI FAKULTET, SARAJEVO, JUGOSLAVIJA Ili ttìiaiPaĐer wa ara oonoerned with aome open problems in the design and construction of multi-procesaors operating systens. We quantify some design trade-offs in the space where a operating system interaots with the system architecture and resource placement strategies. We also investigate scheduling algorithms that should be used in these systems. It has been shown how a desired level of system perfomianse may be achieved using the chosen strategies. IHTRODUCTIOH Eipeulraental studies reported in (Batson, 1976} Denning, 1980; Ferrary, 1976) show that locality is an.Inherent property of program behavior. Measurements have revealed that a normal instruction mix on a PDP-11 has about 70:^ code references and 30% data references (Marathe, 1977). In a multiprocessor system with hierarchical structure which maps Into different levels of memory references (Swan, 1977i Ornstein, 1975ì Hansen, 1981), or any other multiprocessor with large number of processors, locality of code and data is.very important to efficiency. In such cases the viability of architecture which can effectively support a large number of processors depends primarily on two factors. Firstly, the abili--, ty to implement cheaply and quickly references to non-local niemo]?y, and secondly, the existence of applications which suitable decompose for a multiprocessor and achieve a sufficiently high locality of references. The range of applications which can be decom-posedln this way is an open research question. There are some evidence and promising results-which Indicate that the appropriate areas include: large artifical inteligence systems, real time control, digital signal processing, transaction processing with the Impleiiientation of large data base systems, numerical problems and applications of asynchronous iterative methods, computational physios and some other ecienoes where the effectiveness of new paralel algorithms for the solution of important computational problems can be tested etc. the basic structure of a multiprocessor, like that presented by a multiprogramming operating sysltem, maps processes consecutively onto a ainglje physical machine, rather than simul-taneoudly onto several machines. Using the multiprocessor structure in an multiprogramming environment has different at=ipecta and demand specific treatment. Such miiltiprogram-raing system has some more jobs In main memo-,ry and these jobs will share all processors. When a processor becomes available it will take another Job from the processor queue to execute it, as each processor might take care -pf more than one job at a time instant. The system of this configuration is generally expected to have a much larger computational capacity, higher processor and memory utilization than a single processor system. In this environment we will encounter some overheads, caused primarily by requirement, for a more complex operating system design and memory interference, The degree of memory interference is expected to be proportional to the extent to which t lie memory requirements of different processors overlap and to the rate at which each processor issues requests to the memory. The next part of the investigation relates to the choice of scheduling algorithm that should be used in the multiprbcessot- operating systemi It is dependent on the type of system we are oonoerned with and on the performanse measure that we want to get improved,An "interactive system in multiprooeaaor environment was mod- . oled in (Sauer, 1076) and compared with a sin- ■ gle powerful procesaor system. The level of multiprogramming was fixed to be equal-to the number of processorü. The authors make the optimistic assumption that all future service times can be predicted with total accuracy and that the shortest remaining processing time first (SRPTP) discipline is used to schedule processors. This comparison study which consider the percentaija improvement in going to the, snPTP discipline from the first come first serveCPCPS) discipline Indicates that this change has more impact on the throughput of a ■ single prccessor system than a dual processor system. In our study we will investii^ate six scheduling algorithms. ) ■ The difficulties in design of multiprocessor-operating system sugrjest that a traditional op-ieratirig system built without spe^ial consideration of the problems of a multiprooessor will fiot bo very effioient uiiing the resources of a multiprocessor. In order to overcome these problema they should be taken into consideration at the aystei» design time. in the next section of this paper we describe the basic strategies that we have chosen, structure of the system and modeling decisions 52 we have made., PROBLEM AJJAIYSIS AHD aOLUTIOH lOTHOD The basic atruo'bure of the nmltiproceasor aysj-teni is ahovm achematicaliy in I'iriure 1. A number of analytical models for multiprocea-aor systems have baen developed, as (Bhaßdar-icar, 1975; Basket, 1976; Hoogendorn, 1977i :jethi, 1979). However, these models are all restricted in various ways, such aa requiring identical or even uniform meitiory reference patterns for all prooesaors, being unable to handle non-zero processine times, there ia no direct way to model storage, service disciplines and service time distributions, these models are not detailed enough to enable the evaluation of different parameter changes on ayatem performanbea, inability to evaluate the structure for the cases where there are more than one clear bottleneck in. the system, or the bottleneck is not known a priory. All these lliaitationa led us to the investiga^ tlon and development of a better and more realistic model where we use event-driven simia-ation. The appropriate open queuelng network model for our system consists of p proceasora, m memory modules and Ic I/O devices, and has three stages of service. In order to reduce averse® queue length In the waiting queue 3ust before jobs enter the memory we investigate different scheduling algorithms, 'i'he riiain pei> formance measure regarding scheduling algorithms that we use is the average turnaround time T of jobs. T of a job is the sum of the average queuelng timo and the average aervice ' time. The description of the model can be found in (Smallagid, 1981a). In the i.'tultica time-sharing system foreground-background (PB) algorithm is uaod, which discriminates against lorg jsbs, a^id PCF3 was studied for dual processor cani'lguration. In (Saltaer, 1901) the-Multio's designers explore how to effectively support traditionally expensive operating system functions by interconnection mechnniams. The next part of our investigation relates to the issues put' on by introducing local memories. The rate at which proòeasors send requests to shared memory is nov; I'educing and therefore the degree of nonory interference is getting decreased. We have OKorained here some of tlsQ. design trads-offa botiveen system performances and' the liiemory size, number of processors, impact of I/O trafic, and taking into consideration the computation that i a .being done. In order to detentiine the optimal .size of local and common inomory in terms of given computations we have defined aiid developed the concept of working lor multiprocessors. The worlf.irtJ; sot of in l'ormati on ia the raoat coat-effective amount of data and oode to have in local memory. By 'coda'we relate to all the primary memory access resultine from fetching instructions from memory. B'or a multiprooessor system with liierarchioal structure which mapa into different levels of memory references the overal performance depends on the relative frequency of local local references and the relative codt of.nonlocal references. At the implementation level this scheme here reeemblos that of a classioal look-ahead processor (Keller, 1975), with the master processor acting as the controller imd the slave sj a multiple functional unit. By duplicating, in eacli procesoor, the code required for the master and slave functions, the code for schedulers, and distributing tJie user pro- gram, its data siren and the tables rGi.iuirod by the schedulers ncross all the procotjsors, and since most code memory accesses are .-enerated inside, the run-time system functions, a very good locality can be achieved. In the next seo-tion we indeed illustrate the importance of locality factor and also show appropriate ;iys-tom's memory roqulrwnent. AS an extension of the yDF-11/70 oacho liimula-tion atudies (;3trr=ctor, 1976), In (Arulprsgasam, 1900) a Diffiulation model wai3 ur.ed to character^ iee the performance of the common cache. I't was reported that u cache of l.i words ahjired among N processors v/lth no code or data charing would show the same miss ratio aa a uniprocessor cache of M/H words- the cache ndaptlvely divides itself cimong the available running processors. IÌE3ULT3 Aim SUt.MARY Our inveati.";ation lias produced some more results for open problems in the design and construction of multiprocessor systems, Due to space limitation we present here just some of them. Figure 2, shov/a the resulta for all six investigated acheduling ali,;orithms. The nurabara on the curves from 1 to 6 correspond to the folloBdng algorithms: shortest job first,shortest processing time first, largest memory firstj first come first served, uwallest job firet, longest job first. It can be seen that shortest job first iijp algorithm gives the bast performance measure as its value for T Is the small-eat, Another conclusion that we con reach here is that for six and more processors all tljese algorithms perform almost the same. As for the job mix that was used here the memory contains for the most of time six jobs, it follows that when we have enough processors the sciiedullng algorithm does not maice too much influence on the performanoo (T ia in sec). The results on Pig. 2 are received under monoprograimiiin,g. Figure 3 showo the relationship between the number of equivalent processors, as relative speedup indication, and the siao of the raéinory. Performmioe improvoment that we have got after the consecutive markers on the curves comes from the copying of local data, than frequently used part of the code, all code copied and all data copied, respectively. It can be seen that a very significant performance increase ia acslä-eved by duplicating frequently accessed cpÄe (second marker) and than all code copied ("fehli-d marker). The number of proceaaors ia denoted - Pb., a"d it takes the values 2,G,10,14, lB,22i®fioctivaly. The basic multiprocoaaor system structure a > RB^EIICES " 1, Arulpragaaam, J.A, et al., Modular minicomputers using roiüroprocesBore, lEßE Trana. on Comp,, February 1930. .2, Basket-t, P. and Smith, A.J., Interference in multipro06aaor computer syatems with interleaved memory,. OACM.Jünö 1976, 3. Batson, A.P., Prograin behaviour at the bolio level, Copiputer, -November l^Té., , 4. Bhandarlcar, D.|p., AnalyeÌa'> of meittöry interference in mulitlprocessors,. IBBS Sprona, on Comp., Septembjer 1975. 5. Donning, P.J,, Working aete past and pre- ■ sent, lEES Trans; on Software Eng., Januaiy 1980, . : 6. Perrary, D., The improvement of program hpVinvlrtn',. r!ftmìMi4'A*i. tn'^t: AOOO 3500 3000 2500 2000 1500 1000 Tb 7. Hansen, P,B., The do^lcn of ;Wi:aon, ACt.' SIGPLAN NotioatJ, /piril 1981. a. Hanaen, P.B., Multiprocesaor -wtjhiteaturets for oonourent prograinđ, A€ül üIGARüH Wewtì, January ■1979. ^ , 9. Hoogendorn, C.H., A .njfsneral model for rnem-^ ory interference in laultiprocoaaora, IEEE . Trans, on Comp,, October 1977. ■ I 10. -Keller, K.M., Look-ahead proceüsors, ACM ■Oomputlng Survayg, December 1975. 11. Kleinrock, L-, Queueins' Sy^ä^ema; Volume II; Computer Applications, John .Wiley, 1976. : 12. Harathe, M. ajid ii'uller, a-.H., A £3tudy of multiprocessor contention for ahar?d data in C.nmp, ACM SIGMETRIOS Oonf., iVashington, December 1977. . • ,13. MoWilliama, T.H,. et b1., Advanced digital . processor technology base developwent for ■ Navy applications: The S-1 Project, Report UCID-17705, Lawrence livermore Lab, [)SA,1977. 14. Ornstein, R.J, et al., Pluribuös ^ reliablij m uit i pro ceo sor, AJ'IPS NOC Conf., 1975. 15. Saltzer, J.H. et al., 3nd-to-0nđ arguments iE ayatom design, IEEE Int. Conf. oii Dia-tributed Computer Systems, Paria,Aprii 1961. 16. aauer, C.K. and Chiindy, K.M., The impact of distributions and disciplines on multiple .processor aystema, IBM T.J.Watson lieuearch' Centre.Report RC 5973, 1978. 17- ùethi, A.S. and Deo, N., Interference in multiproceasor systeras with localiaed raeincK ry accesa probabilities, IBES Trsiiis. on Comp., February 1979. 18. üraailagid, A., A olmulation model for por-forraance considerations in nultiproceasor environment, lEüß/JcS Conf. on Uodolinr; and Simulation, Pittoburgh, April lyOl", 19. Smailagió, a.. Using pđp~li in building multiple processor ayatems- a critical : ; hardware usseament, IBBE International Eleo-trical Electronics Conf., Toronto, Oct. 1981, 20. Smailagić, A., A model for performance evaluation of multiproceasor systems, Int'l i Conf. Computer at University, Cavtat, May igsi. 21. Strecker, W.D., Cache metnoriee for PDI'-ll ! family computerà, lUEE Conf. on Computer Architecture, 197S, 22. £lwàn, R.J, et al,, The implementation of the CiTut multi-jriioropi'ocessor, AFIPS WGC Conf,, Dallas, 1977. ' 23. .IVulf, VI. A., Lovin, R. and Hnrbiaon, a,P., Hydra: An Experimental Operatine üvstem. McGraw-Hill, 1980. 3 4 5 6 Performances of investigated scheduling algorithjne ■ - Figure 2 - S4 20 40 60 soTbmzm '4ois(»kceoczkià4Ùzkc£amomzlemented In multipoint network. Proceduré for establlsins connection message, organization and techniques for achieving high rellaliiillty in comiunicatlDn is described. The software package is inplamented on the r-a nlcrocomputer. I.UVOD • . . Programska paketa komunikacije center (CONCE) in komunikacije terminal (COMTE) omogoSata prenos informacij .med centralno enoto (CE) in terminalom (TE) v multipoint' povezavi. 1 HODEH V H06EH V •----\ HOĐEH © Slika 1. Multipoint povezava Pri tej povezavi ima CE en sam komunikacijski vhodno izhodni kanal. Izbira kanala TE Je časovno multi-plskslrana. Informacijo Je moino prenesti iz CE v TE in iz TE v CE. Pri takSnl povezavi morajo biti v stanju, ko ni prenosa vsi TE priključeni na sprejem. Zvezo.med CE In izbranim TE Je' moino vzpostaviti samo Iz CE. Zvézà s^ vzpostavi tako, da CE odda določeno kodo identifikator (ID),.ki vsebuje informacijo o. tön s katerim TE žali vzpoatavitl zvezo In način priključitve na linijo'. CE poleg tega odda tiidi podatkovne informacijske bite o režimu delovanja. Režim delovanja ' določuje tip in s tem Število podatkov, ki Jih želi ..CE prenesti v TE ali Iz TE. Namen vpeljave te zahteve Je raivratiti podatke po prioriteti prenosa In b tem povečati frekvenco obnove stanj v CE podatkom, ki to zahtevajo. Istočasno CE lahko vzpostavlja zvezo in komunicira samo z enim TE, 2, PROCES VZPOSTAVLJANJA ZVEZE' Z. 1.. Centralna enota CE vzpostavi zvezo z izbranim terminalom tako, da od-poSlJe identifikator, ID vsebuje adreso izbranega TE in . kodo načina priključitve na linijo. CE se po tem preklopi na sprejem in Cakà na odziv TE, ki se mora odzvati v predpisanem času s tem, da vrne sprejeti ID. CE vrnjeni ID primerja z odppslwlm in če sta enaka. Je proces vzpostavi janja .zveze .IispeSnd končan., tf primerih, ko se TE ne odzove v predpisanem času ali, da vrnjeni. ID ni enak odposlanemui se proces vispostavljanja zveze ponovi. Število ponovitev »avisi. od zahtevanega režima delovanja. . a.2.. Terminal ','■.' Vsi terminali; so.priklopljeni ha sprejem in sprejemajo. Vsak TE ima lastno a^eso'različno ostalim. Če TE razpozna svojo adreso in razpozna sprejete znake kot 10,^ se priklopi na linijo in ID vrhe CE. S tem postopkom je CE uspeäno vzpostavil zvezo s TE. .:3. NAČINI PniKLJOClTVE HA LJHlJp^ . V procesu vzpostavljanja zveze CE zahteva od TE enega od naslednjih dveh načinov priključitve na linijo: imenovanje (polling) - Selekcioniranje (eaioctlng). , ' Izbira zavisi od zahteve poziva CE glede smeri prenaSanJa informacije, iz TE v CE ali Iz CE v TE, . 3ii., Imenovanje Zahteva CE po imenovanju pomeni poziv TE, naj poSlJe po-; datke, izbrane z režimo« delovanja. . 56 3.2. Selekcioniranje Zahteva CE po selekcioniranju pomeni TE, naj eprejüie podatke in ukrepa z njimi, kot zahteva režim delovanja. SBL SBL TNF VRC INF ][ VHC ] Številka bloka INF je od 1 do 16 zlogov koristne Informacije VRC Je bitna ali vertikalna kontrola parnoBti Vzpostavljanje zveze, prlklJuSitev na linijo in prenos informacije je zaključen proces, katerega delovanje ni mogoSe prekiniti med samim izvräevanjera. Proces se mora vedno izvršiti do konca, predno se začne izvrševati naslednji zahtevani proces prenosa. 4. ORGANIZACIJA SPOROČILA Spročilo. ob]ikuje pošiljatelj glede na reSim delovanja. Sporočilo sestavljajo bloki. Programsko se sporočilo oblikuje samo na nivoju blokov. Blok se prenaäa ali ne prenaša, vendar je pri prenosu njegova dolžina vedno enaka. Kontrola prenosa je zato realizirana glede na bioke. 4.2. Posebni znaki - EBT - EOT Namen EBT je sinhron prenos podatkov in razpoznavanje identifikatorja (ID) od zadnjih dveh znakov v bloku sporočila. Neman EOT je sinhron prenos podatkov in razpoznavanje identikiratorja (ID) od zadnjih dveh znaVtov v zadnjem bloku sporočila. 5. OPIS PROTOKOLA V PROSTORU STANJ Oglejmo si predstavitev protokola v prostoru stanj. 5.1. Legenda oznak: Enota, ki sprejema celoten blok, se odloči o pravilnosti prenosa. Če prenos ni bil pravilen vrne pošiljatelju znak o nepravilnem prenosu (NACK) in čaka na ponoven prenos bloka. Število neuspelih prenosov enega bloka je omejeno. V primerih, ko prenos bloka ni bil mogoč, se TE odklopi od linije.CE v takem primeru odloči, da uspeSnoat prenosa ni mogo5a, zato javi napako o neuspeli vzpostavitvi zveze. V primeru, ko je bil prenos pravilen, sprejemnik blok shrani in pošlje pošiljatelju znak o potrditvi uspešnosti prenosa (ACK). Zadnji znak bloka je lahko EBT {end of block transmission) ali EOT (end of transmiBsign). Znak EOT določuje konec sporočila. To pomeni, da je prenos končan in TE se odklopi od linije. Sporočilo sestavljajo; - bloki - poasbni znaki. Organizacijsko in časnovno prenos bloka Izgleda takole: Pošiljatelj: BLOKO EBT BLOKO EBT BLOKI EOT Sprejemnik: NACK ACK ACK Pri bloku O je bil prenos neuspešen. '4,1. Blok Dolžina bloka je določena a programsko opremo. Med samim delovanjem sistema je tsko blok kot enota infor-raaoijsko nespremenljiva celota. Uporabljen jo globalni način adresiranja. Vsak blok ima v CE ali v TK v pomnilniku naprej predpisan pomniInigkl prostor. Adreae polja ea v habelah v obeh enotah, blok pa najde svojo adreso preko številke bloka. Blok sestavljajo naslednji ztiakJ : - številka bloka (SBL) - informacijski biti bloka (INP) - bitna kontrola pariiosti (VRC) - TRC oddaja znaka. - REC sprejem znaka. - TRE oddaja bloka. - REB sprejera bloka. - TRSE oddaja številke bloka. - RESB sprejem številke bloka, - TR VRC oddaja bitne kontrole parnosti. - RE vrte sprejem bitne kontrole parnosti. - TR EBT oddaja znaka konec prenosa bloka. - RE EBT sprejem znaka konec prenosa bloka, - TR EOT oddaja znaka konec prenosa sporočila. - RE EOT sprejem znaka konec prenosa sporočila. - TR ACK oddaja pritrditve. - RE ACK sprejem pritrditve. - TR NACK oddaja ni pritrditve. - RE NACK sprejem ni pritrditve. - SID števec ponovitve pozivov CE TE. - STR Stavec ponovitve prenosov bloka, - ERROR detekciju napaka prt kontroli linije - TD Eosovna zakasnitev. - MASTER RESET inlclalizaciJa In vzpostavitev začetnih stanj - ACTA. - CTS ON priklopltev nosilca na linijo. - CTS OFF odklopitev nosilca od linije. 5.2, Centralna enota - pozivanje TE. 1 — 2 — 3 — 4 — 6 — 7 2 iniciallzacija ACIA in priključitev noni Ica na J inijo. 3 oddaja adrese naslovljeneßa TE. 4 oddaja načina priključitve in režimu delovfinjti, e čaa v katerem TE sprejme celotni ID, se odloči ali Je ID ali ne in se priklopi na linijo. 7 maator reset Je potreben, ker zaradi prikljii-Sltve TE na linijo, Linija zaniha in ACIA v CE Sprejme znake, ki niso bili odposlani. 0 čakanje na sprejem odposlane adresa, čas Je omejen. n — 22 adresa ni bila vrnjena v predpisanem času. ' n — a adresa je bila vrnjena v prodpiaBnem ttaau. Čakanje nu sprejem načina priključitve In reilma delovanja, n — naSin priključitve na linijo in roSim delovanja nista bila vrnjena v predplHHnam času. ~ 2 SID / O ponoven poziv, ??. — 21 SID !-. O konec pozivanja, CE Jiivi, da z iabra-II i m Ti-; ni možnn vzpostaviti zvezo. MASTEH RESET CTS OH MASTER RESET CTS OH SUka 2. Protokol v prostoru stanj za centralno enoT;o - pooling priključitev na linija 9 — lo sprejem Številke bloka, la — 11 sprejem bloka. 11 — 12 sprejem kontrole parnosti. 12 — 13 sprejem znaka konec prenosa bloka. 13 — 9 ker je bil blok pravilno preneSen, oddapa ACK In sprejem naslednjega bloka. 13 — 15 ker blok ni bU. pravilno preneäen, oddaja NACK. 12 — 14 sprejem znaka konec prenosa sporočila. 14 ~ 15 isto kot 13 — 15. 14 — 21 ker je bil zadnji blok pravilno prenesen, oddaja ACK in iahod iz modula. - Belecting prlkljuSitev'na linijo 9 — 16 oddaja številke bloka, 16 — 17 oddaja bloka. ' 17 — la oddaja kontrole parnosti. la — 19 oddaja znaka konec prenosa bloka. 19 — 9 ker je bil blok pravilno pi-eriešen in potrjen, sprejem ACK iri oddaja naslednjega bloka. 19 — 15 ker blok ni bil pravilno prenesen, sprejem NACK. 18 — 2o oddaja znaka konec prenosa sporočila. 20 — 15 isto kot 19 — 15. 2a — 21 ker je bil zadnji blok pravilno prenesen in potrjen sprejem ACK in izhod iz modula. - test napak 15 —■ 9 STR / = O, STR STR-1 in ponovno procüs I canje bloka. 15 — SJ» napaka detektirana pri kontroli i i ni je. 15 — ?1 STR = o'bloka ni raožno prenesti,CE javi, da z izbranim TE ni možno vzpostaviti zveze. 5.3. Terminal - priklopitev TE 1 — 2 inicializacija ACIA in odklopitev nosilca od linije. ■ ■ 2 — 3 sprejem znaka. 3 — 2 sprejeti znak ni bila adresa TE. 56 HASTER RESET CTS OFF Silka 3. Predstavitev protokola v prostoru stanj za terminal 3 — 4 med prehodoma Iz etanj 2 — 3 je bila sprejeta adresa TE. 4 — 2 test ali je možno, da jt; sprejeti znak, znak naElna priključitve )ia linijo. Znak načina priključitve na linijo se razlikuje od znakov EBT in EOT v dveh bitih. Sprejeti znak ni bil znak načina priključitve na linijo. 4 — 6 sprejeti znak ni ne EBT ali EOT, zato je sprejeti znak lahko znak naSina priključitve na linijo. Testiranje ali bo za njim še kakSen znak. 5 — 2 sprejet Je bil znak. Sprejeta znaka sta bila del bloka sporočila. 5 — 6 v predpisanem Sašu ni bil sprejet znak. Sprejeti znaki so bili ID. PriklJuiSitev nosilca na linijo- 6 — 7 časovna zakasnitev, da se linija izniha. 7 — 8 oddaja adrese. 8 — 9 oddaja znaka načina prikljuEitve na linijo. ■ - polline priključitev na linijo. - polling priključitev na linijo je v TE podobna selecting priključitvi v CE. - selecting priključitev na linijo. ~ selecting prikljugitev na linijo v TE je podobna kot polling priključitev v CE. - test napak 15 —2 STB = O bloka ni možno prenesti ali napaka detektirana pri kontroli linije. 6,' ZANESUIVOST PRENOSA . ■ ■ Zanesljivost, prenosa podatkov je zaščitena- 2 itiforrna-cijsko (Identifikator} in döcizijsKo (podatki) povratno zanko. ■ vsebujeta 4 informacijske bite In 4 kontrolne bite. Kod Harumingove razdalje popravlja vse enojne in odkriva-dvojne napaka. S korekturnim kodom,- ki ne^samo odkriva napake, temveä tudi popravlja, je izboljSàna kvaliteta kanala. -' ■ . 6.1. Informacijska povratna .zanka Zveza med naslovljenim TE in CE Je vzpostavljena Sele takrat, ko CE sprejme odziv TE na identifikator. Oddani identifikator mora biti enak vrnjenemu. Ee identifl^ katorja nista enaka, se naslavljanje ponovi, kar zavisi od rezinia delovanja. 6.2. Decizijska povratna zanka- ■ Blok sporočila je aaSčiten z deciziJako povratno aanko, zato se prenos kontrolira in ponavlja po blokih. Element, ki podatke sprejeaa se odloSi o pravilnosti prenosa. V primeru,ko se odloči, da je bil prenos pravilen, vrne pošiljatelju znak o uspeänosti prenosa. Ce prenos ni bil uspeSen odda znak o nepravilnosti prenosa in prenos bloka ae ponovi.. Število ponovitev prenosov je omejeno. 7. KODIRANJE 7.1. Korekturni kod 7.2. Kontrola parnosti . Podatki 80 zaSSiteni še s kontrolo parnostl (zaradi decizijske-povratne zanke).^ Blok; SBL in l';- 16 zlogov informacije sta zaščitena z bitno (VRC) ko.ntrolo par-nsoti. . Oddajnik najprej, odda blok po.datkov; izračuna njihovo parnost in jo odda. Sprejemnik sprejti^e blok. Jim določi parnost, sprejme ojlposlano parnos-t in ju primerja. Sprejemnik se na-podlagi korekturnega koda (odkrijs dvojne napake) In kontrole parnosti odloči o , pravilnosti prenosa. .8, SKLEP. . Opisani sistem je namenjen procesnemu vodenju relativno počasnih procesov v realnem času. Uporabijena,komunikacijska sredstva so lahko telegraf, telefon ^li brez. žična zveza. Takšno raznovrstno uporabo komunikacijskih, sredstev omogoča multipoint povezava. Pri proceisnem vodenju relativno hitrih procesov, bi morala biti že ■ mrežna povezava med centralno enoto in terminali druBačna. . ' Vsak znak itiforisacije je kodiran s korekturnim kodom Hammingove razdalje 4. Znak se odda kot dva znaka,ki 3. LITEIÌATUHA L. L.Gyergyek; Statistične metode v teoriji sifittmov, teorija o informacijah, Kakulteta za elektirnhelmi.ko 1971. 2. M.šubelj ,J .Korenini , F.Novak, R'.Trobec; Kodirtinjn Ln dekodiranje korekturnega koda a miki^oračuna.lnikom, Informatika 3 / 1979. 3, Electronics Book Series,: Basics of data communications, Me Grow-ili.!l la76. , , INFORMATICA S/ISÌBI PRIMJENA INVERŽION METRIKE KOD OPTIMA B A LANSIRANJA UDK: 681.3!512.643 E L N 0 G JOVAN LONČAR VIŠA ZRAKOPLOVNA ŠKOLA - ZAGMEB U prostor, parnut&clja uvodi se Inverzlona metrllca koja se eatim koristi za proraSiu optimalnog balaasa srakoplovnib hidro i parnih turbina i drugd;te. AFUCAXION Of THE INVEfiSION METRIC 70B CAUCUMTION TKE OPTIMAL BALANCED In a space of permutation the inversion metric is introduced and used for the calcaletion of optitaaI balance. OsnaSimo sa9r- prostor pemutacija i proioa-trajno pj^^pg^^ Neks Ja Pj_ "(iiig*•'Ìq)» Veka su proizvoljni elementi is p^. Ako se u peimutaoiji elemenata takav da Je i^ - i^ ka- Semo da par Sini inverziju u odnosu na Pl- Odaljenost dCpj^.p^) se definira kao broj avih inversi Ja u pg u odnosu na p^^. Pokesuje ae da Je maksimalno mogući broj inverzija Jednak n(n.l)/2. Pokaiimo da uvedena udaljenost zadovoljava sve aksiome metrike ["l] i-Z^J • 1. Po definiciji Je d(pj^,pg)^^0 2. PermutaciJa p u odnosu ne ssmu sebe ne Sini inverziju pa Je d(p,p) - 0 Odsutnost inverzije izmedJu dvij« permuta-cije, sna6i da se te permutacije podudaraju. 4, Ako Je i^ - i - Jf , onda elemen- ti i^ i i}' 5ine inverziju u odnosu na p^, tada i aamo tada kada Jy^ i J^ Sine inverziju u odnoau p^^. 5. Pogledajmo tri permutacije pj^ -(ij^ij.. .i^), i ij- - Jf . Ako par , i-y čini inverziju u odnosu na p^« onda taj par čini inverzij^i u odnosu na jo^ ili J^ čini inverziju u od- nosu na Znači, da svakoj inverziji p^ u odnosu ne p^ pdgovara inverzija tih istih elemenšta u odnosu na P2 ili (i) njihova inverzija u P2» u odnosu na p^ . ZnaSi vrijedi relacija trokuta. Da bi obrazložili algoritam pomoću koga nalazimo pči^koja se nalazi u okolini radlusa B potrebno Je nvesti neke pojmove. Uzmemo li sve permutacije od n- simbola p ■ • (ij^ig.oi^) i cjelobrojne vektore oblika ioim (l,a-l). Među njima uspostavimo uzajamno Jednoznačna Icorespodenciju. Kod toga Je b^ broj inverzija koji simbol čini sa simbolima u p, a u «tttno* eu na p'^Cl^S...n). Obratno pridruživanje, for^ miranja iz indeksa permutaciji vrii se poi«ču slijedećeg algoritma t ALGOBITAH 1 i« korak . Stavimo ij^ - bj^+l. U nizu brojeva B^ ■ precrtamo broj i^. Dobiveni, ai» ij^+l ...nj označimo sa B^, ä,' korak. Stavimo da Je i^ jednak (bg+l) po redoslijedu elementu u nizu B^. U B^ -preortamo brod ig » a dobiveni nia označimo sa Bg. •■ i-ti korak.Neke i^ +1) po redoßljedu broj niaa Boi -1 . U nlzii Boc -1 precrtati broj ij. i dobiveni nis osnažiti rB^i. . n-ti korak.Staviti i^ = Tako na primjer indeksu I = (2,5,0,5,1,0,0) odgovara permutocija p' >= (3,7ilt6,4,2,^,8). Permutaci ju p* t= (l,2,5...n) aovemo nulom pró-Btora'Ä", jer njoj odgovara indeks I - (0;0...0). Udaljenost ismedju- p** i proizvoljne permuteci' je peSTkojom odgoyara indeks I = dobije se pomoćii izraza n-1 d(p*.p.) = ^ b^ ot=l Zbog ne j ednakoBti trokuta d(p,p")+d Cp^tp"), ako je d(Pq,p*) poznata i jednaka d^, onda za formiranje permutecija p- koje leže od p(j-ne dai je od H- dovoljno je formirati per-mutaclje koje su udaljene od'nulte p* ne više od K-djj . Na upravo rečenom temelji ae algoritam za nalaženje p Éf^Tda vrijedi d(p,p^):éiH, ALGORITAM 2 . i' Ì£2Egk. Odrediti indeks = " permutocije po. * a. korak. laraSunati d^ = d(pQ,p*) pomoću n-1 «'o » ZI V korak. Pomoću generatora slučajnih brojeva formirati niz sluSajnib cijelih brojeva takvih da imaju slijedeća dva svojstva: /' ■ ■ : a) ^C» éfi - d^ . ■■ - - b) 0 C ^ n.o< 4, korak. Interpretiratji niz brojeva kao ind'eks' permutaci j e pc^t'i ■po tom indeksu formirati 'permuta'ctju. Ka osnovu prednjeg algoritES sastavljen je pro-, gram aa raĆunar. Uzeti su podaci iz tabele 1. .} Izračunate su vrijednosti funkcionela - d&balan- sa: Ha- slici 1 vidimo rezultate "iz loo pokiiea metodom MONTE-KARIO a na slici 2 rezultate od 100 vrijednosti kada .se biraju, permutacije iz okoline min f(p) koji je dobiven u[2] aa .slučajan način, :8a radiusom kugle R koristeći inver-zionu metriku. Dobiveno je: Ilinimum funkcionala = 148,36 Maksimum funkcionala = 397.9,25 Matematičko očekivanje M _f(p) <= 1690,97 Raspored lopatica koji odgovara min f(p) vidimo u tabeli 2., a raspored koji odgovara max fCp) u tabeli .5. Vidimo da su u ovoj metrici dobiveni rezultati različiti od onih u j^Sj pomoću lančane metrike. .1 o . IIÄ Ì2Q tf» « 4 A r s S S li :: .a ; s • ' tđ 4 2 « tf» • -o ^ 62 SS« S «-g «sa s-s« syst se? SiSg 1 s-^ » ÄÄ3 « KSr 3 sü f aaa 3 »{ist sag 3»S RlPg RS» ssa ani SR» ftìfie ssa SRS üä K 1 "SR (Š3* »s a sisiä ssa 1 ssra «Kg: Ksa sd^s) SEi a SS" Rag s «a -SS ssa S ?iRf SSA l|l ^ ih ì üll sfì s ps ll| I m lil lil lil lil lil SltM 2 ase iSAiS s| aag 3 ä 5 5 a Ä ' * >a U IP "«R ♦ SÄ ÄÄS sjä tìSf X 8 ijl K iS X » A a f 5i s as" ssiif s ff {C^ fR a lyssf ;; s » ?sìs ssti ÄÄS »SR Siffig «s? SS3 « SKf ^ - S ssa RFrJ « 3 S U^ ^ M\ I SSS ■8 «S R RS sssr sag Its " SS" s.« « gi»7 đ» 5 8 g RR ftf • Ä Ä Ä «Si s? «t 4 ao - » a » as |1 |l il |] Ii: I ì3 Is Id U u I 3 j 3 gä SR SR SÄ a S a Ä öö t: ? « Käs» «7 its - s stu ' es Si SI ® " ÄS S S Ä-^ & a « B 3» j» s" a^ ill BT «i? t" Ii " a II i I LITE&AIinUt 1 ■il: S.Xurepa - funkcionalna anallae - £lene:#i teorije operatore. Bkolska k^pì-ga« Zagreb 1981. J.Londac - O JeducJ metodi proračuna op<^ nog taalanea. Biti će pul>lieit u časopisu INFOHMATIJp-LJUr* ' Đ.I.Goleako-StatietiieBic:!* modeli v u| proisvodstvom. Statistika UVOD V CP/M* I iUDK: 681.3.06 CP/M: 181.4 ANTON P. ŽELEZNIKAR SOZD ELEKTROTEHNA, DO DELTA Prvi del. uvoda v operacijski sistem CP/M 2.2 obravnava aktualnost, razfiirjenost in primernost tega sistema, natanko razčlenjuje in pojasnjuje njegove t.im. vgrajene ukaze, krmilne znake, pravila za CP/M zbirke In naposled še tiste prehodne ukaze, ki sodijo neposredno k CP./M sistemu (STAT, PIP, ED, DUMP, SYSGEN, MOVCPM, SUBMIT in XSÜB) . V nadaljevanju, bodo opisani še nadaljnji koncepti, pripomočki in programski paketi, ki sodijo v značilni okvir operacijskega sistema CP/M. ;An Introduction to CP/M Operating System I. The first part of the introduction to the CP/M Version 2.2 Operating System deals with importance, spreading, and suitability of this system and describes in detail its built-in corainands, control characters (line editing commands), and CP/M file- conventions. At the end of the first part CP/M transient commands are presented, also by examples. 1. Uvod. Mikroračunalnik (moR) je povezava medsebojno odvisnih, sodelujočih naprav in programov. Te sestavine moR morajo delovati usklajeno, skladno, z uporabni6klin programom. CP/M (okrajSava za Control Program/Monitor) je operacijski sistem za moR, ki opravlja nalogo vodenja, usklajevanja in delovanja mlkroračunalnlSkega sistema kot celote, tako da .aktivira naprave, ureja podatkovne zbitke, skrbi za ustrezno zaporedje izvajanja programov, komunicira prek konzole z uporabnikom Itn. CP/H lahko uporabljajo tudi domači moR, In sicer ID-BO (Iskra) ter družina Delta 323 (modela /Ml in /M3). čeprav Je CP/M zapleten računalniški program ,je namenjen äirokl uporabi ter se ga Je mogoče priučiti, v kratkem času. CP/M ima vrsto nadaljevalnih produktov, sistemskih in uporabniških. Vefiuporabnlškl operacijski sistem ima oznako MP/M (Multiuser CP/M), mreža sistemov s CP/M In MP/M pa se realizira z operacijskim sistemom CP/NET. Sistemska programska, oprema za CP/M vsebuje vrsto prevajalnikov za. visoke programirne jezike (PL/I, COBOL, FORTRAN, PASCAL, BASIC, ALGOL, LISP, FORTH 'itd.), uslužnostne sistemske programe (zaSčita podatkov, diagnostika), pakete za upravljanje podatkovnih zbirk (DBMS, HpBS, dBASE II, CONDOR ltd.) in Se. hl lahko naStevall. Med značilne uporabniške programe sistema CP/M prištevamo procesorje teksta, finančne In pisarniške programske pakete, programe za odpravljanje poštnih poälljk ltd. ltd. * CP/M ja avtorsko zaščiten Izdelek podjetja Digital Research, Pacific Grove, California. CP/M je bil razvit v letu 1973 (G. Kildall), v letu 1975 pa so ga privzeli tedanji proizvajalci mikrosistemov. Tako je CP/H postal standard na področju moR operacijskih sistemov. CP/M . se je lahko priredil za uporabo v poljubnih konfiguracijah procesorjev BO80 In Z80 z različnimi diskovnimi sistemi, nastala pa je tudi močna CP/H uporabnläka skupina. Na CP/M so se nadgradili prevajalniki za praktično Jvse bistvene programirne jezike. V zaporedju člankov o CP/M bomo obravnavali njegove vgrajene in predhodne ukaze, zbirne in popravljalne pripomočke, usluinoatne, prevajalne in uporabniške programe, sistema MP/M in CP/NET ter zgradbo in uporabo CP/H. Temu bomo dodali še pregledno tabelo ukazov s pojasnili, in sicer za sam CP/M in njegove najbolj značilne nadaljevalne programske pakete. 2. Vgrajeni ukazi CP/M sistema CP/H je doživel več svojih Izdaj, ki so imela označitve 1.3 (originalna Izdaja), 1.4 (prečiščena izdaja 1.3), 2.0 (nova izdaja), 2.1 (popravljena Izdaja 2.0) in 2,2 («adnja veljavna Izdaja), Mi se bomo omejili na obravnavo Izdaje CP/M 2.2. Da bi čim bolj natančno obravnavali sporočila v in iz CP/H, tomo vsa sporoÖlla pisali (in vstavili v naš tekst) na osnovi neposredna interakcije teleprinterja (terminala) in sistema CP/H. Tako se bomo Izognili dvoumnostim, ki se pojavljajo v učbenikih o CP/M (glej spisek slovstva) in v realnem komuniciranju uporabnika s sitemom. CP/M pozna dve bistveni skupini ukazovi vgrajene dn prehodne. Vgrajeni ukazi so deli operacijskega sistema, ki se izvaja. Prehodni 64 ukazi so imena posebnih zbirk na disku, in Se jih aktiviramo,, se morajo najprej naložiti iz diska v hitri pomnilnik. Prehodni ukazi so nadalje sistemski (npr. prevajalniki, zbirniki) in uporaabniSki (npr, poslovna knjiga, procesiranje teksta). CP/M sistem sprejema v svojih ukaznih vrsticah velike in male črke, toda notranje jih vselej prepiše v velike črke. Ta dogovor je veljaven tudi za poimenovanje zbirk na disku. Zbirka je poljubna informacija, ki je na disku shranjena kot celota in njena dolžina je omejena b podatkovnim obsegom diska. Zbirke so tako programi, ki se bodo izvajali na moR sistemu, so drugi programi, podatki za določen program, samostojni (informativni) podatki, navodila, poglavje neke knjige, celotna knjiga, strojni kod za vstavitev v ROM Itd. Nobeno pravilo ne omejuje informacije, ki je shranjena v zbirki. Zbirka je lahko strukturirana, ko je sestavljena iz zapisov, polj ali kakShih drugih enot in podenot. CP/M 2,X razpozna sedera vgrajenih ukazov, in sicer DIR TYPE ERA REN SAVE D: USER Pomen teh ukazov je tale: DIR D: ime_zblrke.tip prikaže na zaslonu imenik ali določene zbirke imenika na disku D. TYPE D; lme_zbirke.tip prikaže na zaslonu vsebino zbirke z diska D, ERA D; ime_zbirke.tip zbriše z diska D eno ali veČ zbirk. REN D: novo_ime.tip = staro_ime.tip preimenuje zbirko na disku D. SAVE nn D: ime_zbirke.tip shrani vsebino iz računalniškega pomnilnika v obliki zbirke na disku D v obsegu nn zapisov dolžine 256 zlogov. D: aktivira diskovni pogon d. USER nn spremeni trenutno veljavno številko uporabnika v nn, K vgrajenim ukazom moramo dodati še krmilne ASCII znake, ki delujejo prek konzole kot posebni (tudi vgrajeni) ukazi : 'CTL c' ali ETX Če je to prvi znak v ukazni vrstici, se izvede ponoven začetek (naložitev) CP/M sistema, to jo t. im. ponovni (topli) zagon (začetek). 'CTL e' aH ENQ Izvede se pomik na naslednjo ukazno vrstico pri daljših ukaznih zaporedjih. 'CTL h' ali QS zbriše nazadnje vtipkani znak In pomakne kurzor v levo. 'CTL j ' ali LF ima učinek znaka CR (pomaknltev valja v levo). 'CTL m' ali CR je pomik kurzorja (valja) na zafietek nove vrstice, ko se začne izvajati prejšnja ukazna vrstica. 'CTL p' ali DLE vključi in izključi napravo za listanje (tiskalnik). 'CTL r' ali DC2 ponovi trenutno ukazno vrstico s popravljenimi znaki. 'CTL s' ali DC3 ustavi podatkovno prikazovanje na zcjslonuj ki se lahko nadaljuje s poljubnim znakom {tudi z 'CTL s') 'CTL u' ali NAK in 'CTL x' ali CAN zbriše (anulira) trenutno ukazno vrstico. RUB ali DEL ali 'CTL _' zbriše en znak s t.im. odmevom zbrisanega znaka. Znaka Uporaba vprašaja (znak '?') in zvezdice |anak '*') je v imenih zbirk in njihovih tipov tale : znaka 7 in * lahko nadomestita poli^bne posamezne znake ali skupine znakov. Če piSemo namesto lme_zbirke.tip izraz *■*, ISčem^, ali izvajamo ukaz nad vsemi zbirkami dolofiènega diska. Niz pomeni vae zbirke (ki jih iščemo v imeniku, brišemo z diska) za ukaza DIR in ERA. Ta Izraz pa ni veljaven za ukaze TYPE, REN in SAVE. Podobno oblikujemo še kombinaciji *,tip in ime_zbirke.*. z vprašajem nadomestimo poljuben znak v imenu zbirke in v njenem tipu. Oglejmo si nekaj primerov uporabe vgrajenih CP/M ukazov in krmilnih znakov. Za znak CR, ki se na zaslonu ali papirju ne zapiše, . tüomo vpisali znak 'cr'. Del vrstice, ki ga vrK|tì(tmo prek tastature, bomo podčrtali, nepodčrtani del bo predstavljal odgovor CP/H sistema. ************ » Primeri! * * * 4 t * « *-k JI 4 * 2.1, »kazi(povezani z imenikom DIR in DIR Cs Ta dva ukaza pomenita izpis celotnega imenika na trenutno izbranem diskovnem pogonu In na pogonu C. Imamo primera: ,A»DIR'i:r' ' ■ J TXT A< TEX COM : TEX PRL ( REFM COM PLI A» CPMINF TXT t xsssstss LIB t CPM1«F BAK 1 ED ; CON At CPMIHFI TXT ! CPMINFI . BAK 1 cpminfl PRN t PLI cqrt Al. plio OVL t PLI I GVL i- pli s qvl I PLI 'lib Al PLIT COM : PUT" DOC ; PLI DOC A>DIR C:'er' c Oil pli TXT Cj PIP com 1 sysgeij COM ; REFW ■ Cj CPMINF TXT < NESSPO TXT » ed c Ort : ceios asm C; IKE COM t ikel . COM ! DELTA com A> Nadalje imejmo DIR A:' PLI7.* •• Izpišejo sé imena vseh zbirk PLI?i ki imajo namesto znaka '?' kakäen . . znak (lahko tudi prazen znak) in so poljubnega tipa (npr. COM, OVL itd). Tako dobimo podspisek iz prvega primera; V primeru, ko CP/M ne .more naj ti ■ diska v izbranem diskovnem pogonu D, ko npr., disk ni vstavljen v pogonsko enoto, ko ni pravilno formatirah (inicializiran), ko ni napetosti v diskovni enoti, ali 5e vrata enote niso zaprta, se pojavi sporoSilo ' • BDOS ERR ON D-; ^oplR AiPLI?.« "cy' .Al PLI TXT « PH Al PL 12 OVL I PLI A< PLI DÜC COM ) PL ID LIB I PLIT DIR C: *.COM Izpišejo se vse zbirke tipa podspisek iz prvega primera. UVL ) PLIl COM I PLIT OVL DOC COM, ko dobimo A> 'cv' C> PIP COrt I SYSGEiJ Cl IKE COM,« I.KEI COM I REfM COM I DELTA COM 1 ED COrt 2.2..Ukaza za prikazovanje ASCII zbirk' Imamo samo dve vrsti ukazov, "in sicer ■rYPE ime^zbirke.tip TYPE D! ime^zbirke.tip V konkretnem primeru imamo: Cürt DIR PLI.COM Izpiše^ sé imenovana zbirka A>TYPE. PESMICA. POE ^er^ ■ OJ/ . RDEČA KAPICAj V GOZD JE SLA PO VOLKECA A>DIR PLI.COM^CT' Al PLI COM A> DIR PLI.ASM Te zbirke ni na disku in imamo; A>DIJi PLI .ASM ^CT-" NO FILE A> DIR D; Na disku D ni nobene zbirke t . A>DIH Dt^cr^ wo FILE A> Če vtipkamo namesto DIR DIW Znak 'CTL s' uporabljamo za ustavljanje (in nadaljevanje) prikazovanja na zaslonu, z znakom ;CTL c' pa ukinjamo prikazovanje (ne•listamo do konca). Kadar uporabimo ime zbirke ali tipa, ki ne obstaja (ga ni na disku), öe uporabimo ? ali *, se pojavi sporočilo A>qREHO.qqp'i:r' GREMO. Q pa » a>greh0.7??'cV gremo.77?7 A>aHEM«.*'C>-'' grem«.»7 a> In na disku ni zbirke DIW.COH, se pojavi sporočilo o napaki, in sicer; A*DIW"cr' D1W? . A» Pri izvajanju ukaza TYPE se na zaslonu lahko pojavijo le nekateri ASCII znaki {črke, Številke, ločila), drugi pa lahko povzročijo izvajanje zaslonskih oziroma kurzorskih funkcij. Zaradi tega - ss- ukazom TYPE ne prikazujemo zbirk, ki so tipa COM, REL, OBJ,: INT itd. ' 66 Ukaa TVPE se uporablja za prikazovanje zbirk tipov ASM, PLI, BAS, BAK, DAT, HEX, DOC, PAS, FO», COB oziroma za vse tiste zbirke, ki vsebujejo ASCII tekat oziroma ASCII podatke (npr. STREAM zbirke v PLI programih), 2.3. Ukazi za brisanje zbirk ERA *.* ali ERA D:*.* Ta dva ukaza zbrišeta vse zbirke iz diska tia trenutno izbrani diskovni enoti ali na enoti 13. Imaitio tole interakcijo: A>DIR Ot'cr' D» IME COM t IME PR« i IME ASM I Dt PRIIMEK COM i PRIIMEK REL t PRIIMEK PFlM I Di ULICA OBJ 1 ULUCA INT i ULICA BAS A>EHA ALL CY/M)IX A>DIR Dì'cr'^ HO FILE A> Za eporoöilo BDOS EBT.OB ON D: veljajo podobna pojasnila, kot smo jih imeli za tovrstne napake pri ukazu DIR. Pred uporabo ukaza EKA vedno preverimo disjlc z ukazom DIR in po izbrisu zopet uporabimo Ujcaz DIR. 2.i. Ukazi za preimenovanje zbirk, Okaz za preimenovanje ima le dve obliki, in sicer REN novo_iJiie.tip = staro ime.tip REH D!novo_ime.tip = staro_ime.tip Vzemimo tale primer, ko imamo na disku: IME SVrt PRIIMEK PLI B>DIR^ Po izbrisu lahko preverimo izbris z ukazom DIB. Seveda smo pred izbrisom vseh zbirk iz diska z ukazom DIR preverili, ali res lahko izbrišemo vse zbirke. Z ukazom ERA lahko briSemo tudi skupine'zbirk ali eno samo zbirko, pri čemer je skupina na določen način tipizirana (npr. vse zbirke tipa COM ali AS» itd.). Imejmo disk z več zbirkami, ko dobimo z ukazom DIR tole: Po izvedbi ukaza REN dobimo: D>REW LIRIKA.AHaPESMICA.GRD'^e*'' D>D1RJ^' D) PESMICA LEP t LIRIKA AK ■ PESMICA OH D> V primeru napačnega imena imamo; Ol IME Ot ULICA D« DRSAVA D> ASM « IME ASM 1 ULICA ASM t DR2AVA COM. I PRUWEK ASA I CQ.-1 1 KRAJ ASii I PRM t KQHTlWEtì ASM t PRIIMEK CÜM KRAJ C Oi-i KOMTIi-JEiJ PBW D»REN LIRIKA. OH-LlRÌIKA.AH'br/ LIR?tKA.AH'? D'' Nad tem diskom uporabimo ukaz EP.Ä *,ASM Po izbrisu dobimo z ukazom DIR tole: V primeru, ko je novo_ime Se ime na disku, se pojavi sporočilo: ~ DVc^f D>REN PESMICA.LEPgPESMICA.UH'c.-^ FILE EXISTS D> D>EnA ».ASM^gy^ D>DIR'er' DI IME com D: DRSAVA PiiW D> s PRIIMEK CÜ« I Konrii^EN PRig ULICA COM I KRAJ COM Podobno lahko uporabimo tudi ukaza ERA IME.* ERA' IME1.COM ko se V prvem primeru zbrišejo zbirke IME.COM, IME.ASM, IME.PRH' in IHE.SYM, v drugem primeru pa le zbirka IMEI.COH. Ukaz ERA ne dopušča uporabe vprašaj evi Če vtipkamo s konzole ERA BRIS in zbirka BRIS ni na disku, se pojavi sporočilo, in sicer: D>EHA BRIS'«;*'^ NO FILE D» Ukaz REN ne dovoljuje uporabe znakov '?' in '*' v imenih in tipih zbirk. 2.5. Shranitev pomnilnlSke vsebine v diskovno zbirko Ppmnilniäka vsebina, ki se nahaja v t.im. prehodnem pomnilniškem območju (od naslova lOOH navzgor), se shrani kot diskovna zbirka. Oblika ukaza SAVE je ena satna, in sicer: SAVE nnn x:ime_zbirke.tip Tu je nnn decimalno število, ki predstavlja število strani pomnilnika, pri čemer je stran sestavljena iz 256 zlogov. x: lahko tudi izpustimo, če je ime zbirke že na trenutno aktivirani diskovni enoti. Vzemimo primer, ko zbirko tipa HEX pretvorimo v zbirko tipa COM. Imamo tole: A>DDT IKE.HEX . , DOT VERS 2.2 NEXT ,.PC ■ UOO 0100 A>SAVE 16 IKE.COrt^cr^ Tu sta A> znaka sistema CP/M, kjer označuje A trenutno aktivirano diskovno enoto in znak > ,. da je sistem pripravljen za sprejetje ukaza s konzole. Nato sledi ukaz. DDT IKE.HEX S katerim se naloži zbirka IKE.HEX v pomnilnik; in sicer od naslova lOOH navzgor. Tretja vrstica kaže stanje programskega š.tevnika PC { naslov lOOH) in naslednje proste lokacije MEXT (naslov IIOOH). Zbirka IKE.TXT se tako v pomnilniku razprostira od lokacije lOOH do llOOH. V peti vrstici se nahaja znak 'CTLc', ko se doseže ponovna naložitev sistema CP/H. V šesti vrstici/ aporabimo nato ukaz SAVE, Ha disku imamo tako zbirki IKE.HEX in IKE.coti, pri čemer je IKE.COM izvršljiva' zbirka (se lahko uporabi kot ukaz IKE)', Prav tako ni dopustna znakov. uporaba krmilnih ASCII ,P,, Tako 2,6. Izbira diskovne enote Diskovno enoto izberemo z ukazom d! na zaSetku vrstice, ko je d = A,B, pomeni A: izbiro enote A, ko imamo: C>AiJkr:' . B>Cl"cr' C>pt'cr' D> . '2,7, Spremembe uporabniške številke Ukaz USER je en sam, in sicer USER n kjer je n = 0,1,...,15. če vtipkamo A>USER lólcr' NO FILE .A> se pojavi sporoCilo o napaki. Po vkljuGitvi oz, z mrzlim začetkom imamo uporabniško številko, ni£. Vsaka novo oblikovana zbirka se zapiSe kot uporabniška zbirka s številko nič. Ko pa. vtipkamo npr. USER 2 .pred ukazom SAVE, se bo ime te nove zbirke pojavilo samo v imeniku uporabnika s Številko 2, Ukaz ERA se bo v tem primeru nanaäal samo na imenik uporabnika 2, 3. Zbirke CP/M sistema Vsaka CP/M zbirka se identificira s. svojim imenom in pripono (tipom), CP/M zbirka ima enolično ime, ki je sestavljeno iz enega do osem znakov, z velikimi in/ali, malimi, črkami,, CP/M pretvori niale črke v velike še pred identifikacijo. V zbirčnih imenih se.,n,e smejo . pojavljati ..tile, zn-ikli < > t ] ? .Zbirke so lahko različnih tipov, kar pomeni, da se obravnavajo na različne načine. S pripono je v bistvu določena funkcija (pomen) zbirke. Pripona "(za pikb),"'je vsdlej 'sestavi jena iz O do 3 .znakov (podobno kot ime)-. Ime in pripona sta ločena s piko." Nekatere znane pripone so; .alg zbirka algol programa .asm 'zbirka v. zbirnem jeziku " , .bak prejšnja zbirka ' ■.,bas '.zbirk.a basic programa' .'cob zbirka 'cobol programa ' ;' ' ... jCOM izvršljiva zbirka '.DAT podatk_ovna zbirka ' ''' '.doc dokumentacij.sk'a'zbirka '.for zbirka' fortran programa .'hex heköadocimalha zbirka , . '■ .int zbirka v'vmesnem kodu (basic) .lib knjižnična zbirka ,mac ' makroj ska zbirka .obj objektna zbirka .pas zbirka. .pascal programa .pco pascalški izvajalni modul ..pll zbirka pl/1 programmi .prl po straneh premestljiva zbirka ,rel premestljivi strojni program .src izvirna zbirka cp/m uporabnikov , ' .sub,, submit zbirka ■ . , .txt tekstovna zbirka začasna zbirka Pripone lahko seveda oblikujemo todi sami,,toda nekateri programi (npr. prevajalniki, povezovalniki) zahtevajo natanko določene pripone zbirk, nad katerimi se uporabljajo (BAS, INT, PLI,, REL itn.). Neposredno s CP/_'1 sistemom izya'jajoei programi morajo imeti pripono COM. Svojim specifičnim zbirkam pa lahko damo tudi Številske pripone npr.: .. ,IKE,001, IKE.202, IKE.025 itd. Pripono lahko tudi izpustimo in imamo npr. samo ime IKE,' ali pa .tudi IKE.O, IKE.12 itn. Kasneje, ko bomo opisovali t.im. prehodne ukaze, bomo spoznali, da je lahko ime zbirke {brez navedbe njene pripone) ukaz, ki se izvede tako, da se ta zbirka, ki ima pripono COM, najprej naloži v hitri pomnilnik (od lokacije IpO', navzgor ) ter se po naložitvi začne izvajati kot program. :Prlpone bomo izpuščali tudi pri navedbah zbirk v drugih ukazih, ki sami poiščejo zbirko z- navedenim imenom in z ustrezno pripono. Taki primeri se pojavljajo pri kompiliranju, povezovanju zbirk in še kje. Pri navajanju oz. uporabi zbirk navajamo večkrat tudi ime diskovne enote, ki mu sledi zadaj znak ': Imena enot so Aj B, C, d, e itd. Osnovna (sistemska) diskovna enota je vedno. A, saj'ae le prek te enote izvede začetni (mrzli) ali ponovni (topli) zagon sistema. Tako lahko izvajamo operacije nad zbirkami iz pozicije ene diskovne enote, čeprav se te zbirke nahajajo na drugih diskovnih enotah, ■ Poznamo tudi enolične in večlične zbirčne navedbe. Pri večličnili ■ zbirčnih navedbah uporabljamo pri imenu in priponi zbirk znaka '?' in '*'. Ce zapišemo v ukazu navedbo zbirka *,*, potem pomeni ta navedba vse zbLrke na dani disketi, navedba *.TIP pa vse zbirke s pripono TIP. Podobno pomeni navedba IME.* vse zbirke z imenom IME ne glede na TIP. Drugo možnost imamo, ko vstavljamo v imena in . pripone znake '?Tako [wmeni pli?.* vso zbl-r^ke ■■■pll.*, PLil).*, -plll.*, PLI2.* itd, Navedba ."*,ba? bi pomenila vse zbirke *,bak, *;.đas itd. . ■ A. Prehodni ukazi 4.1 üvod Doslej smo si ogledali le t.im. vgrajene ukaze. Operacijski sistem CP/M pa dopuSSa praktično neomejeno razSiritev zaloge ukazov. Kako CP/M sistem ugotovi., da so na disku 5e drugi ukazi? Ko CP/H ugotovi, da vtipkani ukaz nI vgrajeni ukaz, pogleda v imenik diska, ali se tu nahaja zbirka z vtipkanim imenom (tj. ukaz), ki ima pripono COM. če je npr. IKE moj novi ukaz, potem mora CP/M najti v imeniku zadevnega diska zbirko IKE.COM. Pri tem se pojavi vprašanje, kakšen je program, ki deluje kot ukaz. Imamo tole osnovno definicijo! Program je zaporedje ukazov, ki je shranjeno na dlaku v zbirki s pripono COM in tak program se pokliče v izvajanje z vstavitvijo njegovega imena (brez pripone) s konzole. Vsak tak program se imenuje prehoden program ali prehoden ukaz, Za t.lm. prehodni ukaz iraajno tako tole shemo: A > UKAZ parametri 'cr' — pomik valja označuje ko- nec ukazne vrstice — ukaz ima lahko tudi para- metre — ukaz, ki bo izvršen — znak pripravljenosti si- stema CP/M Torej lahko posplošimo! A> ime_2birke parametri 'cr' pomik valja na koncu vrstice možni parametri COM zbirka, ki bo naložila in izvräila CP/M pripravljenost Deseda "prehoden" pomeni, da ukaz oziroma program ni stalno naložen v hitrem pomnilniku, shranjen pa je na disku. Beseda "diak" lahko pomeni upogljivo disketo ali diskovno napravo tipa Winchester, Operacijski sistem CP/M 2.2 omogoöa tuđi uporabo t.im. trdnih (wlnchesterakih) diskov, ki lahko shranijo veliko vefije število zlogov kot upogljivi diski. Proizvajalec CP/M sistema (Digital Research) ima svojo zalogo prehodnih ukazov, ki si jih bomo na kratko ogledali v nadaljevanju. Ti ukazi BO! STAT PIP . ed DUMP sysgen MOVCPM ASM DDT LOAD submit xsü13 4.2. STAT i statistika Ukaz stat, ki pomeni statistiko, daje podatke o zbirki ali skupini zbirk na disku ter le vrsto drugih podatkov, ki so za ujxirabnika bistveni. Med take podatke sodijo, tudi podatki o napravah. OpiSimo najpre.j pet oariqivnlh možnosti, nato pa si oglejmo §e primero, tako kot se pojavijo na koniolnem terminalu. IBĆfiamo tole: STAT 'cr ' Pokažejo se pridevki in količina poznega prostora na vseh diskeuali, ki $o bile po zadnjem mrzlem ali toplem zagonu dostopljene STAT d : 'cr ' Pokaže se količina praznega prosto»« na disku 'd' STAT d:ime_zbirke.tip'cr' Pokažejo se obseg in pridevki ene ali več zbirk lme_zbirke.tip (v primeri vefiuittnosti, ko uporabljamo znaka ' in '*'. če izpustimo 'd:', je mišljen trenutno izbrani disk STAT d:ime zbirke.tip^pri'cr ' Zbirki ime zbirke, tip se priredi plifiae-vek 'pri' na disku 'd'. Opombe gleSTAT CPHTt'cr' RECS BYTES EXT AC C 126 16K •I R/tf A>CPrtI«F.BAK 126 16K 1 R/W AiCPrtllJK.TAT 68 9k i R/VI A»CP!1I«f1-BAK 75 - lOK 1 R/W AJCPMINFI 7 3 ■ ■ 9K ■ 1 R/W AiCPMIWFl'TXT 60 ÖK i R/W AlCPMI.^IFa.BAK ■ ' ■ 6K • r R/U A^CPrtXI^F8•PRi^ 60 8K I R/W A»CP«IWFS.T;CT Kot vidimo, so imena zbirk v tem spisku strogo abecedno urejena, kar vobče ne velja za Imenik, ki ga izllstamo z vgrajenim ukazom DIR,- V prvem atolpou imamo Število zapisov, pri čemer znaša en zapis 128 zlogov, kot ustreza CP/M formatu zbirke. Zbirka se vselej. zaokroži - na ätirikratnik zapisa, kar je razvidno iz stolpca 2 oznako 'BYTES'. Nadalje označuje 'EXT' ätevilo obsegov po 16k zlogov diskovnega prostora. LogiSni- obsegi sodijo v mehanizem, s katerim CP/M- upravlja zbirke. Stolpec ' 'ACC' označuje pridevek dostopa, ki je ali R/W ali R/0. Z uporabo večumnega znaka ' dobimo iz zadnjega seznama podseznam vseh tistih zbirk, katerih imena imajo pripono 'TXT z vsemi pripadajočimi podatki In s podatkom o prostem prostoru na disku: BVTES REMAIMING A» 7SK Podatke za posamezno zbirko dobimo v primeru a>stat cpmimf.txt ^cr' RECS BVTES ÉXT ACC 126 ' I6K 1 R/W A)CPMIMF.TXT BVTES RErtAINING OH Ai 72K Če zbirke; ni na disku, se pojavi sporočilo in imamo npr. A>5tAt CPM.TXT ■ FILE NOT FOUWD A> Pri treh diskovnih napravah dobimo sporočilo: A>B>STAT"c'-' At R/U< SPACEi TSK Bi R/W. SPACE: BZK Ci R/W» SPACEl I57K Kot vidimo. Ima naš disk Se za 72k zlogov razpoložljivega prostora, diska Bin C pa imata po 82k In 157k prostora. Spremenimo satus zbirke PESMICA.POE v bralni, ko dobimo A>STAT PESmCA.PUE SR/0 ■ " PESMICA.POE SET TO R/O. Nato spremenimo status te zbirke v sistemski, ko Imamo A>STAT PESMICA.POE iStS'cr' A>STAT * .TXT'er' PESMICA.POE SET TO SYS A> RECS BYTES EXT ACC 126 I6K 1 R/U AsCPltlNF.TXT TO 9K ; 1 R/W AiCrtlliJKI .TXT 60 SK 1 R/U A iCPrf I.JF2.TXT 3] 4K I R/W AfPL12.TXT . 65 1 k K 1 R/W A:PL I INFI.TXT e IK 1 R/W AtHEiIciE.TXTr 10 SK 1 K/W AiSLlKA.TXT 43 ,.ĆK I R/W AiUVOD.rxT 5 1. R/U AIUVÜÜI.TAT BYTES .REIdAINIHQ ' üig AI 72K . Sedaj preverimo novi stanji zbirke PESMICA.POE, ko dobimo A>STAT PESHICA.PQE ^cr' RECS BYTES EXT ACC 1 IK I H/O A»(PESMICA.POE) BYTES RHHAIMIWG OH A> 72K 70 Sistemska zbirka se pri uporabi ukaza STAT zapiŠG V oklepajih in tudi v celotnem seznamu imamo : a:>STAT *•* 'cr' fiz: logični napravi log; {v vrstici jo lahko veö prireditev, ločenih z vejico) STAT usr: 'cr' Sporoči se trenutno število uporabn^ikov In tiste uporabniške StevlJ;ke, za katere so zbirke na disltih (na diskih, ki HECS BYTES EXT AC C SO bill dostopljeni) 126 t6X 1 R/U AlCPillNF.BAK 186 16K 1 ft/W AtCPilIriF.TXT STAT d:dsk:'cr' 68 9 K 1 K/U A:CPrtliJKl • BAK Sporoči se karakteristika diska 'd' 75 lOK 1 R/W AtCPMIiilFl .PRi«l 70 9« 1 R/W AsCPllI.MFl .TXT STAT d:=R/0'cr' à . 60 8K I R/W AlCPlUMFS.aAK Disk 'd' ima s tem pisalno zaSčito 64 8K 1 R/W At(;Pr{INF2.pRl\l 6tt BK 1 R/W AiCPHli'aFa.TJs.T CP/M sistem pozna logične in fizične napc^vc. 5S 7K I R/W A;£D.C0.1 Logične naprave imenujemo tudi kanale. Ki^nal 0 OK 1 R/W A:PESi-lICA.BAK ali logična naprava označuje neko sploäno 1 IK I R/0 AiCPESaiCA.POE) funkcijo mikroračunalnika, dočlm je fizična 0 OK 1 R/W AlPLlS.BAK naprava neka periferna enota, ki smo jo ip-bteali 31 i(K I h/W AJPL12.TXT za opravljanje te funkcije. CP/M zahteva, da V: 35 1 IK 1 R/W AtPLllNFl.TXT izberemo fizično napravo in jo prir®#teno 73 1 »k 1 H/V AtfiEFrt.CDM kanalu. Prireditev dosežemo z uposabo 0 OK 1 H/W A:REZIM£.BAK ustreznega STAT ukaza. ; ; 8 IK t R/W AsREZIME.Pm^ ■i; 8 IK 1 R/y rtiREZU1E.TXT CP/H sistem ima ätiri logične kanale , (naprav«); 0 DiC 1 H/U AtSLIKA.BAK 1 1 2K 1 R/W AiSLIKA.PRiJ CON: je operatorska konzolna funkcija za VFta- i. 10 2K 1 R/U AiSLIKA.TXT 1 janje ukazov in za prikazovanje po;à'at- 41 6K 1 n/w A«STAT.con kov 66 9K I H/W A;TEX.CÜM RDR: je bralna funkcija za trak, za sprejem 77 lOK 1 R/U AlTEX.PRL podatkov '.V 37 SK 1 R/U AIUVQD.BAK PUN; je luknjalna funkcija za trak, za oddajo 49 7K I H/U A;UVOP-PRW ^ podatkov 43 ĆK 1 R/U AiUVOD.TXT LST; je funkcija za listanje, za listanje fo- 6 IK 1 R/W A;UVODI-BAK datkov 6 IK 1 H/W A:UVÜDl .PRiM •1 5 IK 1 R/U A»UVOD I-TXT nadalje imamo 12 mogočih fizičnih naprav; BYTES REMAINING □N At 72K Ce spremenimo status zbirke CPMINF.BAK iz stanja DIR v stanje SYS, tedaj se v imeniku, ki ga dobimo z ukazom Din, ne bosta pojavili zbirki PESMICA.POE in CPMINF.BAK, kot kaSe naslednji primer: TTY: je počasna konzola (teleprinter) CRT i je hitra konzola (priìtazovalnlk s katodno elektronko) BAT! je paketni procesor UCl ! je uporabniško določena konzola PTR: je bralnik traku PTP; je luknjalnik traku uni: je uporabniški bralnik Stev. 1 Al T EX COM t TEX PftL ; REFrt COM t PUlIiMFl T XT Al CPHINF TXT ; CP(1IWF2 pm t CPM1i,IF2 TXT t CPMIMFI TXT A! CPMXNFI BÄK t CPMINFl PRiM I PLI2 BÄK t PLIS TXT Al STAT COM 1 PESWICA BÄK 1 RES IME BÄK 1 REZIME TXT At REZIME PEN 1 SLIKA SA K t SLIKA TXT t SLIKA PRN J:. J At UVOD TXT t UVOD BÄK 1 UVOD PKig t UVODI HAK V: i At UVODI TXT ; UVODI PRN 1 CPMIi^FS BÄK t EP COM 0., ' a> Imenik, ki ga dobimo z ukazom DIR, ni abecedno urejen in zbipke se pojavljajo nekako v zaporedju, kot so bile vpisane na disk. Izjema v zaporedju lahko nastopi pri. zbirki tipa COM, ki ae mora zapisati na strnjenem odseku lokacij (ostale zbirke so lahko razprSene po diaku). 4,4. 'Statistika' nap^ Ukaz STAT za naprave daje podatke o irizifinih in logičnih napravah. Imamo tele značilne primere» STAT de V! 'cr' Ta ukaz da sporočilo, kako so fizične naprave povezane s Stirimi logičnimi napravami STAT val ( 'cr ' Sporočilo vsebuje podatke o možnih prireditvah naprav in o nekaterih STAT ukazih STAT logs==fizt'cr' S tem ukazom se priredi fizična naprava UK2: je uporabniški bralnik štev. 2 UPI: je uporabniški luknjalnik ätev. 1 UP2: je uporabniški luknjalnik Štev. 2 LPT: je vrstični tiskalnik ULI ; je uporabniška naprava za listanje Mogbčlh je le 16 prireditev fizičnih na®rav logičnim kanalom; Funkcijo CON; lahko realiziramo s flziS^ilifti napravami TTY;, CHTt, BAT; in UCH. Funkcijo RDR! je mogoče opraviti s fizičnimi napravami TTYi, PTR:, URI; in UR2i, 2a funkcijo PUNt lahko uporabimo fieibne naprave TTYi, PTP>, UPI: in UP2i, Funkcija LST; se lahko uresniči a uporabo fizičnih naprav TTYi, CRti, LPTi in ULl;. Seveda pa moramo napisati programe za upp|rabo fizičnih naprav za vsak polten mikroračunalniSki sistem sami. Te prodoma napiše navadno proizvajalec mikroračunalni^fega sistema. Nadalje se pri zagonu sistema izvede določena iniciallzacija, ki priredi kan|4om standardne fizične naprave. 2a tračne nag^ve velja, da niso le papirne, marveč 90 lahko lèdi magnetne. Naprava BAT; dejansko nI flzifina in ima tale pomen: če priredimo BAT: napravo CON: kanalu, ae bo pojavil* vhod iz trenutne RDRj - naprave,; doCim se bo korizolni izhod opravil na trenutno LST! napravo.- 7 nadaljnem si oglejmo nekaj primerov.: Uporabimo ukaz STAT đevi'cr': ■ ; B>STAT DEVt'cy' ■ CON» IS TTY: . Küa» IS URI J PUN« IS UPß:' LSTi IS. UH I V levem stolpcu imamo logiiSne kanale, v desn^ pa njim prirejene fizične naprave. To pomeni, da smo predhodno uporabili (v našem primeru}-STAT ukaz za prireditev {glej kasneje). Naslednji ukaz naj. bo STAT valt'cr', ki- prikaže pregled vseh prireditvenih inoSnosti in rabi kot navodilo uporabniku; Imamo: B»STftT VALi'sy' D!=R/0 Os FILENAME.TYP iH/0 Jn/W. $SV5 SĐJB ĐSKi ĐiDSKt :TEMP R/O DISK: iSET INDICATORI DISK STATUS : USER STATUS > USB: -lOBVTE ASSIGN: COWt = TTYi CRTs BAT: UCl.t RDRi e TTY: PTB! URI! UBS: PUN: TTVi PTP: UPli UPSt. LSTt = TTYl CRT: LPT> UH t B» Tu. imamo: D;=B/0 Vtipkaj STAT d:=Ryo'cr', đa po^ Stane disk d; bralen (toda ne pisalen) D:=FILENAME.TYP jjpri Vstavi STAT d:ime_zbirke.tip 0 pri'cr' za nastavitev zbirenega. pridevl« DSK b:DSK: ' ' Vstavi ' STAT d':DSK: 'cr ' za pregled pomnilniSkih značilnosti, danega diska d: Vtipkaj STAT DSKi'cr' za pregled pomniInišklh znafiilnosti vseh predhodno dostopij enih di-, skovnih enot ' . ■ USR; . Vstavi STAT USR:'cr' za prikaz stanja uporabnikov IOBYTE ASSIGN Hožne prireditve fizičnih naprav logičnim kanalom' Ukaz za' prirejanje lahko izpiäemo v primeru ve£ prireditev tudi v okrajšani obliki, ko imamo: a» STAT C ON I =C RT : , LS T ) =LPT : , RDR : » PT BI, PUH : = T T Y i-tr' Posledica tega ukaza je: B>STAT UZVì'er' CONI IS CBTt RDBl: IS PTRi PUM» IS TTYl LST; IS LPT J Ukaz STAT uEr:'cr' prikaSe trenutno število uporabnikov ter izllsta uporabni.ške številke, 2a katere obstajajo na disku pripadajoče zblritei S>STAT USR:''Cy' ACTIVE USER I O' ACTIVE FILES: O B> Tu pomeni: ACTIVE USER : O ACTIVE FILES : 0. Število trenutno aktivnih uporabnikov je ni& Na disku so zbirke z upora-niško številko O, drugih i • pa ni (1, 2, 3, 4) E ukazom STAT x:DSK:'cr' prikažemo, kako so podatki shranjeni na disku ko' imamo npr. B>STAT Al DSK I 'cr' . ■ , Al DRIVE CHAKACTEHISTICS 19441 128 BYTE RECORD CAPACITY 2431 KILOBYTE DRIVE CAPACITY 64! 32 BYTE DIRECTORY ENTRIES 64: CHECKED DIRECTORY EMTBIES ■126: RECORDS/ EivTEWt 6: RECORDS/ BLOCK 26:' SECTORS/ TRACK 2: RESERVED TRACKS Tu nastavimo x: z izbiro (A, B, C, ...), če pa ga izpustimo, se prikažejo pregledi za.- vse predhodno dostopljene enote (po hladnem ali toplem zagonu sistema), ko imamo npr, B>STAT DSKJ'C^' Al DRIVE characteristics 19441 l£ö BYTE RECORD CAPACITY 243: KILOBYTE DRIVE CAPACITY 641 32 BYTE DIRECTORY ETlTftl ES 64: CHECKED DIRECTORY EWTBIES 128: RECORDS/ EXTENT e I RECORDS/,BLOCK 261 SECTORS/ TRACK ,'21 -HESliRVED TRACKS Bi DRIVE.CHARACTERISTICS 1.944: 128 BYTE RECORD CAPACITY S43s KILOBYTE DRIVE CAPACITY 64: 32 BYTE DIRECTORY &ITRIES 64: CHECKED DIRECTORY EfJTRIES 128) RECORDS/ EXTMT B< RECORDS/ BLOCK S6i SECTORS/ track ,2: RESERVED TRACKS Ti podatki bržkone ne bodo posebno zanimivi za uporabnika, njihov pomen pa je tale: 12B BYTE' RECORD CAPACITY ' ' tò je maksimalno število 128-zložnih Kapicov, ki se lahko shranijo na disku KILOBYTE DRIVE CAPACITY to je maksimalno število kilozlogov, ki se lahko sliranijo na disku 3 2 BYTE DIRECTORY ENTRIES je maksimalno Število zbirk, ki se lah-; ko shranijo na disku CHECKED DIRECTORY ENTRIES je enako kot za 3 2 BYTE DIRECTORY EH- ' TRIES pri 'zamenljivi)! diskih, toda enako 'O' za trdne diske RECORDS/ EXTENT • je maksimalno število zapisov na vstop v zbirčni imenik . RECORDS/ BLOCK je minimalna količina prostora na disku, ki se lahko,dodeli zbirki SECTORS/ TRACK je število sektorjev na stezi diska RESERVED TRACKS - je število diskovnih stez, ki jih ni mogoče uporabiti za shranjevanje zbirk Disk je mogoče zaščititi pred nekontrnliranim zapisom, ko Imamo ukaz in učinek tega ukaza: B>STAT DfJÌ/O'cr' B>STAT Al n/y. SPACEi 7SK 6: R/W> SPACE« 157K DS R/Qi SPACEi S29K V povezavi z ukazom STAT se lahko pojavi.tudi več vrst sporobli o napakah. Tako Imamo; INVALID DISK ASSIGNMENT se lahko pojavi, če smo aa diskovnim doloöilotti {npr. Bs) postavili nekaj drugega kot =R/0 BDOS ERR Oa d t SELECT se lahko pojavi pri navedbi neobstoje-bega diska (d:). Mapako odpravimo a znakom 'ce' ali 'CTL c'. Računalnik lahko pride v neskončno zanko, fie rou navedemo prazno diskovno enoto FILE NOT FOUND se pojavi, če smo pozabili dvopičje BDOS ERR OH đ:R/0 se pojavi pri poskusu zapisa na pisalno zaščiten disk 4.5. Kopiranje zbirk z ukazom PIP PIP je ' okrajšava za Peripheral Interchange Program, s katerim kopiramo zbirke iz enega mesta na drugo. Imamo tri osnovne skupine PIP ukazov, in siceri PIP 'cr ' PIP se naloži v pomnilnik in se javi z z znakom pripravljenosti '*' PIP d:novo.tip=eiStaro.tip p 'cr' Ta ukaz kopira zbirko staro.tip z diska 'e ' v zbirka novo.tip na disku 'd' PIP d:novo.tip=e:starol.tap p fistaro2.tep q CDlikuje se zbirka novo.tip na disku d: i/, vsebin zbirk staroX.tap z diska e j pri parametru 'p' in staroZ.tep z diska fs pri parametru 'q' Imena zbirk in njihove pripone so lahko dvoumne ali enoumne. Navedbe ' diskov se lahko izpustijo; v teh primerih se upošteva trenutno aktivna diskovna enota. Parametri niso obvezni, zaprti pa so v oglate oklepaje, če jih uporabimo. PIP ukaz sprožimo torej na dva načina. Kadar imnmo predvideno eno samo PIP operacijo, uporabimo ul;az A PIP pip_uka2na_vr3tica'cr' Če pa predvidevamo več PIP operacij, imamo A PIP'cr' prihodna_zbirka = odhodna_zbirk,n kjer je prihodna zbirka nova, odhodna zbii^a pa stara zbirka. Podatki se vselej kopirajf la odhodne na prihodno zbirko (gibanje podati^ iz desne strani enačaja na njegovo levo Strang. Ca prihodna zbirka ie obstaja, se njena p|#otna vsebina zbrlSe oziroma je za upor^nika zgubljena. Pri kopiranju lahko uporabljamo veČ paraMetrov (hkrati) in imamo tale osnovni seznam: B On E Gn H I L N Pn imamo "bločni" prenos zbrišejo se vsi znaki za stolpcem 'n' imamo odmev na konzolo, tako kot kopiranje poteka med prenosom se odstranijo obi iko^opomični znaki PIP kopira zbirke iz drugih uporaßiiiS- kih območij preizkuäSa se pravilnost HEX formai^ ignorirajo se zapisi 'sOO' pri prkosu zbirk v HEX formatu velike črke se pretvorijo v male doda se vrstična Številka k vsaki pre- nešeni vrstici prenaSa se objektna zbirka (ignorirajo se znaki konca zbirke) izda se pomik za stran na vsakih 'n ' vrstic Qs 'CTL z ■ R Ss 'CTL Tn O W Z določa konec kopiranja po nizu 's.' omogočeno kopiranje s sistejtiske zbirke z' določen je začetek kopiranja «a nizom 's ' nastavijo se tabulirne pozicije na vsakem 'n-tem' stolpcu male črke se pretvorijo v velike, omogoči ae kopiranje na R/O zbirk® izniči se bit parnosti ASCII znalcäfv Tako imamo npr. uporabo parametrov v nasl«đnj-ih dveh primerih; ali PIP B:=Aiime_zbirke.tlp BEP 'cr' PIP Bi=Ailme zbirke.tip B E F 'cr ' kjer smo uporabili parametre B, E in F, *pip_ukazna_vrstica'cr' *pip_ukazna_vrstioa'cr' *pip_ukazna_vrstica'cr' V primeru napake se pri uporabi prvega PIP ukaza vrnemo v CP/M, pri uporabi drugega ukaza pa v stanje PIP (ko imamo znak pripravljenosti '*'). Pri uporabi enačaja velja za zbirke splošno toles VGRAJENI UKAZI n f R M A T časopis za tehnologijo računalništva in probleme informatike *************** t* t ******* t*********** t till, tiitiiiiitt* *************************************** Parraova 41 61000 Ljubljana Tel.(061)312-988 ************* . CP/M* • ************* programirni'priročnik P. Železnikar urednik časopisa INFORMATICA DIR DIR c; DIR inie_2birke.tip' DIR *.tip DIH iBie_zbirke. * DIH a?????.* DIT ime zbirke.b?? Prikaži zbirčni imenik z diska Prikaži zbirčni imenik z diska 'c ' PoiSči imenovano zbirko na disku . Prikaži vse zbirke iroenovanega tipa Prikaži vse zbirke s. imenom iine_zbir- ke s trenutno izbranega diska Prikaži vse zbirke z dolžino imena 6, ki začenjajo s črko 'a' ali 'A' Prikaži vse zbirke z ireenoin ii!ie_zbir-ke in z začetkom tipa. 'b ' ali 'B ' TYPE ìine_zbirke.tip TYPE c:iine_zbirke.tip SAVE n iitie_zbirke.tip SAVE n c:in\e_zbirke.tip, Prikaži ASCII zbirko z diska: Prikaži ASCII zbirko z diska Reši imenovano zbirko na disk ; Reši.imenovano zbirko na enotò 'c ' 'n' je Število strani, stran je--256 . zlogov, začetek je na naslovu lOOK Zbiši imenovano zbirko z diska Zbriši vse zbirke z diska Zbriši vse zbirke danega tipa Zbriši vse■zbirke z imenom ime_zbirke Zbriži imenovano zbirko z diska 'c ' ERA iine_2birke.tip . ESA *.* ■ ERA *.tip ERA irae_2birke.* ERA e:ime_zbirke.tip REN no_ime.tip=st_ime.tip Preimenuj zbirko z diska v no_iir.e REN c:no_ime.tip=st_iffie,tip Preimenuj zbirko z diska 'c ' v .no_iTiie C5 Preklopi na označeno diskovno enoto, kjer je c = A, B, C, D, ... , P USER n Spremeni uporabniško območje PREHODILI UKAZI --^rr * cp/iii je zaščitni znak podjetja Digital Research ljubljana 19S1 avtorske pravice pridržane ■ l' DDT DDT ime zbirke.tip ASM inie_zbirke ASM c:ime^zbirke .iiSM lnie_zbirke.xyz Pokliči program za dinamično poprav-- Ijanje programov in podatkov Pokliči DDT in naloži imenovano zbirko za popravljanje ■ • Prevedi zbirko ime_zbirke tipa iz zbirnega v procesorski jezik Prevedi zbirko i.ine_zbirke z diska ■ 'c ' Prevedi...zbirko ime_zbirke z uporabo" stikal X, y in z : >; - ime diska z ime_zbirk.e (.ASM) y - ime diska, na katerega se bo naložila ime zbirlca.HEX y = Z pomeni presltok parametra 2 - ime diska, na katerega se bo naložila inie_zbirka.PIlH 2 = X pomeni izpis ime_zbirka.PRN na konzolo 2 = Z pomeni preskok parametra Preskok parametral ustrezna zbirka se ne bo generirala LOAD ill!6_zbirke LOAD c:ime_2birke DUMP Ime zbirke,tip DUMP c:ime_zbirke.tip MOVCPM n HOVCPM n * MOVCPM * * SYSGSN SUffi^ilT ime_zbirke parametri irae__zbirke.HEX naloži kot iwe 2bir- ke.COM {z diska v pomnilniki Raloži ime 2birke,HEX z diska 'c' Prikaži zbirko z diska v HEX formatu Prikaži zbirko z diska- 'c' v HEX for. Oblikuj in Izvedi nK-zlozni CP/M sistem Oblikuj preslikavo nK-zložnega CP/M sistema Oblikuj preslikavo maksimalnega CP/M sistema glede na dani pomnilnik Pokliči program za generiranje CP/M sistema Izvedi SUB zbirko z uporabo pripadajočih parametrov XSUB ED ime_zbirke.tip ED c:ime_zbirke.tip STAT STAT o: STAT *.* STAT c:*.* STAT *.tip STAT C:*.tip Izvedi razširjeni SUBmit program Izvedi ED {urejevalni} program za oblikovanje in urejanje imenovane zbirke Izvedi EĐ program za oblikovanje in urejanje imenovane zbirke z diska Prikaži razpoložljivi prostor na vseh vstavljenih diskih Prikaži razpoložljivi prostor na disku 'c ' PrikaSi posamično zasedenost za vse zbirke na disku in razpoložljivi prostor Prikaži posamično zasedenost za vse zbirke in razooložljivi prostor na disku 'c' Prikaži posamično zasedenost za vse zbirke določenega tipa in razpoložljivi prostor na disku Prikaži posamično zasedenost za vse zbirke določenega tipa in razpoložljivi prostor na disku 'c' vt.Ž STAT ime zbirke.* STAT c:inie_2birke.* STÄT ime_zbirke.tip STAT c:imè zbirke.tip STAT ime_zEirke.tip STAT C lime.zbirke,tip STAT DEV: STAT VAL: STAT DSK: STAT OSR! STAT C!=R/0 STAT ime_2birke.tip $R/0 STAT iiae_zbirke.tip j!R/W STAT ime_zbirke.COM $SYS STAT ime_zbirke.CÖM gDIE STAT sn!=fn: Prikaži posamično zasedenost za vse imenovane zbirke in razpoložljivi prostor na disku oziroma disku 'c' Prikaži podatke o imenovani zbirki in razpoložljivi prostor na disku ozi-ma na disku 'c', kjer dobimo z uporabo stikala 's' več ^datkov Prikaži dejansko prireditev naprav Prikaži možne prireditve naprav Prikaži značilnosti đi$ka Prikaži trenutno uporabniško področje 'c' se spremeni v bralni disk, na katerega ni moč zapisovati Zbirica postane bralna (nepisalna) Zbirka postane bralna in pisalna Zbirka postane sistemska in v imeniku nečitljiva (zakrita) Zbirka postane nesistemska in v imeniku čitljiva (odkrita) Splošni (logični) napravi (sn) se priredi fizična naprava (fn), in sicer s sn = CON, LST, PUN, RDR fn = TTY, CRT, PTP, PTR, LPT, UPI, URI, BAT, ULI, UP2, UR2, ÜC1 (glej odstavek p V/I zlogu) PIP UKAZI PIP *a:=b:ime_zbirk6.tip *a;no_ime.*=b s st_ime.tip Pokliči program za periferno izmenjavo podatkov Kopiraj imenovano zbirko z diska 'b' na disk 'a' Kopiraj in spremeni ime zbirke iz Starega (st) na disku "b' v novo (no) na disku 'a' PIP a:=b:ime_zbirke,tip PIP a:=b:*.-PIP a:=b;ime_abirke,* PIP aj=b:*.tip PIP LST:=ime_zbirke.tip PIP PUN:=ime_2birke.tip PIP CONä=ime_zbirke.tip PIP ime zbirke.tip=RDH: Pokliči PIP zbirko iz Kopiraj vse disk 'a' Kopiraj vse nih tipov Kopiraj vse diska "b' in kopiraj imenovano diska "b' na disk 'a' zbirke iz diska 'b ' na imenovane zbirke različ-iz diska 'b' na disk 'a' zbirke določenega tipa iz na disk 'a' ■ (npr. Izlistaj zbirko na LST napravi na kvalitetnem tiskalniku) Izluknjaj zbirko na POH napravi izpiSi zbirko na konzolni napravi Kopiraj podatke iz bralne naprave v imenovano zbirko . *no_ijne.tip=a_iiiie. tip,b_iiiie.tip,c_tme.tip Kopiraj štaJcnjene ASCII zbirke v zbirko no_ime.tip *a : no_iiae. t ip=b : a_ime. t i p, b : b__iiiie. t ip, b : c_iine .tip ~ Kopiraj staknjene ASCII zbirke 2 di- ka Ts ' v zbirko na disku 'a ' *no_ime. tip=a_ii6e. tip [X J , b_ijne. tip [x] Kopiraj staknjene neASCII zbirke v zbirko no_j^e,tlp ■PIP LSTj=a_ime.tip,b_inie.tip Izlistaj zbirki fia LST napravi PIP LST:=c:a_inie.tip,C:b_ilne.tip Izlistaj zbirki iz diska 'c' na LST . napravi , . CON: KonzOIna naprava {definirana v BIOSu) EOF; Pošlji 'konec_zbirke ' (ASCII znak 'CTL z'J v napravo INF: Vhodni vir (se nastavi.v PIPu) LST: Naprava za listanje (definirana v BIOSu) NUL: Poliji 40 znakov MUL v napravo OUT: Izhodna točka (se nastavi v PIPu) ■pRN: Enako kot LST;; TAB položaji so pri vsakem osmem znaku, oštevilčijo se vrstice in izdajajo strani na vsakih ' 60 vrstic po začetni izdaji ,PUN: Naprava za luknjanje ("definirana v ĐIOSu) EDRi Naprava za branje (definirana v BIOSu) Dodatne fizične naprave so določene v odstavku, ki obravnava V/I zlog PIP PARAIffiTRI UKAZSi KRMILNI ZNAKI PIP parametri so zaprti v oglata oklepaja za PIP ukazom, npr: *ime_zbirke.tìp=RDR:[B] B Dn E F Gn H ' I L N O P Pn Qniz Sniz R Tn U V w X E ':00- Beri podatkovni blok do znaka 'CTL s ' Zbriši znake za stolpcem 'n' Vse kopije pošlji tudi na konzolo Odstrani oblikpvn'e pomike Vzemi zbirko ±z uporabniškega področja 'n' Preizkusi pravilnost HEX formata Enako kot parameter H vendar^ z izpustitvijo nizov Spremeni vse velike.znake v male znake Dodaj Številke vrstic brez vodečih ničel Prenesi objektno zbirko brez upoštevanja konca zbirke Vstavi oblikovalne pomike na vsako 60. vrstico Vstavi oblikovalne pomike na vsako n-to vrstico 'CTL z.' ... Prenehaj s kopiranjem, ko je bil najden niz "CTL z' ■ ■ Začni s kopiranjem, ko je bil najden niz Beri SYS zbirko Razširi TAB presledke na vsakih 'n stolpcev Spremeni vsa male znake v velike znake Verificiraj kopirane podatke Zbriši R/0 zbirke ob prihodu Kopiraj neASCII zbirke . Postavi,-ničti parni bit pri vseh zlogih zbirke PIP KLJUČNE BESEDE znak funkcija 'CTL c' Naloži CP/M (topla naložitev) 'CTL e' Začni z novo vrstico 'CTL h' Pomik za mesto nazaj z brisanjem znaka 'CTL i ' TAB: pomik, na -Stolpni osemkratnik 'CTL j ' Vrstični- pomik 'CTL m' Pomik valja , .,■ . 'CTL p' Vključitev in izključitev tiskalnika 'CTL r' Ponovi trenutno vrstico 'CTL s' Ustavi prikazovanje izhoda . Vsak znak z izjemo 'CTL c' sproži ponovno prikazovanje izhoda ... 'CTLu' Zbriši vrstico 'CTL x' ZbriSi vrstico in pomakni kurzor na začetek vrstice 'CTL z ' Konec vhoda s: konzole (pri ED in PIP,) 'CTL ' Zbrisi in prikaži zadnji znak (odmev) kod 03H 05H O0H 09H OAH ODH iOH I2M 13H 15H I8H IBH 7rH * NEKATERI ZBIRČNI TIPI ******************************** -t.ž .ASC ■ ASCII tekstovna zbirka, ..tudi BASIC izvirna zbirka ASM Zbirka V zbirnem jeziku (ASM izvirni program) BAK Kopirana prejšnja zbirka -(z urejevalnikom) ■ BAS ■ Zbirka z BASIC izvirnim programom COM ' Ukazna zbirka (prehodni izvršljivi program) DAT Podatkovna zbirka ■ ■ ■ ■ DOC Dokumentacijska zbirka FOR Zbirka s FORTRANskim izvirnim■programom INT Zbirka z iTnesnim BASIC programom (izvršljiva) • HEX Zbirka s heksađecimalnim formatom (za LOAD ukaz) LIB Knjižnična zbirka, ki se uporablja v makrozbirniku PLI PL/I izvirna zbirka PRJJ Tiskalna zbirka ,i(proizvod zbirnika, prevajalnika) REL Premesti j ivi modul SAV Sistemska zbirka (V2.X) SÜB Tekstovna zbirka, ki jo izvrši SUBMIT program SYM Simbolna zbirka TiX Tekstovna zbirka XRF Zbirka prečnih referenc $$$ zaSasna zbirka Dolžina zbirSnega imenSi" ftajveč 8 znakov Dolžina zbirčnega tipa : najveò 3 znaki ali O znakov Nedopustni imenski in tipski znaki: R pomik S zna T n U n X r X * DDT UKAZI t i** Beri zbirko, določeno z 1 ukazom v RAM pri naslovu nalagalni naslov + pomik Vstavi v RAM, zaCenäi pri 'zna' Izvedi 'n ' ukazov z izpisom registrov po vsakem ukazu (tj. sledilni ukaz) Izvedi 'n' ukazov z izpisom registrov po zadnjem ukazu (pri n = 1 uporabi ukaz Ü brez 'n') Poglej/spremeni vsebino registrov in zastavic Poglej vsebino registrov (zastavični registri so: C=prenos, Z=ni61a, M=predznak, E=parnost, I=pomožni prenos) tna = trenutni naslov zna = zaSetni naslov nna = novi naslov kna = končni naslov 7 = napaka, ki pomeni: zbirka ne more biti odprta, napaka parnosti v HEX zbirki ali zbirnik/ inverzni zbirnik se prekriva zna Prevedi zbirni kod, začetek pri naslovu 'zna' ED UKAZI D Izpiši RAK od 'tna' (trenutni naslov), 16 vrstic D zna Izpiši RÄM od 'zna' {za£etni naslov), 16 vrstic Ü zna,kna Izpiši SAM od 'zna' do 'kna' (končni naslov) F zna,kna,kon Napolni RAM od 'zna' do 'kna' z vrednostjo 'kon' G G G G G, Izvedi program pri shranjenem PŠ (progr. števnik) zna Izvadi program pri 'zna' zna,pri Izvedi preoram pri 'zna' s prekinitvijo pri 'pri' zna,prl,pr2 Izvedi program pri 'zna' s prekinitvijo pri 'pri' ali pri 'pr2 ' prl,pr2 Izvedi program pri trenutnem naslovu s prekinit- vijo pri 'pri ' ali pri 'pr2 ' H a,b Prikaži heksadecimalno a+b in a-b I ime_zbirke Postavi ZKB (5CH) za uporabniški kod I ime_ibirke.tip Postavi ZKB (5CH) za R ukaz (HEX ali COM zbirka) ZKB: zbirčni krmilni blok L L L zna zna,kna Prevedi inverzno-zbirno od 'tna', 12 vrstic Prevedi inverzno-zbirno od 'zna', 12 vrstic Prevedi inverzno-zbirno od 'zna' do 'kna' iz RAMa 'tna 'je trenutni naslov zna,kna,nna Kopiraj RAM blok od 'zna' do 'kna' na 'nna' 'nna' je novi naslov Beri zbirko, določeno z I ukazom v HAM pri normalnem (nalagalne«;) naslovu ^ Z, nA B -B nc nD E nFs H I Is nK nL nMx ntJs O nP Q Riz nSx 'CTL nT Ü V nw nX Pridruži 'n' vrstic k vmesniku (n = O : uporabi polovico vmesnika) Pomakni kazalec na začetek zbirke Pomakni kazalec na konec zbirke Pomakni kazalec naprej za 'n ' znakov Zbrisi 'n' znakov za kazalcem Končaj urejevanje, zapri zbirko in se vrni v CP/H Poišči n-to pojavitev niza 's' v tekstu za kazalcem Končaj urejevanje in pomakni kazalec na začetek zbirke Vstavljaj tekst za kazalcem dokler ne vtipkaš 'CTL z' Vstavi niz 's ' za kazalcem Zbriši 'n' vrstic, začenši pri kazalcu.. Pomakni kazalec za 'n' vrstic Izvedi ukazni niz 'x' n-krat Globalni F ukaz, do konca zbirke Ukini urejevanje in začni z začetno zbirko Iz listaj naslednjih 'n' strani s po 23 vrsticami (n = Os trenutna stran) Prenehaj z urejevanjem brez spremembe vhodne zbirke Včitaj iz,LIB v vmesnik za trenutnim kazalcem z 'y Substituiraj niz 'y ' pri 'n' pojavitvah niza x Izpiši 'n' vrstic Spremeni male znake v velike (pri vpisu) Vključi notranje-oštevilčevanje vrstic Zapiši 'n' vrstic v izhodno zbirko (začni na začetku vmesnika) Izpiši E^eiediijih 'n' vrstic v zbirko .LIB Jt.i. U P O R A li ,\ P KOG RAMI Poziv časopisa Informatica bralcem, da objavljajo svoje uporabne programe, se nadaljuje. Katera so programima uporabna podroSja/ ki nas še posebej zanimajo? NaStejmo le nekaj podrodlj: poslovnometodološki programi ekonometrlCni izračuni napovedovanje dogodkov vrednotenje proizvodnje planiranje.proizvodnje mreStio planiranje računovodski programi statistični izračuni poslovodne igre, programi za preizkušanje sposobnosti obdelava podatkovnih zbirk tshnoloSkl programi . . , bančna in finančna aritmetika programi za učenje , itd. • Konkretni uporabni programi so npr. programi za mali poslovni sistem, za glavno poslovno knjlgof za evidenco prihodkov in ,izdatkov, za obračunavanje osebnih dohodkov, za ' Izračun različnih statističnih kazalcev, tudi krajSi zabavni programi (igre), dalje programi za preizkušanje računalniških virov in naprav, za krlptografiranje (Šifriranje podatkov), za slikovito prikazovanje rezultatov Ha zaslonu, za urejanje in upravljanje podatkovnih zbirk itn. Rubrika "Uporabni programi" naj bi vzpodbujala bralce, da pišejo kratke prispevke v dokaj standardni obliki, ki obsega kratek opis področja,. na katerem se program uporablja, s pripadajočo metodologijo (pojasnili) programsko listo s komentarji v visokem programirnem ali zbirnem jeziku (PL/I, FORTRAN, COBOL, PASCAL, BASIC, ALGOL, FORTH, LISP, ADA, MODULA in zbirni jeziki v'' mikroprocesorjev) izvajanje (izvršitev) programa na dovolj slikovitem primeru, po možnosti v realnem okolju . Uredništvo bo vsakemu prispevku dodalo določen označevalnik.: Tekst in formati programskih llst.se morajo prilegati avtorskim formular jem, ki jih; dobite v uredništvu časopisa InformatIda, Parmova 41, 61000 Ljubljana. . *. IZRAČUN BIORITNA • ****** ,:-**.*******************.****(* Informatica UP 3 . * Blorltem * avgust 1981 * Izvor neznan * modif. A.P.železnikar * sistem CP/M, CBASICa * 1. Področje uporabe programa Uporaba diagramov bioritma v poslednjem času narašča zlasti v sportu In pri poklicnih dejavnostih. Tako so npr.. Viktorju Kotčnoju napovedali slab začetek dvoboja za svetovnega šahovskega prvaka, prav prek njegovega bioritemskega diagrama. Nekatera podjetja uporabljajo te diagrame za vnaprejšnjo oceno zmogljivosti svojih delavcev, npr. poklicnih pilotov, astronavtov in voznikov. iCeprav obstaja dvom o koristnosti bioritemskih diagramov, si s prikazanim programom lahko sami do].očimo diagrame bioritma za krajše ali daljše razdobje'. Program za izračun bioritma je zanimiv s programirnega vidika, saj uporablja'za izpis diagramov znakovno "grafiko" in oblikuje diagrame s tiskanjem znakov. Ta program je napisan v jeziku CBASIC2 za operacijski sistem CP/M, z manjšimi spremembami pa ga lahko uporabimo na vsakem računalniškem sistemu . s prevajalnikonn za jezik BASIC, 2. Kratek .opis programa Program v listi 1 izračuna najprej tabele, ki so potrebne pri- kasnejšem izračunavanju diagramov bioritma. V manjših sistemih je za določitev teh tabel potrebnih nekaj deset sekund, zato imamo' na začetku opozorilo {vrstica 90). Ko so tabele določene se s konzole vtipka Ime (s priimkom) ter datum rojstva, tako da bomo imeli diagrame označana s temi podatki. Naslednji parametri programa, ki-.se vstavijo s konzole, so še začetni . mesec in leto biokoledarja ter Število mesecev, za katere Selimo imeti diagrame izpisane. Po vstavitvi vseh teh podatkov se začnejo izračunavati in pisati posamezne'- točke bioritemskega diagrama. Diagram se izpisuje vsakokrat za tri krivulje (označene s črkami:P, E in I)', ki predstavljajo fizično, čustveno In Inteligenčno zmogljivost. Relativna vsota (bio'indeks) teh zmogljivosti je v intervalu. (O, lOQOOO) ter se izpisuje na levi strani diagrama (glej kasneje). Vsakokratna vrednost ' treh diagramov se Izračunava v vrsticah 790, 800 in 810 liste 1. 3. Izvajanje programa Na listi 2 je- prikazana vstavitev začetnih podatkov in diagram bioritma. Diagram je izpisan za mesec oktober, seveda pa bi ga lahko izpisali za večje število mesečev. Po izvedbi programa za posamezen primer, je-. program pripravljen na sprejetje novih podatkov in tako ■na' nov Izpis. Program je moč Be dopolniti tako, da izpišemo' diagram v zbirko na disku ter ga tako lahko priložnostno čitamo z zaslona. 78 n U u» ® s 'H ) H H 3 2 M «-4 o o H <0 D t M §?Ä i., > -V f? n «C, n _ ■3 M w v . t- I X a ca o « O) N « £33 v w H I Z O M T 41 « II ^ " lO >0 X a n n n n N « r> IO •3 se « « ♦ rt 32 C4 IC m u I 5 »o " • • ^ ^ lo I I», UM ^ ^ ffl •1 M O J n o. « * rt * w • >r) • H • -s • ca o >. • • i I iS 2 II (I II ♦ v M (^rtrtrtWCVI O.lilnB.-isJw^sjwCK-iX««--'"» II n II o II iA«)ti»«*pi:aa;uti:vtM1 o e 3 M + 5 . Ž + e-rt tr> + N O rt « - O) I I ==s ? o ca ♦ N, - — <00 N « — « - U w H >» s» !-> a ( H ( H - B + >• 3 >" " II « H II a « 3 " u Q a a + rt rt r- tv • a - H v 3 a 1 £ M 2 a ss z Dì rtrtS s >• M m W >. o (N Ki ^ u — H s I rt s >. >. o M It II (-I . o 01 >. « a >. rt rt rt SS CM rt i >• o « w' I w d -I H š» n I rt a I rt >. O « ^ >- II H II » rt K O Ct( rt I«. w (S > n n Oi ■s. • « % rt o) • I z 01 CM • - I O M « a n s: a II <1 « - a_ Zrt Hfct-fc;»- 5 > >. > 4 «t >. t- H E t- % VI >A m * u» ^ » 2 > Q > K a ^ I t H 'azH aöH QH QH' aMZJZKj-a^wE^-ag «»»^«r Qon-HQoni-UoMUoìIQaiitQttaceattraiotoa)« otiunonit HO-O-, .J o « o at Zt u u t3 s o J > Id H U1 (O M > O • a •z. CO II D It o: a 00 <0 00 « o » Q E >• 0. lib a in 00 m n riO S X H o « - — rt - -1 - Ol + I s S tri/> O M m n «t T 3 -s - s - >- 1/1 It 3 » » S rt « g rt + s 3 S! 2 u> « E lb a rt » «UWE I § rt O) J H H K 1 + Z a [/) H n ^ >4 a J 0. o. n f*®,.'' P'^ö^'^am na tej listi (napisan v jeziku CBÄSIC2) izračunava in riäe bioritmične diagrame v odvisnosti od rojstnega datuma in meseca ter leta zabetka biokoledarja. Najprej se izraöunajo tabele, potem se vstavljajo razliSni vhodni podatki (kot je razvidno z liste 2), nakar program izraSunava podatke ter "riše" sestavljen diagram bioritma. ISSO at/TO i 250 ■ ■ ■ ■■ ■■ - ia3B Ll-J 1240 QOTO 1260 . , V ' . . 1259 LI = 0. • . 13611 W1'=JNT(( 30 55* IM*2))/I00>-91. 1S70 L=(l .■ , ■ 1280 IF rt<3 THErt 1330 1290 ir Ll-O THBJ 1320 ' : / ' v. : V 1300 L"l • 131B. GQTü 1330 - ■ - ■ .1320 l.= 2 1330 M3=N1+D-L . ' ^ 13/10 BETUHM " " ' I3S0 IF rt<3 THEN 1390 ^ 1360 MI=M-3 - 137B y|»Y ' 1380' ÜOTÜ 1411» 1390 lÜDfl Y1"V-1 1410 C=UJTCYI/IOO) 1420 D1=Y1- ' . 143D W=INT<( 146097"*C>/4)+D+IHT< C 146I»D1 >/4) l440.daN-H7211l9tlMT<<153*Ml+2>/5) 1450 RETURN I 1451 rt4=M4+l usa IF M4<13 THEW 1459, 1453 114=1 - ■ ■ : . 1454 Y4=Y4+1 1459 NEXT £0 1460 QOTÜ 3 50 1470 END Lista 1 (nadaljevanje) . ..Proqr^ uporablja vrsto vqrajenih funkcij jezika CBAS1C2 (sin, ■ Int, tnb), tako dà izračunava In izpisuje ustrezne diagrami;. Proqram je prav CRUN2 BI 02 CRUM VER 2.07P POČAKAJ^ DA SE IZRAČUNAJO TABELE I VSTAVI IME 7 AMTOW.P. .SELEZNIKAR ' . VSTAVI.DATUM ROJSTVA» DAN^ MES. LETÜ> ? e>6<19S8 VSTAVI ZAČETNI MESEC IN LETO BIÜKQLEDARJAi ? I0'1981 VSTAVI ŠTEVILO MESECEV BIOKOLEDAHJAt Lista 2. Tà lista kaSe dva dela programskega Izvajanjai : začetni del, v katerem se pojavi sporočilo o, računanju tabel ter ee vstavljajo zaSotnt podatki š ■ konaole ter -nadaljevalni del, v katerem sc, izraćunavajo In'■ . izpisujejo diagrami,' .Prikazani primer' ,, jO' izvajan . za ' ..en', '. sam ' mesec blokolodarja, kot vhodni podatki po se upoštevajo le datumi rojstva in za&etka biokoledarja,. Žal so .v'. toni izračunu ne 'upoštevajo . pravi biološki (fiziološki, biokemični, bioelektriörii) podatki. . ■ - BIO : INDEKS . ÙKT 1981 49)02 F'. • - . E-/ i i GET 45796 F I 2 PET 43239 F E ■ ' ■■ I 3 SUB 41610 F ■ E i 4 MED 41006 r ■E . ■ .1 5 PÜiJ 41436 EF ■ . 1 . . 6 TOR 42620 E F 1 . 7 SRE 45003 £ • 'F I 8 GET 47766 E I 9 . PET 50842 E ■■ F, . 1- to SOB S3945 ■ ■ 'E F I.-' U HEO 567S5 E , I F 12 POiil 59100 . ■ E . '. '1 ■ F- 13 TUR 60669 E . I F 14 SRE 61333 EI F 15 GET 61007 ■ '1 ■ F 16 PET 59686 I . ' ■ ■ .E ■■■■ 'F 17 SOB '57445. ■ . ■' 1. ' E F IS NEO S4434' ■ ì ' 1 " . e ' 19 PON 5086S ■ I F-.. ■ ... s 2 0 TOH 4699S ■ 1 ■ F E 21 SRE ■43111 I 'F E . 22 CET 3950 0 I ■ F ' E 23 PET 36435 1 r ■' , ■ . E 24 SÜB 34150 'FI' 25'ilED . 38026 F'.- 1"' ^ . E 26 >0N 3ES71 F I ■ E .27 TOR 33422 F .1 E ■ 28 SRE 35333 F I E 29 CET 381 B5 F I 3 0 PET 4179.4 FE 31 SUB ■ • • » ■ • it»****«* ANTÜN P» £ELE£k41KAR RÜJEM-A Ö 6. 19S8 UKT VSTAVI IME ■ ■ ~ ' . ' ■ 7 "C B> INFORMATICA 3/f981 N O V [ C Z A N [ M [ V 0 S T I HOVIOE IZ RAZVOJNEGA PROGRAMA - PODJETJA MOTOROLA Kot pravijo odgovorni pri podjetju Motorola je razvoj mikroprocesorjev cikllSen s pot ali šest letno dobo med vpaljavo novih procesorjev.Tako naj bi se pojavila nova generaci- ^ da iiiikroprooeeorjev(32 bitni)v letu 1984/5 -Redwood-68020.Nov Dikroprocesor naj bi bil zmogljive j Si in hitrejši,vendar združljiv b programsko opremo družine 68000.Med posebnimi lastnostmi je omeniti zlasti poudarek na rasSi±>-jeneu adresnem prostoru in na ustrezni podpori sa virtualni pomnilnik ter vpeljavi koproceso-raklh enot.Osnovna frekvenca delovanja bo med 10 In 12 HHb. Zanimivo je pogledati kakšen Je razvoj perifernih čipov serijo 68000,Na trSiSču Je že moSno dobiti naslednje Siper 68120-intelligent terminal contro11er(kompat. 68l22-cSäator°terminal^controller, 68540-6rPOr detect and correct. V nekaj mesecih bodo dosegljivi naslednji 5ipii 68450-3)MA controller(kompatibilan vođiluSSOO), 68451-memory management unit(razvit je pred-^ vsem za virtualni pomnilnik za Redwood), Predvidoma v letu 1982/3'bodo dosegljivi naslednji čipi: 683i(0-dual port RAM, 684-^hard disc controller, SS^^^^advanced CRT controller, 6e560-16-bit serial DMA processor, 68561-serial I/O multiprotocol communication controller, 683CXX-local area network controller. Prvi koprocesor bo enota s plavajoSo vejico (FPCP) B osmako 68881 in bo deloval v povezavi s procesorjem Redwood (68020), VISOKO INTEGRIRANA VEZJA ZA DETEKCIJO IN KOREKCIJO Za poveSanJe aanesljivosti dinamičnih pomnilnikov vpeljujemo posebna vezja za korekcijo in detekcijo napak.Na tržišču so se že pojavila visoko integrirana vezja,ki nadomestijo ve6 deset 6ipov srednje integracije.Večina omenjenih fiipov omogoSa priključitev pomnilnikov SUZlblt in 16-bitnih mikroprocesorjev.Nekateri od njih so zelo hitri(napako javijo v 23nS)in i-■ajo zmogljivost detekcije in korekcije enojnih napak ter detekcije dvojnih In skupinskih napak. Proizvajalec ADVANCED MICRO DEVICES! Razvita ,je serija Sipov Am2960.Jedro tvori Sip AB2960,t.J.16-bitna eno^a za detekcijo in korekcijo napak.V družino spudajo še ojačevalniki treh atanj Am2962,ojačevalniki Am2966 in krmilnik dinamičnega pomnilnika Am296^.Z& neposredno prikju-Öitev na mikroprocesor Am Z8000 Je na voljo Cip AmZ6163(EDC krmilnik in osveževalnik).dobavljiv bo v prvem Četrtletju 1982. ProizvaJalecKATIOHAL SEMICONDUCTOR: Osnovni čip je DP 8400,öip za krmiljenje DRAMoV DiP 8W8(DP BW9 Je za poran.256K X 1 bit).Sa voljo 80 Se ojačevalniki DP 8420.Člpi bodo na voljo Čez nekaj mesecev. proizvajalec MOTOROLA nudi osnovni čip e oznako MCI 68540 in proiiKajalec.TEXAS INSTRUMENTS Sip LS 650. Cipi še niso na voljo. Prednost Ara serije je v tem,da opravi Icoregiran vpis neposredno,brez programske pomoči. Ptoi zva j alee IKlEIi naf öv^fuj^ 'oitiÄi čip,ki bo znatno zmanjšal Število potrebn® Žigov Ba detekcijo in korekcijo napak pri aSStl-Snih in dinamičnih pomnilnikih.0s:novnl £l|f^. iiiia oznako 8206 in Se ni dobavljiv.Z njim lah^ detektiramo in koregiramo vse enojne napakedetektiramo vse dvojne napake ter tìekatere ^^kra-tne napake.£n osnovni čip lahko deluje na$ 3 ali 16 bitnimi podatkovnimi besedami.V primeriii^da povežemo v kaskado 5 čipov pa z 80 bitnimi |®aeda-ffli.Glede na povezavo GPE enot z osnovnim fj^pom ločimo dva sistema korekcije,prvi Je ozna^n a kot "correct always"ali"flow-through"s i st^,drugi pa kot «check only"ali "parallel"Biste!!lh Čas za detekcijo Je največ JOnS 1© za korekoijo največ 65nS (16-bitni sistem).lis ločeno vhodno in izhodno vodilo.Či1»anje Je lahko . z ali brez kfjrekciJe,zapis pa z parcialnidi^byte) zapisom in Réad-Hodify zapisom. Izveden je v HMOS tehnologiji in je v ohlSJu z 68 plni.NapaJalna napetost samo -cSV. Poleg osnovnega člpa potrebujemo st^o Še en čip-krmilnik dinamičnih pomnilnikov.Pro- . izra'Jalec naslednje čipe krmilnikov DRAHo^s - ^Q2A za 4K,16K DRAMc, 8203 za 64K DRAHe in - ADHO (Advance DynamicRAM Controller) za 64K in 256K (dual port) DRAMe. Krmilnik 8203 tvori vse aignale potrebne za krmiljenje 64K(2164) ,16K(2U7) in 4K(2104) DRAHov.Neposredno-naslavljanje, do 64 napsjav brez zunanjih ojačevalnikov.Omogoča adresno multiple-ksiranje in generira potrebne imj^ulze.Vsebuj e OBVeževalni casovnik in osveževalni Stevnik,de-kodiraCPE statuse In je popolnoma kompatàSilen B Intelovimi mikroprocesorji 80Š3A,8085A.iAPXèS in ÌAPX86. ADHC krmilni čip predatiivija. pupoiiiomu novo teiuiu4.v>6ijv> in je razvit aa aplikacije s pomnilniki velikih dimenzij.Kompatibilan |b z mikroprocesorji kot 8o:iAPX88,86,ia6,286rZ njim lahko neposredno naslavljamo do 2 Hbytov,|:zvedon Je. v HMOS>11 tehnologiji in nadomesti ca.30 čipov.Vz^ajen je v 68 pinsko ohiSje.V povazavi z osnovnim čipom 8206 omogoči avtomatsko k^ekoijo napak med osveSevanJem,kar Je novost v £$>imer-javi z drugimi sistemi za korekcijo in direkcijo napak. AM NEKATERIH POMEM! laVAJAIiOEV WINCHES' èiH POGONOV PROIZVAJALEC 14 col 8 col Aopex BASP GDC Đastek FujitsuAmerica IBM Hamorex Nippon El.Corp. Olivetti 9150 Napbvedan 6150 6I71/6172 »ap«v. 9730serija 5?502 4835 PG411,F496 F495,M2253 3370 601,602,612 3650/52 D1200BeriJa Perteo Shugart Associates SA4oòo SÀ4100 Shugart Technology Siemens Corp. PS5-8 Toshiba MK500F 2080 2311,2312 3310 101,201 D22i0-a239 H®830 D-^00 SA10002 SÀ1004 1. .12 Näpov. BT 506 R. Mum 19-20 januar, Geiwiw, Stiiaa Applioationa induatrCette d'intelligefioe ecetifioialle IMO^^triemee ^mtmeaa frmopphows »we i'infoimatiaue OUg.iIHAG Infomaaiie:lflAC, B.P, S3 38011 Grüble,Prwoe Eindhoven,Kiaos^aka IHeroel0atìvnioa-Ènd European moroeteotrcnio Conffrasg Org. in informaeije; tHaroelgptrmioa, P.O.S, 428^ Lo» Alto», CA 9402t, VSA t-4 februar, London, Velékit Britanija eiaotrmic OSU Aee^Uea SB ■ Org, in infomaoije: Triécttt Int,E:^,Ltd, . il Plf/mouth noad, TaHetook, Severn, PU9 SAU,. UK 24-28-fabrvar, London, Velika Britanija nicrroe^Btame SÄ Org, in infomtaoije: IpC ésth. Ltd,, Surrey House, t thrctìUy VaySution, Sitrrey Sm 49, VK SO marea 1 april, Brithtm, Velika Brttmija StM In^màtianal Conference on Oonputere tn Desigli engineering \ Org. in infomaoijei Ju^Vare, Confirenoa Searetary, JFC Soianea lOtd Teohnology Preea Ltdi POB 83, Keetbui^ Souaa 'BurySrreat , Out tđford GVS SBH, UK e-'B aprii, Torino, Italija 6th International Sjimposimm Progrteming Oi^. Inatituto di Soien^e del'Informaniona Infamaoijei S.PonoH della Fooa, Jnetituto i^al*Infoima- »ione, C.M. D'Agetlio 42 - 1012S Torino, Itatft 3-S maj, PaHe, FÌvnoijà Septieme- CoHfietvnae Internationale »ur L'Aooustùfue, la Porote at le fraitemeni du Signal Org, in infoniiaai,ie:C, Oueguen,' EHST, 46-rue Barrault ima Parie, 'Pranee t4-»a mtj, Berlin, ZR SemSija 8th Vorld Conferanoe IMSKO Org. in inforunoià«: ßeaetleohaft /teee und liegetvnge-teoAnt^c. Graf-Reoka Straeae 84, B.P. 1139, D 4000 Duaaaléarf 1, BDS 11-14 maj. Parie, Praitaija ■ Congree Bureautique Org, in infprmaoije; AFCET, 168 Boulevard Pariaiv. Pari», Frmae 1$-1S iwti'fj Leningnad , ZSSF pmiAmr 8i Org. in informaoije: Leningrad fteeeai^he Couputer Centre MendéleifltVBkap Linia 1, l/SSP Aaademf of Saienoe, 199164 Leningrad, VSS/t S-11 juni. Parie, Franeija Ige Congrea Intamationai aur Ub Robota Induatrial Org, in infomtoije: APPI - o/o SEPIC, 4P rue du Coliaee, 7S381 Paria, Pranoe 16^18, juni,, BruxaUaa, Belgija ?th intamatitmal Conference on DynaHa Si/atema Org.Univereite du ParCg Vat^hine InfomaoijeiB.Paülre, fhii-Oeraita du Paria Dauphine Plaae de ¥al. de Latere de Taeeignt/, 7S/2S Parie, Fmnae 10-18 Juni ,Puhiin, ,Ireka ■ Seaond Jnte.rriational Conferenee on Boundar;/ and Interior tacere - Cóiputational and Aaymptotia Method» Org. in, InformaoijaKena.Bail Conferenoa ~ SB Trinity Cotlege-Dublin B Ireland 2S-S7 maj, ^nMr«, Belgija Chemieat Prooeaa Anatyate and Daaign Uaing Camputeiv Org, in infomaoi'je.-CHEUCOfip-o/o K. VIV Jan Van Rijahiijokl aan, 68, B - 2000 Anvera , Selgitfue 29 jmi - 2 juH, Toulouaa, Franai ja Srd IPAC SfpipoeiuM on Control of Diatributed Parameter Syatem Org, im informaaÌjefÌHPIA, Serviae de relatiana exterieurea Donaine da Voluoaau, B.P. 106, 7B1S3 Le Cheanofi, France 22-24. junii Jeruealem, Jamal 2nd International ^onflrenae on Data Baae Org. t Sebreu {Miveraity md Sortiaieatem Vniveraity Infàmaoije: Utohael Fanoni, Vniveraity of Hegev, Beer Shehä, laraet S-10 juli,PKi>ia, ČSSR èthCmfe'ren^onComputa^^^ Org. !'International Coimittea on Computational Linffuiatia Inf^maoijei CßLaa e2i HFP UK, LinguiaHoa, Haloetranake II. SS, lis 00 Praha 1, ĆSSF 11-lS juli, Uainama; Poljaka Srd IPAC/IFOFŠ S^puj^ixK on tai^a Saale Syetema Org.tlFAC/imi^ Infarmaoijei Z.l/qhoraki, System Feaaaroh Inatitute, PoUah Aoadeàn of Soienoee, ul, Heaalaka 8-01 44? Varsaama, Palmd AVTORJI IN SODELAVCI WladysLaw H. Turski was born on 17lh October 1938 in.Krakon, Poland. After graduating from the Zandyski Lyceum in Uarszawa he enrolled in the Lomonosov University in Hoskó«, where he studied sstronony, specializing in celestial mechanics /1955-1960/. In 1960/61 U.n.Turski was a. Leverhulme Research Fellow at Jodrell Bank■/Hadio-observatory of the Manchester University/ where he worked on large-scale computer simulation of astronomical phenonena. Having returned to Poland in 1961 he joined the just-created Computation centre of the Polish Academy of Sciences, where he worked until 1972 first as the head of a unit concerned.with space computation and then as the chief of the software laboratory. In 1962 W.H.Turski was granted a doctorate in . oathematicaI physics /Warsaw university/ and in 1966 he was given the degree of a "doctor habilitatus" by the Academy of Nines and Hetallurgy for his research on computational methods in control engineering /the results were reported also at the IflP Congerss in New York, 1965/. In 1965 W.H.Turski was elected a member of IFIP Working Group 2.1 on Algol and became its Secretary in 1966. In 1969 he co-founded the IFIP W.G. 2.3 on Programming Methodology. In 1972 U.n.Turski left the Academy for an industrial job in HERA Industries, where he was the Director for Software and Applications until 1977. In this capacity he directed much of the Polish software developments for Riad range of computers, as well as several major software projects in operating systems, compilers and data bases. Starting from 1977 H.fl.Tursk i ..is a Professor of computing science in Warsaw University and the Director of the Informatics Institute in this university. Professor Turski has hold visiting positions in nany universities in US, UK, Canada and OOR; frequently he gave invited lectures in many countries on all continents. He was a member of Program Committee for IFIP Congress 1974 and 1980 and its Chairman for 1977 Congress in Toronto. U.N.Turski has published nearly 100 papers and several books including Datenstrukturen /A-cademie Verlag, Berlin/, Computer Programming Nethodology /Heyden, London/ and Programming Teaching Techniques /North Holland, Amsterdam/. He is an editor of many journals, including Acta Informatica, Information Processing Letters and Annals of Computer History. W,N.Turski is a Fellow of the British Computer Society and President of the Polish Informatics Society. SAŠA PB£ŠESR (1951), Je diplomiral na Fakulteti za naravoslovje in tehoalogljo, Odaek teh-nlSne fizike, v LjviWjani (1975). Magistrlral j® na Operacidflkih raziskavah 6 temo aimulacl-de in optimalneg« upravljanja eistemov vodovodnega omrežja, lei jo je izdelal na Katedri za aisteme, avtomatiko in kibemetiko Fakultete za elektrotehniko v Ljubljani (1978). H« oddelku za uporabno fiziko v Delftu n« Klzozemekem (1977) je sodeloval pri izdelavi procesorj« za simulacijo rasti kristalov, Leta 1978 se j« vkijuSil v delo v IBM raSunskem centru v Fbila-delphiji v ZDA. Ha InStltutu Jožef Stefan se Je zaposlil leta 1980 in Je prevzel razvoj senzorskih sistemov ter mlkroračunalnlSko vodenje robotskih in avtomatskih sistemov. V letu 1980/ 81 se je n« oddelku za računalništvo n« Univerzi v Torontu ukvarjal s senzorskimi sistemi, računalniškim vidom In modeliranjem računalniških sistemov. PeSek Dušan, rojen 1952- leta, Je diplomiral v letu 1977 na Fakulteti za elektrotehniko v Ljubljani, smer Bažunalništvo in informatika. Tema' diplom-Bkega dela Je bila implementacija SseoTnega simulatorja digitalnih vezij, s'poaebmim . poudarkom na slmulacijskem algoritmu in pripadaJoSih kodnih nizih. Po diplomi se Je zaposlil na Institutu "Joäef Stefan" v Ljubljani, na Odseku za računalništvo in informatiko. Na raziskovalnem področju ae ukvarja s problematiko zanesljivosti, diagnostike in simulacije digitalnih sistemov. Glavna tema aplikativne dejavnosti pa ,Je razvoj materialne opreme za 6 in 16 bitne mikroraSuna1nike. Frsnc Novak Je diplomiral ■ leta 1975 na Fakulteti za elektrotehniko v Ljubljani s tematiko s področja diognos-tike mikroračunalnikov. Magi- ^ striral Je leta 1977 na isti; fakulteti z delom Funkcionalna diagnostika mikroračunalnikov. Zaposlil ae je na Institutu "JoSef Stefan", na Odseku za računalništvo In informatiko. Ukvarjal se Je z razvojem aparaturne.opreme v mikroračunalniSkih aplikacijah, v zadnjih letih pa se ukvarja predvsem z razvojem aparaturne in programske opreme za diagnostiko mikroračunalniških sistemov. Drago Novak se je rodil 18 .8.1951 v Ptuju. Diplomiral je 1975 leta na Fakulteti za elektrotehniko Univerze Edvarda Kardelja v Ljubljani . V okviru diplomskega dela se je ukvarjal'z merjenjem parametrov hoje in sprotnim izračunavanjem karakterističnih parametrov, ki omogočajo ocenjevanje normalnosti hoje. Magiištriral je na isti fakulteti ieta 3 978 z delom Oblikovanje večprocesorSkih sistemov na osnovi mikroprocesorske tehnologije. Po diplomi sé je zaposlil na. Institutu Jožef Stefan.v. odseki za računalništvo in informatiko. Ukvarjal se je z razvojem aparaturne in programske opreme za mikroračunalnike. Sodeloval je pri razvoju mikroračunalnika Iskradata 1680 in pri razvoju programske opreme za telefonsko centralo Iskra 2000. V okviru raziskovalnega dela se je uk -varjal s problematiko multipr.ocesorskih sistemov. V zadnjem času pa se je usmeril na področje porazdeljenih sistemov oz. porazdeljene kontrole. Leta 1980 se je zaposlil v DO Delta v Ljubljani. Sodeloval jé pri razvoju sistema DELTA 323/Ml. . V Slovenskem društvu Informatika aktivno sodeluje kot urednik področja mikro-računalniki v našem časopisu in kot predsednik programskega odbora simpozijev Informatica '81 in Informatica '82; NAVODILO ČLANKA ZA PRIPRAVO ! Avtorje, pro<no, da posl^^o urecSnlštvu naslov in kratek povzetek članka ter navdajo približen obseg Članka (Število strani A 4 formata). Uredništvo bo nato poslalo '«vtorjam uatrezno števila formularjev a navodilom. Članek tipkajte na priložene dvokolonske formularje. Če potrebujete dodatne formularje, lahko uporabite bel papir iBtlh dimenzij. Pri tem pa se morate držati predpisanega -formata, vendar pa ga ne vrišite na papir. Bodite natančni pri tipkanju tn temeljiti pri korigiranju. Vaš Članek bo s foto postopkom pomanjšan In pripravljen Ka tisk brez kakršnihkoli dodatnlk korektur. Uporabljajte kvaliteten pisalni stroj. Če le tekst dopušča uporabljajte enojni presledek. Črni trak je obvezen. Članek tipkajte v prostor obrotjjen z modrimi črtami. Tipkajte do črt - ne preko njlli. Odstavek ločite z dvojnim presledkom In brez zamikanja prve vrstice novega odstavka. ^Prva stran članka ; «) v sredino zgornjega okvira na prvi strani napišite naslov članka z velikimi rri'innl; b) V äredlno pod naslov c'anka napišite Imena avtorjev, Itne podjetja, mesto, državo; c) na označenem mestu čez oba stolpca napišite povzetek članka v jeziku, v katerem je napisan članek. Povzetek naj ne bo daljši od 10 vrat, d) če članek ni v angleščini, ampak v katerem od jugoslo-t .vansklh jezikov izpustite 2 cm in napišite povzetek tudi v angleščini. Pred povzetkom napišite angleški naslov članka z velikimi črkami. Povzetek naj ne bo daljši od 10 vrst. Če je članek v tujem jeziku naplšl-'te povzetek tudi v ^nem od jugoslovanskih jezikovj e) Izpustite 2 cm in pričnite v levo kolono pisati članek. Pruga In naslednje strani članka : Kot je označeno na formularju začnite tipkati tekst druge lit naslednjih strani v zgornjem levem kotu, Naslovi ÉKiglavlj: naslove ločuje od ostalega teksta dvojni presledek. Če nekaterih znakov ne morete vpisati s strojem jih čitljivo vpišite s črnim črnilom ali svinčnikom, Ne uporabljajte modrega črnila, ker sie z njim napisani znaki ne bodo preslikali, Ilustracije marajo biti ostre, jasne in Črno bele. Če jih vključite v tekst, se morajo skladati a predpisanim formatom. Lahko pa jih vstavite tudi na konec članka, ven-tjar morajo v tem primeru ostati v mejah skupnega dvo-kolonskega formata. Vse ilustracije morate ( nalepiti) vstaviti sami na ustrezno mesto. Napake pri tipkanju se lahko popravljajo s korekcijsko foUjoali belin» tušem. Napačne liesede, stavke ali odstavke pa lahko ponovno natipkate na neprozoren papir itt ga pazljivo nalepite na mesto napake. V zgornjem desnem kotu Izven modro označenega roba oštevilčite strani članka s svinčnikom, tako dà jih je mogoče zbrisati. Časopis INFOHMATICA Uredništvo, Par m ova 41, 61000 Ljubi ja tm Naročam a e na časopis INFORMATICA. Predplačilo t(ism izvršil po prejemu vaše položnice. Cenik! letna naročnina za delovne organizacije SOO,ÌP din, za posameznika 200,00/100,00/50,00 din ' Časopis mt pošiljajte na naslov Q stanovanja delovne organizacije. Priimek........................................i... Ime..,,.......................................,,.. Naslov stanovanja Ulice...,.,,....................................... Poštna številka Kraj...................... Naslov delovne organizacije Delovna organizacija................................ Ulica.............................................. Poštna številka__ Kraj......................... Patum,..................... l'odpiai : .1 š; i' INSTRUCTIONS FOR PREPARATION OF A MANUSCRIPT Authors are invited to send in the address and short aumtnary of their^.articles and indicate thè opproximate ■ size of their contpbiiticns ( in terms of A 4 Föper ). Subsequently they wlU receive the outor's kits. Type your manuscript on the enclosed two-column-format manuacript paperv If you-require additional manuscript "paper you^an use similar-size whtte-paper and-keep the proposed format but in that case please do not draw the fortnat limits on the paper. . Be accurate in'your typing and through in your proof reading. This manuscript will be photographically reduced for reproduction without any proof reading or corrections before' printing. INFORMATICA, Journal Headguarters .: Parmova 41, 61000 Ljubljana, Yugoslavia ^ ■ Please enter my subscription to INFORMATICA and send jne the bill. ' - Annual subscription price; companies US Ü 22, individuals US ? 7,5. Send Journal to myQ home address \ | company*s address. • Surname...........................t ...... Name ................................ Home address Street.................................... Postal code_C ity................ Company address Company................................... Street................................. Postal code_City................ Date.......................... Signature Use a good typewriter. If the text allows it, use single spacing. Use à black ribbon only. Keep your copy within the blue margin lines on the paper, typing to the lines, but not beyond them. Doubie space between paragraphs... First page manuscript: a) Give titte of the paper in the upper box on the first . page, Use block letters. b) Under the title give author's names, company name, city and state - all centered. c) As it is marked, begin the abstract of the paper. Type over both the columns. The abstract should be .written in the language of the paper and should not excesod .10 lines. dV If the paper is not in English, drop 2 cm after liaving written the abstract in the languages of the paiJer and write the abstract in English as well. In front of the abstract put the English title of the paper. Use blix:k letters for the title. The lenght of the abstract stioiild i>ot be greater than 10 lines. e) Drop 2 cm and begin the text of the paper in the left column. Seccmd and succeeding pages of the manuscriv«: As it is marked on the pape:; begin the text oi; the second and succeeding pages in the left upper corner. Format of the subject headings: Headings are separated from text by-double sjiacing. If some characters are not available on your tyjjwriter write them legibly in black ink or with a pencil. l')o not . use blue ink, because it shows poorly, v ' • ■ Illustrations must be black and white, sharp and clear. If you incorporate your illustrations Into the text keep the proposed format. Illustration can also be placed at . the end of all text material provided, however, that they are kept within the margin linea of the full size two-column format. All tllustrations must t)e placed into appropriate posi tons in the text by the author. Typing errors may be corrected by using white correction paint or by retyping the word, sentence or paragraph on a piece of öpaque , white paper and pasting it nearly over errors Use pencil to number each page on the upper-rigirt-hanfl corner of tije manuscript, outside the blue rn arg in linea so that the numbers may be erased. K6 CENIK OGLASOV Ovitek - notranja stran (za letnik 1981) 2 stran--------------------------- 28.000 din 3 strau--------------------------- 21.000 diti Vmesne strani (zei letnik 1981) 1/1 stran...........-............. 13.000 din 1/2 stronl ——-------------------- 9.000 din Vmesne strani za posa me ano številko 1/1 str fin------------------------ 5.000 din 1/2 strani ....................... 3.300 din Oglasi o potrebah po kadrüi (zn posnmGano Številko) 2.000 din ADVEimziNG HA'I'BS Cover page (for all issues of 1981) 2nd page------------------------130(1 Ü 3rd page------------------------loOO ^ Inside pacjes (for all issues of 19H1) 1/1 page ----------------------- 790 >J 1/2 pnge ----------------------- 520 Jf Inside pages (individual issues) l/l pacje ----------------------- 26« jS 1/2 pacjö ----------------------- 201) jX Hales for classified advertizing; each ad ----------------------- 66 ^ Razen oglasov v klasični obliki so zaSelJeiie mdi krajše poslovne, strokovne in propagandne informacije in Planki, Cene objave tovrstnega materiala se biMOl! 1 virili' l#j liN M; fìj/sktili) ò ditelli h i l ,1 f b ' • J Ci i! ui I :• ii fU' I N H li 11 ^ H H ^ Är lili 9 jj Llirj-ìmiiìMw.if^m \ll\^ i ' - ] f i i 11 đ I H r " ! i li fo 6 i / lijvp- |{ IMIÒ S 1M ^ ; i: ä ^ i. ^^ ii ü ! ff i fj» iliiifiilll^ i| ìllijiil^ \l h U Hi L. i i II i ; ì i ' '' ' I i Im Jl^ ' 'U IM bfi'J?!:® iipS ! ® iN ® iH'" I' I ! i ' ' f i • f ji tili i i J i® y = ^ ^(ipi liiKidt; i| pl/jiHNifr^ T lUHVlili s 'H. \ Mi^ ^ ^ ' 01 i ii F -i Ö i ii i • a 'f li ii! Ü JI 1 p f h ■ Ü / ni 1 I \ I r i . M, L f li! •-li hi I i « telJiäf^HiiHli i® ,p 1 I i ^ III a i Ipn i :®jpilij5fs ^ t ♦ / Ir iPIfü ' nf^l^lliV IplySInraios l'fh.l I!te^fìf Hjii i r -f ^ sBÈ ì lui ^ ijf! il y MI H M i : L r u i ■ u M' ^ r^ ! • ^ liü ; l'I in n.M Htti !i I II f ; i! M: .v ^ . n il i i; ? J H ii I i i HJ n jo ii ličili' i- 'i ^ ii ^ > Ü ; ' I' j; M üM: t h: i i v I ? i: m t ^ ' ■ 'L ! 't 1 t' v >1 ' • I P ; f « i! i i: i i t. tel i i; .1 . !< i ;' i C« - v/ i 1 < mi i i i I 'i ?! 'i ii il li ! [ ^ i u i • iHpkifeiŠiŠt^i'^ist^i EiElie * il! rAi lili if/Xf:^!: I DELTA 323/M mikroračunalniški sistem računatnišhi sisiemi delti Delavci DO DELTA proizvajamo najpopolnejšo jugoslovansko družino računalnikov, katera obsega celotno območje, od mikro 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 informacijskega sistema 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. Našo družino računalnikov dopolnjujemo z malimi poslovnimi sistemi 323/M, ki so-plod lastnega razvoja, delo strokovnjakov DO DELTA. Značilnosti družine 323/M so: • aplikativna usmerjenost računalniških paketov, ki vsebujejo vso potrebno aparaturno in programsko opremo za določeno uporabo • enostavna razširitev in rekonfiguracija sistem se lahko enostavno širi in dopolnjuje, tako kot raste vaša delovna organizacija • komunikativne sposobnosti računalnik 323/M omogoča komuniciranje z drugimi računalniki iz družine sistemov DELTA, kot tudi simulacijo protokolov IBM. • deio s podatkovnimi zbirkami upravljanje in preoblikovanje podatkovnih zbirk, sistem za zaščito podatkovnih zbirk Za mikroračunalniški sistem DELTA 323/M je značilno sodobno oblikovanje." Sistem se zato lepo vključuje v delovno okolje in ker zanj ne potrebujemo klimatiziranih prostorov, ga lahko priključimo tam, kjer ga potrebujemo. Področja uporabe so številna, saj ga lahko uporabljamo kot mali poslovni sistem, pisarniški in šolski sistem, inteligentni terminal v računalniški mreži ter v distribuirani obdelavi podatkov. Tehnični podatki: — 8-bitni mikroprocesor — 64 K zložni hitri pomnilnik (RAM) — ura realnega časa — vhodno/izhodni kanali serijski: 2 asinhrona dupleksna kanala 4 asinhroni/sinhroni dupleksni kanali (progr. nastavljiva hitrost prenosa do 38,4 K baud) paralelni: 4 kanali (8-bitni, s po dvema krmilnima signaloma) — do štirje gibljivi diski obsega 256 K ali 512 K zlogov — matrični tiskalnik (300 baud) — vrstični tiskalnik (600 vrstic/min, — lepopisni tiskalnik (45 znakov/sek — sistemska programska oprema vsebuje prevajalnik za PL/1, COBOL, BASIC, PASCAL, FORTRAN in ALGOL; zbirnik, urejevalnik, program za preizkušanje in sledenje uporabniških programov, program za kopiranje zbirk. — aplikacijska programska oprema glavna knjiga saldakonti kupcev in dobaviteljev osebni dohodki osnovna sredstva linearno programiranje optimizacija vzorčnih pravil mrežno planiranje poslovna statistika razpošiljanje pošte urejanje dokumentacije oblikovanje dopisov © marketing Delta - 1981 ei^. ELEKTROTEHNA, DO DELTA, LJUBLJANA, PARMOVA 41