t 3S&,,' r ,amm T m t or matica Published by INFORMATIKA, Slovene Society for Informatics, Parmova 41, 61000 Ljubljana, Yugoslavia EDITORIAL BOARD: T. Aleksid, Beograd; D. Bltrakov, Skopje; P. Dragojlovid, Rijeka; S. HodSar, Ljubljana; B. Horvat, ;iarlbor; A. Mandili, Sarajevo; S. Mihalid, Varaždin; S. Turk, Zagreb EDITOR-IN-CHIEF: Anton P. Zeleznikar TECHNICAL DEPARTMENTS EDITORS: V. Batagelj, D. VJ.tas — Programming I. Bratko — Artificial Intelligence D. ćećez-Kecmanovid — Information Systems M. Exel — Operating Systems B. D?onova-Jerman-Blažič — Meetings L. Lenart — Process Informatics D. Novak — Microcomputers Neda Paplc? -- Editor's Assistant L. Pipan -- Terminology V. Rajkovič -- Education M. špegel, M. Vvikobratovid — Robotics P. Tancig -- Computing in Humanities and Social Sciences S. Turk -- Computer Hardware A. Gorup -- Editor in SOZD Gorenje EXECUTIVE EDITOR; Rudolf Mum PUBLISHING COUNCIL: T. Banovec, Zavod SR Slovenije za statistiko, Vožarskl pot 12, Ljubljana A. Jerman-Blažič, DO Iskra Delta, Parmova 41, Ljubljana B. Klemenčič, Iskra Telematika, Kranj S. Saksida, Institut za sociologijo Univerze Edvarda Kardelja, Ljubljana J. Virant, Fakulteta za elektrotehniko, Tržaška 25, Ljubljana HEADQUARTERS: Informatica, Parmova 41, 61000 Ljubljana, Yugoslavia Phone:"61-312-988; Telex: 31366 YU DELTA ANNUAL SUBSCRIPTION RATE: US? 22 for companies, and US$ 10 for individuals Opinions expressed in the contributions are not necessarily shared by the Editorial Board PRINTED BY: Tiskarna Kresija, Ljubljana DESIGN: Rasto Kirn JOURNAL OF COMPUTING AND INFORMATICS YU ISSN 0350-5596 VOLUME 8,1984 - No. 4 CONTENTS H.Nelić 3 Đ.Uechtorsbkch 13 M.M.Mllotlć 17 An Executive for Real Time Microcomputer Systems Stktietical Multiplexing PMP-11, 16-Eiit-Microcomouter CoMPatlble with PDP-11 Minicomputers P.Kokol V.ŽuMer 20 LALR Tables Generator A.p.2eleznikar 26 D.Vukadin 3? H.Tut« 43 S.Preftern 51 A.P.Železnikar 55 R.Murn te All Ó8 S.J.DJordjević 75 I.Mozotii 79 eé 89 98 Usase of Ada in Numeric Com-putatione Twpewriter Interface for a Microcomputer Z800 - A New Mie Familu Visual Inspection of Printed Circuit Boards Petra - Ah IBM-like Personal Computer I Error Detection with Beraer and Modified Berser Code Keus Alsebra Principles of Qualitative Modelina Proaramming Quickies News Authors Index of the Volume inforriìatica časopis izdaja Slovensko društvo iNFORflATIKP., •ilOOO Ljubljana, Parmova 41, Jugoslavija UREDNIŠKI ODBOR; T. Aleksič, Beograd; D. Bitrakov, Skopje; P. Dragojlović. Rijeka; S. Hodžar, Ljubljana; B. Horvat, Maribor; A. Mandžič, Sarajevo; S. M.^halid, Varaždin; S. Turk, Zagreb GLAVNI IN ODGOVORNI UREDNIK: Anton P, Žoleznikar TEHNIČNI ODBOR: V. Batagelj, D.Vitas — programiranje I. Bratko — umetna inteligenca D. Ćečez-Kecmanovid — informacijski sistemi M. Exel — operacijski sistemi B. Džonova-Jerman-Blažič — srečanja L. Lenart — procesna informatika D. Novak — mikroračunalniki Neda Papić — pomočnik glavnega urednika L. Pipan -r terminologija V. Rajkovič — vzgoja in izobraževanje M. špegel, M. Vukobratovid — 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: Rudolf Murn ZALOŽNIŠKI SVET: T. Banovec, Zavod SR Slovenije za statistiko, Vožarski pot 12, Ljubljana A. Jerman-Blažič, DO Iskra Delta, Parmova 41, Ljubljana B. Klemenčič, Iskra Telematika, Kranj S. Saksida, Institut za sociologijo Univerze Edvarda Kardelja, Ljubljana J. Virant, Fakulteta za elektrotehniko, Trža- ka 25, Ljubljana UREDNIŠTVO IN UPRAVA: Informatica, Parmova 41, 61000 Ljubljana; telefon (061) 312-988; teleks 31366 YU Delta LETNA NAROČNINA za delovne organizacije znaša 1900 din, za redne člane 490 din, za Studente 190 din; posamezna številke 590 din. ŽIRO PAČUN: 50101-678-51841 Pri financiranju časopisa sodeluje Raziskovalna skupnost Slovenije. Na podlagi mnenja RepubliSkega sekretariata za prosveto- in kulturo št. 4210-44/79, z dne 1.2. 1979, je časopis oproščen temeljnega davke, od prometa proizvodov TISK: Tiskarna Kresija, Ljubljana GRAFIČNA OPREMA: Rasto Kirn ČASOPIS ZA TEHNOLOGIJO RAČUNALNIŠTVA IN PROBLEME INFORMATIKE ČASOPIS 2A RAČUNARSKU TEHNOLOGIJU ! PROBLEME INFORMATIKE SPISANIE ZA TEHNOLOGIJ A NA SMETANJETO I PROBLEMI OD OBLASTA NA INFORMATIKATA YU ISSN 0350 - 5596 LETNIK 8, 1984-št. 4 VSEBINA I i H.Neiić 3 D.Uechtersbach 13 M.M.Miletić 17 FTimóer izvedbe izvržnog sistema za mikroračunala u realnom vremenu Statistično mu ItIpleksiranje PMP-11, lA-bitni mikrorafiu-nar kompatibilan sa PDP-ll miniračunarima P.Kokol V.Žumer 20 Generiranje LALR tabel A.P.Žoleznikar 26 Đ.«. ako rep nije prazan i ako se proces zaista nalazi u stanju WAIT ). Argument potprogram? XTEST_WAIT_Q (Uvjet ) i XSET_CONT_Q '( Uvjet ) sastoji se od varijabli UVJET .VRIJEDNOST i UVJET.REP i donekle je sličan strukturi semafora, ali se i znatno razlikuje od njega.. Varijabla UVJET.VRIJEDNOST je logička varijabla koja označava ispunjenjé određenog uvjeta ( npr. da je uređaj kojim upravlja mikroraču-narski sistem doSao u određeno stanje ). Kad proces na nekom mjestu ne može nastaviti izvođenje sve dok se ne ispuni određeni uvjet ori poziva potprogram XTEST_WAIT_Q ( Uvjet ) koji će ga, u slučaju da uvjet nije ispunjen, postaviti u stanje WAIT i u rep za taj uvjet ( tj. upisat će njegov broj u varijablu UVJET.REP ) te rasporediti prvi spremni proces, dok u suprotnom slučaju proces odmah nastavlja izvođenje. Bilo koji proces ili prekidna rutina može označiti da je uvjet ispunjen pozivom potprograma XSET_CONT_Q ( Uvjet ) koji upisuje u varijablu UVJET.vrijednost vrijednost " true " i ako neki proces čeka u repu UVJET .REP prebacuje ga iz stanja WAIT u stanje FLOW, Razni procesi i pre^dne rutine mogu na uobičajen način ( ne koristeći procedure izvršnog sistema ) ispitivati, te postavljati u stanje false sve logičke varijable koje se kori- . ste kao argumenti u pozivima potprograma OTEST_WAIT_Q i XSEr_C0NT_Q. Procedure za međusobno isključivanje procesa nisu realizirane u ovom izvršnom sistemu. Ako kritične sekcije nisu dugačke one se mogu izvoditi nep^-ekidivo pa se međusobno isključivanje može ostvariti na taj način. 3. ZAKLJUČAK . Predstavljeni izvršni sistem uključuje većinu funkcija koje su obiSno potrebne za koordinaciju paralelnih zadataka u mikroraču-narskim sistemima u realnom vremenu: aktiviranje i deaktiviranje procesa, obradu prekida, kašnjenje, sinhronizaciju procesa i drugom Funkcije su ostvarene u onom opsegu koji je žahtjevala aplikacija za. koju je izvršni sistem razvijen, tako da su npr. svi repovi ostvareni krajnje reducirano dok funkcije za međusobno isključivanje uopće nisu uključene. Međutim, opisani izvršni sistem može se relar tivno jednostavno proširiti ea takvim funkci- . jama, kap i sa potpunom realizacijom repova. Neke funkcije izvršnog sistema ( npr. funkcije XAKTRST za aktiviranje, te funkcije za sinhronizaciju procesa ) izvedene su na pomalo neuobičajen način, no takva koncepcija pokazala se je potrebnom i korisnom u spomenutoj aplikaciji. LITERATURA' 1. Wioklund T.:"MINI-EXEC: A Portable Executi- ve for 8-Bit Microcomputers", Communications of the ACM, vol,25, number H,^ November 1982. 2. Salčić Z., Štrklć G.:" Projektovanje izvr- šnih sistema mikroračunara za rad u realnom vremenu korištenjem jezika visokog nivoa za sekvencijalno programiranje"j Informatica, 1/1982. 3. Holter J.t» Add Multiple Tasks to Your Communication and Control Program", BTOE, September 1983. 4. Salčić Z.:" Mikroračunarski sistemi: Arhi- tektura-programiranje-primjéne". Svjetlost, Sarajevo, 1982. 5. Kvaternik R.:'' Uvod u operativne sisteme?". Informator, Zagreb, 1983. ! dodatak u dodatku je priložena lista algoritama izvršnog sistema napisanih u pseuđojeziku sličnom ADI. Lista je dana u obliku paketa koji sadrži niz procedura i blokova ( Sto znači da nisu striktno al i.jf 'ona pravila strukture programa u ADI ) pri ćemu blokovi predstavljaju one module izvrSnog sistema kojima korisnički programi predaju kontrolu korištenjem JP instrukcija, za razliku od procedura koje korisnički programi pozivaju korištenjem CALL instrukcija. Osim toga, poSto su algori-tiai pisani u pseuđojeziku, a ne u čistom programskom Jeziku, svi detalji nisu uvijek specificirani programskim konstrukcijama, več su umjesto njih upotrebljene rečenice govornog jezika. Tako npr. deskriptori procesa nisu uopdo deklarirani jer naredbe u algoritmima koji se odnose na njih nisu programske naredbe nego obične rečenice. Uopde, prilikom pisanja algoritama naglasak Je bio na jednostavnosti i preglednosti a ne na rigoroznosti. U deklaracijama se koriste tipovi " byte " i » word " koji označavaju jednu, odnosno dvije 8-bitne riječi, a koji inače nisu definirani u ADI. Zbog jednostavnosti u deklaracijama nije korištena specifikacija • access " koja je mogla zamjeniti specifikaciju " word record vr-i jefìnoi+ : • rep : byte ; end record j Procedure XAKT (proces : byte) la ßefiin Xready (proces) := ready ; Xstatus (proces) := (start => true, idle => false, restart => false, restore => false, wait => false, delay => false ) ; End ; Procedure XAKTHST (procea : byte) is ßeßin If no^ Xstatus. start (proces) then Jtf Xstatus. idle (proces) then Xready (proces) := ready ; Xstatus (proces) := (start => true, idle => false, restart => false, restore => false, wait => false, delay => false) j else Xstatus.restart (proces):=trua5 end if ; eöd_lf ; m. i Package body IZVRŠN1_SISTEM is XN: constant byte := .....; prazan: constant byte := lóW'FF ; Xadrdeskr: constant array ( 0..XN-1 ) jjf word := ( ...., ....... .... ); Xtabsp: array ( 0..XN-1 ) of word ; Xready, array ( 0..XN-1 ) of ( ready, no'tready ) ; Xstatus: array ( 0..XN-1 ) £f » record restart, start, restore, idle, wait, delay: booLeanj end record ] Xdelay: record brojilo, rep i end record ; tekproc, proces : byte ; type two__byte__record is byte Procedure XDEAKT (proces 2 byte) la Xready (proces) := notready ; Xstatus (proces) := (start => false, idle => true, restart => falsa, restore => false, Walt => false, delay => false) 5 End 5 << XENDINT » Begin Pronađi prvi spremni proces; If proces = tekproc then If Xstatus. start (tekproc) then Xstatus.start (tekproc);=false; SP := Xadrdeskr (proces); EI ; goto Ulazna točka procesa; else Obnovi registre iz sekundarnog, skupa ; EI 5 Trati se Da prekinuto mjosto procesa; end if ; - else If not ( Xatatus. idle ( tekproc ) or Xstatus. start (tekproc)) then Prebaci registre iz sekundarnog skupa u đeskriptor tekućeg procesa ; Xtabsp ( tekproc ) := SP ; Xstatus. restore ( tekproc ) := true ; end if ; goto Xraap_zaj ; end if ; Sìà 1 « XRASP>> Pronađi prvi eprenmi proces ; « XRASP_ZAJ » Segln tekproc := proces ; ' If Xstatus. start ( proces ) then Xstatus. start (proces) := false; SP := Xadrdeskr ( proces ) ; EI ; . goto Ulazna točka procesa ; elsif Xstatus. restore (proces) then Xstatus. restore (proces):= false; SP := Xtabsp ( proces ) ; Obnovi registre iz đeskriptora procesa ; EI i Vrati se na prekinuto mjesto procesa; else SP := Xtabap ( proces ) ; EI ; Vrati se na prekinuto mjesto procesa; end if ; £nđ ; < < XENDPROC > > Begin If Xstatus. restart ( tekproc ) then Xstatus. restart ( tekproC): = falöe; -Xatatus. start (tekproc):= true; else Xstatus. idle ( tekproc ) := true; Xready ( tekproc ) := notready; end if ; goto Xraap;" — proces je mogao akti— virati neki proces ' , — većeg prioriteta ko— jeg sade treba raspo— rediti End ; Procedure XODGODI ( bro j_intervala : byte) is Begin , . ' : Xdelày. brojilo := broj_intervala ; . . Xdelay. rep -:= tekproc ; Xréady (tekproc) := notready ; Xstatus. delay•(tekproc) := true ; Xtabsp (tekproc) := SP ; Naredba CTG sklopu da započne brojanje; goto Xrasp ; End ; Interrupt CTG Procedure XCLOCK is Begin Xdelay. brojilo := Xdelay. brojilo - 1; If Xdelay. brojilo = 0 then Onemogući prekide, iz CTC sklopa ; If Xstatus.delay (Xdelay.rep) then Xstatus. delay (Xdelay. rep) := false ; Xready (Xdelay. rep) := ready; end if ; end if ; goto Xendint ; End ; Procedure XWAIlJ is Begin Xready (tekproc) := notready ; Xatatus. wait (tekproc) := true ; Xtabsp (tekproc) := SP ; goto Xrasp ; End ; Procedure XWAIT_Q (Rep : byte) is Begin , Rep := tekproc ; Xready (tekproc) := notready ; Xstatus. wait (tekproc) := true ; Xtabsp (tekproc) := SP ; goto Xraap ; End ; Procedure XTEST_WAIT_Q (Uvjet : two_byte_recorđ), is Begin If not Uvjet, vrijednost then Uvjet, rep := tekproc ; Xready (tekproc) := notready ; Xstatus. wait (tekproc) := true ; Xtabsp (tekproc) := SP ; goto Xraap ; end' if ; End ; Procedure XCONT (proces : byte) Is Be alti If Xstatus. wait (proces) then Xstatus. wait (proces) := false ; Xready (proces) := ready ; End If ; End ; Procedure XCONT_Q (Rep r byte) ijs gegln If Rep /= prazan then If Xstatus. wait (Rep) then Xstatus. wait (Rep) ;= false ; Xready (Rep) := ready ; -End if J Rep prazan ; End if ; End ; Procedure XSET_CONT_Q (Uvjet : two_byte_recorđ) la Befiin Uvjet, vrijednost := true ; If Uvjet, rep /= prazan then If Xatatus. wait (Uvjet, rep) then Xstatus. wait (Uvjet, rep) := false; Xready (Uvjet, rep) := ready ; End if ; Uvjet, rep j= prazan ; End if 5 > End IzvrSni_8Ìstem ; STATISTIČNO MULTIPLEKSIRANJE udk: 681.3,519 D. WECHTERSBACH do iskra delta W zadnjem tasu »e terminali vedno boli oddalJuJeJo od soetiteloakesa računalnika k uporabnikom, povezava pa poteka prek telefonskih linij. Kadar je več terminalov na isti oddajni lokaciji, se v raCunalnižkih sistemih lahko uporabi »tatistićno «ultiPleksiranje. Ta članek opisuje koncepte statističnega multiplekairanja in izvedbo multiPleksorja STIiM Delta-MUX. Statistical Multiplexin» In the last timer computer terminals are movina awau from host computers to user luorkins places and the connections are realized ba telephone transmission lines. If several terminals are located on one place the statistical multiplexins can be used. This article describes the notions of statistical Multiplexing and the multiplexins equipment STDM Delta-MUX, 1. Uvod V mladih letih računalništva je moral priti uporabnik k računalniku, da sa je lahko uporabljal, terminali pa so bili blizu računalnika. Pozneje se je računalnik pribliieval uporabniku 'na ta nači^, da se so terminali preselili k posameznemu uporabniku. Povezavo je omosočal par modemov ter linija. Za več terminalov na isti oddaljeni lokaciji je bilo potrebno pač več modemov ter več linij, kar pa ni ravno ekonomično. V primeru, da je bil terminal teleprinter se je lahko uprabljal klasični PTT teleprinterski multiPleksor, Vendar to ni zadovoljiva reèitev. Zato so se pojavili digitalni multiPleksorji. Prvi na principu TDM. ter kasneje okrog leta 1977 tudi statistični. 2. MultiPleksor, TDM, STDM Vsak multiPleksor združuje več vhodr.^ii tokov v enega izhodnega. Obraten proces je demultiple-ksiranje. Obe napravi sta običajno zdruleni v eno, ki se kratko imenuje multiPleksor. V računalniških .komunikacijah združujemo digitalna znake - bite, ki so lahko organizirani v zloge ali besede z določenim Pomenom (ASCII, strojna koda). Linije, ki jih združujemo, imenujemo vhodne linije (čeprav pri denultiplksiranju deluJeJo kot izhod), skupno linijo pa modemska. MultiPleksor se lahko imenuje lokalni ali oddaljeni, odvisno pač od tega na kateri strani linije se nahajamo. Prvotno se je v računalniških komunikacijah uporabljalo uultipleksiranje z dodeljevanjem časa (časovni multipleks. TDM - time division Multiplexing). Pri tem načinu se modemska linija časovno razdeli na več intervalov. Prvi Interval se dodeli znaku (bit. zlog, beseda) iz prve vhodne linije, drugi iz druge, ter n-ti iz n-te vhodne linije, n^-l pa zopet znak iz prve vhodne linije (slika 1). TDM potrebuje modemsko linijo tako hitro, kot je vsota hitrosti vseh vhodnih linij. Iz slike 1 se vidi. da ima TDM slabo lastnost, ker ne izkoriSča modemske linije, če kaka vhodna linija nima znaka za prenesti. V računalništvu pa nastopa Se en problem« uporabnik namreč zelo neenakomerno zaseda linijo proti računalniku. V določenem trenutku uporabnik želi čim hitreje dobiti karakterje (pregle- Slika 1, Osnovna shema za TDM r-^^m ' 1 . —* T T __ H ■0 D D S M 48oo baud M -» T po 12oo ba ud neizkoriščen čas duJe datoteko), nato pa nekaj Casa linije sBloh ne zaseda (usotavlJar kje de napaka). Oba problema. oni ii TIiM ter slednji, sta koMolementai—. na in se rešita v statističnem miiI t ini eksiranju (STUM. demand mu 11iplexins. statistical multi-plexina >. STUM je v osnovi ée vedno TliM. le da se modemska linija dodeljuje tisti vhodni liniji. ki ima kaj za Prenesti (slika 2). Tudi POBame/ni intervali sedaj niso već nujno enako dolsi. Modemska linija je sedaj polno i/koriS^ena do trenutka ko nobena od vhodnih linij nima već kaj za prenesti. 3. Značilnosti in molnosti Jaono je, da inteligenco STtiM omoaoća mikroprocesor. Uporabljajo se zlasti 6800. Ó0OV. Ö08S ter Z80 pa tudi novejži lA-bitni. Njih Število varira od 1 pa do 70 < 1'nfotron ) in već, Protokol med obema multipleksorjema je obićajno «inhroni HOLC ali modificirani HDLC. v novejàem času pa že podpirajo 3 nivoji protokola X.25. 232C CTS linijo, Obićajno STDM POdPira naćina. Oba F'o določenem času se vhodni vmesnik izprazni, takrat pa izvedemo obr-atno deJande. torej ali odpožljemo CTRL/Ol <11H) oziroma dvÌ!jnemo CIS linijo. Vstavljanje ter Ponoven po.oon vhodne linije mora vsebovati določeno histerezo. če se ielimo izoaniki nezaželjenim oscilacija«. Seveda se lahko prenapolni tudi izhodni vmesnik. Takrat se po kratkem internem pooovoru med parom multipleksorjev prepove oddaja znakov za to vhodno linijo v modemsko linijo ter se začne polniti vhodni vmesnik te vhodne linije. Usta-vitveni ROSO j 24oo baud S H T -> 0 D S M T Slika 2, Osnovna shema za STDM z vhodnimi linijami, modemsko linijo in sostiteljem 3.2. Kode, hitrosti, zakasnilni čas, učinkovitost Ti protokoli zlasti omoaočajo skoraj 100X prenos brez napak, ker imajo priključen l<4-bitni CRC na koncu vskesa paketa. Tu se uporabljajo vezja óeS'», 8273 ali ZEtO ~ STO, Količina RAM pomnilnika sena tja do 4k zloiiov na vhodno linijo. 3.1 Kontrola pretoka Prav pomnilnik STUM je pomemben za njesovo delovanje, potrebuje pa vsaj par vmesnikov na vhodno linijo. U določenem trenutku ,se lahko dogodi, da dve ali več vhodnih linij JpIì poseči PO modemski liniji. Takrat mikroproceaor na podlagi Prioi'itetnesa alsoritma odloči, kateri bo dal prednost. znak od druse pa «e začasno shrani v vhodni vmesnik za kasnejfto oddajo. tiruai vmesnik. ki tudi zlasti služi kontroli pretoka, pa je izhodni. Vanj se shranjujejo znaki, ki pridejo iz modemske linije, pa' jih vhodna linija ne more oziroma noče (tiskalnik) prevzeti. Vhodni vmesnik (statična dolžino ali Pa dinamično raztesljiv) se lahko prenapolni v primeru, ko je modemska linija zelo obremenjena. Tedaj se vhodni liniji prepove PoSiljanje novih znakov. Uporabljata so dva načina. Po vhodni liniji lahko odpo&ljemo ASCII znak CTRL/S <13H), pri drusem načinu pa spustimo EIA RS- Mikroprocesor ter bitno naravnani modemski protokol med multipleksorjema omoaočata različne kode na vhodnih linijah (na istem multipleksor ju ) z različnim žtevilom bitov za znak ter tudi z različnimi paritetami ter hitrostmi. Asreaatna hitrost vedno preaeaa hitrost modemske linije. Zelo važen je zakasnilni čas, ki aa povzroči multipleksor pri prehodu znaka. Podatki se preko modemske linije prenažajo v paketih in dokler ni sprejet cel paket, se ne ve, če je prenos v redu. Zato si želimo čim krajže pakete. Seveda ima vsak paket nekaj odvečnih znakov. ki jih zahteva protokol. Želimo si čim daljèi paket, da je izkoristek paketa procentualno večji. število zlogov na paket se tako aiblje do 120 na paket, pa tudi več, zlasti pri satelitskih prenosih. Zakasnilni časi se gibljejo tako od dveh karakternih časov do lOOms in več. Pri vseh teh primerih pa precej pomemben also-ritem določevanja prioritete (katera vhodna linija lahko zasede modemsko linijo). Implementacija teaa algoritma je jasno skrbno varovana, važni parametri pa so pretekla zasedenost modemske linije. zasedanje modemske linije, čas, polnost vhodnesa vmesnika itd. Učinkovitost se lahko poveča z kompresiranjem. Najbolj enostavno kompresiranje se doaodi že, ko asinhroni znak prenaàamo kot sinhroni brez start in stop bita ( 20X pri 8 - bitni kodi). Nadalje se ponavljajoči znaki (pri tabelah) oddajo enkrat s ponavljalnim faktorjem. Najve- tói prihranek .se doseie s pomoijo Huffmanove kode> kjer se znakom^ ki se vei!krat ponavljaoor dodeli kraJèa koda, redkejiim pa dalJža, FToii-vaJa iec STDM trdi i da Je s tem že dosesel kompresijo 1!2. kar pri kvaliteti telefonskih linij ni zanemarljivo. Jasno, da to zahteva vsaj primerjalne tabele in obilico procesorske-SA (lasa. Prednost je èe v tem, da prinaia dodatno zaidito brez eksplicitne enkriPCiJSr ki je tudi eden izmed problemov v komunikacijah. 3.3. Ekonomičnost Mislim, da se iz opisaneaa vidijo predosti STDM nad TDM. zlasti v računalniških komunikacijah. Jasno je. da se klasični TDM lahko uporablja tam, kjer ne potrebujemo prednosti STDM (npr, stalno enak pretok podatkov v vhodnih linijah). STDM je popolnoma izrinil FDM, skoraj v celoti Pa 1 EiM, Gola ekonomika pa je približno vidna iz naslednje enačbe! t <= < 2»X-2«( n-1 )»M)/< 1*( n-1 )) kjer Je I t - čas v letih, ko se nakup izplača, X - cena mu ItipleksorJa, M - cena modema, 1 - cena modemske linije na leto in n - 4t . vh. linij na , mu 11 iple.ksor ju i tem bi 4e pripomnil, da pri nas pr imaii j ku je telefonskih linij, in da Je uporaba multiple— ksorja koristna tudi zaradi tesa. A, Delta - MUX ■4.1. Sploèno U Iskri Delti se v redni proizvodnji nahaja STDM> ki Je v celoti Plod domačesa znanja in izkušenj. Optimiziran je na interaktivno delo s terminali In ima zato majhen zakasnilni čas. Podpira 8 vhodnih linij (slika 3), Te so asinhrone, z ASCII kodo ter lahko delujejo z eno izmed IS standardnih hitrostjo, a največ z 9600 baudov. Asresatna vhodna hitrost je torej 76,8k baudov in jo DELTA - MUX izdrži cca. 2 sekundi. Modemska linija je sinhrona in deluje v modificiranem ( zman j&ana je redundanca) protokolu X.25, nivo II, kar izbolJèuJe efektivnost. Največja hitrost Je tudi tu 9600 baudov. Protokol podpira ARQ (Automatic request for repetition) in ima okno 7. Od EIA sisnalov podpirajo vhodne linije TxD, RxD,RTS, CTS, DTR sinale, modemska liniJa Pa T*D, RxD, RTS, CTS, DTR, RxC, TxC (DTE) in TxC Slika 3. Izvedba modula Delta-MUX (poaled zadnjo pIožčo ) dve min id isKete.dva serijska standardna KonuniKaciona Kanala te Basou-niK realnoa vremena »a mreKnom uBestano«Bu.Ti-me Je OMOSuCen rad sa «iroKim speKirom uideo-terminala i «tampaBa.Radi prenosa proarama sa PDP-11 «iniraBunara moauBe Je priKlJuBenJe i 8" disKeta.U razvgJu su Kontrolen za turdi disk od 10 Mbrvideo izlaz za Kolor TV,paralelni TTL kanal i>instrumentao i ona maaistrala te priklJuBaK za tastaturu. T-11 ima ilektronsKu Podr«Ku osveüauanja dina-miCKih memori Ja.Izborom 8-bitne magistrale broj Inteariranih Kola Je manJi od 30.Štampana ploBioa montira iznad minidisKete taKo da J« 0*0 siitam moauBe uaraditi u standardnu 13" Kuti Ju.Troti ManJe od 40 Ul Sto omoauBava napaJanJi i iz IZ V aKumulatora. Z. MATERIJALNA OPREMA Blok diJaaram mikroraBunara PMP-11 dat je na slici 1. Ustanovili smo da T-11 pouzdano radi na 8 MHz Sto J« iznad speciPikaoiJa. BasovniK delimo *a 16 za Potrebe disketnoa Kontrolora te sa 13 ZU seriJslli prenos sa standardnim brzinama.Ne-aijtiuhi napon za RS-232 predaJniK aeneriramo na uBestanostl . internoa liasovniKa miKroprboe-sora. Pri uKlJuüenJu napajanja iniciraju se Kontrp-leri seriJsKih linija i kontroler disKeta. Istovremeno se alltiuira reaistar naCina rada KoJi sPBOifioira da T-11 radi na S-bitnoJ masistrali sa 64 liilobit'a dinaiuiCKim mentori J-shim Kol ima. Citllusi bsueüenJa su automatsKi insertirani po izvódjenJu svaKe. instruKoiJe. Adrese su deKodirana sa proaramiranim loaiGKim nizqm i urSe seleKoiJu primarne memorije od pOOOOO - 172000,startnoa ROM-a od 172000 -176000 te perifernih Kontrolera u preostalih 10000 oKtalnih adresa.- OinamiCKs menoriJe su adresirane sa AI linijama KoJe strobiramo sa RAS i CAS. T-11 se razlikuje od ostalih PDP-11 po reakciji na zamke /trap/.Tad se izuodJenJe proarama ritistaulJa na adresi .koja Je za 4 uefia od sLartne. a to Je u naSem~ slufiaJu 172004.Potrebna Je proaramska analiza uzroka pada u zamku i ta Je potpuno o.duišna od oraanižaoiJe m i kroraBunara . j- Napisan Je now proaran za upravljanje intele-aentnim kontrolerom disKeta. Sva pomeranJa alava se verificiraju na 2elJenom traau i po potrebi ponavljaju u obe austine zapi sa.GreSke u. tlitanJu se popravi JaJU bez pomeranJa alava. Optimiziran Kod za upravljanje disKetama sme-8ten Je u ROM Jer se obavezno Koristi pri startu sistema. Razvijena su dva proarama. za formatiranJe disKeta koJa rade sa IBM standardom KoJi Je istovremeno i DEC na 8" disketama ša Jedno--strukom austinom zapisa.Na taJ nabin Je omoau-Cen prenos proarama izmedJu PMP-11 i PDP-11 s is tema. Sianal za upisivanje Je zakaSnJen sa PI da bi imaU podatke, spremne na ulazu. Izlazi iz memoriJskih Kola su stoaa odvojeni od skupne maaistrale. Dva serijska Kontrolera su izvedena sa standardnim 8251 Kolima.Briina prenosa se reauliSe izborom faktora delJenJa sa KratKospoJnicima i proaramsKi.ObiCno se uzima FreKvenoiJa od 194 KHz sa internira deljenjem sa IB za 8600 boda. ž^ahtevi za prekid se upisuJu sa svakim impulsom BasovniKa T-11 u 6-bitni reaistar prpara-mirane loaike.Kad se poJavi CASrreaisir i ran i zahtevi se sortiraju po prioritetu internih vektora prekida te sianaloni PI presiedè na AI ■ 1 ini Je .PomoBu napona «ireÄe aeneriraJu se Ba-sovni prekidi svakih 20 ms. Pf1P-ll Je moaude zaustaviti prekidaBem ili pritiskom na tipKu BREAK Konzole. U oba primera se aeneriSu preKidi KoJi se proaramski ana 1 i z iraJu.Jedan PAL zamenjuje naJmanJe 4 MSI TTL kola i za ovo reSenJe Je zahtevan patent. Loaika za kontrolu napaJanJa koristi monostar bilni multivibrator oKidan mrežnom uBestano-SBu.Nestanak dva mreüna ciklusa prouzroBava nemaskiran prekid na standardnoj adresi 24 i spreBava dalJirnepouzdan rad sa disketama. 4. ZAKLJUBAK U sluBaJu da. Je vreme izvršenja instrukoiJa veBe bar dva puta od vremena pri preme>aubi se nianJe od 30 X na brzini izvrSavanJa instrukoiJa zboa dvoJnoa pristupa po osmobitnoJ maai-strali radi kompletiranja 16-bitne reti i. mi Kro-proces ora. Jednostavan test sa petljom od milion instrukcija u PascalU pokazuje da PMP-11 procesor radi sa istom brzinom Kao PDP-11 modeli 23 ili 34. Iako Je PMP-11 oaranifien na 64 Kilobajta memorije izvedbom T-11,to niJe veliKi nedosta-tđK Jer inherentna PDP-11 arhiteKtura podržava samo 16 adresnih bitova te nijedan poJedinaBan proaram nemoüe biti ueBi od 64 KB. Za mulci-proaramsKi rad potrebna Je Jedinica za upravljanje memorijom KoJa vrSi seamentaciJu do 4 MB. DEC prodaje i J-llmiKroprocesormnoao.veBih muaiifinosti no mi smatramo ekonomski neopravdanim koriSBenJe ovca mnoao sKuplJea Kola u Personalnom mikroraBunaru PMP-11 Klase. Disketni kontroler Je potpuno intearisan u kolu MD2797.Betvorobitni reaistar Koristimo za selekciju dva poaona te parametara Kontrolera. Jedan konektor sa 50 noaica se Koristi za obe dimenzije disKeta.a spec if iBni sianali se multi- pleKsiraJu sa dva 4-bitna odvaJaBa.Osmobi-tiii invertor se . Koristi za rad sa disketnem maaistralòm. impedanse 150 Oma.Prenos podataka je pod procesorsKom Kontrolom bez Kori^BenJa preki da. Na Kraju bih želeo da zahvalim Branku JevtiBu za modifikaciju sistemskih proarama te IsKri-I.)slti za materijalnu pomoB, 3. PROGRAMSKA OPREMA Operativni sistem RT-11 verzija 5 Je modificiran zboa specifiBnih reSenJa na PMP-11. RazliKe su u rutinama za Konzolu zboa druaaBi-Jea rasporeda kontrolnih i komandnih bitova 8251 Kontrol era.Pri inici Ja I i zac i J i ovo kolo zahteva Prvo Komandu naBina rada,a zatim se dozvoljava rad priJemniKa i predajnika. informatica 4/84 generiranje lalr tabel peter kokol viljem 2umer udk: 681.3.06:808.61 visoka tehniška šola maribor, vto elektrotehna maribor V članku na kratko opisujemo postopek za generacijo LALR(l) tabel, dodajamo osnovne algoritme in procedure. Generiranje LALR( 1 ) tabel smo preverili za različne jezike s tem, da je potrebno kot vliodni podatek vnesti gramatiko ustreznega jezika v BNF meta jeziku. Na koncu dodajamo krajši primer. LALR TABLES GENERATOR, Algorithms and procedures for LALR(l) tables generator are given. To produce the LALlUl) tables lor some language we must input the grammar of this language in BNF meta language. The described generator was tested for different languages. A short example Is given at the end of this paper. 1. UVOD Eden prvih korakov pri Implementaciji jezika je sin-taksna analiza oz. razpoznavanje jezika. V zadnjem času se vse več uporabljajo LR razpoznavniki, ki imajo več prednosti pred ostalimi. LR razpoznavnik je zelo preprost program in splošen za vse jezike, pač pa zahteva pri svojem delu obsežne tabele. Te LR tabele vsebujejo lastnosti posameznega jezika in jih je potrebno generirati za vsak jezik. Glede na večino današnjih programskih jezikov lahko obsežne LR tabele skrčimo na LALR(l) tabele, ki zavzamejo mnogo manj prostora. Generiranje teh tabel je zamudno opravilo, ki se ga da mehanizirati. Osnovna naloga razpoznavnika je učinkovito odkrivanje in javljanje sintaksnih napak. Zato morajo LALR(l) taljele vsebovati podatke za odpravljanje napak, 2, LR razpoznavniki V splošnem je razpoznavnik sestavljen iz dveh delov: iz tabel in programa, ki ga te tabele krmilijo. Za različne gramatike se spreminjajo le tabele. Zgradba razpoznavnika je prikazana na sliki 1. Razpoznavnik Ima sklad, vhod In tabelo. Vhod se bere Iz leve proti desni, simbol za simbolom. Sklad vsebuje niz stanj Sp Sj s^ Sg ... s^, kjer je s^ na vrhu sklada In vsebuje Informacije o skladu. Tabela je sestavljena iz dveh delov, iz funkcij ACTION in GOTO. Funkcija ACTION (s^, a^) Ima lahko naslednje vrednosti: 1. pomakni s 2. reduciraj A y 3. sprejmi 4. napaka Funkcija GOTO (s^, aj) generira novo stanje s In predstavlja tabelo prehajanja stanj determinističnega končnega avtomata, katerega vhodna abeceda so simboli gramatike. Konfiguracija LR razpoznavnika je dvojica: Sj s^ ... s_ O I iS m' Prva komponenta je vsebina sklada, druga komponenta r« še ne prebranidel vhodnega teksta. Naslednja akcija raz-(»znavnlka je odvisna od trenutnega vhodnega simbola a^ in stanja na vrhu sklada s^. Konfiguracija po tej akciji je glede na štiri vrednosti funkcije ACTION naslednja: 1. če je funkcija ACTION (s^, a^) - pomakni s, razpoznavnik izvede pomik in dobimo naslednjo konfiguracijo s a^g) Slika 1: Zgradba razpoznavnika "2 -m "1+1 2. Če je funkcija ACTION (s^, a^) - reduciraj A razpoznavnik reducira niz v netermlnal A In dobimo naslednjo konfiguracijo: Stanje s dobimo iz funkcije GOTO , kjer je r dolžina niza 'J', to je desne strani produkcije. 3. Če je funkcija ACTION (s^, a^) = sprejmi, je razj»-znavanje končano. 4. Če je funkcijo ACTION (s^^, a^) = napaka, Je razpo- : znavnik odkril napako in še pokličejo ustrezni podprogrami. . 2.1. Postopek za generiranje LALR tabel Prva naloga pri gradnji tabel je, da skonstruiramo množico LR(1) postavk za gramatiko G, ki opisuje programski jezik. Najprej G razširimo s produkcijo S S', kjer je S startni simbol gramatike G. S to dodatno produkcijo dodamo informacija, kdaj naj se razpoziiavnik ustavi. Generira se stanje "sprejmi"vACTION delu tabele. LR(1) postavka je urejen par oblike (A a) , kjer je prva komponenta jedro, druga pa množica terminalov r.roir.Bc.lui fv'(;l.03URE( P ) repeat . . ' " for za VBùkf» f>i)'3l.avk» vB > l» , eridfor; ■ iinl:i..). nobena-POffitavkn no inor-e vec: return p t/nd s končnim simbolom Prvi del postavke-jedrp nam pokaže, kolikšen del produkcije je bil že razpoznan ppi razpoznavanju. Iz zgornje produkcije dobimo naslednje postavke: !.. (A . cty, a) v 2. .(A , a) 3. (A a) Prva postavka jx>ve, da na vhodu pričakujemo niz, ki je izpeljiv iz cCy, druga pa, da pričakujemo niz izpeljiv iz ^. Tretje postavka se nanaša na drugo komponento in pove, da je potrebna redukcija A če je na vhodu simbol a. Formalno pravimo, da je postavka (A —, a) veljavna za prefiks JT , če obstaja izpeljava S AW dlL^v/, kjer velja 1. if-cht In 2. a je prvi simbol W ali W je £ in a je ž(. Algoritem za konstrukcijo LR (l) postavk Vhod: Razširjena gramatika G Izhod: Množica LR (l) postavk Metoda: Procedure CLOSURE, GOTO in Izračunaj - postavke (ÌF«< > V (■■, vvi;,il ^ j.n « > tiil<(i da B---;, Be ni v I- t) i t j, d o ila na l< P 3 proc-ednr-e l-JO fCK P,X )? befiifi ■ 1 nfi.'i ho i.i mno.zi.da POEitsvk < ft-■•■ >aX a > taUo da .ir^ (A......v P; ■ return Cl.OSUftE« ..I ) end prosjram :iZl-:A(::UNrtJ.,-POSTAVKEs hpiJin C3 = !!ìCI...(:jSURE< ........>,S>i|i(f: )<^ repeat . • • +'01' /a V!5vi l< o'mno/:ic o postavit p v C ;tn vsiak Bimbol ti r a Mvi t :i. k e X. t.ikó eia 60T0( p»X ) .n:i, prazna mnoifira :iii da se iri y C; . do ,ii(idii;i CiOìTKP.X) l<. C eiKitor ' ■ , Uriti"! nct. a Jr, b) v Pj , GOTO (Pj,a)-= P^ postavi ACTION (i, a) na "pomakni j" b) Če je postavka (A ->dC. , a) v Pj , potem postavi ACTION (I, a) na "reduciraj" A ->06. c) Če je postavka (S'-> S., v Pj., potem postavi ACnON (1,«!) na "sprejmi" 3. GOTO funkcija za stanje P^ se določi na naslednji način: Če je GOTO A) = P^ potem je GOTO (I, A)=j, (a je netermlnal.) 4. Vsi vstopi, ki niso definirani z 2 ali 3 so postavljeni na "napako" 5.Začetno stanje je stanje skonstruirano Iz postavk PRODUKCIJA : LEVI DEL : : = DESNI DEL : : : = LEVI DEL NETERMINAL IZRAZ (/'IZRAZ I 'DESNI DEL IZRAZ : : = INETERMINAL / TERMINAL^f NETERMINAL : : = ČRKA ^ČRKA / ŠTEVILKA J" TERMINAL : DEUMITER : : . '.'[zNAKf Program najprej pretvori vhodne podatke v vmesni tekst. Iz tega vmesnega teksta Izračuna postavke, nato konstruira tabelo, jo llnearizlra in Izpiše. Glavni program z Imenom GENERIRAJ je: (s' ., 0) P r».'ir a M t/lj Nfc",R IR A, K VHODNI ...PODATKI') < K I-ROÜ BO produlici JR k;L cloJ ocaJo Eirama ti ko *) '<« rio je l . if ni nopak then IZRACUNAJ-POSlAVKt;:..MUtn:i-f ;i f FX<) do izpifti množico POB'tavU. t?ncl9 i. f NEAR ^ ŽIRA J» ivipinj, lineariziran'0 tabell-o» if odkriti konflikti do izpini konflikte; end ßine Javi niovnicne napake ■ «ndif .end. . ) K ) » ) ff .> » ) Procedura RAZPOZNAJ opravi lekslkalno in slntaksno analizo vhodnih podatkov In jih preslika v vmesni tekst z namenom , da se poenostavi nadaljrje generiranje In da je program kar se da modularen. procedure RAZPOZNAJO. belili opravi ekpj kviino anali/o» opravi !r>.tnl.akE>no an;stavko predstavimo v računalnik z dvema celima številoma (N, I ), kjer jo N številka produkcije In I mesto piko v postavki. Drugo komponento predstavimo z logičnim poljem z n biti, kjer je n število atomov v jeziku. Izračun LALR |X)stavk je prikazan v proceduri. procedure JZItewca . . »> < »■ .l( N ) ,}(-;• inii0 7.i.r;.! postavk ' * j ■<» ì. .ie (Dil o rice vseh mn«7:ic P0B+.avl< k) (* IM./K' rioi.ovnj, f>i)ii-,rr.i.;i.ii:U( . *;> ■ ■ ,. (» (:i(:no,CL'.ÜSI.iRI::: »ta proceduri liefinirani f>re.i » <* izračun nrve iteraci.ie *) , while- niso obdelane vse KM) d« Ps'=C!,;.USlJH(K"( N JfXi-tirvi. sinlio'u ' luh'i.le X i-;e n:i , ol)se.l, vseh liimhoilov clo . :t < L ■) 1i.K T'. X > ; 1.5 =L-t :). ; i e :i( io=:i:( i., -.t ) d« . IC K )j--=.t< K ) unija T< j.:~t >; < » <>< »KC«!. H ) I-•..•••■1..-3 («-.brisj :i(l..--l) iz end;-,. , , . ; Xs^ridsiedn.ji «iitihol? enil ; N5f=N+:l.} ends <* i2račun iiar.ief.ln.iili iteraci,! > rep ■ - Pi i==(.i(:ni:;i( F/X ) . ' . i f :(( K )=P.1. do K K K > iini.ia I t end ( 0< -"i,.- » > 'end ' . . end , ■ ■ until n:i !ir.ire«i(?n b vi Preslikavo iz LALR postavk v LALR tabelo opravimo kot je opisano v razdelku 2. 1. in je prikazana v proceduri KONSTRUIRAJ - TABELO . procedure KtJNBTRUTRAJ-TABB.O <» TAB je LAÌ.R taheia or3aniziranvi lS. r.f'> v p do TA»< N,* )5«< Ok "a" ) e;i.se .< A- -> else'(A—)0C.by,a v P do ■ PlS'^rìUflK X( N>,b>J ■ . : najdi v X taksen I da je T< K )«»P1 » . If h je terminal do TAlW n i/b )=■< K^ "S " ) else >3 j(; rieterMinal do rAB< n > h K» "G " ) end v ■ end end end ■ ■ _ . end - ■ ^ Kot izhod iz procedure KONSTRUIRAJ - TABELO'dobimo Zadnji korak pri konstrukciji LALR tabele je linearlzacija matriko m x n, kjer je m število atomov jezika, za kate- matrike. Linearizadja pomeni, da tabelo, ki je ortjani- rega konstruiramo tabele, n pa število stanj končnega zirana kot matrika preslikamo v vektor, v katerega ne vpi- avtomata za razpoznavnlk. su jemo praznih členov matrike. , ;< ». IrK. L .N.J ■; , so števci - *>. '<« fABl je lineariziran» LALR tabela«) ■ («' lAtC! je tabela indeksov ,k> . be.'Min . . pr«icedi.ire ■K5"--;:| ; i Ai:i2( ;l ).'~.i ; ' < iniciall zaci ja .« )' , . - ■, for' to n do ■ , ' * he«in L4'=<) ■ for Hi"'l t» M du be?!-) ill if 'VA.« H..M )' ni O tlo 'l AV.iK K ) •■■.■ipcl;'- LS"t+i f endi. . ■ ■ . ■VAU'.>< -»«--TAB;« N )1L ..' .. end . end 24 4. ZAKLJUČEK Naveden generator LALH tabel je zelo koristen pripomoček In omogoča razpoznavanje kakršnega koli jezika, ki se ga da izvajati v kontekstno svobodni obliki. Torej ga lahko uporabimo pri Implementaciji večine današnjih programirnlh jezil^ov., kakor tudi za komandne (ukazne) jezike. Generator smo preizkusili za proceduralni jezik, za aplikativni jezik in za komandni jezik si-mulacljskega svežnja. Da smo lahko pri tem odpravljali napake, je bilo potrebno generirati poleg osnovne LALR(l ) tabele še tabelo napak. V bodoče nameravamo spremeniti generator tat)el tako, da bo sprejel kot vhodne podatke tudi gramatike jezikov v razširjeni BNF obliki. 5.'PRIMER LITERATURA 1. W. A. Barrett, J. D. Couch, Compiler Construction: Theory and Practice, SRA; 1978. 2. A. V. A Ho, J. D. Ullman, Principles of Compiler Design, Addlson-Wesley, 1977. 3. V. Žumer, Idr., Raziskava mlkroprogramlrane arhitekture za Implementacijo visokega programskega jezika, VTŠ Maribor 1982. KONS r k t.) K C :t J A i. A L k r a B t; L E vi-u,)i:iw I: I I'-KÖ )' . :l fxpä s==i-xr- AnnoF' ckrm / -fEi^M -, i! TERt14 5=TEKM MUI..TOP FACTOR / KAIn OR 5 3' r~ACT0R5 . EXI'' .). / .ir.H-MT,- ! 4 AOtJOf« »■».+. ./ . -. > • '3. NUL TOP« 4.--;./. / O . NAPAK OliKRITIH S:iMBOI..:[ KOtìA IME 1 EXP ■ ^ NfeTERMINAI... ;;.•) A/.11.I0P MI-.TERmWAI. 3 TERM NETERMINAL 4 MÜLI'OP NE TERMI: HAI... .S ■ ACTOR Nlf.TERMINAI.. • 6 < 1 ERMIt^AI. 7 ) CERMlNAt.. B JHENT, TERM^tNt-iL. 9 + I ERMINAI... 10 ..... TERMINAI.. H / ■■('ERMItNAL. IJ,.! * TI;:.|:;M.TNAt.. 13 « KCiNCNI. SIMiBOL. pr<üriijK(r,j.,.iE 1. . i:..xp --> exp aniiop (erm exi^- - - > ri;;;ftm 3 1 er'm > 1erm • muliop fa(:tor 4 ter« , —•> Ffyirinù s ■ !■ ArT'l.iR .— > < l£xp ) A l"A(;tüK ojEHT 7. aödop ...... ) l'i atlciol-'' ■ ......- > - . 9 mui.. i up — > mui.. I ni-' — > * LINEAKIZXRiJiNA LAI..R TABELA i ' ■ N i ■' STANJE TIP ■ J ■ 2 ■ K ■ ■ 1 ' r 2 ■.. . Ù ■■ ■■ 3; i- 3 ■ ■■ : ,4 Ö-' s , - •■ .'5 . S ■ . A ■ ■ •■ A : . S B \ ^ A ■ ^ . ■ 7 2 ■ . ■ • 7 , , . 8., • ■:. S . 9 ■■ ■ H : Š '■ ; S 10 ' ':, 9. 0 A . 13 ■ .. ; io ' 10 ■ ■■■4 . "if ■■ 3 R 7 ■ ■ ■ 3 • R. 9 ■ -. la 3 k 10 : 14 il . vi 1 i . 15 . 12 S 12 . : 16 : R' ,13 . ■ ; 17 ■ • ' . 5 ■ . R ■ . 7 ' IH . r<" ■ 9 1*? ■ 5 ■> R 10^ ■ ^ ■20 f< ■. 11 : 21 ; R 12 i "22 ■ 13. . Zi 13 I ■■ , : ; 24 3 . . (i ■ .. 3 ■ ; 2Š' 4 5. 2A W -. s ■A ■ , 27 ' ■ À • s 8 . ) ' ■ 7 ■ v, R ■ ■ 7 ■ ■ 29 ■ / . ■ "■ R ■ .. ■ 9 . • t M : 7 R .10 31 ■ 7 R .. li ■! ^32 ' 7. ' R ' \ ■12 ■ ^ - -. - - . ■ K ' r iä'r"";;' 34 ; 14 u . ■ 3 ' '■! 3.5 4 • G 5. ■• \'t. ;> ' A : 37 ■ . A S' . 8 r :s« ; tr R' A ■ '.-39 ■■ '8 . K- '. 8 , ■ : 40 . ■ ■ 9 R ■ A • 41 ■ ' 9- R' 8 ■4;-! . ■ 15 0. t> , ; '43 • 5 • s • A ' ' 44 ■ A r. 8 45 10 . . R . A 4A ■ .lO .■■ R e ■ : . 47 11 ■ ' • R 6 4« . .'11 R 49.- ■ 7 ■ (3 ■ ■■2 ■ - >;o lA H" ■ ■ ^ 7., • 51. 8 . '!3 . 9 : . - ; Ü2 , ' ■ ■ 9 ■ Ü . .10 S3 • 10 ß :4 ■■ t;;4 - 2 R ■ SS ' ■' 2 ■ R ■ ■ 9 ■ : SA • ■■ ■ 2- ■ R i iò ■ 57 ■ ..11 ö 11 ■ 511 Ì 2 B 12' , ; 59 ■■ 2 R .13 AO ' 4 R /• : i '.Al ■ ,4 R . -.-V A2 ■ 4 • • R io. . ■ .63 4 R 11 À4 4 R. 12 ; AS ■ 4 R . 13 ; AA • A R ■ ■ y ■, A7 A .R 9 •,'Afc> . A R 10 ■ A9 , A l< 11 70 A • R' 12' • 71 A 13 lABEL-A REIiUKKlJ • PROtUIKCIJA. A 5 A / H .9' 1.0 .i \ ■i . 1. ;s 1. 1 1 .1 t 1 ■ 'S. ■ A "ä / • « 9 10 J J I'A Sii , 14 la lA , J 6 ' 10 .17 2Ö 3B AO A2 . '\9 5;ä AO A6 /2 , LEVA STRAN .1 1 ■,5 4 TAHEL'A 'J NriEKSpV ' Ji. ■ .j.r«iEx uporaba jezika ada vstevilskih izračunih udk: 681.3.06 ada:519.682 a. p. 2eleznikar do iskra delta, ljubljana Ta £lanek oplsuje uporabo prevajalnika Janus/Ada (izvedenka 1.5.0) pri Številskih izračunih z aritmetiko Plavajoče vejice enojne in dvojne dol2ine. Prikazano je dinamično območje aritmetičnih operacij v Plavajoči vejici in njihova natančnost. Članek obravnava primere s področja elementarnih operacij (korenjenje ). numerične sistemske paketeF numerično integriranje» izračun vrednosti determinante in obrnitev matrike. in sicer* — sfloatop) vsi izračuni se opravijo v aritmetiki enojne natančnosti» ta modul Je hitrejši kot modul floatoPs. vendar ga ne smemo uporabljati Pri izračunih z dvojno natančnostjo — floatops< vsi izračuni se opravijo z dvojno natančnostJot modul se lahko uporablja pri izračunih z enojno in dvojno natančnostjo; ta modul je počasnejši od modula sfloatop, vendar so z nJim tudi izračuni z enojno natančnostjo bolj točni, ker je zmanjšana možnost prestopa (overflow, underflow >; če hitrost ni bistvena, naJ bi se uporabljal ta modul Le enega od obeh modulov lahko uporabimo v programski enoti. PoJaviJo pa se lahko tele napake oziroma njihova sporočila« — Prestop (preveliko število) — deljenje z ničlo — slab operand ( neinicializirano ali poškodovano število) in — izraz Je prezapleten PRAGMA «rithchBCk( off ) se upoablJa za zadušitev teh sporočil. Napake prestopa se ne Javljajo in vrednost se zaokroži na ničlo. Različni IEEE formati so opisani v priročniku koprocesorJa 8087. Za izpis števil v Plavajoči vejici imamo stavek put(realna-spremenljlvkar pred, po, eksponent); kJer Je realna-spremenlJivka realno število, pred Je celo števila, ki označuJe število mest pred decimalno veJico (piko) v mantisi. je celo ètevilOr ki oznaćuje ètevilo meat ' za decimalno vejico v mantisi in eksponent je celo Število. ki označuje dolžino eksponenta» če je eksponent O. se eksponentno polje ne natisne. Lista 2, Preizkus natančnosti in dinamičnega: območja prevajalnièke aritmetike s programom iZ' liste 1 kaže. da je izračun do potence -307 regularen. Vrednost mantise, ki se je povečevala, se začne pri eksponentu -310 zmanjSevati in preide po eksponentu -323 v ničlo. M tem članku bomo obravnavali nekatere značilne primere Številskih Izračunov v jeziku Ada, Vrsto primerov bomo programirali v Adi neposredno iz znanih algolskih programov (<1.2,3)), Pri te« bomo večkrat pokazali, kako je jezik Ada v primerjavi z jezikom Algol omejen. tako da določene omejitve prispevajo k varnosti oziroma zanesljivosti dobljenega Ada programa. Vobče lahko pričakujemo, da bodo Ada programi daljèi. manj sploéni in matematično manj lePi od "ekvivalentnih' algolskih prouramov. Nekatere vire in snov za spoznavanje jezika Ada najdemo tudi v časopisu Informatica (<4.5.6)), 2. Preizkus prevajalnika Janus/Ada Programi za Številske izračune so občutljivi na natančnost in na dinamično območje operacij v plavajoči vejici <(7)), Algoritem se lahko konča. ko je vrednost določenega člena manjSa od relativne tolerance, npr. člen -«C toleranca * vsota Vrednost tolerance ne sme biti manjSa od natančnosti operacij v plavajoči vejici. ker se sicer računalni postopek (nikoli) ne konča, če se operacije v plavajoči vejici izvajajo z natančnostjo IS Številskih mest, mora biti toleranca več Ja od 10*«-1S. rj «r.^ I I 'I UJ Ui ui M m M M M M MMN fO M fO M M ro M ►o M fO M M M M M M M M M 0,2 I I u UJ M T « n M M M M M « M M M M M M M M M M M M M M M M M M M M M M M r i «r -O CO r^ 1-f .H I I I I ÜJ LlI ill LU 0 Ii"; o. o ■ O O O O M M M M I I I I UI UI UJ UI O'I T'J M f i T -T T M M M M M M M M M M M M M M M ro M M M M MM M M M M M M M M M M fO M M M ro ro M M M M M M M tO M M rt ro rt rt M M I I UI UI K M i-i r-i M 00 tO M ro M to M MM M M M M n K Ch rt rt -rt M M M I i I UI UI Ui CD ro üT rt O rt o- «r N Cf fi r-i «r ». M o- >0 M Cl CI M M rt M M 10 M M M M M M M M M rt M Pi f i ro M I I UI UI fi Ö-o ■ X »» 0.1«x; ° " )> floatio.put< x )> X 0.1«x» Lista 1, Preizkus osnovnih aritmetičnih operacij v Plavajoči vejici- (long_float in float) Lista 3. Preizkus natančnosti in dinamičnega^ območja za "kratko" aritmetiko 13A>preizkus x 3.33333E~1 x = n 3.33333e-2 x BÜ 3.33333E-3 x = s 3.33333e-4> x m 3.33333E-5 x = 3,33333E"-ó' x = 3.33333E~7 x = . 3.33333E-8 x o 3.33333E--9 x = 3,33333£-lÒ x = 3.33333E-11 x a 3.33333E-12 x ca 3,33333E-13 x 3.33333E-1-4 x sa 3.33333E~15 x va 3.33333E-1<4 x a 3.33333E~17 x va 3.33333E-18 x m 3.33333E-19 x lm 3.33333E-20 x >= 3.33333E-21 x ea 3,33333E-22 x a 3.33333E-23 x = .3.33333E~24 x (S 3.33333E-25 x CS 3,33333E-2Ó x Ol 3, 33333E:~27 x = 3.33333E-2(3 x = 3.33333£~2-9 x su 3,33333E-30 x u:: 3.33333E-31 x: aa 3.33333E-32 x C 3.33333E-33 x 3,33333E-3-4 x ■-■v 3,33333E~35 x . 3.33333E-3A x n 3.33333E-37 x n 3,33333E~30 x «3 3.33333E-39 x aa 3.33332E-40 x S 3.33327E-41 x a 3.33229E-42 x sa 3.321.0(3E-«»3 x aa 3.22299E-44 x es 2.B0260E-45 x BS 0,00000£■^0 Primer iz liste 1 oziroma liste 2 kaže. da je dinamično območje prevajalniSke aritmetike enako prevajalnižki aritmetični natančnosti, torej, precej buljfie od 'dinamike" nekaterih pscalskih prevajalnikov <(7)), Podobno velja tudi za natančnost pri enojni dolžirii. kot kaže lista 3 (tu je long-float zamenjan s tiPom float). PACKAGE fioatto IS — Floating Point I/O Packaše PRAGMA arithchecl<S — Bets a value from the file PROCEIiURE put< F-ROCEDURE put< PROCEDURE put< PROCEDURE put< PROCEDURE put< PROCEDURE put< PROCEDURE put< PROCEDURE put( — Puts fale a IN file» value « IN float )» value s IN float )> fale « IN file» value e IN float« fore » IN integer)» value s IN float» fore s- IN integer)» faleUN file» value • IN float» foreiaft e IN integer)» value t IN float» foreraft « IN integer)» value s IN float» foreraftrexp » IN integer)» fale » IN file» value « IN float» fore.aftfGXP « IN integer)» formatted value to file FUNCTION float_to_Btrin3 IN long_float» foreraftrexp « IN integer)» fale 9 IN file» value » IN lang..floatr foreraftrexp » IN inteaer)» formatted value into file FUNCTION float_to_Btrin30. — To get LoslOr multipla ba lo3lO_e. FUNCTION power (valrexp s IN long-float) RETURN Ions-float» — Returns val ** exp — All angles are in radians! FUNCTION sin (anale s IN lons-float ) RETURN long-float » — Returns the sine of the angle FUNCTION cos (angle » IN long-float) RETURN Ions-floatr — Returns the cosine of the anale FUNCTION tan (anale s IN lona_float ) RETURN long-float» — Returns the tangent of the anale FUNCTION arctan (val « IN long-float) RETURN lonu-float » — Returns the arctangent of the value FUNCTION arccos (val e IN long-float) RETURN 1ona_float » — Returns the arccosine of the value function arcsin (val s IN long-float) RETURN long-float( — Returns the arcsine of the value FUNCTION arctan2(XrY « IN lons-float ) RETURN long-float » — Returns the arctangent of X / Y FUNCTION deg-to-rad (anale « IN lona-float) RETURN long-float» — Converts the angle in degrees to the — same anale in Radians FUNCTION rad-to-dea (anale » IN lona-float) RETURN lona-float» — Converte the angle in radians to the — same anale in dearees END mat hi ibs Lista S. Knjižnica matematičnih funkcij z dvojno natančnostjo 3. Paket "fXoatio* in knjižnica '«lathllb* Kndižnica "floatio" Je zbirka funkciJ in procedur za ßPreJemanJe (set) in izdaJanJe , Isto podprosramsko ittie se lahko uporablja v veC različnih podproaramskih specifikaciJahS reće-MO» da se ime prekriva (da Je prekrivajoče). Za naSe primere bo zlasti bistvena uporaba procedure put za enojno (float) in dvoJno doltino (lons_float ). Imamo B različnih procedur put za enoJno in dvojno dolžino parametrov. Lista 4 nazorno poJasnJuJe posamezne primere. Razen prikazanih procedur put v paketu floatio pa ob-, sta Ja Jo èe druse procedure put v druaih paketih ( stahdardio )r ko imami npr, PROCEDURE put(value PROCEDURE put(value fore IN strina )» IN intesero IN inteaer)» ki Jih tudi poaosto uporabljamo. Pri procedurah put iz paketa floatio se nanJe sklicujemo s procedurnim imenom floatio,put tako da prevajalniku olaJ&amo delo. Za številsko računanje pa so zlasti pomembne nekatere matematične funkcije. ki so zbrane v knjižnici mathlib.lib (ime zbirke), te funkcije se prikazane v paketu liste 5 za dvoJno natančnost. Te funkcije SOS scirt( X )» roundC x )« trunc( x ). exo( x >. loa( X )> Power(x.a)r sin( x ). cos( x ). tan( X ). arctan( X )r arccas( x ). arcsin( x ). arctan2( X .a )r dea^tò_rad( x ). rad_to_dea( x ) Med zanimivimi funkcijami sta vsekakor tudi exp(e) in Power(x.»). ki omoaočata konstrukcijo novih uporabnièkih funkcij (v novih knjižnicah). Te knjižnice vključujemo in povezujemo v upo- rabniške pakete s členoma WITH in USE, kot bomo ^pokazali v nailih primerih. 4. Primer funkcije kvadratneaa korena Napižimo v Jeziku Ada proaram za funkcijo kvadratneaa korena, ko uporabimo Newtonovo formu-|lo. Računalniki, na katerih se operacija delJe-;nJa izvaJa dovolj hitro, daJo dobre rezultate z uporabo Newtonove iteraciJske formule ((8, 9)) a( i+l ) = 1/2 « ( u( i ) + z/a( i ) ) ( i » 0,1, ... > lim a( i ) i» V7 Za ètevilo x v plavajoči vejici X = (2*«P ) » z, k Jer vel Ja 1/2 (= z ( 1 dobimo \/T = <2*«(b/2)) « \fT Pri lihem p izračunamo 2*»((p-1)/2) in pomnožimo ta faktor će e V2 ali l/lfi" v odvisnosti od predznaka p. Normalizacija vre- WITH floatio, floatops, utilS PACKAGE BODY test kor IS SUBTYPE real IS lona_float> x,u8 real» 1,RS intéaer.» Bq2« CONSTANT S" 1.414_213_t362_373_096» PROCEDURE normal (x« IN real? us OUT real P PS OUT inteaer) IS BEGIN IF x < 0.0 THEN neui_linef Put(°Napaka8 koren nesativnesa ètevila')» new-lines a s» l.Of p ><= Oi ELSIF x > 1.0 THEN a s» 2.OS p s= K WHILE x > a LOOP a si= a*2.0S p .s= p+D END LOOP» ELSIF x > 0.0 AND x < 0.5 THEN . , a s= 0,5» p -1» WHILE x < a LOOP a »= a*0.5» P 8° p~l» END LOOP» a s= a*2.0( p s= p+1i ELSE a »= 1.0» p »■■= 0» END IF» a s= x/a» END normal» FUNCTION spr_z (zs IN real) RETURN real IS x, as real» J s inteaer» BEGIN X 6» abs( z )» . IF z = 1.0 THEN RETURN z P ELSE a s= 0.5+0.5*x» FOR J IN 1 ,, 6 LOOP a 8= O.S*( a+x/a )» END LOOP» HJETURN a» END IF» END <äar_z» FUNCTION sian (is IN inteaer) RETURN inteaer IS BEGIN IF i ( 0 THEN RETURN -1 » ELSE RETURN 1» END IF» END sian» FUNCTION sort (xs IN real) RETURN real IS as real» p s inteaer» BEGIN normaK x ,a ,p )» IF' p mod 2 = 0 THEN RETURN ( 2.0»*( p/2 ) )Ksqr_z( a )» ELSE R-eT(JRN ( 2.0**( ( pr-1 )/2 ) )*Bqr_z( u )»( sq2*»sisn( p ) )» END IF» END sqrt» BEGIN x 8= 2,0» FOR i IN 1 ., IS LOOP new_line» floatio,Put( x )» put( ■ ■ )» floatio.put( 6i«rt( X ))» put( " " )» floatio ,put( B<»rt( X >*ö<»rt( x ))» x 8= x+1.0» END LOOP» END test k or» Lista 6. Ta lista prikazuje proceduro in funkcije, ki se uPorablJaJo pri korenJenJu, in sicer za normalizacijo vrednosti na interval (1/2, 1) (normal), za izračun korena normalizirane vrednosti (sltestl. Prosramska enota korada daJe pri kvadri-ranJu nekaterih vrednosti manjžer enota testkor pa večje vrednosti od nominalnih 1) Je potrebna zaradi slabe iteracijske konvergence Newtonove formule pri vrednostih« ki se pribliiujejo ničli. * Začetna vrednost za u; put< ■ " >; floatio.put< Bcirt< X ) )» Put< " ' )i f loatio.put< sqrt< x )»sqrt< x ) )« new_line> X t» x+l.Of ENB LOOP» END korada» PRAGMA condcomD< on )( WITH floatio, floatops, utilf PACKAGE BODY testkori IS SUBTYPE real IS lons_float# x,a,zs real; i,p« integers sq2s CONSTANT s«= 1.414_213_562_373_096> FUNCTION SQr_z ELSE a s= 0.5903»x+0.4173; put< "aO = " )sf loatio.put< a )> new_line» FOR j IN 1 .. 6 LOOP a s=. O.S»» out< ' " )> IF j mod 2 ■= 0 THEN new-line S ENIi IF» END LOOPS RETURN as ENB IF S END s new-lines X s= X+2.0» ENli LOOPS END test k or is Lista 8. Ta lista prikazuje programsko enoto za evaluacijo natančnosti vsrajene funkcije sqrt - 0> O m (0 T T •T N -T -"T . M 00 00 O N hs t M M O O O • o + o 111 o 00 o o »H Vi w W co o + 1 I I I CD o ill LJ Ili tiJ UJ ^ o o o »-I o- o- IjT o o o M ro K • o o 'T o M o o lil -«t- T co o o M 00 CD o O O r-j K Is lil rt rt rt rt rt rt 1 1 1 Ui ÜJ m 1 1 1 UJ UJ UJ bi bi «r bi bi -0 0-0- On 00 co . rt o o «r ■'T 0 'O <1 rt rt rt bi LO bi V T O o o o O bi bi bi o + 0> (S + M ro ro + UJ Ul » ► » UJ o tš K Iš rt 0* (S On rt o o o o o O o II II II o II II II o o o o o fj >0 o f J ^ nO o Ji 3> 31 o o 31 JI 31 O O o o o M l<) o ■ o o to o o f i M M -O LT ■ C 0 ^ f u> 01 v « o o o U1 o r-i o o o o o >0 ^ r-i r-i > o o o ^ nO ^0 -o ■O -O -O o rH + 111 tli UJ Ili LU O O O liT O O liT O O O T O O O (h r j o o o 8 o ra n o o "1 CS o M co <1 + O Ul o o, o .H rs o ! (S O UJ o. o ÜT «r o ro co 00 OD CD o v m II II II n II 01 -o C 19 o w M liT o > k ji ji 5> ji ü . K Ü1 fi > T ts i O ^ OJ I liT o -T ■rH NO T M « f j C •O . • 0) liT f i C O o ■ 01 n K (s K rs 1 i» u II II II II Ol -D C. « o ^ n ÜT o > * 31 JI JI JI i: i: o f i Ij") liT I o -o o o < o OD o CS I Ui o. D- O rt bT O I o Ui -O o Ü1 o o 00 rt • ■T rt K M n O^ rt •o m 0) o rs ÜT n f ic T «o C rt . 0) «r M t. lil o 10 je r 01 k o- o- cs (s o « c c II II II II II dJ XI C. x j) ji ji ji jic o rt rt rt + 111 Ui UJ UJ UJ o o 00 liT O O On 00 O O fi ^ O O T M O O 00 (S O O bT -O O O O -O o o f-I «r o bi Is M O f i bT T o rt rt rt O CO -«r T o M bi !il O ro M M Lista 10. Ta lista prikazuje rezultate programa I li«tti? 9, Po tretji iteracioi Praktično ni vei spremenib v rt^zultatihi tako da velja praktično u3 = u4 o aS " Lista 8 kaie za primerjavo èe pronramsko enoto korada z 'vsrajeno' funkcijo sirt (iz matematične Unjiinice 'mathlib"). ta funkcija je za uporabnika dosegljiva z ukazome WITH mathlib» in use mathlibSr kot je rzavidno iz liste 8. Rezultati teaa proarama so prikazani v prvi polovici liste 7 (korada). Minimalne razlike wed obema funkcijama »ort (iz mathlib in , iz testkor > oo vidne v tretjem etolpcu liste 7. V listi 9 imamo modifikacijo proarama z liste 6, ko nas zanima natančnost rezultatov v posameznih iteracijakih korakih. Lista kaže le spremembe» in sicer stavek PRA(.ìMA .cond<:omp( on na začetkur vrinjene stavke v funkciji scir_z (označene z "Ž') in spremenjeni slavni proaram. Rezultati tako modificinaneaa prosrama so delno prikazani v listi 10. Od tu je vidno» da tri iteracije v Newtonovi formuli povsem zadožičajo za IS-mestno natančnost. 5, Primeri tltevilskih izračunov vrednosti določenih intesralov V tem POalavju bomo pokazali primere izračunov vrednosti določenih intearalov po tìimpaonur po Filomberau in po Gaussu. V prvem primeru bo pod-intesralska funkcija lahko "eksperimentalna"/ podana z merjenimi vrednostmi na določenem intervalu s konstantnim korakom. V ostalih dveh. primerih pa bo podintearalska funkcija podana analitično'. Seveda pa imamo v vseh treh primerih moinotiti za ustrezno Pi'oaramsko predstavitev takih ali druaačnih podintesralskih funkcij (npr, z dodatno uporabo interpolacije). Preizkus funkcije za izračiin 'integrala — po S;LmPSonu WITH floatior floatops, utils PACKÀKE Bonv testsim IS SUBTYPE: real IS lona-floatJ TYPE polje IS ARRAY (O ..100) OF real» : nžjs inteaer; aal»ua2»au3,aa49 poljei — Ta funkcija je predmet naàe pozornosti« —*»**»»»**»»*•***«»»«»*»»»***»»»»»»»»»)♦**»»«»»» FUNCTION sim ( n« IN integer» a, b s IN real» »! IN polje) RETURN real IS s 9 real» i« integer » BEGIN 6 S" (a(O)-a(n ))/2.0» i 1», WHILE i <=. n-1 LOOP 3 c= s + 2.0»a(i) + a( i+1 )» i !■= i+2» END LOOP ! RETURN 2.0*(b-a)*s / ( 3.0»reaK n ) )» END Sim J —*»«*•»«■*«»«»»«»»**»**»»»****«**«»*«■****«*»»*»« FUNCTION fune ( xs IN real» j s IN integer) RETURN real IS BEGIN IF j=l THEN RETURN x»x» FXSIF ji=2 THEN RETURN x«(1.0+x»x)» ELSIF j=3 THEN RETURN 0.43429_44tìl9_03251_827é5/x» ELSE RETURN 1.0» END IF; ENti fune» PROCEDURE fill ( a.bs IN real» jrrt» IN integer» MM» OUT polje) IS hs real» is integer! BEGIN h »■= ( b-a )/real( n )» FOR i IN 0 .. n LOOP uu( i ) func( a treaK i )*h, j )» END LOÖP» END fill» . — Glavni preizkusni program BEGIN — Polnitev funkcijskih podatkovnih poljs fill (2.0, 5.0, 90, aal)» fill (2.0, S.O, 2, 100, mh2)» fill (1.0, 5.0, 3, 70, aaS)» fill (2.0, E5.0, 4, 10, aa4)» — Izračun integralov» nei«_liné» put( 'integral 1 " )» ■ floatio.Put(sim(90, 2.0, 5.0, aal))» neu)_iine» put( 'integral 2 •= ' )» floatio,Put(Qim(100, 2.0, 5.0, aa2)>» neig_line» Put( 'integral 3 = ' )» floatio.Put(sim(70, l.O, 5.0, aa3))» new-line» put( "integral 4 ' )» floatio.put( !5im( 10, 2.0, 5.0, aa4))» END testsim» Lista 11. Ta.lista prikazuje funkcijo sim in njcjno uporabo v določenih primerih. Furikcija sim izračunava vrednost določenega integrala na intervalu (a, b), ko imamo n»l funkcijskih vrednosti pri konstantnem koraku podanih v polju >J. S proceduro fill in funkcijo fune se-neriramo določena poskusna funkcijska polja v glavnem programu te liste. Lista 12, Ta lista prikazuje rezultate prgram-ske enote z liste 11» ko se izračunajo vrednosti določenih intearalov. Te vrednosti se ujemajo z idealnimi vrednostmi. Lista 13. Izračun integrala po Rombersu 13A >testsim Inteural 1 3, ,90000000000000E+1 Integral 2 = 1, ,627S0000000000E+2 Integral 3 = 6, ,9ö970157257503e-l Integral 4 = 3, ,OOOOOOOOOOOOOOE+0 5,1. Izračun intearala po Simpsonu Ta program (funkcija sim) omoaoča izračun vrednosti določenega integrala podintesralske funkcije. ki je dana eksperimentalno oziroma točkovno v enakomernem koraku. Funkcija sim v listi 11 izračuna približno vrednost določenega integrala zvezne funkcije f. Ta funkcija je dana tabelarično z vrednostmi u(0)» u< 1 >, ,.. , a = f( a ) in a( n ) •= f( b > Izračun se izvräi po SimPsonovi formuli f< X >d X = ( b-a )/< 3»n ) » < a< O > + iMaC 1 > + 2*a( 2 ) + ,. , ... + 4*g(n-l) + a integral log b, pa vrednostno ujemanje ni tako dobro (primerjaj Integral 3 v listi 12 z vrednostjo desetižkeaa logaritma loa 5.0). S.2. Izračun integrala po Blomberau Funkcija rombint v listi 13 izračuna' vrednost integrala b f( x )dx s pogre&kom stopnje 2*k + 2 < k >■= O ) Cas izračuna se približno podvoji pri povečanju vrednosti k za 1". V listi 13 uporabimo zopet globalno podintesralsko funkcijo f s CASE! stavkom za posamezne primere» ta oblika funkcije je priročna za preizkužanje integracijskih postopkov z raznimi alaoritmi, V žtirih primerih preizkušanja v listi 13 smo izbrali k ^^ ó, 6, B, 3. Rezultati proaramske enote z liste 13 so prikazani v listi 14, Z izjemo vrednosti integrala 3 so vrednosti enake idealnim. Preirkus funkcije za izračun integrala po Rombersu WITH floatior floatops, utils PACKAGE BODY testromb IS • SUBTYPE real IS long_floats TYPE polje IS ARRAY (1 ,, 257) OF realJ FUNCTION f (x« IN real« q: IN integer) RETURN real IS BEGIN CASE CI IS WHEN 1 => RETURN x*xS WHEN 2 => RETURN x»<1,0+x*x>J WHEN -3 => RETURN O,43429_4'1019_O3251_82765/x ( UHEN OTHERS => RETURN 1,0« END CASE; ENfi fp - Ta funkcija je predmet naèe pozornosti« -»»»»»»**»»«»**»»»«»»»**«»»»»*»***»*»»**»»»**» FUNCTION rombint ( a,b« IN real« k»as IN integer > RETURN real IS d»Srh« real« m.irjrni integer« t« Pol je« BEGIN d « = b-a « t( 1 ) «= ( f( a,q >+f( brq ) >/2,0« n 8= 1« FOR i IN 1 ., k LOOP s «= 0,0« n «= 2*n« h d/real(n)» j 8= 1« WHILE j <= n LOOP s «= s + f( a+reaK j )*h.q )« j i« j+2« END LOOPS t( i + 1 > «= ( 2,0«s/real( n > + t( i ) ) / 2.0« m 1« FOR j IN REVERSE 1 ,, i LOOP m s= 4»m; . t< j )s~t( j+1 )+( t( d+1 >-t( j > )/real( m-1 )« ENIi LOOP» END LOOP« RETURN t( 1 )«d« ENO rombint« -**«*»»»**«««»«K»»****»»«»«»**«***»»****»*»»»» Glavni program BEGIN new. -line« put( 'integral 1 = ")i floatio.Put(rombint(2, .0, 5,0, 6, 1 >)» new. -line« put( "Integral 2 = ")« floatio.Put< r ombint< 2. .0, 5.0, 6, 2))J new. -line; put( "integral 3 = •)« floatio.put(rombintC1.0, S.O, 8, 3))« new_ .line« put< Integral 4 = •>« floatio.Put(rombint(2.0, S.O, 3, 4 ))« END testromb« Lista 14. Ta lista prikazuje rezultate izračuna vrednosti integralov s programom iz liste 13. Vrednosti integralov 1, 2 in 4 se ujemajo z idealnimi, vrednost integrala 3 pa se dobro približa idealni vrednosti (izjema so le zadnja tri mesta ), 13A >testr omb Integral 1 => 3.90000000000000E+1 Integral 2 = 1.62750000000000E+2 Integral 3 = 6. 9e97000433<4892E-l Integral 4 3.OOOOOOOOOOOOOOE+0 WITH floatio, floatoPBr utilU PACKAGE BOUY guaijl liB SUBTYI-'E: real is lons_float; TYPE Rolje IS ARRAY <1 .. 20 > 01- realf TYPE eumt IS ARRAY <1 .. 4> OP real« — Zstorrija eneja tipa sumi Je p ! vsota 5 sumi ; ■ ulrCl .u2,c2ru:s,c3,u5rcSruBfC8e pol je> ul3-cl3,u20rc20s poljef. FUNCTION f RETURN X«XP WHEN 2 => RETURN x»<1.0+x«* )9 WHEN 3 => RETURN 1,0/x; WHEN OTHERS => RETURN 1.0P END CASE» END fJ - Naslednja procedura je predmet nase pozornosti PROCEDURE p9 IN integer» c.u» IN poide» sums OUT sumi) IS h>trr« real» i»j.k» inteser» DEGIN h 4= ( b-a )/real< m >» POR' j IN 1 :. p LOOP Bum< j ). «»• O.Of r a~h» FOR i IN 1 .. m LOOP r r+h» POR k IN 1 .. n LOOP t r+u< k )*h» suM< j ) ««' »um< j >+c:( k )«f< t » j >» END LOOP» END LOOP» ■ • sum< j )' i'" h*aum< j )» END LOOP» END «iuad» -**«*»«*»»«**«»«*»***««*»***«***»**«»»*»»»»*«* PROCEDURE ar-a ? put< " " )» END ara» PROCEDURE vred (p« IN inteaer» sumi IN sumi) IB k 9 integer » BEGIN FOR k IN 1 .. p LOOP floatio.Put< BUM< k ) )» put( " END LOOP» END vred » ' >l PROCEDURE csum (ns IN inteaer» C» IN Pol je) IS i« inteaer» aa» real» BEGIN aa «= 0.0» FÜR i ,IN 1 , . n LOOP aa aa+c( i )» END LOOP» new_line» put» END csum» PROCEDURE line » PROCEDURE alava » ' FOR i IN 1.. p LOOP PUt< PUt( " END LOOP» 1 i n e< P ) ? END slava» Inte'jral " )» ■ put< i,2 )» " )» PROCEDURE inv.,koef j LOOP u< i ) 4= l.O-u(j)» c p . c 3 » u 3 ) » ì3:pìe( arbrmr 5tp» c5r u5)f izpis» u3( 1 ) 4" 0.112_701_05_3/92» . u3(2)- O.fi» c3(1 ) 4= 0.277_777_7//_/778» c3<2) >-inv„koeF(3.u3>c3>» I u5< 1 ) 0.04<4_910_0/7-.0307» u5(.2> 4= 0.230_7i!.5_344..9472» uS< 3 ) 4= 0.5» 34 cS< 1 ) «" c:5<2) 4" c5(3) t' inv_l<0Bf< SfuS.cS)? 0.:U8_4A3_442_|-j2t31> 0.239.-314_335_2497 f 0.284_444_444_44441 u8( 1 ) 9" 0.019..835..071_7S12P u0<2) ««■ 0.10i_A6A..7l_2931S u8<3) e= 0,237_233..79S_041öt u8<4) «= 0.40B_2a2_678_7522S c8( 1 ) S" c8(2> »« c8<3> s» c8<4) « = inv_l 2> 0.041_200..800_3ÖÖ5P 3) s» 0.099_210_954_ó333J 4) «■» 0.178_825.-330_2798P 5) 0.275_75;S_<424_4818i A)' O.3ö4_77O_042..O224li 7 ) f« O,S; Cl3 c.13< 4 > cl3( 5 ) c:13<6) cl3(7> l 9 «J 0,244._5<4<4...499_0246i ö> 9= 0,3;l.3._3.46„955_642:4» 9> 9.=. 0.38..107-.074_4292( :tO) 9" 0.4A3._736_739_4333 9 c20< 1 ) 9™ 0.008_807..003.-5696» 9» O.020-300-714_9002» 0.031-336-024-1671» 9= 0.041-038-370_7Ö84» 9- 0,0'ò0-965_059-9086s 9= 0.0S9_097_2A5_9B0as 9== 0,065-844-319-2246 P 9= 0.071_048_054_6S92p 9"= 0.074-586-493-2363» c20<10) 9= 0.076_376_693-a6S4p kot?f< 20»u20,c20 >» c20< 2 ) c20< 3 ) c20< 4 ) c20< 5 ) c20< 6 ) c20< 7 ) c20< 8) c20< 9 ) Kontrola vre° >P nfc>u)...llne» put< " n new-line« PUt( "--------------------- csum ciš>um< 8>c8 >) csum< 20,c20 )» new-line» csum< 3»c3 )» csumC 13rCl3 >» Izračun vrednosti intearalov ce.l.-iaiPi!ä( 2,0,0.0,10.4 )» c:el_ia:Piö< 1.0,4.0, 8,4 )P END rjuadl; Lista 15. Lii&ta na pred&nji »trani in zsoraJ prikazuje paketno telo quadl s proceduro «uad» ta procedura izračuna vrednost določenega integrala PO Qausisu. Abscisne in utetne norme so dane 13-Mestno ((10>>, procedura inv_koef pa izračuna preostale riormne vrednosti . 5.3. Izračun integrala PO Bauasu Vrednosti integralov lahko izračunavajo z uporabo kvadraturnesa integriranja po Oauesu, kot je bilo opisano v <<11, str. 33-34)). Oore-dnja procedura paketnesia telesa quadl v listi 15 je procedura quad m, n, p> c> u> isum ) ki de primerna za hkratno integriranje već funkcij pri enakih integralskih «edah in pri enakih vozliSčnih točkah. Intearacidski interval (a, b) je razdeljen na m enakih podinterva-lov za n-točkovno kvadraturno integriranje. Parameter p procedure quad predstavlja Število funkcij, ki jih nameravamo integrirati. Nadalje sta dani polji konstant c in u, kjer je cl c< k )»f( a+h*< i-H u< k ) ) ) kjer je h = (b-a)/m, koeficienti c(k ) in abscise u(k ) pa so dani v listi 15 za 1-, 2-, 3-, 5-, 8-, 13- in 20-točkovno kvadraturno integriranje ( ( 10 ) ). V listi 15 je f(x,j> v proceduri quad j-ta pod-integralska funkcija, j pa Je v intervalu (I, p)9 tako lahko integriramo v enem izvajanju procedure p različnih podintearalskih funkcij. Funkcija f9 c( n+l-k ) c< k )» F'rocedura csum pa nato izračuna (za primerjavo) k=l c< k ) katere idealna vrednost naj bi bila 1. Lista 16 prikazuje rezultate programske enote z liste 15 za vse 4 funkcije (Integral 1, ... , Integral 4) in za n-točkovno integracijo na m podintervalih (druaa in tretja rezultatna skupina na tej listi ). Na vrhu liste 16 imamo kontrolne vsote utežnih norm. 5.4. Kratka ocena natančnosti intearirnih algoritmov Iz obravnavanih primerov (Bimnuon, Romberg, Gauss) je razvidno, da dobimo pri določenih pogojih dovolj natančne rezultate (idealne vred- 13A>quadl n Vsota vseh c< i ) 1 l.OOOOOOOOOOOOOOE+O 2 l.OOOOOOOOOOOOOOE+0 3 1.OOOOOOOOOOOOOOE+0 5 1.0Ò000000000000E+0 , 8 1,0000000Ò000000E+Ò 13 t.OOlOOOOOOOOOOOE+O 20 1.0000000000004ÒE+0 Lista Ì6. Ta lista prikazuje rezultate izv/ajanJa paketnega telesa qùadl z liste 15. NaJPreJ so izračunane vsote uteti c za ri = 20. Nekatere vrednosti integralov v drugi in tretji rezultatni skupini so idealne. Že sama delitev na podintervale vpliva na natančnost izračunov ,2750000000000E+2 1.62750000000000É+2 1.627500000000b0E+2 1. A291280I4189233E+2 1.627S00000000ÓSE♦2 9.15SÖ6786189153E-1 9.1A290056510S41E-1 9.1629073121980AE-1 9.1A290731874155E-1 9.16290731874155E-1 9.17207208470252E-1 .9.16290731874522E-1 3.OOOOOOOOOOOOOOE+0-3,OOOOOOOOOOOOOOE+O 3,OOOOOOOOOOOOOOE+O 3.OOOOOOOOOOOOOOE+O 3.OOOOOOOOOOOOOOE+O 3.00300000000000E+0 3.00000000000120E+0 Integral 1 Integral 2 Integral 3 Intesral 4 1 2 3 5 8 13 20 2.09A48437S00000E+1 2.lOOOOOOOOOOOOOE+1 2.lOOOOOOOOOOOOOE+l 2.lOOOOOOOOOOOOOE+1 2.10000000000000E+1 2.10210083614930E+1 2,1000000Ò000084E+1 7.09863281250000E+1 7.12S00000000000E+1 7.12500Ö00000001E+1 7.12500000000000E+1 7.12500000000001E+1 7.13213127111973E+1 7.12S000000002B6E+1 1.3809354S108453E+0 1.38626914320686E+0 1 . 38629422218Ó07K+<) 1.3862943611148ÓEIO 1.386294361119Ö9E+0 1.38768190801016E+0 1.38629436112045E+0 3.oooooooooooooOe+o 3.0O00O0O0O0OO00É+O 3. oooooooóooooooe t-0 3,ooooooooooooooe+o 3.ooooooooooooooe+o 3.00300000000000e+0 3.00000000000120e+0 nosti> pri podintegralskih funkcijah x*x, xm( i + x»x> in 1. Nekoliko manj natančni Pa so rezultati pri podintégralski funkciji tipa 1.0/xr katere integral je naravni logaritem log x. Tu velja vobče b dx log b - log a r a dx — = log b X 1.0 Rezultate integriranja lahko tako primerjamo z rezultati 'vgrajene" funkcije log v paketu 'mathlib', Vzemimo program testlog in njegove rezultate v listi 17. Na osnovi teh in prejfi-njih rezultatov lahko sestavimo tabelo 1. Tabela 1, testsim n» 70 13 BU 0,698970157257503 testsim n=200 13 &8< 0,698970006646348 teatromb k=> 6 13 'ss 0,698970Ö04807672 testromb k= 7 13 0,6V8970004336Ö92 testromb k» B 13 BS. 0,698970004336892 test log 0,698970004336019 fluadl m» 10 n°5 13 SI 0,916290731874155 testlos 0,916290rjiö/41sr/ luadl m= 8 n=S 13 m 1,38629436111486 quadl m= 8 n=-B 13 C3 1,386294361119^9 testlog 1.38629436111989 Če vzamemo log x (testlog) kot referenco» lahko iz tabele 1 ugotovimo tole« — s Povečevanjem žtevila točk (testsimr n = 200) se približamo vrednosti decimalnega logaritma' log S.O le ha 8 decimalnih mest (preostalih 7 mest se ne ujema) ' testroMb se pri k =7 približa vrednosti decimalnega logaritma log.S.O na 12 decimalnih mest (preostala 3 mesta se ne ujemajo) quadl se pri m " 10. n = 5 natanko (ijema z razliko naravnih logaritmov log. 5.Ci -log 2.0 quadl se pri m 8r n 8 natanko ujema z vrednostjo naravnega logaritma log 4.Ó WITH floatio. floatops, util- mathlib) PACKAGE BODY test log IS USE mathlib» ' BECIN ■ \ new_lines Put( "integral 3 <«imPson. ' put( "Romberg ) ■= " )f new_linej put( " , ■ )s floati o.PUt( 0.43429448190325102765» log(5.0))s new_llne> Put( "integral 3 ( Gauss, " )» put( "l. primer) " )s new-line» put( ■ " )j floatio,Put( log( 5,0)-log(2.0)); new_line; Put( "inte.-sral 3 (Oaussr " )j put( "2. primer ) = ' )i new_line» PUt( " " )) floatio.Rut( log( 4.0 ) )» END test log» 13A >testlog ' Integral 3 (Simpson, Romberg) = 6.98970004336019E~1 Integral 3 (Gauss, 1. primer) » 9.16290731874155E~1 Integral 3 (Gauss, ,2. primer ) = . 1.38629436111989E+0 Lista 17, Izračun vrednosti logaritmov za primerjavo z rezultati intesrirnih algoritmov I— BPložno opaiamor da nekateri alaoritmi ne izbold6a pri druaih algoritmih («uadlf Oausoova metoda) pa de pri ustrezni izbiri toCk dosealdiva 15-«estna natančnost (alede na funkcido 'loa') 6, Izračun determinante Procedura det v listi IB izračuna determinanto matrike a razsežnosti n*n i metodo trianaulari-zacide. Lista 18 vsebude razen procedure det fte proceduro matizpis (matrični izpis in izračun ndene determinante) in slavni proarami ki obsega inicializacido posameznih matrik bb» cc ddr ee (primerov za naiée ocene) in étiri klice procedure matizpis za izpis fitirih matrik in ndi-hovih determinantr kot prlkazude Jist« 19. Determinante matrik v listi 19 se udemadp z idealnimi vrednostmi. Determinanta 1 de natančna vsad na sedem mest (<12)). Lista IB. Ta lista prikazude paket z^ izračun d^terminanter. Paket »estavldat» dve proceduri, in sicer za'izračun determinante (det) in za izpiB matrike in vrednosti determinante (»led listo 19) in »lavni preizkMsni ppoarami v ndem imatno inicializacido ttirih matrik ( bb. cc, dd. e«) in Štirikratni klic procedure matizpis. Rezultati tesa paketa «p Prikazani v listi 19. Izračun determinante WITH floatio» floatops» lonaopsf util« PACKAGE BODY deter 18 n» CDNÖTANT «« 4t SUBTYPE real IS lona-float» SUBTYi^E dim 18 inteaor RANtìE l .. n» TYPE BtolP 18 ARRAY (dim) 01- real» — Tip polde de matrika dimenzide n X n TYPE pol de 18 ARRAY (dü«) OF stolp» — Naolednda procedura de predmet nafto pozor— ■ noBti. PRÜCeiiURE det (a« IN OUT poide» n« IN inteser» ' • detr 5ÜUT real ) IS irdrk« inteser» trd,«a*« real» BEGIN d 1.0» POR k IN 1 .. n LOOP ma* 0.0» FOR i IN k .. n LOOP t t» a( i X k )» IF 8bB > aba THEN ma* «"t» d «= i» ENB IF» END LOOP» IF ma* » 0,0 THEN d •«« 0.0» GOTO fin» ENti IF» IF d /- k THEN ' d ««» -d» FOR i IN I .. n LOOP t a< d )( i )» a< d )( i ) a( k )( i )» a( k X 1 ) t» END LOOP» END IF» FOR i IN k+l ., n LOOP t t°> a( i)( k >/max» FOR d IN k+1 .. n LOOP a( i )< d ) •■» a( i )( d ) - t»a( k X d )> END LOOP» END LOOP» < d <> d»a( k )( k )» END LOOP» detr d» END det» PROCEDURE matizpis ( irPredrPOrekB» IN inteaer» aat IN OUT polde» _ . , no IH inteaer ) IS k»p« integer» determ» real» BEGIN neiH_line> put( "Matrika" )» put(i,2)» put( " - * )» neiM_line» put( '------------' )» neiM_line» FOR k IN 1 .. n LOOP FOR P IN l .. n LOOP floatio.put( aa( k )( p )fpred,p0reks )» put< • " )» IF P = n THEN new-line» END IF» END LOOP » END LOOP» put(" Determinanta')» Put(i.2)» put( ■ f " )» det( aa rn .determ )» f l'oatio .But< determ )» neni.line» END matizpiB» bbr ccr ddf ee» polde» Qla.vni preizkusni prosram BEGIN Inicializacida matrik bb( 1 )( 1 ) bb< 1 )( 3 > bb( 2X1) bb( 2 )( 3 ) bb( 3X1) bb( 3X3) cc( l )( 1 > cc( i X 3 > cc( 2X1) cc( 2X3) cc( 3X1) cc(3X3> cc( 4X1) cc('4X3> «" 10.96S97» • = 9A.7235<4» »a 2.3S765» «» 0.07932» tm IB.24609» 1.11123» bb(lX2) 1« 3S.1076S» bb(2X2) «—84.11236» bb(3X2) t- 22,13879» 1.0» 3,0» 1.0» &.0» 1.0» 10.0» 1.0» 15.0» cc( 1X2) cc( 1X4) cc( 2X2) cc( 2X4) ci:(3X2) cc(3X4> cc(4X2) cc(4X4) 3.0» 1.0» 4.0» 4,0» S.O» 10.0» 6.0» 20.0» dd( 1X1) »M 0.0» dd( 1X2) aa 0.0» dd( 1X3) ta 0.0» dd( 2X1) «aa ö.O» dd( 2 X2) tm 9,0» dd< 2X3) tn 2.0» cld( 3X 1 ) «K 7,0» dd( 3 )( 2 ) tu 5.0» dd(3X3) «B 4.0» ee( 1X1) )ni 0.0» ee( 1 )( 2 ) 0.0» ee( 1 X 3.) «1» 0.0» ee( 1X4) tm 1.0» eß< 2X1) IBJ 0,0» Be< 2X2) «m 0.0» ee( 2X3) Im 1,0» ee( 2 )( 4 ) Im 0.0» ee< 3 X 1 ) to Ò;O» ee(3X2 ) t'a 1.0» ee< 3X3) 0,0» ee( 3X4) tm 0.0» Be< 4X1) tm 1,0» ee( 4 )( 2 ) tm 0,0» ee< 4X3) 1» 0.0» ee( 4X4) tm 0.0» matizpiö( l,3,S,0,bt).3 )» matizpiB(2,2,l,0,cc,4)» matizpis<3.1,l,0,ddr3>» matizPÌB( 4rl.0.0,eer4 )» END deter » 13A>deter Matrika i » 10.96S'?7. 2.357Ä5 10.24689 35,10763 -84.11256 22,13579 96.72356 0,87932 1.11123 Iieterminanta 1 =» 1.52731360015724I=;+S Matrika 2 =• 1,0 l.O 1.0 1.0 3,0 4.0 •5.0 6.0 3.0 6.0 10.0 IS.O Heterminanta 1.0 4.0 10.0 20.0 2 = 1,OOOOOOOOOOOOOOE+0 Matrika 3 0,0 0.0 0,0 5.0 9.0 2.0 . 7,0 5,0 4,0 Determinanta 3 Matrika 4 O.OOOOOOOOOOOOOOE+0 o. o. o. o. 0. 1, 1. o. 0. 1. 1. Ó. o. o. o. o. IieteriKinanta 4 " 1.OOOOOOOOOOOOOOEtO Lista 19. . ta lista kale izpise posamezhih matrik in pripadajoče vrednosti determinant za programski pa.ket. iz liste 18. 7. Obrnitev matrike. Procedura invert v listi 20 obrne kvadratno matriko Btopnde n z uporabo veC,elementarnih operacij nad vrsticami;matrike matr z dopolnitvijo njene'enotine'matrike. Primer iz-.roJene matrikö Je indicirao z,vrednostjo o p i. Proaram v listi 20 obrne matriko bb. Obrat te matrike ;da zopet prvotno matrikpr tako dà yel>a ' matrika 1 = matrika 3 TprlmerJaJ v i isti 21 >~, Matrika 1 Je idea"lno jobrnJepa matrika hilbertovske matrike (matrika 2>. y programu liste 20 smo upo&tevali lastnost 0brnitev<òbrnitev> «■ M kJer Je M dana začetna matrika. Lista 20. Prosramski paket invmat rabi za preizkus obračanja kvadratnih matrik (lista se nadaljuje nal naslednji strani ). Inverzija matrike WITH floatio, floatopsr util» PACKAGE BOIiY invmat IS n« CONSTANT »■» 4» SUBTYPE real IS long_float» SUBTYPE di IS integer RAN13E 1 .. nP SUBTYPE d2 IS integer RANGE 1 2»n> TYPE stolP IS ARRAY (d2> OF real» TYPE polJe 18 ARRAY (dl) OF stolp«, — Naslednja procedura Je predmet naöe . pozpr-nosi , ■ . - PROCEDURE invert ( matr» IN Pol je» . matrl« OUT PolJe» »1 OUT integer) IS. . :— n Je globalna spremenljivka procedure t« real» ' , ' ' iirJrkrm« integer» a• pol Je» BEGIN m 8= 2»n» FOR i IN 1 .. FOR JIN 1 IF J <■=- n a( i X J > . ELSIF J a(i)(J) ELSE a( i X J ) END IF» END LOOP» END LOOP» »»> 0» . n LOOP .. m LOOP THEN : V «» matr( i )( J >» h+i 1 HEN «= 1.0» »=0.0» . Začetek obračanja i IN 1 .. h LOOP » =» ■ i » ■ for k <> if a( k )( i > = 0.0 then • ■s »=. 1» if k < n then k k+1» ■ else goto fin» end if» goto testo» ' end if » . . , ■ if s " 1 then for J in 1 .. m lòop t »= a( k )( J >» . a( k )( j > «= a( i )( J )» a( i )( J ) »" t » ' : end'loopT - end if» ' :■ for j in reverse i ..m loop a( i )( J ) a( i X J )/a( i )( i >» end loop» for k in 1 ,. n loop if k /"'i then . : for J iN reverse i ..m LOOP ' a( k )( J ) a( k )( J ) - a( i )( J )»a( k >( i )» end loop» . ' end if» . end loop» end loop» LOOP ' n LOOP «■= a( i )( J+n )» FOR i IN 1 .. n FOR J IN i .. matrKiXJ) END LOOP» END LOOP» s (B 0»■ ■ <> nuli» END invert» PROCEDURE matizp ( i.pred.po.eks» IN integer» aa) IN OUT polJe» n« integer > IS k. P« integer» BEGIN new-line« put< "Matrika • PUt» put< " ■= ' it neiu-line; put< '-----------' )» new-line» FOR k IN 1 .. n LOOP FOR P IN 1 .. n LOOP floatio.Put -2700, .0» bb< 3X3) 9 » 6480, ,0» bb( 3 )( 4 ) 91= -4200, ,0» bb( 4X1) 9 = -140, ,0» bb< 4X2) 9» EN» IF» ii-»vert< cc.dd.s )» IF s - O THEN matizpO.S.l.O.dd.n )» END IF» END invmat» Lista 20 (nadaljevanje s prejfinJe strani). Ta paket je sestavljen iz dveh procedur (invert in matizp> in iz glavnega preizkusnega programa. Inicializira se začetna matrika bb. matriki cc in dd Pa sta dobljeni z dvema zaporednima obr-nitvama. tako da je bb dd. 13A>inv«iat Matrika 1 m. 16.0 -120.Ó 240.0 -140.0 -120.0 1200.0 -2700.0 1680.0 240.0 -2700.0 6480.0 -4200,0 -140.0 1680.0 -4200.0 2800.0 Matrika 2 = 1.00000 0.50000 0.33333 0.25000 0.50000 0.33333 0.25000 0.20000 0.33333 0.25000 0.20000 0.16667 0.25000 0.20000 0.16667 0.14206 Matrika 3 = 16.0 -120.0 240.0 -140.0 -120.0 1200.0 -2700.0 1680.0 240.0 -2700.0 6480.0 -4200.0 -140.0 1680.0 -4200.0 2800.0 Lista 21. Ta lista prikazuje rezultate programskega paketa z liste 20. ko imamo prikazane tri matrike. Matrika 2 je hilbertovska. matriki 1 in 3 pa sta njeni obrnitvi. in sicer tako. tla je matrika 2 obrnitev matrike 1. matrika 3 pa obrnitev matrike 2. 8. Sklep Slovstvo (d)) A.P.Železnikar 9 Alsol 60 za sistem CP/M I. Informatica 7(1983). èt.4. str.41-54. <(2)) A.P.Železnikar» Algol 60 za sistem CP/M II. Informatica 8(1984). èt.1. str.27-40. (<3)) A.P.Železnikar« Algol 60 za sistem CP/M III. Informatika 8(1984). St.2. str.31-41. <(4>> A.P.Železnikars Programiranje v Adi I. Informatica 6(1982). St.3. str.10-22. ((5)) A.P.Železnikari Programiranje v Adi II. Informatica 6(1982). ét.4. str.19-29. V tem članku smo pokazali primernost jezika Janus/Ada za programiranje Številskih problemov. Aritmetika prevajalnika je zgrajena na standardu IEEE (procesor 8087) in njena natančnost je zadovoljiva (petnajstmestna ), Tako je mogoče tudi z osebnim računalnikom (kot je v tem primeru lakra-Delta Partner > dosegati zadovoljive laboratorijske, konstrukcijske in matematične rezultate. Vrsta algoritmov v tem članku je bila privzetih iz ((12)). tako da so bili algolski programi prepisani v adovske. Pri tem so se pojavljale le manJSe modifikacije. ki «.-lo bile potrebne zaradi jezikovnih razlik. Volvče velja seveda ugotovitev. da je Ada manj elegantna kot naen predhodnik Algol. ima pa dr-uge prednosti. ki podpirajo zanesljivejše načine programiranja. V Adi ne moremo uporabljati pročedurnih in funkcijskih imen parametrično, uporabljati dih morama globalno. Meje adovskih polj morajo biti določene v času prevajanja« zopet lahko te meje definiramo globalno, tako da v določenem deklaracijskem stavku določimo ustrezno vrednost.' Seveda pa imamo Se druge o-meditve, ki podaldSudedo zapis ekvivalentnega adovskega programa glede na algolski program. ((6)) A.P.Železnikar9 Programiranje v Adi III. Informatica 7(1903 ),.St.1. str,28-37. ((7)) A.R.Miller9 Pascal Programs for Scientists and Engineers. Sgbex, Berkelea (Ca), 1981. ((8)) V.S.Linskij» Vučislenie elementarni^h funkcij na avtomatičeskih cifrovah maSinah. Vačislitel'na ja matematika, Sbornik 2, Izd. AN BSSR, Moskva 1957, str. 94-93. ((9)) L.A.Ljusternik, O.A.Červonenkis, A.R.Jan-pol'ökij9 Matematičeskij analiz (Vučisle-nie elementarnih funkcij), Fizmatgiz, Moskva 1963. ((10)) Ja.S.tlamarakij, N.N.Lozinskij, A.T.Maku-Skin, V.Ja.Rozenbers, V.R.Erglis» Spra-vočnik programista. Tom pervaj. Sudprom-izdat, Leningrad 1963 (str.107-117 ). ((11 )) je enako kot ((2)) ((12)) M.I.Ageev, V.P.Alik, R.M.Galis» Algorit-' ma (1-50). Vačislitel'naj centr AN SSSR, Moskva 1966, priključitev pisalnega stroja na mikroračunalnik - dušan vukadi.m udk: 681.3.06 do iskra delta 'J članku Je opisana konkretna priklJuCitev elektronskesa pisalnesa stroja na terminal ali mikroračunalnik. Opisana reiitev je bila realizirana le pred dvemi leti in deluje uepeöno. Mo2na je prilagoditev vmesnižke naprave za raznovrstne elektronske pisalne stroje. Namen tesa članka je> da spodbudi bralce k re&evanju sicer manjöih toda veCkrat pereCih nalos» s katerimi se vsakodnevno srečujemo pri nas na področju računalništva. Tapewriter Interface for a Microcomputer This article deals with a TTL interface between an electronic tape-writer and a computer terminal or microcomputer. The described solution was realized two aears aao and since that time is beeins in operation. The interface can be easilw modified for various electronic tapewriters. The aim of this article Is to encourage readers for solving similar problems. 1. Uvod povezan paralelno k tipkovnici, slika 1. Povezavo ka2e Pomankanje kakovostnih lepoplsnih tiskalnikov in potrebe po njih so narekovaler da najdemo reSitev s obstoječo opremo in priročnim materialom. Ta pristop je narekoval čim enostavnejšo rešitev, pomanjkanje kompletne dokumentacije in univerzalnost uporabe pa prietopr da se izvrši emulacia tipkovnice pisalnega stroja . sodobni Pisalni stroji (Olivettif Olampiar mikroprocesorJi in pri vseh imamo tri bistvene dele s - tiskalnik, - tipkovnico in - napajalnik Po -vgraditvi vmesnika mora pisalni stroj obdržati svoJo osnovno funkcijo pisalnega stroja, pridobiti pa. mora še motnost, da se nJegov tiskalniški del lahko uporablja kot izhodna serijska enota miroračunalniškesa sistema. Hitrost tiskanja takih Pisalnih strojev se ailJe med 100 do 250 znaki na minuto, kar je sicer zadosti za ročni izPis vendar in bistveno prepočasi za stroJni izpis. Poleg emulaciJe same tipkovnice prevzame vmesnik še sinhronizacijo izpisa skladno z mehanskimi zmoinostiml tiskalnika. Priključitev mikroračunalnika je izvedena s standardno povezavo RS-232C. NAPAJALNIK TISKALNIK LOOIKA ZA OTIPAVANJE TIPKOVNICE RS232 ------ VMESNIK TIPKOVNICA Slika 1. Povezava vmesnika z logiko za otipavanje tipkovnice pisalnega stroJa Loslka za otipavanje tipkovnice pregleduje matrično tipkovnico, tako da v izbranem stolpcu C< i > ugotavlja, katera vrstica R< i ) ima vrednost O. Iz tesa usotovl, katera tlPka je bila prltlsnjena . T« Podatek se posreduje tiskalniku , ki izpiše ustreznen znak ali izvrši ustrezen ukaz. Slika 2 prikazuje povezavo med tipkovnico in logiko za otipavanje tipkovnice. 2. Opis rešitve Vmesnik za priklop Pisalnega stroja je v bistvu emulaciJa tipkovnice Pisalnega stroja in je Poleg signalov C Je na vmesnik pripeljan še signal, ki dopove vmesniku, da Je tiskalnik prost. Napajalna napetost za vmesnik Je vzeta iz samega pisalnega stroja. Na sliki 3 je prikazana povezava vmesnika in Pisalnega stroja. 40 LOBKA ZA OTPAVANJE TIPKOVNICE V C< O > . . C< 7 ) R( O ) . . R< 8 ) TIPKOVNIC^! Slika 2. Povezava med tipkovnico in loslko za otipavanja tipkovnice v Plealnem strodu. NAPAJALNIK LOGIKA ZA OTIPAU. TISKALNIK "fT" +sy +12V -12V C(0 .. 7) f<<0 .. 7) RDY l i v _ t v M E s N I K R3-232C ftS-232C pretvornik TTL----RS tipka RESEI- tiPka ONLINE U A R T A FIFO LOGIKA RDY tiEKOniRNIK e:_________ C(0) .. C(7> A0..,A6 OE A7...A9 ROM no...»7 R<0) R<7> Slika 4, Blokovna shema vmesnika Slika 3. Povezava vmesnika z elementi pisalnega stroda. 3.1,. Opis vezalneaa načrta 2.1. Princip delovanja vmesnika Serijski vhodni sisnal spredme UART in sa pretvori v paralelni sianal in PosreduJe naprej v FIFO pomnilnik. Pomnilnik FIFO odda sprejeto kodo s Pomoi^jo logike v ROM kot prvi del naslova, Di-uai del naslova Posreduje dekodirnik iz tipalnih linij C do C<7>, SoCaonost kode in pololaja tiPke znaka> ki sa koda predstavlja prek preslikave» ki je vpisana v ROIiu> povzroči. da se v vrsticah R do R<7 ) pojavi ena sama ničla r ki predstavlja pritisnjeno tipko. To ničlo posreduje losika za otipavanje tipkovnice tiskalnikur ki izvrći ustrezen ukaz. Logika nadzoruje poles sinhronizacije izpisa öe napolnjenost FIFO pomnilnika« slnhronizira sprejem s Posredovanjem RTS sianala ali Pošiljanjem ICl in riC3 kod» daje takt za hitrost prenosa in omosoča pravilno časovno zaporedije sianalov proti Pisalnem stroju , Od zunajnih ukazov ima vmesnik dve tipki» in sicer RESET in ONLINE/OFFLINE . Svetleči indikator sori, ko je vmesnik v Položaju ONLINE. Slika A ponazarja princip delovanja vmesnika. Princip delovanja vmesnika je v bistvu isti za priključitev vseh pisalnih strojev ■ Razlika je lahko samo v izbiri vira (izvora) za RDY sisnal. Poleg Pisalnih strojev se na vmesnik z .manjèimi predelavami lahko priključi tudi paralelni tiskalnik. 3. Izvedba vmesnika Vmesnik je izveden z MOS in TTL inteariraniml vezji. Slika 5 je vezalni načrt vmesnika za priključitev Pisalneoa stroja OLIVETTI ET221. Intearirani vezji £4 in E23 opravljata RS/TTL pretvorbo» vezje E19 je UART, vezji E18 in E21 oblikujeta 8-bltni FIFO, vezje E7 je dekodii— nik, vezje E22 pä ROM, ki preslikava ASCII kode na tipke < znake pisalneaa stroja >. Vezje za resetiranje je E13. preklopnik za ONLINE/OFFLINE pa Plovlca vezja E8. Vsaka sprememba sianala RDY povzroči poéiljanje DCl ali DC3 kode. kar omo»oča vezje, ki sa oblikujejo elementi E16, E4. E23, E17. El in polovica , elementa E8. Preostala intearirana vezja oblikujejo kontrolno losiko. Specifičnost Povezave na Pisalni stroj ET221 je vezje. ki aa oblikujejo elementi E27, £24 in E2Ó. To vezje zazna zahtevo plsalnesa stroja za podatek iz tipkovnice in aenerira RDY siunal. ki 3a logika uporabi za sinhronizacijo Izpisa. To vezje omosoca uporabo internesa vmesnega pomnilnika. tiru£ii pisalni stroji pa posredujejo RDY sisnal direktno na vezje E6. notica 4. Priključitev plsalneiia stroja na vmesnik je izvedena prek priključnice IiB-25-S« povezava tipa RS-232C pa usteza standardu. Tabela 1 kaže kodno tabelo za pisalni stroj Olivetti ET221. 4. Sklep Vmesnik je bil narejen z namenom, da se na terminalu in malih računalniških sistemih omogoči izpis dopisov in krajcih tekstov. Vmesnik je bil v ožičeni obliki izdelan le pred dvema letoma. Izkufinje «o pokazale, da je naprava zelo uporabna in da ustreza namenu, s katerim je bila narejena. Za preizkusno serijo so bila izdelana tiskana vezja. toda zaradi pomanjkanja pisalnih strojev na trsu naprava ni doživela serijske proizvodnje. Hitrost izpisa Je Slika 5. Ta slika prikazuje veialni načrt ___t I i I I__ I M !! i ji i i — j-_ÌLn_ i i i i t i ili V! RDYie-3), »tflSB(l-2) lin. u m i i ti .ii.ii-ii i i CTIOi04)VĆII(»-2) V T» Rl .1 I .i i Slika It Najbolj sposobni vezji iz družine latB, to sta 18216 In ZBSaB. iaata na vezju vsa sestavi» dele potrebne za aikroratunalnili ) spoainsko uiravljalno enotoi 'cache* spaaini itiri DMA kanalti stiri Stevnike/Casovnike in seriska vrata. omogočajo večjo fleksibilnost. Ker je binarna koda procesorjev Z8i3i2> kompatibilna z Z80, ima vse registre kot ZflBj dve B-bitni banki registrov fl-L in fl'-L', dva 16-bitna indeksna registra IX in IY, dva 16-bitna skladovna kazalnika ter programski Števec. 260(9 ima dodatni glavni statusni register, ki vsebuje zastavice za indikacijo procesorjevega statusa. Poleg tega ima Se Števec za prekinitve in za notranje aoftwarake prekinitve Output Enable Read/Write -) ■ -) System Clock -) Internal Operation —) Refresh —) I/O Transaction •) Halt ■> Interrupt Acknotiledge A ■) Interrupt Acknowledge NXI •) Interrupt Acknowledge C ) Interrupt Acknowledge B —) Memory Reference (Cachable) ') Memory Reference !l 1 I" i*" j" i" j" i* !l Naslovi strani po 1 1 i j. j j i < i • t j i i ! •Atributi' 1 } L 4 Kzloge spoaina ! - Write-protect! ! - iodifled ! 1* ! - valid ! i" i" 1 - cachB ! 1 t J' \Z Siste« 1 ì j i i i i Uporabnik 83(1B) 18 11 i va registrov (register za V/I strani in glavni statusni register) in omogočajo uporabo sistemskega in uporabniškega načina. Ukaz LDCTL (Load Control) naloži -podatke ali premakne in shrani podatke iz posebnih CPU registrov. Samo v sistemskem načinu je mogoče i ničija1 i zirati register za V/I stran, prekinitve in tabelo kazalcev za notranje programske prekinitve (traps). Privilegirans ukaze lahko izvajamo samo v programih, ki se izvajajo v sistemskem načinu. Ti ukazi imajo nadzor nad registri in procesorskimi stanji, in lahko bi rekli, da so del operacijskega sistema. Privilegirani ukazi SOI "Stop", "Omogoči prekinitev", "Onemogoči prekinitv", "Izberi prekinitveni način", "Naloži kontrolne registre CPU-ja" ter "Vrni se iz prekinitve". Ukaz SC (System Call) omogoča povezavo med programi v uporabnikovem načinu in operacijskim sistemom, ki se izvaja v sistemskem načinu. Ukaz SC shrani procesorjev status (vrednost programskega Števca in glavnega statusnega registra) na sklad, shrani 16-bitno sistemsko klicno Številko SC ukaza na sklad, in potem izvrši notranjo programsko prekinitev (trap). Operacijski sistem, po naslovitvi primerne servisne rutine za notranjo programsko prekinitev, normalno uporabi sistemsko klicno številko kot indeks v tabelo podprograiiiskih naslovov za različne sistemske funkcije. Ta kontrolni mehanizem omogoča uporabnikovim programom zahtevati privilegirane usluge, (kot so upravljanje s spominom, itd.) ne da bi bilo potrebno zaradi tega preiti v delovanje v sistemskem načinu - s tem izgubimo zaščito operacijskega sistema. Nekateri ukazi umogočajo tudi sodelovanje z dodatnimi procesnimi enotami, kot je recimo prihajajoči 28070 - matematični procesor za računanje s plavajočo vejico. FizlM naslov Slika 3: Relacije «ed logiinlii in fiiienl«! naslovi prekinejo uporabniäki program. Ukaz "Test and Bet" je vključen zaradi multiprocesiranja. Ta primitivni ukaz se • pogosto uporablja kot signal med dvemi ali več sodelujočimi programi za zagotovitev ekskluzivnoga dostopa do posameznih enot na vodi lu. Poleg 16-bitnega množenja in deljenja arhitektura Zfl(90 vključuje tudi druge 16-bitne aritmetične operacije, ki jih ZSa ne \)ključuje. Te instrukcije vključujejo B-bitno in 16-bitno "Prištevanje akumulatorja k naslovnemu registru" (fldd Accumulator to fiddressing Register), 16-bitno primerjanje, povečevanje ali zmanjševanje 16-bitnB vrednosti v spominu, 16-bitno negiranje in popolno 16-bitno seštevanje in odštevanje. Vsi ti ukazi uporabljajo HL registerski par kot 16-bitni akumulator. Obstoječi registri so pri Z800 bolje izkoriščeni. Registra IX in IV sta dostopna kot 16-bitna ali vsak kot dva 8-bitna (uporabljamo lahko vse S-bitne ukazei shrani, naloži in aritmetični ukazi). Ta možnost izenači IX in IV registra z ostalimi splošnimi registrskimi pari BC, DE in HL. ZÖ00 vključuje novo grupo ukazov za kontrolo CPU-ja, ti ukazi omogočajo dostop do novih 5. SPOMINSKA UPHOVLJftLN« ENOTA Eden od perečih problemov današnjih mikroprocesorskih sistemov je upravljanje z velikimi programskimi in/ali podatkovnimi spominskimi prostori. Ta problem se je reševalo na različne načine, kot na primer z dodajanjem zunanjih vezij za preslikavo spomina (to poveča porabo prostora na plošči in kompleksnost) ali pa je potrebno popolnoma spremeniti konfiguracijo in uporabiti 16-bitni procesor (s tem izgubimo kompatibilnost z obstoječo kodo in poveča se razvojni čas novega izdelka). Mikroprocesor Z800 rešuje problem z uporabo spominske upravljalne enote - MMU, ki dovoljuje preslikavo spominskih stv^ani in omogoča zaščito brez kakršnekoli zunanje logike. CPU sam loči sistemski prostor od uporabnikovega, poleg tega pa loči še programsko kodo od podatkovne v obeh spominskih prostorih - torej lahko govorimo o štirikrat večjem dostopnem spominskem prostoru brez spremembe programa ali dodajanjem zunanjega harc(wara. Mehanizem za transformacijo naslovov, ki se imenuje "dinamično relociranje strani", je uporabljen za preslikavo teh logičnih naslovov v fizični naslovni prostor. Logični naslovi, ki jih generira CPU, gredo preko MMU-Ja, ki jih prevede v fizične naslove in pošlje na naslovne linje, ki pridejo iz vezja. Ta MMU omogoča pri ZBZ0B in 28316 upravljanje z 16-Mzlogov spomina brez izgube hitrosti pri pretvorbi naslovov. Pri zai0a in 28116 omogoča 19 naslovnih linij' dostop do 512 Kzlogov Logični podat, uslov Registri za opis strani &4k zlogov Spotiin Uk zlogov ŽFFFFh leH 1£H ICH 1B( Podatkovna banka 1 Spcnin Podatkovna banka a MFFFFh .1 iaefwi») l2F(Tfh m ežH £CH Spomin Podatkovna ! banka ! 1 ! llFFFFh -I Podatkovna banka 2 ISFFFFh Slika V sistnskn in podatkovn« naSinu iaaao aoinost takole naslavljati spoaiski prostor. Spoainski prostor l^ko naslavlja»! z registri za opis strani in sicer skupaj ali ločeno prograiski in podatkovni del. spomina. Za pretvorbo med logičnimi in fizičnimi naslovnimi prostori MMU uprablja dva nabora po 16 registrov za opis strani. En nabor JB za sistemski način in en za uporabnikov način delovanja. Enostavno, 16-bitni logični naslov procesorja Z800 SQ deli v dve polji, v 12-bitni odmik In v 4-bitni indeks (slika 3). Odmik gre dalje v fizični naslov nespremenjen, indeks pa izbere enega od registrov za opis strani. Ta indeksni register vsebuje zgc-rnje bite fizičnega naslova in množico takoimenovanih atributov za to izbrano stran. Vsak 16-bitni register za. opis strani vsebuje 12 bitov naslovnih informacij in 4 bite za atribute. Naslovi se prevedejo, tako da se spodnjih 12 ali 13 bitov logičnih naslovov nih vrednosti. Za notranje prekinitve in nevektorske prekinitve je vsako polje sestavljeno iz nove vrednosti za programski števec in nove vrednosti za glavni statu95ni register. Pri vektorskih prekinitvah pa polje novih vrednosti obsega samo novo vredviost programskega števca. Pri vektorski prekinitvi se stara vrednost programskega števca in stara vrednost glavnega statusnega registra shrani na sistemski sklad, prekinitveni vektor pa se prebere iz prekinit vene naprave. Ta vrednost se potem shrani na sistemski■sklad in uporabi za iskanje nove vsebine programskega števca Iz notranje prekinitvene tabele. Tak način omogoča posluSevanje prekinitvene rutine na katerem koli mestu v spominu in dovoljuje tudi gnezdenje prekinitev, ker je predhodno stanje shranjeno na sklad in ne sarnö v začasni zaznamkovni regiser, kot je to pri ZS0. Procesor ■ omogoča tako maskirane kot tudi nemaskirane prekinitve. Maskirane prekinitve so omogočene z enim od .bitov v glavnem statusnem registru in procesor jih sprejme samo, če je ta bit postavljen. Nemaskirane prekinitve ne moremo onemogočHi, procesor jih vedno sprejme. Procesor pregleduje stanje zunanjih prekinitev po koncu vsake instrukcije in izvede servisno rutino pred izvajanjem naslednje programske instrukcije. Maskirane prekinitve . so lahko vektorske ali nevektorske. Ce so vektorske, jih procesor izvaja tako, kot srno sedaj opisali, če pa; so prekinitve nevektorske (v prekinitvènem načinu 3), se uporabi posebno nevektorska prekinitvena tabela, ki določi servisno rutino. B. PERIFERIJA NA VEZJU B periferijo, ki je že na vezju, potrebuje mikroprocesor ZÖ00 minimalno število komponent in povezav za izgradnjo sistema. Štirje DMfl kanali pri Z6208 in ZÖ216 omogočajo neodvisen, hiter prenos podat kov 5 serijska vrata omogočajo popolni-dvosraerni asinhroni način prenosa, ki deluje s hitrostjo do ŠM Hz/s pri časovnem signalu 10M , Hz-ov. Vsak DMfl kanal ' je lahko programiran za prenos podatkov iz spomina v spomin, iz spomina v V/I napravo (ali obratno) ali pa iz ene V/I naprave v drugo V/I napravo. Poleg tega podatke lahko prenaSamo v teh načinih : prenos posameznega zloga, blokovni prenos ali kontinuiran prenos. Pri posameznem prenosu DMR sekcija realizira vodilo med CPU-jem in še enim DMfl kanalom za vsak prenos zloga ali besede. Blokovni, način dovoli DMA sekciji prenos podatkov tako dolgo, dokler J ih je periferija pripravljena sprejemati. Kontinuirani način dovoljuje DMfl vezju prenos celega bloka brez sprostitve vodila. Poleg tega vsak kanal kontrolerja lahko deluje v načinu "ni prenosa" in se obnašai kot števec. Vsak DMPI kanal je sestavljen iz, £A-bitnega 'izvornega „naslovnega registra, E4-bitnega ciljnega naslovnega registra, 16-bitnega števnega registra in 16-bitnega registra za opis prenosa. Vsi ti registri so v V/I prostoru ,ĆPU-ja in sp dostopni z I/O ukazi preko internega CPU-jeyega vodila. DMfl kanali .uporabljajo naslovne, podatkovne in kontrolne linje procesorja za prenos podatkov izven procesorja. Vsak kanal ima vhod preko katerega ^hko zunanja naprava zahteva prerjos. Vse štiri DMfl kanale nadzoruje "glavi DMfl kontrolni register", ki lahko ukaže kanalom, da se povežejo med sabo ali.na serijski V/I kanal. Ko sp DMfl kanali povezani, se eden obnaša kot služabnik, ki nalaga glavni DMfl kanal z novim naslovom, številom in opisnimi informacijami. Glavni kanal prenaša bloke podatkov k ciljnemu kanalu in'potem čaka, dokler podrejeni kanal ne poveča svojih registrov glede na informacije, prenešene iz spomina. S to strukturo je prenos rezličniH tipov in prenos na različne lokacije mogoč brez posredovanja CPU-ja. Poleg tega ima procesor na vezju še štiri števce/časovnike, samo 70208 in ZflSlB pa imata linije za tri števce/časovnike povezane navzven; četrti pa je samo notranji na vseh štirih verzijah. Trije .. zunanje dostopni števci/časovniki so popolni 16-bitni odštevalniki in so neodvisno programabiIni za štetje zunanjih dogodkov (števni način) ali notranjih časovnih signalov <časovni način).. Dva 16-bitna števca lahko povežemo -tako, da. formiramo 3S-bitni števec. Pri uporabi vsak števec naložimo z začetno vrednostjo, ki je poleg tega shranjena v register za časovno konstanto, ki ga tudi ima vsak števec. Ko vrednost števca doseže nič, ' števec povzroči enega od naslednjih dveh dogodkov! generira prekinitev ali pa se števec naloži z vrednostjo registra za časovno konstanto in ponovno prične odštevanje. Eden od komandnih bitov specificira, . kateri od teh dveh načinov je uporabljen. Poleg tega je lahko vsak števec prožen z zunanjim signalom ali pa programsko. Serijska komunikacija običajno zahteva pomoč enega od števcev, ki služi za generator prenosne hitrosti, ali pa je potreben zunanji izvor časovnega signala. Serijska komunikacija lahko pošilja ali sprejema podatke istočasno, potrebno je le povezati dva DMfl kanala z, oddajno in sprejemno sekcijo in s tem dobimo zelo hiter prenos. Kot večina univerzalnih asinhronih sprejemnikbv-oddajnikov tudi. tà komunikacija poteka s pošiljanjem podatkov , v običajni obliki! startni bit, pet do osem podatkovnih bitov,paritetni bit in eden ali dva stop bita. . Ta serijska komunikacija se lahko uporablja tudi za nalaganje podatkov ali prenos programov, če naprava s procesorjem ZÖ00 služi kot služabnik večjemu, nadrejenemu računalniku. Ta sposobnost prenašanja-nalaganja deluje v' zvezi s samonalagalnim načinom, ki se izbere ob priključitvi napajanja. Ko je izbran ta način,• se DMfl kanal avtomatično poveže s sprejemno sekcijo serijske komunikacije, programira se vnaprej predvideni ciljni naslov (000(2i00H) . v DMfl kanal, ..postavi se format serijske komunikacije in prične se nalagati £56 zlogov podatkov v . spomin preko. serijskega kanala; To omogoča procesorju Zfl00, da služi, kot služabnik (brez ROM-a) glavnemu sistemu, in ; ta mu določa celotno obnašanje. . - 9. MULTIPROCESORSKI SISTEMI Poleg tega, da lahko služi kot služabnik, lahko Z800 deluje tudi v multi procesorskih sistemih. Le Za£06 in ZBŠlfi imata na vezju vgrajene sestavine, ki dopuščajo enostavno vključitev' v multi procesorske sisteme. Zgradimo lahko sistem, ki vsebuje dva ali več procesorjev, vsak z lokalnim vodilom, ki povezuje lokalni spomin in-lokalne V/I enote, ter. komunicira z glavnim sistemskim vodilom preko spominskega bloka. Taka.zgradba sistema zahteva uporabo dodatne logike, ki skrbi za prireditev glavnega sistemskega vodila in s tem sistemskih enot (spominskih, I/O, . ... ) posameznemu procesorju. '• ..'. V to shemo bi. bil lahko vključen tudi glavni procesor, za kontrolo sistemskega vodila in za dodeljevanje nalog služabniškim procesorjem.j Z800. 10. GRADNJA APLIKACIJ Zaradi minimizacije porabljenega prostora je najboljša rešitev Zflf-'IG. Vsebuje mnogo funkcij, ki jih potrebuje snovalec mikroračunalniškega sistema ria CPU plošči. Potrebno je dodati le vmesniško logiko in vmeanike siüteniüka vodila, kot so IEEE-È96 ali IEEE-796. Za rokovanje s prekinitvaivti in za paralelno komunikacijo (za printer) lahko dodamo procesorju dva ZQ036 števca/časovnika in ve^je za paralelne V/I linije. Za dodatne 5erijQt<.e V/I linije -pa. lahko na vodilo dodamo Z6ei3i? ctvokanalni kontroler za serijsko komunikacijo. S tem srao zgradili soliden mikroraćunalnik. Posebni statusni in kontrolni signali, ki so dostopni, poenostavljajo zunanjo logiko za generiranje kontrolnih signalov za vodilo in vmesnike. Prvih 10 statusnih izhodov je uporabljenih v sistemih, ki nimajo dodatne procesne enote. 11. ZOKLJUCEK Ta družina procesorjev Z800 bo nadomestila enega najbolj razširjenih procesorjev - ZQ0. Pomembno je, da se bodo lahko vsi programi, napisani za Zß®, lahko izvajali brez spremembe. Po prikljčitvi na napajanje ali po "resetu", se za00 obnaša kot Zfl0. To pomeni,' da je KMU onemogočen, zaznamek za s istemski/uporabiški način je postavljen za sistemski način, omogočen je sistemski kazalec sklada, register za V/I je brisan in izbran je prekinitveni način 0. Vsi ukazi procesorja Zflß delujejo identično na Z800, le da so dva do osemkrat hi trejSi. Literatura! 1. On-chip memory nianagemant cornes to ö-bit-uP. Electronic Design, October lA, l^SS. £. ß- and l&-bit procesor family keeps pace with fast RflMs. Electronic Design, fipril £.9, 1983. 3. "Super ZS0". Elektronik 13, 1.7.83. Zi logs ZQ0®. MC ne. 2/84 optična kontrola plošc tiskanega vezja saša prešeren udk: 681.3:681.52 institut jožef stefan; ljubljana odsek za računalništvo in informatiko Avtomatska optiCna kontrola ploSÖ tiskanega vezja je ena najponenbnej«ih aplikacij metode razpoznavanja vzorcev, saj omogoCa kontrolo kvalitete ploäC in boljito produktivnost na podroCju avtomatike, elektronike, raCunalniStva in komunikacij. V Članku si bono ogledali osnovne principe delovanja optiBnih senzorjev in njihovo vkljuBitev v sistem optitine kontrole. Podali bomo metode vizualne kontrole tiskanin, ocenili prednosti posamezne netode in strnili razmišljanje z ugotovitvijo o perspektivah, ki jih ima optiCna kontrola v industrijskih aplikacijah. VISUAL INSPECTION OF PRINTED CICRUIT BOAROSi Automatic visual inspection ol printed circuit boards has been one of key issuses in the application ol pattern recognition because it enables reliable inspection and better productivity. This paper discusses the basic principles of optical sensors and their integration in a system lor visual inspection. A broad spectrum of methods for visual ^inspection of PCB is presented, evaluation of each method is given, and a future of visual inspection systems in industrial applications is discussed. 1. uveo Kontrola plò^d tiskanega nje naslednjih napak: kr prevodnih povezav, manjka oznatibe, nazobCanost ali linij in druge lepotne na vedno opravljajo optično ni delavci, ki odkrijejo napake, katerih dimenzi pa je teitko odkriti brez za optidno kontrolo. vezja zajema odkriva-atki stiki, prekinitve jode izvrtine, napadne deformacija prevodnih pake. Najpogosteje Ue kontrola dobro izkuile-veCje napake. Majhne je so rnanJSe kot 2 mm, avtomatskega sistema Vsi algoritmi za optiöno kontrolo ploSÖ tiskanega vezja uporabljajo predhodno znanje zaporednih celic .ali pikslov, matritini optiCni senzorji pa imajo razpon od 12k12 pikslov do 512x25& pikslov ali tudi veti. Ustrezni optiCni senzor izberemo glede na potrebe natančnosti pri optiCni kontroli. Občutljivost in spektralno obmoCje za te sen-.zorje je ekvivalentno visokokvalitetni posamezni silikonski fotodiodi, ki jo ponavadi uporabljamo v spektralnem obmoCju 400 do 1100 nanometrov. To pokriva celoten vidni spekter svetlobe in «e del infrardeCega dela spektra ter so zato ti senzorji primerni za industrijsko kontrolo. IMPULZ ZA _^ ■ PRIČETEK OTIPAVANJA POMIKALNI REGISTER TJ 7 T—» KONEC J—» OTIPAVANJA VIDEO 3 Slika l.i Funkcionalna slika linearnega optic nega senzorja. ■®xi »ax2 VOi>= 01f3» »Ylo. NADZOR VHODA T— X— T 1 Vdd. Voo- X— 1 T— T n VIDEO IZHOD .LIHIH CELIC (VIDEO 1) -> PRENOS VRSTICE BRISANJE OKVIRJA ^ BRISANJE VRSTICE BRISANJE VRSTICE PRENOS VRSTICE Tnr 0X1 10X2 »VIDEO IZHOD SODIH CELIC (VIDEO 2) Slik« 2.1 Funkcionalni prikaz matričnega optiC nega senzorja. Celotna zgradba sistema za optiäno kontrolo Je prikazana na Sliki 3. Vea logiBne in aditivne aperaoije so prepuätiene posebnemu video procesorju. Prav tako Je video procesor tisti, ki s hitro strojno opremo izvaja izloBanje znatJilno-9ti. Ce je sistem za optiCno kontrolo tak, da omogoBa veö stopenj sivine ali celo barvno Dliko, potem Je seveda video prooesor tisti kljudni element video sistema, ki omogotia to vrsto obdelave. Ker jo struktura video procesorja za izlotianje značilnosti najveökrat modularna, lahko dodatne izloäevaloe znaäilnosti brez težave dodamo. Moduli, ki so povezani z nadaljnimi stopnjami obdelave, kot na primer izloCevaleo polarnega profila, lahko uporabljajo rezultate modulov iz predhodnjih stopenj. Rezultate shranitna v pomnilniku med otipavanjem nove slike in jih mikroračunalnik kasneje naprej obdela. Informacije o poziciji> orientaciji in geometrijskih značilnostih psevdo ravninskih industrijskih predmetov je mogoče dobiti z dokaj onoatavnirai in direktnimi procedurami, ki vsebujejo le logične operacije in akumulacijo signalov iz senzorja ter vmesnih rezultatov. Momente ničtega, prvega in drugega reda lahko zbiramo pri vsakem pikslu posebej po x in y koordinatah. Te vsote so zbrane Ke ob koncu prenosa senzorskih signalov v pomnilnik in jih lahko kasneje v mikroračunalniku obdelamo med novim otipavanjem slike, ter izločimo povrSino, teSiätis, naklon glavnih osi vztrajnosti in vrednost glavnega momenta vztrajnosti. Ker so te količine popolnoma aditivne, je jasno, da ta vrsta postopkov obdelave slik ni odvisna od vratnega redp obdelave informacij posameznih pikslov. Podoben princip lahko uporabimo za izračun ostalih video sinhronih algoritmov za izločanje značilnosti. Poglejmo kakđne metode uporabljamo pri optični kontroli ploBČ tiskanega vezja. vztraJnostnih momentov ne moremo pomagati. Odkriti Je treba napake na tiskanini in v ta namen uporabiti metode in algoritme, ki to zmorejo. V praksi .so se uveljavile predvsem tttiri metode! odštevanje slik, ujemanje značilnosti, dimenzijska kontrola in sintaktična analiza. Vsako od teh metijd bomo opisali in razjasnili na primerih. 3.1. OdStevalnje slik Odštevanje slik je najpogostejši pristop pri optični kontroli ploSČ tiskanega vezja. Pri tem pristopu ploSčo, ki jo kontroliramo s pomočjo senzorja, digitaliziramo ter shranimo digitalizirano sliko plošče v računalniški pomnilnik. To sliko primerjamo s sliko plofiče tiskanega vezja, ki nima napak ter točko po točko slike testne ploSče odštevamo od slike referenčne ploSče. OdSteto sliko, ki kalte napake, lahko prikaHemo na ekranu in analiziramo. Slika tisitanina, ki jo kontrol iraino in referentno tiskanino hkrati. Kontrolo lahko zelo pospešimo, tie referentino sliko shranimo v analogni obliki in ne v digitalni obliki. Metoda odBtevanja slik ima veö pomanjkIJivostii potrebujemo velik pomnilnik za shranjevanje Elike plofiäe brez napak; - zahtevamo precizno pozioioniranje testne in referentine tiskanine; - metoda je obdutljiva ha pogoje razsvetljave in pogoje, senzor ja . Dodatna pomanjkljivost pri metodi odštevanja alik je dejstvo, da ee veliko in mogoCe celo veČina tiskanin zaradi skrCitve ali raztezanja plodö ne ujema toCko po totiko. V tej situaciji je nujna uporaba korekcijskih postopkov, ki kompenzirajo taka odstopanja. Tako pa lahko postanejo sistemi optiBne kontrole, ki temeljijo na odštevanju slik, nepraktični, to je preobsežni in zato prepočasni ali pa premalo natančni. 3.2. Ujemanje značilnosti Ujemanje značilnosti je drugi pristop k optični kontroli tiskahin. Pri tej metodi sliko tiska-nine shranimo in izločimo pptrébno značilnost. Potem pa, namesto, da bi primerjali sliko testne in referenčne tiskanine direktno, primerjamo le značilnosti, ki smo jih izločili iz slike testne tiskanine z značilnostmi iz modela. Ce so te značilnosti enake, je. plošča dobra. Prednosti metode ujemanja značilnosti soi - ta strategija zelo komprimira podatke iz slike in s tem omogoča uporabo manjäega pomhil-nikaI ^ manjäa občutljivost na intenziteto vhodnih signalov; Jarvis (JARBO) je predlagal dvostopenjsko strategijo optične kontrole tiskanin. Metoda sestoji iz izbire skupine lokalnih binarnih vzorcev dimenzije 5x5 pikalov, ki opisujejo mejo brez napak med prevodnikom in podlago, dobljeno iz brezhibne tiskanine. Prva faza izvräi pregled vsakega mejnega vzorca iz tiskanine in ga primerja z vzorci iz pripravljene liste moünih vzorcev. Tisti vzorci, ki Jih ni najti v tej listi, so prepuščeni drugi stopnji procesiranja, ki izvaja več testov, ter ugotovi, če neznani vzorec res pomeni napako. Ti dodatni testi vključujejo računajnje prevodne povrSine, razdalje med mejami prevodnikov, razmerje povrSine in dolüine prevodnikov ter drugo. Na primerih je bilo .ugotovljeno, da lahko 99X možnih vzorcev dimenzije 5x5 pikslov, ki se pojavijo na brezhibni tiskanini, pripravimo z manj kot nekaj sto binarnih vzorcev, piri tem pa je le nekaj odstotkov vzorcev bilo prepuSčeno drugostopenjski kontroli. Troba je poudariti, da ta metoda ne zahteva precizneiga pozicionira-nja testirane plošče, zahteva pa pazljivo generiranje binarnih vzorcev. Ejiri in drugi (EJ:73) so lokalnega procesiranja slik ki Jih njihova metoda odkri ki je manjäa kot je dimen na tiskanini. Pomembno je, zahteva referenčne slike (Slika 6). Metoda sestoji prvi stopnji povrSine pr testne tiskanine najprej po Ta povečani vzoreo potem za na prvotna velikost. Ta vz originalnim vzorcem in z od čimo napake. razvili tri tiskanine.. Na je, imajo dimen zija prevodnih da ta metod tiskanine brez iz treh stopenj evodnikov na veCaina v vse s enak faktor sk orec pa. primer J Stevanjem slik tipe pake , 2i Jo, linij a ne napak V sliki meri . rčimo amo z i z 1 o- VHODN.I VZOREC IZHODNI VZOREC v , nekaterih primerih (JARBO) ne preciznega pozicioniranja tiskanin) zahteva Slika 6.1 Tristopenjska metoda odkrivanja napak na testni tiskanini brez primerjanja z referenč-.no tiskanino. - v nekaterih primerih (EJI73) ne referenčne slike. zahteva 3.3. Dimenzijska kontrola Slika 5. kaüe izločene značilhosti - robove linij na tiskanini in vzoroe Štirih možnih konfiguracij vdolbine ali izbokline a Sirino enega piksla vzdolü izločenih robov. m - lil ll| Slika 5.i: Izločene značilnosti - robovi linij na tiskanini iri Stiri moüne konfiguracije vdolbine ali izbokline s Sirino enega piksla. Velikokrat je izl ujemanja vzorcev verifikacijo. Na trolo je za vsako prej postavljene lahko vključuje premere lukenj i sosednjimi prevod nJem razdalje med drugimi besedami je primarna znači le. Slika 7 ka kontrole. očanje značilnosti in metoda poenostavljena na dimenzijsko loga sistema za optično kon-meritev ugotoviti ali spada v standarde. Kriterij te metode dolsi no in Sirino.prevodnikov, n skoznikov in razmike med niki. Meritve dobimo z merje-dvema prevodnima robovoma, Z , razdalja med dvema robovoma noat te metode optične kontro-üe preprosto idejo dimenzijske £ C = PREDPISANA SiRINA PREVODNIKA A < C • B > C Slika 7.1 Osnovna ideja dimenzijske verifikaoi-' Je pri dimenzijski optični kontroli tiskanin. 3.A. Sintaktična analiza Drugatlen pristop ža optitino kontolo tiskanln Ja sintaktiana analiza in razpoznavanje. Sintaktičen pristop k optiöni kontroli omogoCa zapis vslike mnoKice kompleksnih oblik z uporabe male mnoÄioB primi,tivnih vzoroev in strukturnih pravil. Daloöene slikovne vzoroBi kot so tudi slika tiskanin, lahko zapišemo z nizom znakov. Tako zakodirana slika testne ploäüe se mora ujemati z modalniro nizom, ÖB na testni ploäQi ni napak. Lokalne značilnosti lahko razdruitimo v relativno majhno atsvilo razliCnih elementov Imenovanih primitivni elementi, kot na primer koti ali linije. Ooloäimo lahko strukturalni opis primitivnih elementov in zvezo med njimi ter tvorimo gramatika nizov. Slika 8 ilustrira primer. A I (a) b a_; -C d .p tormaolje, ki opisuje kompletno soeno, na pa !■ eno ali nekaj to0k. Istoäasno je jasno, -da ogromna gostota podatkov, ki jo zdruKena v video signalu zahteva intenzivno prooesiranje. Uporaba sploSnega računalnika braz hitrega predprooesorja, ki zmanj«a kolitlino inJormaoij, bi poveöala öas obdelave na nekaj sekund ali veä, oelo zs relativno enostavna algoritme, ki prooesirajo slike. Zaradi omejitev stabilnosti sistema je praktiBna zgornja meja zakasnitev nekaj sto milisekund za vizualni modul ali za robotski sistem. Da bi dosegli te zahteve glede hitrosti, teäejo raziskave v smeri novih arhitektur procesorjev tako, da bi procesirali slikovno informaoijo paralelno. Teoretiflna omejitev za izvajalno hitrost je doloüona s ponavljalno frekvenco video senzorja. Tej omejitvi so bo moö pribli-üati. Be bo moüno oelo sliko procesirati uied tipanjem slike (video soan-om), to je sinhrona video obdelava. Ta pristop narekuje speoifiäne omejitve na vrsto algoritmov za procesiranje slik, kot je to na primer vrstni red pikslov. Sistemi za vizualno kontrolo se mnoiiCno uveljavljajo v Industrijskih aplikacijah v razvitem svetu. Ti sistemi ne samo osvobajajo Uloveka od izjemno napornega in monotonega dela, ampak tudi zagotavljajo bolJSo kvaliteto proizvodov in s tem konkurenänost, ki je pogoj za ohranitev industrija. abadadadaboa (b) Slika 8.: Primer opisa meje prevodnika z gramatika nizov. A) primitivni elementi gramatike; B) meja prevodnika ha tiskanini in njen opis z nizom. Ce padamo niz primitivnih elementov, ki opisujejo obiöajne deformacije, lahko uporabimo avtomatski postopek za njihovo looiranje s tem, da preiatJemo niz, ki opi-iuje testirano tiskani-no in lyfleroo vse pojave vzorca oz. primitivnega niza, ki opisuje napako. ZAKLJUČEK Nadaljne izbolJBave na podroöju robotika in. avtomatizacije so tesno povezane z razvojem procesiranja slik in razpoznavanja vzoroev. Vizualna percepcija omogotia robotom, da sa obnaiäajo v skladu s specifiüno situacijo. Ta sposobnost ne samo poveöa fleksibilnost robotov, ampak tudi poenostavi podajanje komponent in pritrjevanje. 9e veC, vizualno povratno zanko lahko uporabimo za avtomatsko sestavljanje, kot sposobno orodje, ki omogdCa uporabo robota za veüje Število opravil. To jo predvsem posledica globalnega vidika vizualne In- 5. LITERATURA (EJ173) M. Ejiri et. al.i A process for detecting defeats in complicated patterns, Corn-put. Sraphics Image Processing, vol.2., 1973. (JAR80) J.F. Jarvis; A method for automating the. visula inspeotion of printed wiring boards, IEEE Trans. Pattern Anal. Maohine Intel!., vol.PAMI-2,pp.77-82, Jan. IVÖO. CLONBl) A.H. Longfordi Intelligent vision for industrial^ control, Sensor Review, januar 1961. CMCI83) W.E. Hclntoshi Automating the Inspeotion of Printed Cirouit Boards, Robotics Today, junuj 1983. SaSa Preöerni Object recognition in robotics. Second world conference on mathematics at the aervioe of man, Las Palmas, 1982. (VAN82) L. Vanderheydt et al.i Application of pattern reoognltion and Image processing, Sensor Review, Juli j 1982. (VILa3) P. Villers, Recent Proliferation of industrial artificial vision applications, 13th Symposium on Industrlla Robots 83, 1983. ibmovski oseb'ni računalnik petra i. anton p. 2eleznikar UDK: 681.3.06 Petra članek opisuje materialno in programsko zgradbo ibmovskesa osebnega računalnika Petra. Projekt Petra se izvada sproti (med pisandem člankov o nJemu).in Jo namenjen naprednim razvijalcem in amaterjem. V okviru projekta bo obdelana materialna (logična) zgradba računalnika, kritične signalne slike, nekateri osnovni programi za preizku&anJe posameznih delov računalnika in njihovo otivlJanJe. zgradba osnovnih V/I sistemov (BIOS) za uporabljene operacijske sisteme (CP/M-86 in PC-DOS ) in kratek opis njegovih operacijskih sistemov. Prvi del prinaša spložen oPis materialne zgradbe računalnika Petra in prvi del OPisa logičnih shem. Petra - An IBM-like Personal Computer I This article deals with hardware and software of IBM-like personal computer, named Petra. Petra Project is runing simultaneously with writing this and the following articles about it and is dedicated to advanced developers and to amateurs (computer hams). In the project framework the computer hardware (logical circuits), critical signal paths, some basic programs for testing of particular computer parts and for its revival, structure of basic I/O systems (BIOS) for used operating sustems ( CP/M-86 and PC-DOS) and a short description of computers operating systems will be Presented. The first part deals with general scheme of Petra computer hardware and describes the first part of computer logical circuits. 1. Uvod W zaporedju člankov bomo opisali gradnJo amaterskega osebnega računalnika Petra, ki bo lahko izvajal programe IBMovih osebnih računalnikov (IBM PC in IBM PC-XT). Za ta računalnik bomo razvili in opisali nJegovo materialno in Programsko opremo (z izjemo operacijskih sistemov, ki se bodo lahko na nJem izvajali, in sicer IBM PC-DOS, CP/M-86. CP/M-Concurrent in MS-DOS). Programska oprema bo zajemala opis začetnega nalasalnega dela in BIOS pakete (Basic I/O System) za različne operacijske sisteme. Ta Projekt časopisa Informatica Je namenjen ■prvenstveno vzgoJi računaInièkih razvojnih strokovnjakov v nažih POdJetJih in seveda le dovolj usposobljenim amaterjem. Projekt Je dovolj telaven. obaeten. napreden in skupuneki. obravnava pa načrtovanje ibmovskega osebnega računalnika, njegovo laboratorijsko in postopno oživljanje. metodološke delovne načine. programske zamisli in seveda značilno problematičnost konkretnega projekta. TakSen proJekt mora biti ob razviJalski' sposobnosti podprt . tudi z aparaturnim in programskim orodJem. kot so osciloskop, logični analizator (po potrebi), zbirnik. obratni zbirnik. Prevajalniki, rutine oživljanja z značilnimi signali itn. Zaradi pomanjkanja raznovrstnega orodja bo ose- bni računalnik Petra pomagal razvijati tudi samega sebe (imel bo samorealizaciJsko komponento), Način oživljanja Petre se bo izvajal tipično paralelno. Tudi Petrin stareJèi brat Iskra Delta Partner bo pomagal pri razvoju programov (prečna programska oprema), pri izdelavi dokumentacije in tudi pri pisanju zaporedja člankov o Petri. Snovalci proJekta Petra bodo seveda uporabljali izkuftnJe iz svojih preJinJih uspeènih projektov. objavljenih v časopisu Informatica ((1, 2, 3. 4. S. À. 7)). Dokaj obsežen in zapleten projekt Petra pa ne bo predmet administrativne raziskovalne naloge niti podeželsko zadržanega, okostenelega okolja« bo izziv snovalcev za nJih sama in za tiste posnemovalce, ki želijo tehnološko tekmovati in sodelovati v težavnih razmerah rasti, razvoja in oblikovanja določene sposobnosti na mikroračunalniškem POdročJu. Projekt Petra Je namenjen naprednim razvijalcem s ciljem, da se enakomerno obvladajo problemi njegove materialne in programske opreme. Projekt Petra naJ bi bil poživitev, ki Je v razdobju PomanJkanJa Integriranih komponent in sodobnejše sistemske in aplikativne mikroračunal-niške programske opreme še kako zaželena, prijetna in osvežujoča. Sistem Petra, ki g* bomo razvijali. Je ibmovski pri določenih PosoJih. kar pomeni, da se na nJemu pri določeni konfiguraciji (ustrezna tipkovnica in vtiCna video plošča ) lahko izva- E8 JaJo programi, napisani la IBM PC, Sistem Fetra bo odprt» modularen sistein. Na posebno vodilo r ki Je notranje vodila računalnika IBM. fCr se bodo lahko zatikale 28~noliična vezja V/I naprave. Izbira Vezij RAM banke O 3. 64k X 9 dinamični loaika kontrole parnosti Slika 1,3. PodrobnejtM prikaz loaike diagrama IZ slike 1 Pod sistemskim vodilom (sistemski pomnilnik, V/I, DMA In Pomožni PPK) Slika 1,2 vsebMje vezje med lokalnim in sistem-; skim vodilom diagrama s slike 1. Tu se nahaja glavni prekinltvenl krmilnik 8259. krmilnik za sistemsko vadilo 8288, naslovni in podatkovni vmesniki DMA krmilnika, arbiterska in čakalna logika (vodilo ) in taktno vezje 8284. Slika 1.3 ka2e vezje pod sistemskim vodilom diagrama » slike 1. Tu imamo nekatera ključna ve-zjar kot so DMA krmilnik. 8237, pomožni prekinltvenl krmilnik 8259, naslovni in bralno/pisalni vmesnik (med DMA krmilnikom in sistemskim vodilom), PomnilnlSkl dekodlrnik za ROM in RAM, kontrola parnosti za pomnilnna vezja, V/I deko-dirna logika in pomnllnlèki vmesniki. Na tej sliki SÓ narisane tudi vtične prlključnlce za Ibmovske in evropske vtične plošče (dodatne module). Te plošče se tako priključujejo na sistemsko vodilof Slika opisuje logiko med sistemskim in kra- jevno podatkovnim (V/I) vodilom s slike 1 in sistemsko vodilo vmesnlška krmilna losika usposobitev prenosnik za podatkovno vodilo krajevno podatkovno vodilo: < .voux xo i f V/l vodilo) 10-bltno naslovno. naslovni in krmll-vodi pod & krm takt za V/I Ö253 1A~ bitni števnik/ časovnik (baud) 8251A konz oIni serijski V/1 1,2288 MHz taktni generator 4,9152 M del i In ik 8251A pomožni serijski V/l časovna prek inltev k .l'ilavnemu PPK 8259A RS~232C vmesn i k i priključ-nica z 20 nožlc^ml (P14) RS~232C vmesniki priključ-nlca z 20 nožicami (P13) ■ prekinitve k pomožnemu 8259A —.-J ■Jt.Z Slika 1.4. Podrobnejši prikaz logike med sistemskim in krajevno podatkovnim vodilom s. sli^ ke 1 in del V/I krmilnikov in vmesnikov, ki so povezani na V/I vodilo (krajevno podatkovno ). 68 prikazuje dol V/I krmilnikov (prtsostall dtfl se nrthaJa na sliki 1.5), vmesnikov in taktnikr ki 150 povezani na V/I vodilo. Na tej sliki se nahajajo tudi ustrezni prikljuCnici za serijska kanala z uporabo konfi-Hiiracijskega preklopnika (pri ••- pr8>. Drusa paralelna vrata vezja 8255 se upoi-abljaJo za priključitev V/I naprave tipa Centronics. i3 slikami 1 in 1.1 do 1.5 Je shematično opisana zsradba računalnika Petra, V naslednjem poala--vju si bomo na kratko ouledali podrobnu lojjično shemo prveaa dela računalnika Petra z vsemi in-Iteariranimi vezji, upori, kondenzatorji» diodami. vodili itd. 3. Loaična shema na listu 1 Slika 2 kaže prealed logične sheme na listu 1. Ta list ima tudi seznam inteariranih vezijr uporbaljenih na tem listus ta seznam .ve urejen p« zaporednih Številkah (I nn ), tako da lažje najdemo povezave med posameznimi oznakami v shemi. krajevno Podatkovno vodilo ( V/l vodilo« 10-bitno naslovne ^"■"T..... pod ^ k r NMl usposobitev .1......... B2/2A krmilnik za UPoal j ivi disk FßClNT -------k P0m.825S'A k/od 823/A Ö25S paralelna V/I vrata 1 o 3 i k a za enojno/ /dvojno 30St Ot Ü 8" disk priključ-nicar 50-nožična ( P12 ) oscilator 8 MHz takt. 1 o a i k a __________ri: k on+'ij-jur' ir a~ nje s pre-1 opnikom pri - pr8 _____ Centronics vmesniSka losika ..... priključni ca, 20-nožična ( P15 ) S 1/4' disk priključnica 34-noJ. ična ( Pil ) PRXNI'INT -rt...... .read« .clkO . retiet , clk 1 8284A t a k t n i yenerator res- ^•SV T.,.. ----------1 dy/wait- i (je lin lerr— pai^er r- NM I 1 o 9 i k a nmi si '..tomsko naslovno VOJ Ll ClkO reset ready r«-/ busu »to- adO-ad/ a8-al9 ,sO~,Gi- ci «OB/ NPX adO-ad/ a8~al9 csintr1- 8259A sysioi-d- slavni sysi owr- prekinitveni i n t a - krmilnik ir cist 7 ^ /A/r i r CI st 6 - . Ifv 1 ir-6 irqstS ^ ir5 ir«st4 ^ ir 4 irqst3 ir3 irost2 ^ ir 2 irl timeintr irO ... ----------------J csintrO- intr sysiord- Ü259A iiiysiL owr- p 0 m 0 ž r> i inta- prekinitveni krmilnik ir7 irò i'dc int irfj prinlrdy ir4 !ii i 011X r- d y ir 3 sioOlxrdy ^ ir 2 s i 01 r X r d y irl sioOrxrdsj M irO ale .1 OC- C k 3 X LS373 naslovni vmesn i k i s2-,lock- 7 LS245 Podatkovni vmesn i k i dir en- dt/r- dben- sistemsko podatkovno vodilo adO-ad/ hA 2098 EP-/t3n- p i o int ndp:int sasdat O - / :iP-/en--..............|l' Slika 1.5. Podrobnejši prikaz druuesa dela V/l krmilnikov, vmesnikov in taktnika, povezanih na V/I vodilo. ülika 2. Okvirni prikaz loHičneaa vezja na listu 1 (Petra mikroračunalnik, naslednja stran) Taktni generator z vezjem 82B-'1A 3ent?rina taktne sisnale e.ua računalnika (dodatna vtična Pl'ii'a ). Kondenzator C9 (list 1) se uporablja za natančno nastavljanje taktne frekvence. Vezje 8284 deli osnovno frnUvenco s faktorjem 3 in nenerira sianal susclkO» ki aa uporablja več vezij (8008, 8087, 8288, V/I kanali), iz nJeaa nastane ti.idi ustrezen sianal dmaclk za TiMA krmilnik Ö2l?>7A-5 (vezje 128, noiica 3, list 3), Ta sianal je potreben za boljào sinhronizacijo med lokalnima mojstroma 8088 in B087 in mojstrom sistemske«).) vodila 82;'57A-5. Siynvil sysclkl je predviden za uporabo na vtiCnih enotah (polovična taktna frekvenca na vtičnicah Pl, P2, ... , PIO! list 2). Periferni takt suscH<2 se uporablja v vezju dl55H-2 (147) za aeneriranje periodične osvc^že-valne zahteve dinamičnih pomnilnikov z uporabo DMA krmilnika. Pri vključitvi računa In it" keaa napajanja se prek sponko? res- vezja 8284 sproži aeneriranje rese-tirneaa sianala sasres, katereaa minimalno trajanje 50 mikrosekuna je povzročeno s časovno konstanto Rli!, in CIO. Prek diode lil se sprazni CIO pri izključitvi napajanja, Nemasicirna prekinitev ( NMI ) procesorja 8088 se uporablja za obdelavo napake parnosti, kadar se ta pojavi v dinamičnem pomnilniku (RAM)' in pri napakah V/I kanalov. Sisnal enmi- se uporablja za odločitev, ali naj nmi sianal pride do procesorja 8088 ali ne. Z enioc- sianalom (list 1> se odloči, ali bo sianal iochnlerr- iz V/I. kanalov povzročil prekinitev ali ne, Proi::esor 8088 je povezan z numeričnim procesorjem 8007, ki jf? vlBokoz,.i()3ljiv, standariziran matematični proi:esor. 8087 ima dodatnih 68 ukazov n.id osmimi ao-bitnimi reaistri s plavajočo Vdjico, Tu je predviden 1 bit za predznak, 15 bitov za Mi naslovi st kjerkoli v IM-zloinem n kemu prekinitventjffiu ve kinitveni tipsko 'itevi lokacijo v prekinitv omogočena tudi programska kontrola te prekinitve. NMI vhod se uporablja za sianalizacijo pomnil-niiike napake parnosti in napak, ki se lahko po-' javijo na vtičnih ploSčah V/l' kanalov. Naslednjih 1 tiranih z dvem krmilnikoma 82 krmilnik 135 k tipleksiranem sorjema 8083 i krmilnika IC3 'J.u. Ta mojst in;i ci.^ 1 i z ira prekinitvenih ravnin je implemeri-prouramirljiviirta prwkinitvenima 39A (135 in 162). Pri tem deluje ot mojster, ki so nahaja na mul-lokalnem vodilu skupaj s proce-n 8087. Krmilnik 1C62 je pomočnik in se nahaja na sistemskem vodi-rska/pomočniCika konfiguracija se p o Sli' bn im p i • o u r a f.iG k i m s<->a men tom. Vse zunanje naprave na a lavni R nifiki sistem Petru ) imaJo svoj linijo. Prekinitvene zahteve i krmilnikov dosežejo vhod intr pr ki je notranje maskiran s proar Pri pojavitvi orekin i tveneaa si intr vstopi Procesor v potrditve terem se določi prekinitveni tip ni procesor stanje, ki je bilo nit vi jo v sklad (zastavni re.ais' mentni realster, ukazni litevnik zbrifee prekinitvena zastavica in nadaljnje prekinitve, dokler pr pravljen za njihov sprejem. ložči (računal-0 prekinitveno z prekinitvenih ocesorja 80B8, amsli:i.M ukazom, ano].;) na vtìodu ni cikel, v ka— Najprej shra-tik pred preki-ter, kodnosea-). Pri tem SI? onemoaočijo se ocesor ni uri- V naslednji-m koraku izda krmilnik vodila 8288 sianal Prekinitvene potrditve na linijo inta-(alej list 1). f''rvi inta- impulz pove krmilnikoma 82591^, da je bila prekinitvena zahteva potrjena. Pri druaem inta- impulzu se na podatkovno vodilo izda 8-bitni prekinitveni tip. Vrednost prekinitveneaa tipa se pomnoži s 4 in s tem, so določi prekinitveni vektor. Proaramsko krmiljenje se nato prenese na naslov, ki je vsebovan v 4-zložn(::i.i prekinitvenem vektorju. Prva dva zloua vektorja oblikujeta novi ukazni kazalec (spodnjih 16 bitov naslova), drusa dva zloaa pa se uporabljata za oblikovanje nove vsebine kodnoseamenten.^a reaistra ( zaorn jih 16 bitov). Ko je prekinitvena storitvena rutina opravila svojo funkcijo, se proaramsko krmiljenje vrne alavnemu proaramu prek ukaza IRET, ki. obnovi prvotno stanje, tako da se lahko nada- IdbelU 1 prednostna ravnina slanalno ime opia 0 NMl parerr, iocnhi 1 mojster timeintr 2 pomočnik sioOrxrda 3 pomočni k siolrxrda 4 pomočnik ßioütxrdsj 5 pomiičnUt mio It xrdy prekinitev niimerifneaa procesorja (1)087 ) prekinitev paralelnih V/l vrat prekinitev y/l kanala kanala kanala kana la kanala kanala prekinitev .na shema lista 2 Tabel Na j v i p ovzr napak prek i re-J a pr odn pi-ek i vrsto pri z a 1 kaie lijo preUi oien z na n V/I kana nitve'ima je povezan ostno za nitveni me druni h n ačetnem ož shemo prekinitvenih prednosti, nitveno Ri-ednost ima NMl > ki je pa k o pomnilniške parnosti ali z la. Najvišjo prednost maskirne vhod irO mojstra ö259Af na kate-siönal timeintr. Tabela 1 kaže poredje preostalih sianalov, hanizem se lahko uporablja fie za amenov, kot so odkrivanje napak ivljanju sistema itd.. Na sliki se na ha ja b1 o k o vn a s hema vezja rt a listu 2. Tri enote oblikujejo to shemo« IiHfi krmilnik I. vmesniki« V/I i z bira In i k < 74LS154 ) in losika za izbiro Pomnilni?ikih sesmentov (enote PO 2',i6k zloaov). Na listu 2 se nahaja èe shema sÌ5)nalnih priključkov na vtičnicah Pl r ... r PlOr ki se uporabljajo za dodajanje zunanjih t i s k a n i h p I o ^.č < i bm o v s k e vt i č n e P1 o éit e ). 'sistemsko krmilno vodilo' "sistemsko podatkovno vodilo" 'sistismsko naslovno vodilo "rezidentno podatkovno vodilo" aO -- a/ I a8 ~ al5 74LS245 dvosmern i naslovni vmesrvi k a en d ma dmarqst --------3 krmilni sianali Ö237A~5 DMA krmilnik krmilni vmesni k 74LS;$73 izhodni naslovni vmesnik ümaack --------•>- dO - d7 74LS245 dvosmerni podatkovni v/mosn.i k «ino/mc» dmaa C k krmilni sianali Elßaen- 1 32- 74LS154 izbira vrat V/I krminikov CiHA FliC nCMOT PAR INTR SIC) PIO riMfiR 3* /AL.sxy:i i z liodn i naslovni vmesnik alA - a IV 1 o a i k a izbire RArta al9 a 18 Jt.Z. Slika 3, Ta slika prikazuje okvirno loaično shemo na liiiit.u 2. (Diiir-ednje integrino vezje l-e slieme je DMA krmilnik t)237A-S> ki opravlja neposreden prenos Podatkov med hitri« pomnilnikom in perifernimi krmilnimi vezji, DMA krmilnik Posreduje med sistemskim vodilom (podatkovnim, naslovnim) in rezidentnim (krajevnim) podatkovnim vodilom. 1(4 bitov za sistemsko naslovno vodilo se oblikuje prek dveh 0~bitnih vmesnikov (149 in 139, list 2), manjkajoči 4 biti (al6 do alV) pa nastanejo v odvisnosti od ustrezne DMA zah-t eve v raz 1 i č ii i h p umni 1 n i h sefvmc-.'nt J h. Na litfitu 2 se nahaja /'ie shema povezave siynaiov na vtičnice za dodatne tiskane Plošče ( nPr. krmilniki, barvna .-ira Cika, moderni, A/O moduli itd.). Naslovi vi'-at. po'jiamezé^ih perifernih krmilnikov so določeni z vezjem 74L.!:>i;i4. Na tem listu se nahaja iSe osnovno vezje za izbiro 4 se-amentov po 2'.:/('jk zloaov. List 2 ima desno spodaj seznam vseh uporabljenih vezij (po vrstnism redu >, tako da je olajtìano iskanje označenih povezav (to velja tudi za ostale liste). 62 Sin .".-i. V ca i 0 v Ì2 hi v a 50 Ia M r tt < < < < < < < < < < < > S > > >. y > > k > y > ul «a m vi vi m w v> v) vi iif» m Vi < lü oy^ 'e^ '8d 'id'9j'sd WCrf 'Vd 'n D 0) ^ C4 03 It) 0} (0 Q CQ CQ CQ CQ CQ Nppooi-»?den oomnilniékl dosi.oo ( PMA ) povef.uJe ZMoaljivosit sistema, ker se z njim Rovefa hitrost prenoBrt podatkov mori opriff>ri.io in hitrim pomnilnikom (uporaba DMA krmilnika f):v,?S/A-5 ). F'ri tem se podpirajo 4tiri neodvisni kanali 20-bitnonaslovne^a neposrednega pomnilniAkeaa dostopa, Uva i:iMA kanala sta predviden« za razi»i-ritveno (sistemsko) vodilo (vtičnice Pl, ... r F'10) za hiter podatkovni prenos m(?d . per ifernimi napravami in RAM pomnilnikom. TrétJi kanal uporablja krmilnik za uposljive diske (skladno s standardom za IBM l-'C). Četrti DMA kanal se uporablja za periodično osveževanje hitreua pomnilnika na osnovni ploàii in na dodatnih vtić-nih PloSčah» ko mora biti dostopna vsaka naslovna vrstica dinamičnih pomnilnih integriranih vezij. stajati tudi sisnal dmahldack. V naslednjem taktnem ciklu se sistemske povezovalne komponente in krmilnik 8208 zopet aktivirajo z nizko vrednostjo sianala 88aen-. pMA povezovalne komponente pa se deaktivirajo z visoko vrednostjo sisnala aendma-. Ko začne sisnal 88aen~ delovati, se krmilnik. 8288 aktivira iele p« lOS do 275 nsP to zakasnitev,povzroče vezja I',SO (list 1) in veriaa taistabVl"i!"i: V^'^ij < I'J'Jr list 3 ). Sisnal dmahldr«st preneha po pi-enosu vsakeaa zlosas tako se pojavi vsaj en strojni cikel med dvema zaporednima DMA prenosoma. 5. Loaična shema lista 3 Pri inicializaciji sistema se ustrezno nastavi vezje 81551-1-2 oziroma njeaov sisnal timer out, tako da se opravlja navidey.nl DMA prenos približno vsakih 15 mikrosekund. DMA kanal je pro-i^ramirnn za pomnilni bralni cikel, kn se avto-«atičii« povečuje vrstični naslovni Stevnik za pomnilnik po vsakem osveževaInem ciklu. Kadar ni DMA zahtev, je DMA krmilnik v mirovnem stanju (si) in ua je mosjoče programirati »rek centralne procesne enote. Kadar DMA kanal zahteva storitev za zunanjo napravo in je bil ta kanal pripravljen . (usposobljen) s sistemsko proaramsko opremo, odpoélje DMA krmilnik sisnal dmahldrrjst (DMA hold rennest ) v vezje za sistemsko presojo ( ai-bitr iran je ) in preide nato v stanje sO, Krmilnik 8237A-5 ostane v stanju aO, dokler ne sprejme sianala dmahldack (DMA hold acknowledse ), iz vezja za arbitriranje vodila! to je znak, da je bilo krmil jen je'podeljeno sistemskemu vodilu. Na sliki 4 je prikazana blokovna shema losične-sa vezja na listu 3. To shemo sestavljajo trije loaičnl setimentie loaično vezje za •generiranje DMA sisnalov (88sen~, BAaen-, aendma-, dmahldack, ssjsaen-, sy srdy/uja it-. dmardy/iua it-, dmaclk ), vmesnik za i zbir o ROM pomnilnika » samim RDM pomnilnikom in loaično vezje za kontrolo parnosti za RAM pomnilnik. Nastajanje bistvenih DMA sianalov in njihova odvisnost sta bila delno opisana ie v prejšnjem poslavju. Na listu 3 imamo sekvenčno loaično vezje, ki senerira DMA sianale, navedene v aor-njem delu slike 4, Loaiko za aeneriranje DMA sisnalov na listu 3 sestavljajo intearirana vezja 131 . aendma ranje dmahldack DMA — susaen. sianalov —>. susrda/ujait — dmardu/wait dmaclk sistemsko krmilno vodilo sistemsko podatkovno vodilo sistemsko naslovno vodilo HM703 74LS10 vmesniki ROM parmosfni loit v Pam 74L.S24S Podatkovni vmesn i k podatki za RAM 74I-S280 kontrola parnost i parnostni bit iz RAMa Ram ■A.Z. Slika 4. Okvirni prikaz loaičneaa vezja na listu 3, ki vsebuje Ioaikó za 3enBriranj(3 DMA sianalov, vmesnike za pomnilnik tipa RUM z KOM pomnilnikom, podatkovni vmesnik med sistemakiirt podatkovnim vodilom in RAM pomnilnikom in loai-ko ia kontrolo parnosti (IÖ9, IS8, 157, '166, list 3 ). ia&ovnoloaićnem razmerJur takò da se dosesado potrebni ušlnki »MA orwiosa. kot je bilo opisano v, predènjem Poslavju. Predvideni obses ROM ooinnilnlka < integrirana ver.1a TB2. 103, XB4 in 185) je 64k zloaovOist 3)f vendar Je «losoče ta obaes PuveCati 2 dodajanjem ROM pomnilnika na vtičnih pložčah. Za ROM pomnilnik so predvidena 2(3-noiiti>a podnožja, tako da -se lahko uporabijo različna ve/ja tiPa EPROM, kot so npr.. 2716 ( 2k zloaov ). 2732 <4i< zloaov>r 37Ó4 ( 8k zloaov) in 27128 < 16k zlosov). EPROMi s 24 nožicamir,kot sta 2716 in 2732. se vstavijo v spodnjih 24 luknjic pri ustrezni konfisurairiji skakačev ultipleksi-ranje naslovov za RAM). Sam RAM pomnilnik : sprejema .6e ramwe- sishal in sprejme.in odda signala za parnostni generator. Podatki zai RAM prihajajo in odhajajo prek dvosmernega vmesnika na sistemsko podatkovno vodilo (alej sliko 4 ). lo. . VO E N * 1 ru m Ž >-«« 5 5 •n Z Hi ■é. ^ OQ > -O- «Si > -o. oinwi D 'i i sgsa ÜJ Ua rf?« 3- e ^ s k: O^II <3 Cl epu cj es T OVYl Q) Z£I IfiH ßfyz. CS /■ST pPfj epyx sni • >•> v u> w d'i oH g —P^ «J vj) itH - Ci ' -n——ur žj I In ^ * a rt I Ul M> < "t < * «■ < z C r r 1 < < < « «r < « oi « or Xi T (») IN -jp ■k; o» > te •J k J, e a i" ' ssi co-'S'rsioo^cjooaxooo O'HnLOi-^r^infnocM »H ,H »H I ^ »4 ^ w (N r^rO^liiVßr-'OO'^l'rHVD i H H H H H H I ' O « tN I Poudarimo, cl« so bistvena intesnirane vezja na listu 4 tipa S, in sicer za RAS/CAS losiko 74S0Ö, tj. 174', isi ) in za iiaalovni multiPleksor (74S1S8, ,tj. 16-5, I<(.8). t'užilhi. zaporedni uPori «so do<»J.edn.o ■ vis ta vX jen i, v/ !lif»ij,e RAS» CAS in naslovnih sianalov. ml začetnimi (preizkusnimi> programi in nekaterimi značilnimi siunalnimi poteki in naposled oiivitev računalnika z operacijskim sistemom. Slovstvo 'ì'kim. banka dinamiCneaa RAM pomnilnika je sestavljena iz. 9 pomnilnih vézi'j po 64k bil.«v (tipa 2164 ali 4:tA4), kjer je deveti bit predviden za kontrolo parnosti.' Osnovna ploćča ima 4 take banke. torej skupaj 256k zlouov pomnil-neaa prostora. Procesor 8088 lahko naslovi IM zlo9pv pomnilnika in ta sistem mora imeti vsaj eno SPodnjo banko (naslovi od OOOOOH do OFFI-FH). v kateri se shranjujejo kazalci preki-nitvenlh storilnih rutin (na lokacijah . OOOOOH do 00;äl"FH). Dinamična pomnilna integrirana vezja (RAM) morajo imeti čas dostopa vsaj 200 ns in čas cikla vsaj 335 ns. (Jener ir an ie parno-stneaa bita in zaznavanje napake za 256k-zloini pomnilnik je bilo opisano ie v or^ej^^ojem poglavju. Naslovni prostor RAM pomnilnika na osnovni ploèCi je izbran z dvema izpolnjenima po-soje-mas bita susalB in sysal9 morata biti nizka in osvefevalni cikel ne sme biti v postopku (visoka vrednost sisnala dmackO-). Dinamični pomnilniki se morajo periodično osveževati. . da se ohranjajo shranjeni ppmnilniški podatki. Dinamični RAMi s ó4k biti zahtevajo, da se vseh 256 vrstic naslovi' vsakih 4'ms. , Vrstica pomnilnika mora biti naslovljena za osveževanoe približno vsakih IS mikr osekijnd . (jJsveževan je pomnilnika se lahko doseže z DMA bralnim ciklom. in sicer z tkim, načinom 'RAS-onlu". ko se uporabijo samo RAS vzbujevalni impulzi. Ker se osveževa-nje krmili z DMA .vez jem ( (■i237A-5>. se ne more pojaviti nasprot.je med or>erNu: i jama osveževanja in Pomnilni'Skeua bran ja/pisan ja . Ko Preide si.'ana'l dmackò- v nizko stanje, se začne osveževalni cikel, Tci sianal izključi RAM dekudii-no vezje. prepreči aeneriranje (.^AS sia-naia (167) in aktivira s sianalom re+'reshras-(164) vse Stiri RAS lini je ( 181 ). DHA krmilnik se 6 sistemskim inicializacijskim proaramom prosramira za avtomatično inkrementiranje naslovnega ètevnika po vsakem pomnilnifikem osve-ževalnem ciklu. Delovanje dinamičneaa pomnilnika je opisiano v dokumentaciji proizvajalca pomnilnikov in aa tu ne bomo ponavljali. Poudarimo le. da je določeno časovnoodvisno zaporedje si;jnalov nujno. in sicer skladno s shemo na listu 4 imamo tole zaporedje« << A,P...'Žele/.nikar ... D.Novak s Mikroračunalnik ..........Ike-l a procesorjem 8086. Informatica 3 (1979). fit. 2. str. 3-13. ((2)) B.Blatnik. A.Hadži. M.KovaCevič. A.Leoko-var. D.Novak.-D.šalehar. A.P.Železnikar« Mikroračunalniiki sistem Delta 323/M. In-•Formatica 6 (1982). ćt, 1. str . 4-22, ((3)) D.Novak. M.Kovačevič. A.P.Železnikar« Mikroračunalnik Vita s procesorjem 6800. Informatica 2 (1978). ét. 1, str. 14-20. < ( 4 ) ) A.LIratnik . M.RosaC. A.P.Železnikar • Mikroračunalnik Iskradata 1680: moduli in sistemi. Informatica 2 (1978). št. 4. str. 7-8 in str. 77-100, ((S)> A.P.Železnikar. D.Novaks Možnosti razvoja mikroračufialniilike tehnolosije v SFRJ. Informatica 5 (19Ö1). lit. 1. str. 4-11. (<6>) A.P.Železnikars Uvod v CP/M I. XÌ. III. Informatica 5 (1981 ). èt, 3, str. 63-67( žt. 4. str. 9-23; Informatica 6 (1982). f,t. 1. str; 33-42, ((/)) A.P.Železnikar« Operacijski sistem CP/M Plus. Informatica 7 (19E)3>. èt, 1. str. 3-10. . . <(8)> S.Ciarcias Build the Circuit Celiar MPX-16 Computer System I, Bute (1982). St.11. str. 78-114. (<9)) S.Ciarda« Build the Circuit Celiar hPX- 16 Computer System.II., Bate (1982), St. 12, str. 42-78. <(10>) S.Ciarcia« Build the Circuit Celiar MPX-16 Computer Sastem III. Bate (1983 ). èt. 1, str. 54-80. sysmemrd- ali sysmemwr-rasen-- rasO- ali rasi- ali ras2- ali vrstični naslovi roW"/c:ol atülpiii naslovi casen- casO- ali casi- ali cas2- ali ramwe- (istočasno z ras- siui poda'tki ras3- cassili ) Dinamični pomnilniki morajo biti seveda ustrezno blokirani ( zaćčiteni proti medsebojnim .motnjam), Proizvajalec natanko predpisuje potrebne vrednosti blokirnih kondenzatorjev (glej list 4. 1112). 7. Sklep k prvemu delu V prvem delu članka nismo opisali loaičnih shem krmilnika za upoaljive diske, serijsko in paralelno V/I povezavo. žtevnike in časovnike. Ta opis bo prikazan v druaem delu članka. Kasneje bomo opisali tudi oživljanje sistema s posebni- odkrivanje napak z bergerovim in podobnimi kodi i. rudi murn sasa prešeren dušan pecek borut kastelic udk: 681.3.325.6.08 institut jožef stefan, ljubljana odsek za računalništvo in informatica älanek opisuje problematiko detektiranja napak v sodobnih digitalnih vezjih b pomoäjo kodnih sistemov. Analizirani so Bergerovi kodi, ki se izkaifejo zlasti primerni za detekcijo istoznačnih napak. Definirane so vrste napak v digitalnih si&temihi prikazana je učinkovitost Đergerovih kodov in realizacija ustreznih testnih vezij. ERROR DETECTION WITH BERGER CODE AND MODIFIED BERGER CODEi This paper describes a problem of error detection in modern d'igital circuits by different code systems. Analysed is Oerger code, which is particulary suitable for detection of unidirectional errors. Deffined are types of erroi-j that occur in digital systems, demonstrated is the efficiency of Berger code and implementation oi test circuits. 1. UVOD Lastnosti razliänih kodov za odkrivanje in korekcijo napak v digitalnih sistemih so obdelali Številni avtorji tako teoretiCno v sklopu teorije kodiranja, kot tudi praktiBno v konkretnih aplikacijah. Nova tehnologija proizvodnje integriranih vezij (LSI, VLSI), kjer obstaja velika verjetnost za pojav istoznaCnih (unidirectional) napak in potreba po veCji zanesljivosti računalniških sistemov je povzro-i 1 a pospeSen razvoj učinkovitih kodnih postopkov za odkrivanje istoznaCnih napak. V tej zvezi je posebnega pomena Bergerov kod. Poleg tega, da bomo v tej Studiji predstavili Bergerov kod in modificiran Bergerov kod, bomo obdelali tudi bistvene lastnosti Bergero-vega koda. Podali bomo algoritme kodiranja in konkretno implementacijo testnega vezja za Bergerov kod . Pokazali bomo prednosti in slabosti Berge-rovega koda in modificiranega Bergerovega koda v primeri z ostalimi kodi. Pokazali bomo kje in kako naj posamezni kod uporabljamo in utemeljili primernost uporabe modificiranega Bergerovega koda pri testiranju PLA (programmable logic arrays) vezij. 1.1. Vrste napak v digitalnih sistemih V računalniških sistemih se pojavljajo predvsem napake naslednjega tipa CB0S82Di a) trajne napake: simetritine napake, asimetrifine napake, istoznaCne napake in b> trenutne napake: nakljuBne napake. Tip napake predstavlja osnovo za formulacijo razliänih pristopov za odkrivanje in odpravlja- nje napak. Definicija Is Napaka je simetrična. Ce je verjetnost za napako zaradi prehoda od 1 na O enaka verjetnosti prehoda od O na 1. Definicija 2: Napaka je asimetrična, Ce je verjetnost za napako zaradi prehoda od 1 na O različna od verjetnosti prehoda od O na 1. Definicija 3i Napake je istoznaCna, Ce sestoji samo iz enega tipa napak, to je iz napake zaradi prehoda od 1 na O ali od O na 1, ne pa oboje hkrati. Definicija <> : Napake so nakljuCne, Ce ni med njimi nobene logiCne povezave. Definicija 5t Napako (trajno ali nakljuCno) lahko detektiramo s kodo C, Ce ta napaka m spremenila dane kodne besede xcC v drugo kodi^c besedo yoC, pri Čemer y#x. Nekatere fiziCne napake v LSI ali VLSI ec vzrok za pojav istoznaCnih napak. To so napake, ki vplivajo na dekodiranje adres, na posamezne besede, napajanje, vezja za pisanje in Čitanje itd CPRA803. Znano je na primer, da posamezne etuck-at napake, napake zaradi napaC nih povezav (ccoss-point napake) ali napake zaradi kratkih stikov v PLA vezjih povzroCijo na izhodih samo istoznaCne napake. Poleg tega so tudi skupinske (burst) napake, ki so posledica napake v doloCenem elementu pomnilnika, največkrat istoznaCne. Naključne napake, po drugi strani, sc popolnoma sluCajne in posamezne. NakljuCnih napak Je po številu mnogo manj kot pa istornatr nih. Zato bomo posebno pozornost posvetili učinkovitemu odkrivanju istoznaCnih napak. ZaSCito pred napakami dosetemo z odkrivanjem in popravljanjem napak. Odkrivanje napak je edini naCin kontrole napak pri istoznaCnih napakah. To pa zato, ker napake niso nujno omejene in jih zato ni lahko popraviti. Po drugi strani pa je korekcija primernej- aa za odpravljanje naHljuönih napak, aaj so te napake redke in posledica vplivov okolice ter zato prehodnega znaöaja. NajveCkrat zadostuje, da za odpravo nakljuöne napake ponovimo postopek vpisa pravilne informacije. " Za odkrivanje istoznaänih napak poznamo razlittne vrste kodov kot na primers m-od-n kod, ■ . dvotirni kod (two-rail code), kjer duplioirane bite invertiramo in jih primerjamo v TSC dvo-tirnem vezju. Dokazano je bilo CWAK783,,da tudi "ceneni" AN kodi (neseparacijski kodi, kjer nekodiran podatek x pomnožimo z osnovo A in tako tvorimo kodno besedo CWAK78D) in inverzni residualni kodi z doliJino grupe m+1 lahko detektirajo vse istoznaCne napake dolii-ne,. ki je manjSa ali enaka m. D(I) GENERATOR kombinaclJsRo vezje (generira komplement k testnih 'bitov) m ..:k KOMPARATOR đvotirno testno vezje N2 , fr gjr T(k) 1.2i TSC testna vezja Pii veöini digital mitìno doseäi veöjo z povpreönega dasa med na pristop je tisti, kjer poveKamo "resniünost" sistema. Take ratiuna stni raöunalniki (self-raäurialnik vedno da javi uporabniku, da je rezultat ni zanesljiv kodom in izhodom, ki avtomatsko odkrivati na Be je hkrati sposobno nih sistemov je neekono-anesljivost s poveöanjem pakami. Bolj ekonomiöen z nekaj dodatnega vezja izhodov računalniškega Inike imenujemo samorte-checking computer) saj pravilni rezultat aJi pa priälo do napake in, da Vezje z danim vhodnim je sposobno popolnoma pake pravimo, da je TSC, Slika 1.! Struktura separaoijske kode. TSC testne naprave za - avtomatskega testiranja samega testnega vezja in - odkrivanja napak v kodni besedi, ki vstopa v testno vezje. Obdelali bomo samotestna ali tako imenovana TSC vezja (totaly self check ing) in podali realiza-oijo takega vezja za Bergerov kod. . Prednost TSC testnih naprav je v tem, das - odkrijejo trenutne ali nakljuöne napake, - odkrijejo trajne .napake, - diagnostični programi niso ved potrebni ali pa so zelo enostavni, - omogoüa hitro testiranje. TSC testne naprave je enostavno testirati saj potrebujejo majhna podmnoifico kodnih besed za ' vhodni test. Ko samotestno vezje zazna napako, je treba izvesti diagnostični test. Z diagnostičnim testom preverimo, Ce je napaka res posledica trajne napake (bodisi v. vhodnem kodu ali v samem testnem vezju) in ne trenutne napake. Poleg tega je treba preveriti, da se ne pojavi napaka na testnem vezju, ko ga vključimo ali izključimo iz sistema. Zato je testna naprava, ki omogoCa lahko in hitro testiranje ^e posebej zaSeljena saj je sistem, ki vsebuje tako testno vezje hitrejai. Zaüeljene so testne naprave, ki imajo Cim manj hardvera. Glavna prednost testne naprave, ki ima malo hardwera je majhna verjetnost, da pride do- napake v sami testni napravi. Prav Bergerov kod je tozadevno primernejöi kot pa drugi kodi, pri katerih teatiie napravu delujejo ■na principu dupliciranja in primerjave. Sploäna struktura TSC testne naprave za Bergerov kod je prikazana na Sliki 1. Vezje Nt imenujemo generator, komparator. Kombinacijsko vezje 1 informacijskih bitov 0(1) in izhodih binarni komplement testni Pravimo, da generator NI generira Qijskega dela O kodne besede. Pr ni bilo napake, je izhod genera T(k)* enak komplementu testnih b besedi T(k). Dvotirno testno vez k testnih bitov T(k) z izhodom Strukturo testne naprave za lofi jo kaife slika 1 bomo imenoval naprava CMARVŠD. vezje N2 pa NI ima za vhod generira na k h bitov T(k)». teHo' iiit OL-ma~ i pogojih, ko torskega vezja itov v kodni je N2 primerja iz NI T(k)*. Ijive kode, ki i TSC testna 1.3. Separacijski kodi Separaoijski kodi so tiste vrste kodov, kjer vsebuje kodna beseda dva dela in sicer del z informacijskimi biti I in del s kodnimi biti k. Tak kod je sistematičen kod. AritmetiCne operacije pri separacijskih kodih se za informacijske bite in testne bito izvajajo loCena. Naj bo C kodna beseda, ki vstopa v testno vezje N. Ko imamo dan kod C, je naloga testnega vezja N preveriti binarno kombinacija vhodnih bitov in ugotoviti ali je vhod veljavni kod C ali ne. Izhod testnega vezja je 01 ali 10, Ce je vhod kodna beseda in 00 ali 11, Ce vhod v testno vezje ni kodna beseda. Pri pravilnem delovanju so vhodi v testno vezje N kodne besede C CABH763. Primer realizacije takega testnega vezja v ^pbliki dvbnivojskega AND-OR vez.ia kaXe slika 2. Pri normalnem delovanju so vhodi v dvotirni komparator C ■= < 0101,0110,1001,1010 >. Samo za kodne besede iz mnoSice C je izhod- iz komparatorja 01 ali 10, za vse druge besede, ki niso v mnoifioi C pa je izhod 00 ali 11. Primer 1i C1 = {0011, 0110, 1001, IIOO je popolnoma separabilen kod (1=2, k=2; binarnih k-teric je 2eKp(2)=A in to so 11, 10, 01, 70 00) in C2 = <0010, 0101, 1001, 1100> je nepopolno razdrufljiv kod, kec, se iata binarna k-terioa pojavi v testnem delu druge m tretje kodne besede in manjka k-terica 11. al bi aO bO ö Z1 zo T = (2 -1) - II C (kodna beseda) I D<1) I T(k) I informacijski biti testni biti Slika 3.1 Struktura Bergerovega koda. Poglejmo si nekaj Bergerovem kodu primerov besed zapisanih v I I informacijski biti I testni biti I k 2 1 10 1 10 1 2 3 1 101 1 01 1 2 I, 1 1011 1 100 1 3 5 1 00011 1 101 i 3 6 1 111111 1 001 1 3 7 1 0000000 1 111 1 3 8 1 00001111 1 1011 1 A 12 1 111111111000 1 0110 1 Be nas zanima uporaba Bergerovega koda pri mikroračunalniku, kjer je informacija dolga fl, 16 ali 32 bitov, poglejmo kakfino je potrebno Število .testnih bitovi Slika 2.1 Primer TSC dvotirnega vezja za k=2 (k je Število vhodnih parov). öt. informacijskih I St. testnih I celotno St. bitov I bitov I bxtov 2. BER6ER0V KOD Beseda zapisana v Bergerovem kodu vsebuje (Slika 3.); - informacijski del D(I) in - testni del besede T(k) ter i.ma n " fitevilc bitov v besedi 1 = Število bitov infarmacije k = Število testnih bitov pri Čemer velja k = Clog <1+1)D in a 16 32 I 1 12 21 3Q ÖB pa zahtevamo, da je celotno Število bitov omejeno na 8, 16 ali 32, pa ustrezno spremenimo Število informacijskih in testnih bitov. St. informacijskih I St. testnih I celotno St. bitov I bitov I bitov 2 5 1 3 1 S 12 1 t, 1 16 n I + k. 27 1 5 1 32 Vrednost k je najinanjSe celo Število, ki je veCje ali enako vrednosti v oglatem oklepaju. Naj bo 11 Število enic v informacijskih bitih in 10 Število niCel v informacijskih bitih. ter velja I = II + 10. Besedo zapisano v Bergerovem kodu tvorimo na naslednji naCin: tvorimo binarno Število, ki je enako Številu enic v I informacijskih bitih in ga komplemen-tiramo. Re zu 11 irajoäe binarno Število predstavlja k testnih bitov (ali binarni zapis Števila nitSel v informacijskih bitih). To pomeni Prednosti Bergerovega koda so naslednje: 1. Ločljivost kodai ko moramo obdelati informacijo ne potrebujemo za razpoznavanje informacijskih bitov v kodni besedi nobenega dodatnega dekoderja, 2. Odkrije vse istoznaüne napakei Najverjetneje sc te napake v digitalnih sistemih. Se posebej v tistih, ki vsebujejo LSI in VLSI integrirana vezja. Ce pride do enkratne ali večkratne istoznaöne napake v informacijskem delu kodne besede, se tam Število enic in niöel spremeni, S testnimi biti takoj ugotovimo to napako, T = 10 ali Primer 2i prvotna kodna beseda 1 I k 11111111100010110 enkratna xstoznaäna napaka v I I I k 01111111100010110 k»=0111 Vidimo, da se k in k* ne ujemata. Odkrili emo istüznaäno napaka v I, napake pa seveda ne moremo lokalizirati. 3. TSC TESTNO VEZJE ZA BERGEROV KOD Opisali bomo TSC vezje za Bergerov kod, ki je sposobno odkrivati istoznadne napake. Gene-ratoreka vezje NI <81ikB 1.) ' tvori binarno Število, ki ustreza'Stevilu enio vi informacijskih bitih. Generator NI je sestavljen iz popolnih in polovičnih seStevalnih modulov, ki paralelna seStevajo-informaoijake bite.. Vezje NI je sposobno samo sebe testirati na enojne in veökratne napake. Vezje je sposobna odkrivati enojne napake, ker . bi pojav napake povzroäil neveljavne kodne besede na vhodu v N2, kar ima za posledico javljanje napake na izhodu. Komparatorsko vezje N2 je TSC dvotirno testno vezje. N2 je narejen tako, da odkrije vae enojne napake. 3. Je optimalem Od vseh lotiljivih kodov, ki odkrijejo iatoznadne napake porabimo pri Berge-rovem kodu za dano ätevilo I informacijskih bitov, najmanjše Število testnih bitov k. (Nekateri drugi kodi n. pr. m-od-n kod potrebujejo sicer manj testnih bitov, toda ti kodi niso razdruiljivi.) ' Definicija 7: Naj bo C Bergerov kod. C je Bergerov kod maksimalne doliiine, Ce je Število informacijskih bitov I enako 1 = 2 - 1 k>=l V tem primeru dobimo isti kod, öe uporabimo za tvorbo testnih bitov 10 ali II. Tako so Bergerovi kodi maksimalne dolžine kodi s aledettim Številom informacijskih bitov; 3.1. Testno vezje za Bergerov kod maksimalne dolSine. Bergerov kod kod z maksimalno generira binarno enio v I informao vljeno iz mnotžioe lelno seštevajo'i potrebuje le ose enojnih napak v, v ki se pojavijo v Naj bo z 1=2 -1 imenujemo Bergerov dolKino. Vezje NI (Slika 1.) Število, ki ustreza Številu ijskih bitih. Vezje je sésta-seätevalhih modulov, ki para-nformaoijske bite. Dano vezje m testov za detekoijo vseh ezju in vseh veökratnih napak, posameznem seStevalnem modulu. g < g I k k-1 1 a binarno Število,, ki ustreza Številu enio v I. informacijskih bitih Bergerov kod maksimalne dolüine at. testnih | St. informacijskih bitov I bitov 2 3 ti 5 6 3 7 15 31 63 ZapiSimo Bergerove kode maksimalne dolüine za 1-3, k=2 C = < 00011, 00110, ■01010, 10010, • 01101, 10101, 11001, 11100 >. (Prvi trije biti v vsaki kodni besedi so "informacijski, zadnja dva pa testna.) tie (: ni Bergerov kod maksimalne dolüine, ga imenujemo Bergerov kod nemaksimalne dolüine. Lema li. Naj bò C Bergerov kod. C je popolnoma separaoijski kod, tie in samb tie je C Bergerov kod maksimalne dolüine. 1 2 2exp(k)-l Za Bergerov kod z 1=3, k = 2 je vezje N'l üe posamezen seStevalni modul, kjer je Š enak sumi S=gl in izhod carry enàk C=g2. Slika A kaüe vezje NI za primer 1=7, k=3. Vezje Vil za primer 1=15, k=A, je sestavljeno iz treh skupin vezij pi, D2 in D3. Vezji D1 in D2 ustrezata vezju NI za 1=7, k=3. Vezje D3 pa je "ripple carry" seStevalnik, ki generira vektor (gA', g3, g2. gl). ■ ■ . ■ ' Testno vezje tipa 1 je TSC testno vezj« za Bergerov kod maksimalne dolüine. Slika A.I Generatorsko vezje NI za Bergerov kod maksimalne dolüine za primer 1=7, k=3. Poglejmo postopek, ki podaja metodo za generiranje vezja NI. POSTOPEK 1 CMAR78D i. Naj bo S 1 2exp(k)-l mnoSioa vseh informaci jskih bitov in je m=k, 1=1. 2. Razdelimo mnoitiao S v tri podmnoüice A , I I B in E tako, da I ni-1 A sestoji ii levih <2 -1) bitov, I m-t B sestoji iz naslednjih (2 -1) bitov in E vsebuje najbolj desni bit. Naj bo binarna reprezentacija Števila enio, ki se nahajajo v informacijskih bitih v podmnoSi-oah Aexp(I>, Bexp(I> in EexpCI) oznaCena z I I i = ( a m-t I i m-2 L I 'a »'g . Vektor 'b Bxp(L) tvorimo z vezjem, ki je identično tistemu, ki generira 'a exp(L>. 5. Konec postopka 1 To je rekurziven postopek. Vezje, ki g« generiramo a tem postopkom ina strukturo binarnega drevesa. Vsako vozliSCe drevesa predstavlja ripple carry seStevalnik. Vozliäüe na i-tem nivoju drevesa l=2 potem i) m = ro-1 L = I ii) 8 = A I = I + l in ponovi korak 2 in 3, da dobimo vektor Primer Ai Poglejmo Bergerov kod z 1=12 in Naj bo X' mnoKica informacijskih bitov X' ■> {xl ,x2, . . .xl2) . Generatorsko vezje NI sestavimo na sledeü na-eini 1. Razdelimo mnoüico X' v tri podmnoKice Al, A2 in A3. Posamezne podmnožice naj imajo Ali 7 = {2exp<3)-l) bitov A2i 3 = (2eKp(2)-l) bitov A3i 2 ostanek bitov 2. Naj bo NKAl) generatorsko vezje katerega vhodi so informacijski biti podmnoSice Al to je S o G2 e _Z4 -Z3 _Z2 ftO -Z1 i,. ZAKLJUČEK Obravnavali smo Bergerov kod in TSC vezje ža Bergerov kod. Pokazali smo kako lahko tako vezje konstruiramo ali pa formiramo kod, ki je ekvivalenten Bergerovemu kodu in za katerega lahko tvorimo TSC vezje. Vsi kodi za katere smo obravnavali TSC testna vezja so popolnoma razdružljivi kodi. Sistematično 'naCrtovanje TSC testnih vezij za nepopolno razdrulljive kode je težavno. Bergerov kod je sicer bolj redundanten kot m-od-n kod. Za velike vrednosti n potrebuje Bergerov kod dvakrat toliko testnih bitov kot jih potrebuje (n/2)-od-n kod. Prednost Derge-rovega koda pred m-od-n kodom je njegova raz-druiljivost, ki omogofia uporabo manjSega in enostavnejšega vezja za kodiranje informacijskih bitov v Bergerov kod in iz njega. Dodatni motiv za uporabo Bergerovega koda je vzrok, da imajo Številni LSI elementi isto-znaöne napake in Bergerov kod je optimalen loöljiv kod, ki detektira vse istoznaöne napake CASH7&3. Pomembno pcdroCje uporabe Bergerovega koda je dinamiöno testiranje pomnilnikov CASH763. Na primer serija IMP-16 mikroračunalnikov, ki jih proizvaja National Semioonduotor, uporablja za kontrolno enoto pomnilni,...,g2(i),gl CD0N823 H.Dong, Modified Berger Codes for Detection of Unidirectional Errors, IEEE, pp 317-320, 1982. 74 CD0N82] H.Dong in E.J. McCluskey, Conourrent testing of programmable logic arrays, CRC Technical Rep. No. 82-11, Stanford Univ., California, junij 1982. CMAR7Bj M.A. Marouf in A.D, Friedman, Design of Self-Check ing Checkers for Berger Codes, The Eight Annula Int. Conf. on Fault-Tolerant Computing, pp.l79-t8',, June 1978. CPRA803 O.K. Pradhan, A New Class, of Error-Correct ing/Detect ing Codes for Fault-Tolerant Computer Applications, JEEE Trans. on Comp., vol. C-29, pp. 471-^81, June 198D. CWAK783 J. Wakerly, Error Detecting Codes, Self-Checking Circuits and Applications, Elsevier North-Hol1 and,Ino. The Computer Science Library, 1978. interbiro - informatika 16. međunarodna izložba informacija, kOTunikacija,. sredstava za obradu podataka i uredske opreme Jveca i najstarija specijalizir lifestacija Zagrebačkog veles^ma [)ve godine prezentira bogat PipgQ» izlaganja: opreme (račuaska opre-računala- upotreba i tehnologija [prikaz mogućnosti pristupa,jedi'^ pe elektroničkih računala, kalk jri, reprografska oprema, mikr(> ifska oprema, prateća-oprema, knjigovodstv ilstvena.i grafička oprem^W jromaterijala i OEM; pribor" t>šnog materijala (računovc jrografske i prateće jedinice kca, odjg.iaollkopija-sepagatorl ___ _ __ ^ l^čr :'i?tenja intelektualnih, obrazo^ "ugih usluga te izložbu stručr Likacila. m _ tono popratni program: traaicio-nalno jugoslavensko savjetovanje I 'pD^sweni sistem informiranja" u or nizaciji Zavoda za informatičku dje] nost SRH; u suradni sa drugim repuoJ čkiir i pokrainskim organima za infor MultifunKcionalaa konferenci^ lološki i društveni aspekti infd likacija" (čiji Je or^ Ipfalni centar Sveučilišt "'^6 medunar*odni aimpozij tranje i praćenje proizvodni ratì^roffl" (u organizaciji elektrot« hnmi&g fakulteta iz Zagreba, Elektij ^kog ^tituta "||de Končar", «devinsU buta p Lšegodišnjoj tradiciji i ove se] le organizira okrugli stol .i na-j inj_e_ pod_ za.iedničkjm nazivom ^^lyam algebra ključeva siimiša j. djordjevic udk: b12.5:681.3 Ključavi se B«gu iaterpretircti i prek« 8kup«va Siji on elemeati kljuöovi, fiaiSko «drese orga-niz«ci*BÌh Jedinic« p»d»t«]c« ili suae ergaBizaci«»« Jediaice padataka. Na «snevu t«ga, u radu je prikazan» algebarska interpretacija palja ka« arganizacitmih jedinica padataka, mesarisaBja pal.la i farairaaja kljuSeva. KETS ALGEBRA: Keys caa be interpreted by sets af keys, sets af physical addresses af data arga-Bizatian unit» ar sets af data arganizatiaa uaits. Par that reasam, this paper presents inter-pretatian af fields stariBg and keys faraing by algebra. 1. üvad Pad algebro« kljuSeva padrazunevaća se interpretiranje kljufieva prek« skupava Siji su elementi ili kljuSevi ili fiziSke adrese •rganizacienih jedinica padataka ili same ar-eaaizaciane jedinice padataka. Svi «dnasi u arganizaciji padataka nagu se predstaviti relacijama i preslikavanjima u algebri aka se atributi argsnizacije padataka pravilna argani zu ju u skupav«. Algebarska, aatenatiSka, intei^iretacija •rganizacije podataka prikazana je u /4/ gde se kljuS tretira sama kaa arganizaciani ele-nent St« znaSi da se posmatra jedino kaa veza izmed ju organizacionih jedinica padataka. Odnos izmedju ključa i sadržaja arganizacionih Jedinica podataka zanemaren je jer sam« posredno utiSe na organizaciju podataka, na fizički razmeštaj arganizaciaaib jedinica padataka. Ovaj odnos definišo sam« formalni radasi ed» organi zacianih jedinica padataka kaji ima značaja za pristupe i algoritme obrade podataka ali je maguće da nema nikakvog uti-caja na fizički razmeštaj podataka. Na primer, sa jednim istim ključem, i istim odnosom kljuS -sadržaj organizaciane jedinice podataka, može se pristupiti različitim organizacijama podataka pa se mogu upotrebiti i indeks sekvenci-jalne i direktne i indirektne datoteke. U ovom tekstu posmatraće se uprav« taj »dno«, odnos ključa i sadržaj« organizacione jedinice podataka za koju se definiše odrodjeni ključ s ciljem da se taj odnos algebarski interpretira. Za praćenje daljeg izlaganja potreban je najosnovniji kurs iz algebre kaji se može naći u /8/ . Za upotrebljene pojmove iz algebre korišćene su definicije iz /8/ . 2. POLJA KAO ORGANIZACIONE JEDINICE PODATAKA Definicija 1 : Polja kao organizacione jedinice podataka predstavljaju binarnu relaciju u skupu koji je Dekartov proizvod skupa sadržaja i skupa kljuSeva. Skup ključeva je skup koji se na odredjeni način formira. Skup sadržaja su podaci na osnovu kojih se organizuje informacioni sistem. Palje se uzima u Sirea smislu te predstavlja bil« k«ju organizacionu jedinicu podatak« koja je nezavisna u okviru odredjenog iaformacionog sistema. Ovako đefinisan« palje postaje slag u «rganizayanju padataka prek« datateka. Nezavisne «rganizacisne jedinice p«dataka moi^ biti i bez ključeva Sto nije izvan definicije 1, ako je skup ključeva prazan skup onda je Dekartov proizvod skup sadržaja. Elementi Sekairtovog proizvoda su uredjeni parovi pa je redasled skupava u definiciji Jedan «d atributa definicije. Ovi uredjeni paravi u arganizaciji padataka čest« se inverzno predstavljaju št« nema značaja za definiciju 1. Na «8a«vti definicije 1 jedan sadržaj može imati vifie ključeva i t« više bil« primarnih bil* sekundarnih klJuSev«. Prem« /5/» primarni k.ljii6 3« ključ koji jo upatrebljen za defini-Bimj« formalMg fiziSk«g redosleda pol,ia u «d-nesu na dodel,jivanda «rKanizacianih jedinica ćelijama u memoriji. Jedna organizacija podataka Boža imati samo jedan formalni fizički red«sled. Tskodje preraa /5/t eekiindsmi ključevi 8u relacije sadržaja (podatka) sa ključevima na osnovu kojih se definisB formalni (fizički ne mogu biti) redoBledi na OEnovu kojih se omogućuja realizacije odredjenih zahteva n traženju i pretraživanju. Definicijom 1 obuhvaćeni Bu i jedni i dr«p?i ključevi. Ako jedan sadržaj ima vifie primarnih ključeva to znači da se jednn podatak memorise viSo puta. Ovakve organizacijo podataka vrlo 8u retka te se neće uzimati u obzir njihov uticaj. U konteksta formiranja ključeva sekundarni ključevi Bo mop^u tretirati kao podaci. Zajedno sa podacima moKu se uzimati kao jedan sadržaj, ovo je opravdano jer se sekundarni ključevi i formiraju tako Sto se sadržaj "čepa" na sadržaje koji će biti upotrebljeni za definisanje formalnih redoaleda. Prema tome, u definiciji 1, pojam "ključ" podrazumevaće primarni ključ a i u daljem tekntu eko drukčije nije napisane važiće iato što i u definiciji 1. Ako se zanemare preopSirne ©rpanizacije podataka, jedan ssdržsj je memorisan vige puta, onda polja postaju preslikavanje (funkcija) sadržaja na ključeve. Ako dva sadržaja moi^ da dobiju iste ključeve onda je znatno otežano dođeljivanje ćelijama aemorije i javljaju se mnogi problemi olro traženja i pretraživanja a da se ne dobijaju nikakva organisnoijskn poboljšanja. Može se zaključiti da sa stanovišta organizacije podataka polja predstavljaju biunivo-ko jednoznačno preslikavanje sadržaja (organi-aacionih jedinica) na ključeve. Ovaj zaključak ne može d« predstavlja definiciju jer predstavlja posebne uslove u od-nonu na definiciju 1, 3. mkmoriranjk polja Meinoriaanje polja predstavlja dadeljivanje polja kao organizacionih jedinica ćelijama oe-morije. Svako polje dobija avoju adresu na es-n»vu koje se identifikuje njegov položaj u memoriji. Ppfinicija 2 : Memori sana polja u odnosu aa svoje adrese predstavljaju binarnu relaciju u Dekartovom proizvodu skupa polja i skupa adresa. Ako je polje memorisano ono mora da ima svoju adresu. Ako se jedno polje memorise sam« jednom relacija iz definicije 2 postaje preslikavanje. Ovo preslikavanje je biunivoko jednoznačno jer dva različita, nezavisna polja mn moRu da iraaju istu fizičku adresu. Na osnovu definicija 1 i 2 zaključuje se da je memorisanje proizvod (kompozicija) preslikavanja sadržaja na adrese. Ako je x od-redjnni sadržaj, f(x) polje onda je P(f(x)) adresa sadržaja ali i polja u memoriji. Kada se sadržaju ne dodeljuje ključ onda se preslikavanje f(x) može zanemariti pa je adresa I'j^(x) je biunivoko jednoznačno preslikavanje ako se jedan sadržaj memorise samo jednom. Moža ao desiti da je l!'(f(xj^))=.P(f(x2)) , na primer kod indirektne datoteke, ali su t* specijalni slučajevi gde se preslikavanje F definiše ne aomo na osnovu sadržaja x već i na osnovu pretraživanja kao relacije, opisano u /V. pa sa tim dodefinisanjem preslikavanje P ostaje biunivoko jednoznačno. Preslikavanje ključ-adresn nije biunivoko jednoznačno s3i je preslikavanje P(f(x)) biunivoko jednoznačno jer sadržaji imaju različite stvarne adrese a do njih se dolazi složenijim postupkom. FORMIRANJE KL.TUČKVA Ključevi se formiraju iz dva razloga. Prvi je predstavljanje složenih sadržaja kodovima (skraćivanje) čime se omofTućuje efikasnije čuvanje i jednostavnija koraunikocija podataka dok je drugi definisan organizacijom računara kao medijuraa obuhvata podatak«. Tlatoteke kao oblik organizacije podataka prodpostavlja ključeve zboe: univerzalnosti r-^fiavonja problema ' memorissnja složenih sadržaja. Ovi složeni sadržaji predstavljaju se jednobrazno (slopiovi-ma) a kodiraju se ključevima radi jednostavni- ^ je i brže monipulativnosti. Kod banki podataka (savremeni oblik črpanizovanja podataka) ključevi guba svojstvo koda, preslikavanja složenih sadržaja, jer se od jednostavnih sadržaj« formiraju oreanizacione jedinice, ali zadržavaju svoju ulogu u manipulativnosti sa podacima. Prema /2/ tri osnovna zadatka ključeva su identifikacionost, klasifikacionost i pružanje informacija. Ako sa ključevi shvate kao slike kod preslikavanja sadržaja onda se svaki od evih zadataka ključeva može jedjjostavnije interpretirati. Identifikacionost podrazuraeva biunivoko jednoznačno preslikavanje sadržaja na ključ čime ae svaki sadržaj može na osnovu ključa da identifikuje. Kod identifikacije skup ključeva je skup elemenata koji su nezavisni, koji nisu ni u kakvoj vezi sa sadržajem. K»d proBllkav8B> sloSnnih aedržaja prlbe-gBV» se pr«8lllcav«n,1ù tukvom da ßu «like pree-likavajija delovi nsdrSaja k®Ji s« prnslikava. Od skupa siožflnlh eadržaj« faraira se 1 skup uvek istih delava toe sadržaj« aa ka,1i so preslikavaju avi složeni sadržaji i ta tako da ae svaki složeni sadržaj preslikava na svoj, dea. Ovi delovi biraju sa tako da u okvir\i sprege sadržaja sa infarmaoionim sistemom doprinose najefikesnijoj interekoiji. Ovékvio preslikavanjem ključevi postaju klssifikacionl ili in-formacioni. Ako a« jedon od delova • složenog sadržaja može predstaviti kao stablo (specijalni gvef) onda se to stablo, njegovi čvorovi mogu ali i ne'Boraju da ao kodiraju, često u-potrobljava kao kljuS jer je e.fik»Bno za spregu sadržaj« a« infortnnniopira aistemora i takav kljuS je klaaifikaoionl. ključ. Kod iiiiforBaci-onog ključa jedan deo (ili njegov kod) sadržaja postaje ključ. Praktično su definisona tri načina .formiranja ključeva koji se mogu proizvoljno kombinovati. Složeni sadržaj predstavlja uredjenu a-to-rku (xj^ ^ ... cde su nezavi- sni pojedinačni sadržaji. U terminologiji in-formacionih aistena često se meinorisana n-tor-ka označava kao slog (rečenica) a pojedinačni. »««Rvishl oadrzaji eo označavaju kao polja. U /2/ se daju tri tipa definicija za organizacione jedinice ali ee aa tim tipovima definiaa- pokuSava da ae organizacione jedinice po- '. dataka dejCinišu i sa aspekta organizovanja podataka i sa aspekta organizovanja informa-cionih sistema. U ovom tekstu se ta dve stvari odvajaju pa se organizovanja -podataka po-amatra nezavisno od informacionog sistema. Raalog za to je Sto ja organizovanja podataka nezavisna promenljiva u odnosu na informacioni sistem odnosno u jednom istom informacionom sistemu mogu biti primenjene različite organizacije ■ podataka. Datoteka u ovom kontekstu postaje n-ama relacija u skupu X^xXg*. «.^j*:.. (Dekartov proizvod), kao i svaki skup aadžaja, sa aspekta sadržaja slogova datoteke, frema tome, polje postajo preslikavanje n-torke na ključ. Uredjeni pari i je polje dok je y (slika proalikavanja) ključ i može predstavljati elamaat proizvoljnog skupa pa. Ako je: •ada ja u pitanju formiranje ključa od složenog sadržaja preko odabranih sadržaja koji su neki delovi tog složenog sadržaja. Ako Je: onda je u pitanju složeni ključ gde se svakom odabranom sadržaju (delu) poseìono dodeljuje ključ a onda se od tih ključeva formira ključ polja, ßada se i klasifikacioni i informacioni ključevi mogu predstaviti sa (2) odnosne sa (3). Za klasifikacione ključeve potrebno je da Izmedju delova sadržaja i**j2 i' *** '*jk postoje interne relacija, I oblici složenog organizovanja ključeva (na primer paralelno Šifriranje opisano u /2/) jednostavno se mogu .predstaviti sa (1) preko (2) i (3). Preko (1), (2) i (3) potpuno se formalizu^ je generiuanje ključeva čime se pojednostavljuje formiranje svih oblika složenih ključeva, U formiranju ključeva preko (l), (2) i (3) jednostavno se formalizuje prilagodjava-nja ključeva afikasnia traženjima i pretraživanjima. Prema /5/ traženja i pretraživanje interpretiraju se kao preslikavanja i relacija, raspektivno, pa ao sa (1), (2) i (3) f.or-miranjo ključeva lake povezuje sa traženjem i pretraživanjem, 5, ZAKL01UÖAK Osobine ključeva, navedene n /3/ , mogu Bo preko (1), (2) i (3) jednostavno algebarski interpretirati kao i kompresija ključeva opi- , sana u /1/, Jednakost ključ-podatek, opisana u /7/, može ae predstaviti urodjenim parom » ... w što znači da su argument (sadržaj) i slika preslikavanja (ključ) jednaki. > Zaštita ključeva opisana u /6/ postaje ' kompozicija preslikavanja (složeno preslikavanje) sadržaja na ključ koji se potom preslikava na zaštićeni ključ. Informaclonoàt zaSiićenog-ključa je binama relacija u Dekartovom proizvodu skupo polja i skupa informacionih ključeva, U algebarskoj interpretaciji ključeva | nije od značaja da li ae uredjeni parovi marne-rišu u calini ili je neki od elemenata uredjo-nog pera na bilo koji način sadržan u onom dr-' ugom u ovo jo moguće zbog specifičnosti pros- i likavanja. InplllCÄCiJa teksta eu »Igebaraka interpre-taolje kojo su ena« navedene «plsom a leastav-l.jene au zat» št« se jodnostavna nogu farmult-satl. Algebarekam interpretaoljèm ključeva Is-vrSena Je gen&raXlzaolJa čloia ue aaalagijsk« zaključivanje u vesl sa ključevima malie zame-aiti deduktiviilB zaključivanjem. 6. LITEHATUHA 1/ J. Martin, COMPUTER DATA - BAÜE OHQA-NIZA'i'IOw, second ecU.tian, PHJiNTICi; -HALL, ENOLEWOOD CLXl'Pa, NiSW JEHüiÄ 07632. 2/ H. Wodeklnd, OWGAWIZAOIJA PODATAKA.ZAK, 3/ V. ForiSak, Siai'BII ÉIimiiANJA, PKAKSA, decembar 1979, br. 12 , V 6. DJardJevié, KATEMATIČKA INTKRPHKCA-CIJA BAZE lODATAKA, ZBOIUJIK HADüVA UB-VETOa 8IMP0ZIJUMA JUPITER BI8TJÌMA, Beograd 15 i 16. maja 1979. 5/ B. DJardJevió, Vl£iiKLJUČNA OKGAMXZAOX-JA PODATAKA, ZBOliNIK RADOVA VIII JUGO-SLÜVMÜKÜO SAVKCOVANJA O IWFOHMAOIOWIM BIüTEMXMA, Beograd 17, - 18. maja ' 1979. gadlBe. 6/ S. DJordJević, ZAÖTITA KLJUČEVA I IN-FüHMAOlONOGT ZAŠTITE KLJUČEVA, ELIK-THOTEHNIKA, Novembar-Decembar 1983, br. 6 . 7/ S. DJerdJevió, JEDNAKOST KLJUÖ-PODATAK, PRAKSA, februar 1979, br. 2 . 8/ D. Ö. Mitrinović, D. Mihailavić, P. M. Vasió, LINEARNA ALGEBRA POLINOMI ANALITIČKA QBOMETHIJA, ORADJEVINBKA KNJIGA, Beograd, 1966. principi kvalitativnega modeliranja udk: 681.3:519.682.6 igor mozetič institut jožef stefan, jamova 39, ljubljana PRINCIPLES OF QUALITATIVE MODELING. Th» papar Bxplalns notivation lor qualitative modeling, presents and oonpares various approaches to it and brielly explore« their ability to oausally explain physical processes. Using this principles we have developed a qualitative model of the heart. The model simulates electrical activity of the heart. Its implementation can derive corresponding ECG descriptions for any possible combination of cardiac arrhythmias. 1 ■ UVOD V zadnjem äasu inteligence mo mehanizmov kva Kvalitativno s napovedati obn delovanja rarn Potreba po tak strani iz mnoti programov, ki pa iz osrednje sklepanja v el se je na pod tino povefialo litativnega s klepanje naj aSanje in pod ih naprav s k em nafiinu skl ice potencial so tega .zmo3!n vloge, ki jo ovekovam razm roäju umetne zanimanje la razvoj k 1epanja. bi bilo sposobno ati vzroäno razlago valitativnimi pojmi, epanja izvira na eni nih aplikacij i, na drugi strani ima tak nafiin ittijanju. Programi za vodenje, vzdrJevanje in popravljanje kompleksnih sistemov (npr. jedrske elektrarne) morajo razumeti, kaj se v sistemu dogaja. Kajti le ta so sposobni pojasnjevati in utemel levati svoje odloäitve, ji« bo uporabnik zaupal. P.oleg tega je formalen opis takttnih kompleksnih sistemov z metodami klasične fizike (npr. 5 sistemom diferencialnih enattb) marsikdaj preveB kompliciran, da bi bil uporaben. Pogosti so tudi primeri (npr. v medicini), ko mehanizmi delovanja sploh niso dpvgl 1 dabra OOžnani. da bi jih lahko razloifili z znanimi fizikalnimi zakoni (npr. tiloveVki možgani). V na«em primeru (elektriäna aktivnost srca) smo se sretiali s problemom, ko je fizikalna slika delovanja sicer jasna, vendar pa so parametri fizikalnega modela praktifino nemerliivi (npr. hitrosti prevajanja električnih impulzov v razliflnih delih srca, odvisnost parametrov od posameznega pacienta). Znanje uporabljeno v kvalitativnem sklepanju je mnogo enostavnejše od klasiäne fizike. Človek je sposoben Xe na osnovi majhnega «tevila podatkov priti do zakljuCkov o fizikalnih dogodkih - ker kvalitativno sklepa. Vsaka gospodinja npr. prav dobro ve, da ji lahko raznese ekonom-1 eneo, 0» je ventil za odvajanje pare zanatten. Pa Ji zato ni potrebne prav niCesar vedeti o zakonu o ohranitvi toplota ali o natančni temperaturi grelca. ZadotICa ji znanje, ki izvira iz vsakodnevnih izkutfanj. Kvalitativno sklepanje Je pomemben del nattega sploKnega znanja. Njegovo razumevanje nam olajttuje razumevanje Človekovega naCina razmiill Janja in omogoCa izdelavo "pametnejših" programov. Članek Je sestavljen iz «tirih delov. Najprej podamo osnovne pojme kvalitativnega modeliranja in nato na enostavnih primerih oriüemo tri razlltSne pristope. Na netrivialnem "realnem" problemu modela sroa pokažemo uporabnost kvalitativnega modeliranja in zaklJuCimo Članek s primerjavo vseh pristopov. 2. OSNOVI POJMI V klasični fiziki opisujemo pojave s sistemi enaCb. Domena spremenljivk v enaCbah je tipiCno nnotica realnih «tevil. Kvalitativna fizika opisuje pojave z relaoijami med spremenljivkami. Vendar zavzamejo spremenljivke le majhno tttavllo razllCnih vrednosti. Njihova domena Je definirana • t.im. prostorom koliCin (quantity space) CForbus 82a3, ki razdeli mnoiico realnih «tsvll na intervale. Prostor koliCin Je urejena mnoüica kvalitativnih (simboličnih, verbalnih) opisov vrednosti (primer na sliki 1). Vi«(nlzek) -> Vltt(vlsok) -> VI«(ze1o.visok) ---nizek--->l<~visok —>l< —zelo visok---- I I 150 160 170 180 190 200 Slika 11 Prostor koliOln za vlBlno. Vi« Pomembne spremenljivke v fiziki so Časovni odvodi funkcij. V kvalitativni fiziki navadno zavzamejo le tri vrednosti! +1, O, -i, glede na to, öe vrednost funkcije raste, je konstantna ali pada. Aritmetika nad takimi spremenljivkami je definirana ad-hoo, navadno v obliki tabel. Primer seštevanja odvodov je na sliki 2. X i I -1 V : I + 1 -1 I -t O I -1 + •1 I 7 -•1 7 O -.1 +1 +1 311ka 2; SeStevanje odvodov X + V. Atomarni fizikalni pojavi bo opisani z relacijami ini>d spremi>nl jivkaini. Relacije imajo lahko obliko omejitvenih enatib« ali pa so 1og itine izjavo. Q —t-t. '•i P - P, - P2 Slika 3i Pretok skozi cev. Vzemimo primtir cevi na sliki 3. Pojav pretoka Bkozi cev je opisan z omejitveno enadboi dP - dQ, ki pomoni: vsaka sprememba tlaka vzdolK cevi je corazmerna spremembi pretoka skozi oev. Relacije opisujejo fizikalne pojave na jedrnat in razumljiv naiJin. Poleg tega obstajajo zanje popolne metodo reäevanja. Za reSevanje sistemov omejitvenih enaCb, ki temelji na zadovoljevanju omejitev (oonstraintc-sat isfaction) je to npr. jezik CONLAN (CONstcüints LANguage), za logiCne izjave pa avtomatski dokazovaloi izrekov, npr. PROLOG (PnOgramming in LOGic). MnoKico relaoij lahko interpretiramo tako proceduralno , kar pomeni, da je V strogo naraSCajoCa funkoija X (ali padajoča za M-(X)). - Odvodi V = dX/dt pomenijo, da je Y proporcionalen hitrosti spremembe X. - Neenattbe in pogojne omejitve dolafiajo pogoje, pod katerimi veljajo druge amajitva. Za primer vzemimo situacijo na sliki B. Sistem je sestavljen iz posode z vodo (temperatura Td) in grelca (temperatura Ts>. SI ika 5 i Grelec in posoda s tekoCino. Kuipers opiUe tak sistem s t.im. "vzroCno strukturnim opisom" (causal structural description), v katerem so vse omejitve nad spremenljivkami modela (slika 6>. Td TB Slika 6; VzroCno strukturni opis eituaoija iz siike 5, VzroCno strukturni opis je dejansko Bisten omejitev ! '»•T = Ts - Td Hf = M+C^T) Hf = dTd/dt (D (2) (3) / procesi komponente s i 5 te ma A mnoüioa relacij med spremenljivkami Slika 4 ; Shema razliOnih pristopov opisovanja kvalitativnih modelov. B kvalitativno simulaciio model "oživimo" oziroma dobimu njegovo obnaSanje. Za dane vrednosti nekih spremenljivk zadovoljujemo omejitve (constraints propagation) ali dokazujemo izreke in tako dobimo vrednosti ostalih spremenljivk. Kvalitativna simulacija nam tako da razlago delovanja sistema na nekem Pretoka toplote Hf v naraäCajoCa funkcija kjer je Hf = O za '^T sorazmeren hitrosti posodi Td. Model se eimulaoi jo , t. j . s modelu, tako da vse vrednosti. Vzemimo, konstantna, in si iz spremenljivki Td in posodo z vodo je ktrago temperaturne razlika ^T, = 0. Obenem je Hf naraščanja temperatura v reUi s kvalitativna irjenjem omejitev po spremenljivke dobijo da je temperatura grelca berimo prostor koliCin za ^■Ti Td = manjSa_od_Ts, Tb, veCja_od_Ts '»T = manjöa_od_0. O, veCja_od_0 Ce predpostavi mo i Td ° raanj£a_od_Ts dobimo iz (Di ^T = veCja_od_Ö in iz (2,3)1 Hf = +1 = dTd/dt torej se temperatura vode veCa. üe predpostavimo» Td = Ts dobimo iz' (1 ) s ar = O in iz (2,3)1 HI = O = dTd/dt torej temperatura vode ne naraääa ve«, je konstantna, Kuipere utemeljuje svoj pristop z analiza BisteroatiCnega opazovanja zdravnikov pri delu CKuipers 833. Trdi, da ima zdravnik "vzroöni model" paoienta, ki ga uporablja za simulaoijo normalnega delovanja telesa, patološkega obnašanja in individualnih posebnosti pacienta. Podrobnejši rezultati opazovanja zdravnika pri pri delu so naslednji! - Zdravnik uporablja za razlago relativno majhno število objektov in relacij v domeni. - Bimboliöni opisi koliöin.in vrednosti eo izrai^eni s kvalitativnimi pojmi K(tekot)ina) -> Polno T(vreliääB) Tded) -> T(tekoäina) t T(greleo) P(stisk) -> P(poBoda) -> P(eksplozi ja) Prooes je formalno definiran zs - objekti, ki nastopajo v procesu, ~ predpono tI (zunanjimi), ki morajo biti izpolnjeni, da proces lahko tetSe, - pogo ii. katerim morajo zadotiäati spremenljivke, da prooes lahko taöe. - relaoilami med spremenljivkami, " vplivi procesa na spremenljivke. V relacijah lahko nastopa poleg aritmetičnih izrazov tudi simbol "0<", ki oznaCuje kvantitativno sorazmernost med dvema spremenljivkama. Vplivi so izraüeni s simboloma "I+" in "1-", ki oznattujeta pozitiven ali negativen vpliv prooesa na spremenljivko. Za popolno omejitev dolodene spremenljivke Je potrebno zbrati vplive vseh procesov nanjo. Za primer definirajmo procesa "Toplotni tok" in "Vrenje" v situaciji na sliki 5i Toplotni_tDk.( izvor, .ponor) objekti! izvor, ponor predpogoji! Top 1otna_povezava( izvor, ponor) pogoji! T(izvor) > T(ponor) relacije! hitH(ponor) 0< T(i zver)-T vplivi! J- H(izvör) 1+ H(ponor) Vrenje« tekoäina) objekti! grelec, tekodina, plin, para predpogoji! Rrostor( plin) i Skupna_pbvräina( tekoöina, plin) pogoji! Toplatni_tok( greleo, tekofiina), T(tekoBina) = T(vreliBae) relacije! Snov( para) = Snov( tekodina), hitK(para) = hitK(tekoeina), hitK(para) 0< h itH(tekoöina), T(para) = T(tekoüina) vplivi! 1- K(tekoöina), 1+ K(para) Poglejmo, kaj se lahko zgodi v dani situaciji. Be je temperatura greloa veöja od temperaturo tekoöine v posodi, je izpolnjen pagò j za prooes "Toplotni tok". Porast toplotnega toka jo sorazmeren razliki temperatur in ima pozitiven vpliv na toploto in (ker se kolidina ne spreminja) temperaturo tekoBine. Ker Je greleo izvor toplote, lahko negativen vpliv na njegova toploto zanemarimo. Glede na prostor koliöin za temperaturo! -> T(vrelieaB) Tded) -> T(tBkoöina) T(greleo) bo temperatura tekoBine slej ko prej dosegla T(vrelieBe), Be je le T(greloo) > T ( vrel iäö.e) . S tem pa so 2e izpolnjeni vsi pogoji za proces "Vrenje". ■ Ker ima proces "Vrenje" negativen vpliv na kollBino tekoBine, se glede na prostor koliöini i' Prazno -> K(tekoBina) -> Polno proces lahko konda tako, da se koliBina tekoBine v posodi spremeni v Prazno. Vendar pa so še druge moiinosti. Pozitiven vpliv vrenja na kolidino pare pomeni na osnovi fizikalnega zakona! P(para) » V(para) = K(para) » T(para) in glede na to, da je temperatura pare konstantna dT(para) = O, poveöanje volumna dV(para) ~ +1 in ker je posoda zaprta tudi poveöanje tlaka dP(para) = +1. Ker se para dotika posode in tekoBine velja! P(para) = P(pDSoda) = R(tBkoüina) kar pomeni, da naraäöata tako tlak v posodi, kot tlak tekoBine. Glede na prostor koliBin za tlak ! P(stiBk) -> P(posoda) -> P(eksp1 oz i Ja) lahko torej porast tlaka v posodi privede do eksplozije posode. Obstaja pa še ena možnost. Kot vemo iz fizike je temperatura vrenja sorazmerna tlaku tekotiine: T(vreliaee) 0< P B Cpermanent( atr_retro: formC Retro_CQnd, Rhythm, Rate ) > II & ( ( Conduct ° blocked ; RateO = zero \ RateO >- betwoen_100_25Q ), Rhythm = quiet, Rate = zero i not_blool- zero, betwBen_250_3B0 >- RateO, retrograde Focus, Retro_cond ), Rhythm = RhythmO, Rate = RateO ** Natiln retrogradnega prevoda "Retro_oond' *X je odvisen od i zvora. impu1 za "Focus". retrograde av_Junotian, faster retrograde av_junction, slower retrograde av_ junc t ion,. equal retrograde rog_vent_foous, equal retrograde reg_vent_focus, slower retrograde ect^vent^focus, equal retrograde ect_vent_focus, slower XX XX AV prevod ni popolnoma blokiran, äe je v enem od ostalih moSiiih stanj. not_blookede Conduct ) t-Conduct in Cnormal, kent, james, delayed, progress_delayed, partial_blocked3. XX Definicija relacije "veöji" nad XX frekvencami. A >- B cono e CB I Higher], Clero, under_60, between_60_100, between_-100_2E0, betweon_250_350, over_3553 ), A in Higher. XX Definicija elementa seznama. X in CX I D. X in C I L3 i- X in L. XX Povezava dveh seznamov. conoe C3, L, L ). oonoe CX I LOD, Ll, CX I L3 ) i-conoe LO, LI, L ). Slika 10; Pravilo za retrogradni prevod impulzov iz atrijev v ventrikls z v^emi pomoünimi procedurami. Napisana ja v PROLOGovi sintaksi, kjer pomeni implikacijo v levo, konjukcijo, disjunkcijo, "." konec stavka, "CXIL3" pa seznam, kjer je X glava seznama, L pa rep. Vsi ostali simboli! "=>", ">-", "in" so definirani kot infikani binarni operatorji in nimajo nobenega semantiänega pomena v samem PROLOGu. V primeru modela srca teg imeli, ker je postopek do ponens) enostaven in lahk je enostavno sled uporabi Zaporedje logiönih izjav ustreza vzrokom in posled dogajanja v srcu. Tako se formalizma za opis modela red pravil) izkazala kot razlagi delovanja. Poleg spremembe modela, celo ra abstrakcije. Potrebno je poimenovanje aritmij enpr av_junkcijsko motnje zdru supraventriku1 arno) ali j enpr. razliüne tipe öirok pojem "Širok") in iie dobi kompaktne definicije arit a problema nismo kazovanja e modus o razumljiv. Razlaga jenih logiönih izjav, v modelu srca pa icam dejanskega je omejitev srca edoloöen vrstni prednost pri vzrotlni toga sa moüni, brez zliCni nivoji le spremeniti . atrijske in aiti v ezika za opis EKG ih GRS zdru!?iti pod en mo bolj eali manj) mi j. Pristopi Kuipersa, Forbusa in de Kleera temeljijo na opisovanju fizikalnih pojavov z omejitvami. Za Birjenje omejitev po sistemu kvalitativnih enaäb uporabljajo jezik omejitev CONLAN CSteele 803. Forbus modelira fizikalno r.ituacijo s kvalitativnimi procesi. Njegov pristop je toraj procesno oriontiran. kar pomeni, da je potrebno zbrati vplive vseh procesov na posamezno spremenljivko, äe Selimo zvedeti za omejitve, katerim mora zadoüöati. Opisovalec modela je sicer obremenjen z identifikacijo abstraktnih procesov, ki teüojo v dani situaciji, vendar so ti procesi zelo blizu intuitivni ideji fizikalnega procesa. Polog tega ja njegova teorija 2 in b - S. Ta Interval razdelimo na m (m c» 10) enakih podintervalovi kjer bomo izvajali n-točkovno integriranje za n =3, 8 in 12. Dane so tudi konstante c in u za n-točkovno integriranjer ki jih zapi&emo v polji C in u z elementi c[kl in uf^k^. Funkcija fune nam omogoča v enem Izvajanju integracijo treh (ali več) funkcijr in sicer so to a =■ x»x. n " x»< l-t-xox ) in u > 1. S fune pa izberemo tudi j-to funkcijo» ki jo bomo v proceduri kvad integrirali in izračunamo nJeno funkcijsko vrednost v točki t. Procedura kvad uporabi ta rezultat in s pomočjo Gaussove formule izračuna integral i=l k=l c^«f Lista 1. V listi na desni je podan program za kvadraturno integriranje z Gaussovo metodo v Pascalu, Program sestavljajo procedura quad» fune, csum in procedura za izPis. NaJpomembneJ-éi sta proceduri auad in fune i csum rabi le za Preizkus natančnosti koeficientov. V programu se namesto oglatesa predkleoaja uporablja znak 'š*> namesto oslatesa zaklepaja Pa znak 'č ' < YU abeceda). Lista 1 se nadaljuje na naslednji strani. PROGRAM Quad2( output )» TYPE tiPl2-ARRAYSl..12Ć OF real» tip3-ARRAYŠ1..3Ć OF real» VAR P'M ilntBser» eumtipl2» a>b< real« FUNCTION func(xtrea 1>j•intosar )9real» BEGIN IF J»1 THEN func»-x»* ELSE BEGIN IF j=2 THEN func«-< l+x»x )»x ELSE ■fune««"! END END» PROCEDURE kvad BEGIN h«-< b-a )/m» FOR j«-l TO p DO BEGIN BumŠjČ^-O» r«»a-h» FOR i«"l TO m DO BEGIN ri«r+hl FOR k«-l TO n DO BEGIN ti«r'«'UŠkĆ»h» sumèjĆ»"«umSjĆ+cŠkČ«func< t.j ) END END* sumšjĆoh^auMŠdĆ END END» PROCEDURE c»uminteger I atrealt BEGIN a«»0» FOR i«-l TO n DO a«"«+c6iĆ» iurlteln<'n"'»n» ' vsota « '»a) END» ( »------------------------------------------- , PROCEDURE izpis"0.111191» U8S3Ć «"0.237234» c8Š3Ć «=0,156853» U8Š4Ć «-0.408283» CBS4Ć «=0.181342» u8Ž5(; : = l-u8è40s c8S5Ć i -c8š4(:;; ufjftAČ «^l-ueSaii; cBŠAĆ 5 u8š7(i 5=1-U8S2Ć; cHiVČ s ==c802Ć; ueiSOĆ s = l-uBŽlĆf cbSBĆ «-cfiSlĆ; 1.112S1Ć t -0.921968E-02 s cl2Sl(J S-0.230G77E- •Ol; u 12ä2(l i =0. 479414G-01 f C12S2Ć :=0.534A99E- -Ol ; U1203Ć.--0.115049; cl2S3Ć ! =0.800392fi;- -Ol! Ul2ft4(!;5 = 0.20/,;541 ; cl2S4(:; 5=0.101504; ul2S5Ć4=--0.316085; C120SĆ s=0.11674A; ul2SAĆi=0.437383i C 125!i!iĆ «=0.124574; ul2!57Ći^-a-ul2Š6Ć; cl2Š7(i s=cl2S6Ć; ul2S8Ćs = l-ul2S5(;;; Cl2ft8(i • ■»C12ŠSĆ» ul209Ćs = l.-ul2Š4Ć; cl2Š9(i 5=C1204Ć; ui2SiOĆs=i-iii2S3(';; C120100 ul2011Ćs='l-ul2!?!2Ć; cl2Šlloredno uporabo) k--terice. Ui so kombinacije iz dtevil O. :l. ,,, , n~lF če sta dani vrednosti k in n in predhodna i'ikazan v listi rezultatov. Će primerjamo rezultate iz liste z idealnimi vrednostmi x*xdx 39 x,... r j( k ). Kadar je vbodni vektor sestavljen, iz ,samih ničel, se kot prva kombinacija pojavi n-k. ... , n-l Ta kombinacija se pojavi tudi po kombinaciji O, 1, ... , k-1 in je zadnja v ciklu. 2, Opis proarama Adov«>ki paket v J.isti 1 je sejstavijo>n iz pr'oce— dure combination in .'3lavni?»a preizkusnega pro-arama. Pri oznaki <> uporabimo stavek null; , ker pred besedo END moramo imeti znak V** t^lavnem prosramu izfciei^em« k — A in r* ■ == 7• z a č et na kombinacija pa je 0. 1. 2.3. A, 5, Nato iramo 20 k-~ter'ic:. ki jih izpisujemo v dvel» stolpcih. ko med posamezne elemente k--te~ rice i>ostavljamü vejice ii't k-ter'ice ogradimo z o k lei».i j i , Generiranje kombinacij WITH util» PACKAGE BOtiY test comb 18 TYPE PolJe IS ARRAY <1 .. 20) OF Integer» — Ta procedura Je predmet nafto pozornosti! PROCEDURE combination < n,k« IN inteaer» Ji in UUT pol Je> 18 drbrm) inteaer« BEGIN POR b IN 1 .. k-l LOOP IF J< b ) >» b THEN a i=.J «" m + a» END LOOPP GOTO final» END IFf END LOOP» FOR m IN 1 k J< M > n - k END LOOP» <> null» END combination» --»»«««««(««««««««»«»«»«««««»««(««««««»««»»«»«»MM«»«« — Glavni preizkusni program — Ji PolJet i.krlrn« integer» BEGIN — Določitev zafetne kombinacije k 6» n ?»■ FOR i IN 1 k LOOP J< i > i-i» END LOOP» new_line» put< "Zafietna kombinacija FOR i IN 1 .. k LOOP PUt» IF i < k THEN put( ',">» END IF» END LOOP» put< ■ )')» new_Iine» FOR 1 IN 1 ..20 LOOP combination< n, k . J )» put< '< * )» FOR 1 IN 1 .. k LOOP putt J< 1 ),2 )» IF 1 < k THEN PUt<','>» END IF» END LOOP» put< • >' )» IF 1 mod 2 0 THEN new-line» ELSE put( " ' >» END IF» END LOOP» END testeomb» < ■>» Lista 1. Lista na levi orikazuJe paketno telo za oreizkuB seneriranJa k~teric (kombinacij)» ki so vselej strogo monotono naradčaJuCe (alej listo 2>. Procedura combination vzame iz celo-ätevilskeaa pol Ja J "trenutno k-terico in Jo transformira v novo (naslednjo) k-terico. Parametra n in k izbiramo, pri tem vel Ja n >» k. W slavnem programu se naJpreJ oblikuJe začetna k-terica in iz nJe in nJenih naslednic se oblikujejo novo k-terice. dokler ao cikel no ponovi. 3. Izvajanje programa Lista 2 prikazuje rezultate izvaJanJa proaram-fikesa paketa z liste 1. Prikazana Je začetna kombinacija elementov in nato 6e 20 naslednjih kombinacij. Iz liste Je razviden kombinaciJski cikel» ki BO začne ponavljati v zadnJi vrstici liste. Pri večJi vrednosti n (izbrali smo n = 7) bi dobili dalJAi kombinaciJski cikel. 13A>testcomb Začetna kombinacija ( 0. Ir ar 3r 4, 5 ) ( 1, 2» 3» 4» S. 6 ) ( 0. 2r 3r 4r 5 r 6 ) ( 0, 1> 3, 4, S, 6 ) ( Or 1, 2r 4r 5r 6 ) ( 0, 1, 2> 3r 5 r 6 > ( 0, Ir 2r 3, 4r 6 ) < 1> 2, 3, 4» 5, 6 ) ( 0, 2r 3r 4r 5r 6 ) ( 0, Ir 3. 4» ES, 6 ) ( Or Ir 2r 4r 5. 6 ) ( 0, Ir 2, 3» 5» 6 ) ( 0, Ir 2r 3r 4r 6 ) ( Ir 2. 3, 4r S, 6 ) ( Or 2, 3r 4, 3r 6 ) ( Or 1, 3, 4, 5, 6 ) ( Or Ir 2, 4r 5r Ó > ( 0, 1. 2, 3. 5, 6 ) ( Or Ir 2r 3r 4r 6 ) ( 1. 2. 3, 4, S» 6 ) ( Or 2r 3r 4r E5r 6 > Lista 2. V teJ listi imamo začetno l<-teric« in iz nJe izvedene naslednje k-terice. Cikel so začne ponavljati v zadnJi vrstici liste. V slavnem prosramu lahko določimo vrednosti k in n (s priredilnima stavkoma) in dobimo tako k~ terice» ki oo sestavljene iz Številk intervala (O. 1. ... . n-1 )» pri čemer so elementi k-ter-ke paroma različni in se poJavlJaJo v monotono naraščajočem vrstnem redu. NOVICE IN ZANIMIVOSTI =: ~ = a: ss Ä y= SE=Ä as ÜBeraciJski sis tem UNIX i njegov nastanek in persoektive I 1. Uvod üoeracijski sistem UNIX (Bell Laboratories) postaja crejkoslej standard na podroiju uporabe 16- in 32~bitnih mi kr 0P)r ocesorsk i h sistemov. Tudi domaća računalniška industrija mora upoštevati, nastanek tesa de -facto standarda, ki bo hkrati tudi industrijski in institucionalni standard ovzroča nastajanje nove sistemske proaram— ske opreme, UNIXom bistvena trina referenca. Najbolj razširjena izvedenka UNIXa se je razvila ns PDP-11 sistemih. Na izvedenki UNIX verzija 7 BO osnovani sistem III in sistem V podjetja Western Electric in komercialni sistemi Xenix, Idris in Coherent. Osnovni področji uporabe teh sistemov sta obdelava besedil in razvoj programov. Bell Laboratories je prenesel UNIX tudi na stroj yAX-ll/780, torej na 32-bit-ni računalnik z arhitekturo virtualneaa pomnilnika, kasneje pa so na univerzi v Herkeleau (Aali-fornija ) dodali k sistemu 4e upravljanje virtualneaa pomnilnika. Berkeleaska izpeljanka je dobila oznako 3BSD (okrajiava za 3-rd Berkeley Software Distribution for UNIX). Ta sistem se je uporabljal na več kot 1000 sistemih VAX/ UNIX izven Bell Laboratories. Ko je DARPA (Defense Advanced Research projects Aaenca ) iskala nov stroj, ki bi zamenjal močno razžirjeni miniračunalnik PDP-10 v raziskovalnih ustanovah, se je odločila za stroj tipa VAX. Pri tem se agencija ni zadovoljila s standardnim sistemom VAX/VMS, marveč je sprožila nov razvoj na osnovi 3BSD> ki naj bi dal prenosno izvedenko UNIXa, uporabno za različne računalniške arhitekture in za prihodiije razi skovalne projekte. UNIX 4.2BSti (ki ga bomo 4e opisali) je bil re zultat teaa projekta, vsebuje pa vrsto izboljšav, ki jih ne najdemo v druaih izpeljankah. Te lastnosti so« — osorednje in ozadnje krmiljerjje poslov, avtomatično ponovno nalasanje operacijskega sistema pri sistemskem zlomu in — visoka zmosljivost novesa simbolnesa po-pravljalnika napak. Slika 1 prikazuje razvoj operacijskeaa sistema UNIX in njeaovih izpeljank. 3. Nadomeščanje (zametna) strani Razvoj operacijskeaa sistema UNIX Üper-acijski sistem UNIX se je rodil v zgodnjem m iri iračuna In iškem obdobju v okviru posebne raz ova lile sUuPine pri Bell La bora t or ies, F'o 11J o-v-em rojstvu sa je prvo si;>r'ejelo podjetje !il-c za svoje 16-bitn(? miniračuna In i ke PDP-11 in j^j Je Zričelo t.iübavljati za nominalno ceno univerzam in i^a z i sk o va In im la bor a t or i jem. '-1NIX se Je uveljavil zaradi nenavadnih lastnosti mirt ir ačuna In i škega operac i jskeaa sistema že v začetku 70-ih let, in sicer zaradi! — hierarhiCneaa zbii-čnesa sistema, — zdr'užljivosti zbirk, — združljivosti naprav, ...... medprocesnesa vhoda/i z hoda, zmoslJiveaa, proaramir1 j iveaa ukazneaa interpretiranja, potjpore za začenjanje asinhronih opravil in zaradi bosate in lahko razširlJive množice pro-aramirnih orodij. Danes tako so te lastnosti operacijskega sistema pomembne za proizvajalce računalniških sistemov, da je podobnost njihovih proizvodov z Podpora virtualnemu pomnilniku v sistemu UNIX 4.2BSD omogoča izvajanje zelo obsežnih procesov, ker sistem pomika strani v in iz sekundarnega pomnilnika po potrebi. Skrivnost teaa mehanizma je globalni algoritem nadomeščan.Ja strani, ki povzroča minimizaciJo uporabljenega pomnilnika v vsakem procesu, uporabljajoč znano strategijo nadomeščanja strani, ki so bile v poslednjem razdobju najmanj uporabljane. Zaradi teaa se lahko hkrati izvaja več velikih procesov, katerih obses je večji od razpoložljivega pomnilnika. Procesi do velikosti 16M zlogov se lahko izvajajo v sistemu 4.2BSD na stroJu VAX/11 ali na delovni postaji SUN (ta uporabi J« procesor MCéBOlO), čeprav sta njuna pomnilnika manjšesa obseaa. Primerjalne ocene so pokazale, da se je z dodajanjem mehanizma virtualneaa Pomnilnika k sistemu UNIX 4.2BSri lahko povečalo število upo rabnikov v enostavnem sistemu z razdeljevanjem procesorskega časa. Na osebni delovni postaji tipa SUN pa se je razen možnosti obdelave ve--čJih proaramov izboljšala tudi sistemska od zivnost. Pri klicu velikeaa programa se la program ne naloži v hitri pomnilnik, nalagajo pa se PO potrebi le določene strani programa. Pri vsaki naložitvi strani izbere algoritem za Keil Laboratories 1971: y6 — IV/Ö < prenosljiv) —* K)/ ----- 19132 !5 :t st (?m III. < ATiT Standard ) — 1983 32 V < VAX ) Berkeleaska izbold&ava 1977 1978 1979 1900 19(31 19B3 1.0 2.0 3.0 4.0 4,1 4.2 4. 2 na SUN Pascal - vi - stranenje - krmiljenje - podpora - podpora - delovna Ex (virtual- poslov za VAX za mrežo postaja ni pomn.> - ualaševe- 7S0,730 < rCP/IP ) brez - LISP van je - podpora - hitrejši diskov - dolaa spr. za mass zbirčni grafika imena v in uni- sistem okna nalagal- bus - misdpro- niku cesne - avtomatič- komuni- no ponovno kacije nalaganje Nadaljnji razvoj na PW-ll 2.0 - 2.B2 itd. UNIX razvojni sistemi PljP - 11 -----------»■ MAX--------------- SUN ------- Slika 1. Razvoj UNIX sistemov (Bell Laboratories! VA, sistem III in »istem y; berkeley-Gka izboljöavas 1.0, 2.0, 3.0V 4.Ó, '4.1, 4;2J razvojni sistomii l-'DP-ll, VAX, SUN) premeščanje strani stran, ki bo v hitrem pomnilniku zamenjana skladno s strat»!3ijo najmanj uporabljane strani v poslednjem razdobju. Će se sistem ■4.2EISD izvaja na stroju brez upravljanja virtualneaa pomnilnika, se lahko èe vedno uporabi prednost pomnilnidke preslikave na ravnini strani, tako da se posamezne strani nalaaajo na razprèene pomnilniàke lokacije celo tedaj, ko stroj ne podpira ukazov za ponoven začetek, potrebnih pri popravljanju poskusov za dostop na nezasedene strani (napake pri strane--nju>. Tako je mosoče izvajati sistem tudi na procesorju 68000, ki ne podpira virtualnesa Pomnilnika. fte; pa se stranenje ne uporablja, se poveča zakasnitev pri začenjanju procesov in manj procesov se lahko hkrati izvaja. 4. Hitri zbirCni dostop Tradicionalni lA-bitni UNIX sistemi imajo zaleden hierarhični zbirčni sistem, ki pa ni posebno zmoaljiv. Na disku s hitrostjo prenosa IH zlo<3/sek ni dosealjivi pretok pri prenosu velikih zbirk večji od HOk zlos/sek zaradi slabe razporeditve blokov t>a disku. Čeprav je ta hitrost zadostna pri aplikacijah z razdeljevanjem časa (npr, pri razvoju programov in pri obdelavi besedil) pa ne zadoilča potrebam velikih aplikacij ali implementacij mrežnih zbirčnih sistemov. UNIX 4.2£Ii Slika 2. Razlika v hitrosti branja z diska starega in noveaa UN:i:Xa je velika. V UNlXu 4.2I-:iSi;i se zbirke shranjujejo v blokih 40'?6 zloaov ne-mesto v 512-zložnih blokih., Vstavljanje fizičnih blokov na disk povečuje hitrost diskovne-sa poclatkovneaa dostopa. Komunikacije Prvotni operacijski sistem UNIX je bil razvit pred nastankom lokalnih mrež. Ta sistem Je imel podporo aamu za izmenjavo podatkov prek tele-foi>~ rem se vrhovi arafa imenujejo podnožja in so končne komunikacijske točke. Poziv s =•■ podno ž je< domena , tip ) oblikuje po npr, z uporabo HUP poziva, ki podvoji deskriptor iili s CLOSE pozivom, ki aa uniči, Aruument 'domena' določa aplikativno sfero, v kateri se bo pojavila komunikacija in je izbran iz množic^;, podprte z lokalno izve-, dc^nko operacijskega sistema. Operacije se interpretirajo z domensko implemetaci j o in naj bi bile čimbolj neodvisne? od domenske karakteristike, Sistem 4,2BSD POdPira tako notranjo komunikacijsko domeno UNlXa kot zunanjo komunikacijsko domeno Xel'oxoveaa Internet protokola. Prihodnje domene naJ bi podpirale družino Protokolov X€->roxoveaa mrežneaa sistema < XNi5 > in protokolov ECHA (European Computer Manufacturers Association). ' ' • Namesto nove arhitekture za lokalne mreže uvaja tlNlX 4,2EiSlì podsistem za PodPoro mrežnega protokola.. Podpira Jo se različne mrt'žne arhitekture v sistemu skladno z različnimi diskovnimi e-n.otami. Tako kot sio operacije branja, zapisovanja, iskanja in formatiranJa skupne vsem diskovnim krmilnikom, tako abatrahira komunikacijski podsistem lastnosti, ki so značilne vsem komunikacijskim sisteiYiom in oskrbi z nJimi uporabnike,. skrivajoč podrobnosti določenih mrežnih protokolov. UN.CX 4.2BS1;! zaradi svoje komunikacijske storitve na vrhu tkim. zunanjih mrežitih pripomočkov. .Zaradi teaa je ta izpeljanka UNlXa bolj. odvisna od zunanjih mrežnih pripomočkov kot tisti operacijski sistemi, ki ima Jo opredeljene .»voJe lastne mrežne protokole, Po druai strani pa Je 4.2KSD bol J prožen pri prilaganju na nova mrežna okolja. Seveda bi bil lahko sistem. 4,2BSti zara jen brez mrežne podpore v svojem operacijskem jedru» ni-mesto teaa bi lahko uporabljal mrežne storitA/ene procese, ki bi bili diostupani z druaimi aplikaciJami z uporabo ÜNIXove izvirne medpročesne komunikacije. Ti procesi bi celo lahke neposredno poaanJali mrežno materialno opremo, Uendar Je bila ta metoda zavrnjena zaradi 'preobremenitve, ki se.Je pojavila v konteksthem preklapljanju tedanje materialne arhitekture, tako da Je bil bistveno žmanJian mrežni,podatkovni pretok. tako Je ostal UNIX odprt, operacijski sistem, ki bo lahko upošteval sedanje in prihodnje mreže in njihovo protokole. 7. Mrežna podnožja Različni tipi prenosne semantike opredeljujejo podnožhe tipe. Začetna izvedenka sistema 4.2I; ' V UN.[Xov.i domeni so 'ime'n;v imena UNIXdvih zbirčnih sistemskih poti, v Internetovi domeni pa so dvojice, ■ ki »o sestavljene iz 32-taitneaa Internetpvega naslova in iz lA-bitne Interneto-' ve i^evilke, vrat, Enostavne mrežne storitve s podatkoarami"delujejo z oblikovanjem podnožij in s poäilJan Jem in sprejemanjem podat koaramov, ko se uporabljata k 1 i c a ■ sendto ki bodo odposlani« naslov sprejemnika 'k', Podat.koaram se lahko sprejme na podnoiju. ki ttiu je bil doiJe--Ijen naslov 'k' s klicem 'bind'. Naslov podnožja r iz katereaa Je bil odposlan podatkoaram» Je določen na sprejemnem podnojiJu kot 'od'. V naJbolJ enostavnem odnosu storilnik-narodnik oblikuje Btorilnik PodnotJe in a» vele na dobro znano ime. Naročnikr ki si ieli stik s stor-it-viJo. oblikuje podnoije in izvrfti sendto klicr ko poälJe sporočilo k storilniku. Stori In i k spreJme sporočilo z uporabo klica recvfrom in lahko odPOžlJe odaovor z uporab« naslova 'od'. Komunikacijski podsistem 4.2BBD priredi 'ime' podnožju» ki se bo uporabiJalo za pofti-IJanJe sporočilr če mu ni bilo nič prirejeno s klicem bind. Taku obstaJa vselej naslovr h kateremu se lahko PoftilJaJo odaovori. Mrelno povezana storitev se ublikuJe s podnožjem» z nJesovo povezavo k naslovu in z izdaJo klicev listenC s> backloa > naročnik '« acceptCs» od) Funkcija listen naroči sistemu, da se vrstno poveže s podnožjem 's'» ko Je 'backlos' največje dovoljeno število hkratnih vrstnih povezav. Storilnik deluJe z ukinJanJem povezav v vrsti in z njihovim popravljanjem. Povezave se ukinJaJo s klicem s ° accept< q r od ) ki vrne podnožni opisovalnik. Ta vrstni povezovalni model predpostavlja» da so bile povezave zara Jene pred njihovim »pro-JetJemJ storilnik ne more izbirno zavrniti povezave pred klicem 'accept'. Tako se sporočilo poveži-potrdi prenosneaa protokola odPoAlJe. ko Je bila povezava uvrftčena. Sporočilo poveži-za-vrni pa se PoàlJe» ko ni več prostora v vrsti ali ku naslovljeni storilnik ni aktiven. liomensko neodvisne primitivno funkcije tesa modela ne zahtevajo znan Je o mehanizmih aradit-ve povezav» ki nastaJaJo z uporabo klicev pove-ži-BPreJmi (connect/accept). Kadar Je potreben zapleten protokol za zuraditev povezave v komunikacijski . mreži , oe to lahko doseže a preslikavo povezovalne sprejemljivosti na začetno BtopnJo protokola in z sraditiviJo dodatnih povezav v aplikacijskih procesih. Klic accept so lahko izdaja ponavlja Joče z ukinjanjem vstopov v povezovalni vrsti. Naročnik» ki želi stik s storilnikom» oblikuJe podnožje in določi ime storilnika s klicem ■ connectovzroča razpršenost zbirčnih blokov na disku. Ker uporabnik nikoli ne navede obsesa imenika, se t.udi imeni-žki bloki razpri?iijo oo disku z rastjo imenika. Tako je potrebnih več iskalnih operacij za' posamezno komponento. Velik zbirčni sistem lahko ima imena z 10 do 15 komponentami in odprtje take zbirke lahko zahteva 30 diskovnih iskanj. .30k~zloä>.ni prenos z dtaka v pomnilnik in pripadajočo obdelavo. Zmogljivost zbirčne.'3a sistema se poslabèa tudi tedaj, ko je.dovoljena neomejena rast nekaterih imenikov. Imenik ni dejansko nič druaeua kot seznam zbirčnih in podimenièkih imen s kazalci k ustreznmih naslovom na disku. Navedba imeni-Skesa člena pomeni preiskovanje imenika, dokler ni najdeno ime, Če ima imenik 1()2'1 členov. je za značilno navedbo potrebnih 10 diskovnih iskanj in blokovnih branjs osem iskanj za branje polovice imenika in eno ali dve iskanji za branje imeniilkega i-vozli'iča, i , . ■ V povezavi z zmosljivostnimi problemi diskovne-.sa y/l povzroča branje znaka v ali iz terminala Posebno prekinitev centralne procesne enote (to velja za vrsto sistemov UNIX). Kadar je aktivnih več uporabnikov z zaslonsko usmerjenim urejevalnikom. ki pogosto preslikuje zaslon, postanejo znakovne prekinitve glavna obremenitev procesorja, Nekatc^ri UNIXovi sistemi uporabljajo posebno DMA materiain d opremo. s ka-t'ero se prenaža v posamezni prekinitvi več znakov, Nekateri sistemi uporabljajo vhodne vme-sinike. ki se odtipavajo z omreinim taktom (60 Hz), da se tako izognejo vhodnim prekinitvam. Junij 1984 Ašm Ti poskusi za izboljšanje zmogljivosti pa imajo stranske učinke. tako da XON-XfJI'-T-' protokol (usposobitev ih onesposobitev oddaje) ne deluje več zanesljivo, Več zunanjih naprav. kot so npr. tiskalniki, uporablja ta protokol za krmiljenje svojih vhodov. Ko se vmesnik približuje svoji meji. poàlje zunanja naprava signal XOFF gostitelju z namero. da ustavi oddajanje. Če ima naprava več vmesnižkesa prostora, poi»!je signal XDN za spejem iz UNIXovéaa gostitelja. Vmesnižki terminalni V/I pa lahko zakasni signal XOFF in povzr-oči izaubo podatkov. dr Suad ALAGIĆ vanredni profesor Elcktrotchnićkog fakulteta u Sarajevu RELACIONE BAZE PODATAKA Prvo- izdiinjc painja Jt posvećena inicgriletii poiiataka i problemima mklaJivanja uporeJmg isvrienja tkupa iransakvija nad cemralteovanom i äiitribuiranom basom po-dauikü. Poseban kvalitet hijige u pedagoškom smislu je isbor iiuzemo velikog broja primera koji su koriSćem koJ svajiog, formalnog ili neformalnog, objaSnjmja. Pristup u knjizi je formalan gtle materija to zahteva, ali je i tada lak sa ^iianjt i mek potkrcpljen primerima koji se sistematski daju pre formalnih objaSnjenja. Osu aspekti knjige koji su od posebtwg interesa za neformalne korisnike baza podataka, kao Ito su upitni jezici ili semantUki modeli, tuiroHto su detaljno analizirani, pa to knjizi daje Jot veću Sirim. Čitav nit praktićnih postupaka, kao Sto su oni za uspostavljanje konzistentnog stanja base podataka i algoritama, biće od nesumljive koristi strttćttjacima koji se u praksi t^ve bazama podataka, bez kojih Je teSko sarm'sliti moderno poslovanje shienih orgatrisacija udruženog ratia u privredi i druStvenim delatmstimi. Kyijirn je nipì'i^t tako da može da posluii kao udikenik za dodiplomske i poslediplomske studije na leimičkim, matetnatičkim, orgatuzačiotum i ekonotrtskim fakultetima. Re! je, dakle, o retkotn poduhvatu u informatici, disciplini koja je od veoma velikog znaćaja za dalji razvoj, o knjizi zasnovanoj na modernim trenilm'ima, koja će biti aktuelna dugi niz godim. Zato mi je zadovoljstvo da predstavim trvu knjigu, prm knjigu ovakvog sadržaja u nas, izuzetnu i u poredenju sa najboljim stranim ii mvj oblasti. Prof. dr Dranislav Lozarević „SVJETLOST". OOUR Zavcd za udibenikc i nastavna sredstva, Sarajevo, I9S4. sadrZai PREDGOVOR U razvoju metoda projektovanja i efikasnog koriićenja infonimcionih sistema prelomnu tačku, taćku u kojoj ova oblast prerasta u forrnalno zasnovanu hauiuu i inženjersku disciplinu, predstavljaju modeli podataka, oditosno baze podataka, hksplicitno iskazivanje ćinjenice da informacioni sistem, da bi zadovoljio Sle zahteve koji se pred njega postavljaju, mora da predstavlja adekvatan \model realnog sistcnta u kome deluje, donosi revoluciju u pristupu projektovanju informacionih sistema. Relaäoni mode! baze podataka, kao prvi model sq sve-^oòu/ivatno defitu'sanim formalnim aparatom, s jedne strane, i isuzetrto jedno-iiaviiim i prihvatljivim konceptima, sa druge, u ovim tretidovima razvoja ima najznaćajnije mesto i kao teorijska osiwva razvoja i kao, u poslednje vreme, konkretna prahtilna realizacija. Ova knjiga se znači bavi veoma značajnim teorijskim i praktii'nim aspektima projektovanja i koriSćenja informacionih sistema. Knjiga sadrži pet poglavlja: Modeli i jezici, iMgićko projektmanje. Strukture i algoritmi, Integritet podataka i Distribuirane baze. Prva dva poglavlja tretiraju relacioni model kao takav (strukturu, ogra-luSenJa i opeiatore) i logička projektovanje relacionog tmdela (mrmalizaciju i apstrakciju). Preostala tri poglavlja tretiraju fizičku realizaciju mode,., (strukture i algorif/nij, osMoi'ne probleme rada u dinatmckom okruženju (konkurentno izvrSaVituje transakcija) i u posledtijc vreme praktično najinteresatuniji slučaj realizacije — distribuirane baze pojataka. U fvgiavlju .1 tudcli i Jezici trvedcn je prvo relacioni model podataka (pred-'"-■'J.tnjc entiteta relacijama, relaziona algebra, ijaciuni „piü.i zatim su raznutrane logičke zavi.iiuisii između atributa relacija (funkcionalne i viSe-znaćne) i na temelju takvog pristupa uvedeni su hijerarhijski i nu-ežni model. Poglavlje U'giiko prajektovanje sadrži dva Ma, Jedan ji posvećen normalnim oblicima, a drugi se bavi semantičkim postupcima u logičkom projektovanju. Od normaltuh oblika razmatrane ih druga, treća, četvrta i Boyce-.Coddoi'a normalna forma. Semantički aspekti modeliranja uključuju atialisu prednosti I nedostataka ncnortnalizovc.nih modela, a zatim i postupaka agregacije i generalizacije. Vsloiima iiuegritcta je u oba postupka posvećem posebna pažnja, a u okviru generalizacije je rastiuitrano i m'odenje podmodela. Poglavlje Strukture i algoritmi posvećeno je fizičkoj (strukturalhoJJ reprezentaciji modela. Kod toga su razmatrane sekvencijalna, indeks-sekveticijalna, indeksirana, direktna i tiirežna reprezentacija. Za svaku reprezentaciju razvijeni su algoritmi za realizaciju restrikcije, projekcije, i tpajatija. Data Je analiza strukture dinamičkih indeksa lipa jB'-drveta. Integritet podataka i njegovo respektovanje kod uporednog jzvrSenja skupa tratisakcija nad bazom podataka predmet su četvrtog poglavlja. Razmatrani su protokoli zaključavanja objekata u bazi, logički i fizički lokoti, a tatim i postupci uspostavljanja konzistentnog stanja baze nakon fmrede ustava integriteta. Poslednje poglavlje posvećeno je distribuiranim sistemima baza podataka. Izložena je, na funkcionjliumt principu, arhitektura takvih sistema, razma-iratti su problemi integriteta podataka kod distribuiranog izvrScnja skupa transakcija, postupci distribuirane obrade upita i protokoli kojima se obezbeduje konsistentno ažuriranje višestrukih kopija podataka u distribuiranoj basi. Za knjigu se u celasti može reći da sadrži i>biman materijal koji se do sada mogao naći samo u visokospecijalizovanim časopisima. Ona Je rezultat samostalnog pristupa dr Suada Alagića problemima sistetna baza podataka, nije nastala ugledanjem na već postojeći, domaći ili strani, uzor, ali se veoma dobro poredi sa najpoznatijim (Date, Ullman). Autor Je pravilno izabrao najmoderniji, relacioni model, i formalni aparat koji uz njega ide, kao osnovu pristupa problemima baza podataka. Tim jednostavnim formalnim aparatom dokaza» je niz značajnih rezultata iz teorije baza podataka, u islovremcno su upotrebom tog aparata sistematski i na originalan tuičin izloženi različiti oblici fizičke reprezentacije. Skup algoritama koji knjiga sadrži prvi put u ovom obliku razjašnjava probleme realizacije relacionih upitnih Jezika, a neki algoritmi se po prvi put objavljuju. Nasuprot većini do sada objavljenih knjiga iz baza podataka, posebna Prcilgovor Uvod I. Modeli I Inici .................................. 1. Rclacioni müilel................................ l.t. Trcd-iiavljanic entiteta relacijam« ........... 1.2. Relaciona algebri .......................... 1.3. liclacioni upitni jczici ...................... 2. Logičke zavisnosti .............................. 2.1. f'unltcionalne zavittiusti .................... 2.2. \'iieznaCne zavisnosti ...................... 3. Mtjerarliijski i mrežni model .................... 3. L Hiicrarhifski moUcI ........................ 3,2. Mrcini model.............................. II. Logičko proiektovaajfl............................ 1. Normalne forme .............................. 1.1. Drut;3 normalna forma ...................... 1.2. Trcva normalna forma .................... 1.3. liojce-Coddova normalna form».............. 1.4. Četvrta normalna forma .................. 2. Apsirikciie .................................... 3.1. Nčnormali/ovani relacioni model.............. 2.2. .'igrcga^-iia ................................ 2.3. Gencralizaciia .............................. III. Strukture t aleorltoil .......................... L ri/i£ka tcpre/entaciia logičkih sktjpos'a............ 2. Sckvcncijalna reprezentacija i sekvencijulni algoritmi 2.1. Sekvcndialna reprezentacija .................. 2.2. Sekvencijalni algoritmi ...................... 3. Indeksirane reprezentacije ...................... 3.1. Indeks-sekvencijalna reprezentacija............ 3.2. Indeksirana reprezentacija .................. 3.3. Struktura indeksa .......................... 3.4. Direktna reprezentacija...................... 4. .Mrežna reprezentacija .......................... |V. laterrlicl podait^k« .............................. 1. Trarfakciie i integritet.......................... 2. Izvrlenia skupa transakcija ...................... 3. Protokoli zakljuCavanta ........................... 4. LigiJki lokoti................................... 5. riziJki lokoti ................................... 6. Rettauracija konztiientnog tuni» bize ............. V. Platrlbutrane boze podataka ..................... Arhitektura sistema baze podataka ................. 1, Distriblurano izvrienje i integritet................. 3. Distribuirana obrada upita ....................... 41 Distribuirano ažuriranje........................... Bibliografske ptibilielke ................................. Literatura ............................................. Indeks ............................................ tl II 16 I» Jj 2S 29 33 33 37 42 42 42 43 .18 50 33 S3 J5 60 67 67 70 70 .'4 7il 79 M, 89 93 n 102 102 104 107 115 120 I2J 134 134 1311 146 134 139 161 163 GLASILO DELOVNEGA KOLEKTIVA SOZD ISKflA' i ätovilku 2ä - XXIII - le.iunii 1984 FÜTWWMM' Peta računalniška generacija prihaja : V /ačutku develdesetili let teija stoletja busta ZDA in SZ dogradili stalili orbitalni.pijstuji za nadaljnje odkrivanje vesulja in za usvujiuije nu> ■ vih tchnulngij. To ju vznemirljiv projekt, ub katcreni laliko marsikdo prtpoiiini; ,;Tako kmalu, le borih sedcni, osem let!*' Ou, diinaSiiJi razvoj lu-ipiedujc res zelo liitni in lu ne le pri osvajanju vesolja. ^ pinnenibueju in bolj neverjetni projekti bodo uresničeni v priliajajoćeni razdobju. Edeii I^ili, niorda celo najpomembnejših, bo iiekakSnu orbitalna postaja iz- ' gradnje |>e(e računalni.(kf generacije; (a projekt n.ij bi bil v prvi fazi uresničeu do leta I WZ v hudem tekmovanju med Japonsko, ZDA in ECS.' . ■ . ■ ' • Danes ni moč uiti pribliino predvideti, kiij vse bo ta novii teiinologija prinesla; vendar je takr^^nje prilagajanje na nove tehnologije in meti^olo^ gijc nujno, da bi preprečili neprijetna presenečenja v tis|ih tehnoloških dejavnostih, ki so usmerjene v izvoz. Nikakor ne bi .mieli dopustiti, du bi se Sele čez sedem, osem let začeli presenečeno ozirali naokoli iii spraSevati, od kod se je ža nas tako nenadoma pojavila ta peta računaInHka generacija, na kateri bo osnovana rubùliz;icij:i proizvodnje in iid'orinafizacija življenja nasj>]oÌi. Zavest o priliodu pele računalniške generacije in njcnili posledic je ' nijna in naj bi poslala stabilna zavest naš.!ga delavca, da tuko ne bi ostalo pri nemočnem vzkliku (vzdihu) upruvljavslte baze: ,4o ie kako!" , V smislu lakih razmišljanj bržkone ne bo odveč naS pogovor z vidniih računalmikim sirokovigiikom m sooblikovalcem mikroračunalniSkega sis:. tenu Partner, próf. dr, Antonom p. Zcleznikinjein. Kaj je osnovna značilnost pete ra- ' čujiala.l&e generacije? 2clt-ziükar: 'Pela fačunalniSka ; generacija naj bi bila zinogljivejSa predvsem iia področjili človekovili . intelektualnih (iimskili, lazumskih, logičnih, oblikovidnih) dejavnosti. Bila liaj bi to, kar bi upravičeno jaliko imenovali iiUoligenčm ojačevalnik, oz. celo iiili;ligenčni pospeScvalnik. Peta računalniška genciacija bo po definiciji mrežni lačunalniSki sistem, ki naj tli prek lokalnUi (podjetniških, laboratorijskih, področnih) mrež pre-rastcl v plaiielarnomrežo s hitrimi in učinkovitinu komunikacijskimi potmi. Moč pete generricijc.naj bi bila v za.seganju tiste obdelovalne moči v mrežnem sistemu, ki je za rcSitev (lo-ločeiicga problema v določeni mrežni točki potrebna. Področij človekovega intelektualnega dela' pa je več Vfst (specializacij), koi si to navadna pred-stavljumd. ' Bistvo nove računalniške generacije naj bi bila med drugim lastnost logičnega oblikovanja, ckstrajMlacije, skic-. Sanja, oz. kar ruSevanja 1 probic mo' 'blikovanjc 'novih pojmov, njiliov ■jpovezov^ije na raz.liCnili dclovnili ivih pojmov, njiliovo 1 raz.liCnili dclovnili področjili, samostojno izbiranje in iskanje podatkov v velikih inforinacij-ških bazah naj bi pripomoglo k samo-«tojneinu icševanju s človekom in'sistemom obiikovatiili raznovrstnih problemov. V začetku naj bi bile taksne zmogljivosti nove generacije omejene na posebna področja (npr. na razvojne In firoizvodne probleme, ključi« tehno-ogije, konstrukcijske dejavnosti, stan-datizaujo, medicino, tehniko, znanost, umetno inteligenco), kasneje pa zaokrožene v vedno večje celote. Tako bi imeli določene strokovne, ožje usmeijene sisteme pete generacije (npr. za telefonijo, interno medicino). I^k (ačunalniSkih mrež bi bilo mogo- če v vsakem primeru, tudi če je obdelovalno mesto v mreži navadeii terminal (zaslon in tipkovnica), mobilizirati ustrezno obdelovalno moč v določenem, dovolj zmogljivem mrežnom . vozlišču. S taksno obdelovalno strategijo bi laliko ob sodelovanju dovolj močnih in- specializiriinili vozliSčnih centrov resili problem poljubne težavnostne . stopnje. Za reševanje problemov bi .sistem razpolagal z novim tipom podatkovne, oz. že ird'orniacijsku baze, ki se imenuje baza znanja, oz. relacijska baza znanj na določenem področju dela, igre, dejavnosti. ~ ■ Peta gcneradja uvaja dejansko p^ • jem infonnacijske in ne le podatkovne oaze: Podatelc povzroči pri določenih pogcjih nastanek informacije o ieih podatku, njepvili rclacij z drugiihl podatki in Informacijanii v odvisnosti od danega problema. Informacija ó ' podatku zajiiine tako njegov-pomen v odvisnosti z drugirni poilatki in podat- . kovniitu povezavami, liifonnacija postane tako nadgradnja podatka,'tazii: meti pa jo moramo tudi dinamično,. špremeiiijivo v odvisnosti s problemi,. Id so v ospredju trenutne problemske pozornosti. Uporaba sistemov pete generac'je bo povzročilazaradinjiliovlh izrednih zmogljivosti bistvene' spreniembrj v organiziranosti, kakovosti, raznc.vrst-nosti, procesnosti, zapletenosti m zanesljivosti industrijske velikorerijske . in maloserijske proizvodnje. Račimal-niSko avlomatižirana in robotiziraria proizvodnja bo prevzela večino fizičnega dela i« enoličiiili ponavljajočih opravil že pred nasiopoin pete genera-' cije, s pelo generacijo pa se bo začela prava tclinoloSka in oiganlzacijska re- ■ Vüluctja pruizvodnili procesov (Industiijskih, načrtovanih, razvojnih, . individualnih). V ncposrednjj piuiz-vodiiji bo človekova prisotiiost mini- mabia in se bo postopno Se zmanjSeva- ' la. Kljub vizijam revolucionarnega nas-'topa pete računalniške generacije bo razvoj računalniške tehnologije zve-' ■ zen, postqien in v mejah obstoječe tehnološke revolucije, temelječ na . zmogljivostih današnje in jutrišnje elektronske in informacijske (pto- . giraniske)' tehnologije. Vendar bo ta razvoj znatno pospešen, hitrejši ih bo zahteval večjo hitrost in inteligenco ' prilagajanja. Ali bomo ob našem sedanjem in '. ' jutriinjein po.speJenein račimaliiiikein ' razvoju.čez nekaj let >cndurk! nepri- | jetno presenečeni? Zeleznikar: Pojav pete računal' niške generacije nas bo na določen način vrgel iz utečenih (tradicional-. rlili) delovnih kolesnic, vendar ne nujno na neprijeten način. Potrebna bo ' . natančnejša strategija hitrega prilagajanja (kopinmja, prevzemanja, osvaja- , iija, prisvajanja, sprejemanja novih tehnologij in riietodologij), seveda z • učenjem lil poučevanjem bistvenih tehnoloških, programirnih in organizacijskih dejavnosti.. Ijihko pa bi čez sedem, ali osem . let postalo boleče ludi spoznanje, da v' tem pripravljalnem obdobju nismo ustrezno ukrepali, da problema pete računalniške generacije ni>.Tio postavi-, li v ospredje naše .gospodarske, družbene, politične, obveščevalne in planske pozornosti. Razvoj in telmologija. pele generacije dejansko' zahtevata plairiran gospodarski prislop zaradi ustrezne koncentracije nalog, kadrov,.sredstev in organizacije, tudi pri skromnih človeš-kili in materialnih virih. Zaradi določenih pojnislckov naSč ' današnje tehnološke in gospodarske naravnanosti bomo prejko-slei morali korigirati obstoječe phuiske dokumente', še posebej tiste, ki .segajo v nasicd- '. nje desetletje ali pa celo doleta 2000.; Toda kaj laliko nureilimu? .Zeleznikar: Naredimo laliko veliko več, kot smo v tem trenutku pripravljeni storiti. Najprej je potrebna tekmovalna priprava in sicer telinoloSka, organizacijska, marketinška, izobraže- -valna. Ce se sprijaznimo z Izhodiščem, ..da jc telinplosko tekmovanje zdravo, poživljajoče, zanimivo in se vključujemo' v tekmovalni sisioin trendov (teh. noloških tokov) in strategij, za kateri- • mi stojijo naSi ljudje/močno usposobljene. in zdržljive strokovne' skupine i ■ različnih področij dela in družbeni, gospodarski in izobraževalni dejavniki , itot celota, potem v bistvu že začenjamo reševati probleme usmerjanja v' nove možnosti dela in bivanja. Tako začenjamo bolje izkorjščaU ' tudi umske sposobnosti delavcev, dvi- ' gujeino tijiliovo delovno pripravljenost ' ui zadovoljstvo. Zlugoma prihajajo v . : ospredje dejavniki, kot so delovna-spontanost, neprisUjenost in naposled sposobnost (zrelost, obvladovanje nas . •samih). Za uspešno tehnološko tekmovanje , m določene sposobnostne stc^inje nujno pötrebne, sposobnost se mora Izražati na najzalitevnejšili delovnih . področjih. Tekmovalnost lahko marši- ' kje, olajša jlelovne napote zaradi pri-šotiiosti motlvacijskili dejavnikov, äelovne smiselnosti in seveda tržne, razvojno in proizvodne uspeSnosIi. ■ Nekdo je pripomnil: „l^isUnio občas- { I no tudi sposobnim njiliovili pet minut". Kadar govorimo o peti račuiiahiiSki . generaciji, menda ne inuiemo mimo Japoncev? 2elcznikar: Japonci so de facto osredotočili svoje napore v osvbjitcv cilja, za katerega še sami ne vedo, kako ga bodo osvojUi. Japonci so v zad- 1 njih 25 letih dokazali, da so izredno hitro prilagodljiv narod, z veliko mero > «trajnosti, pridnosti in teluioloSke 'nadorjeiiosti, V tej smeri so'iiarčdiirTrV iloscglr več km druga, bolj razvita Icii-iiološka okolja. Japonsko načelo kopičenju spnsobtiiisli, spoiobnosine kud. rovskc in inaleriuliie oigunizacije in 1 je princip pn-m smč^lu, saj se. lajvečji razvojni lOgoče ob pičlih doseguti zadovo usklajenosti je na|H)sled rodilo učin-' : kovito in uspešno delujočo industrijo, ki je v lačunalnistvu dosegla svoj vrhunec. > Japonsko tveganje v osvajiuiju pete ' računahuške. generacije se jc tako spremenilo v motivacijo .za njiliovo ceiolno industrijo (socioekonomski kompick.s). Japonski primer tudi kaže, kako je mogoče u.sklujevaU iniciese '.'velikih gospoduiskih kompleksov, kako je mogoče dosegati delitev nalog s skupnimi cilji in kako je mogoče koii-cenltirali kapitalne vire bank, državne ■ tiprave in podjetij. Pela. račimulniška generacija je za Jajxince dolgoročni gospodarski načrl, ki ga v poslednjem času kopirajo tudi drugi (Američani, Britanci, Francozi, Nemci). ' Kaj po vsem tem ostaja niun? Zeleznikur; Usmeritev kadrovskih virov, nastajanja znanja in razvijimja telurološkili sposobnosti naj bi bila vzpodbujana načrino (plansko), indi- ■ vidualiio in organizacijsko. Delitev dela med domačimi in tujimi oigaiil-. zadjai.ni je nujna, nuje ■ lagaj;uija v teluioKiSkei prav z n im dosegajo učinki, .e tako je ni malerialiiili sredstvih Ijivc rezultate. Siiiiio kuJri nisodovolj, potrebni so sposobni kadri, ki im.ijo zadostno pera'pcijo (občutljivost za' spremembe v tehnološkem okolju), zadosliio izkušenost (pridobljeno delovno sposobnost), stalen iii sarnošlo-jen dolok znaiija (iiidividualiio prid» biv.wje znanja z delom in" obveščenostjo) in delovno ncukloiiljivost (sanioz.avcst, napredujočo morulo). Okoli spošobnostriih kadrovskih jeder naj bi se gradile in razširjale delovne skupine in zapleteni proizvajalni procesi. Vse tu je laže povedati, kol uresničiti, tudi zaradi sedruijega kadrovskega stanja. Imeli smo in .še imamo nekaj ključnih, zgre.Senili inveslicij v razvnji . proizvodnjo, marketing in celo v orga-niiucijsko strukturo. Kako krhko pla-iUnimo ob pomanjkunju vizije svetovnega telmološkegu raztoja, oz. kako ' bi prišli do svoje, naprednejše razne vizije? Zeleziiikar: Tisti, ki odločajo (vodilni delavci, strokovnjaki), navadno nimajo strokovne in poglobljene ledstave o svetovnem razvoju na svo-_ m področju dela, saj take predstava v naSerii dosedanjem prostoru niti nišo bile potrebne. Gospodarske učinke sriio laliko dosegali z negospodarskim orodjem,'z zadolževanjem, prelaganjem bremen,« socializacijo na različnili ravniiiuli. ežilv 111 upa dr naciu svojo fr . Ijajo ve, bo zavc.vl 1) poiri .■dovanju dovolj a lega descilclju, :hni oko: uniaijava nanosi in ženek;y. h lega se lološkega i šde do ko se bodo raz-da büiiro o polir uli (•/. ii^ünuz irikcijo Zuiai :br U'hi -ikrcpil iskali Mischio o , stendi upra kudrov) pa 1 ■ raziskave, .ki času ire opra nur: .kol -moro lako zaostrile izhod v sili. Vizija našega lelinoložkoga, oz. Judi tučunalniškega napredka šo bo tuko izoblikovala šole pioti koncu tegu dcsoilolja, ko bomo brezkompromisno ukinili življenje neuspešnih,-polovičnih; nezrelih, nedoniišljenili in nialcrialrro ne dovolj podprtih današnjih usmcrijev. Medtem, pa moramo zlasti nu sliokovnem podiočju nare-' diti vse, da bodo dotekalo kvalitetne in za nas bistvene informacije iz sveta tehnološko razvitili.okolij. Kakšna naj bi bila vloga politike, k(i je peta računalniška gcnerucija ie na vidiku ž vsemi posledicinni njene uporabe? ■ Zcjezhikar; Razvile kapitallsiiči»-drJavč so začele uvujuti na področju. tehnološkoga osvajanja pete računal-iiiške generacije državno planiranje razvoja raziskav, proizvodnje in sredstev za plansko realizacijo. Japonci so bill v lem ptvl in «o : polcazali, s kakäno organiiacijo Je to mogoče (v olivifu iiàiiisirslvii za mednarodno ligovlno in incJusliijo -MITI). Tudi Velika Uritanija jo poslavila svoj državni plan skozi poliiifnu ' pobudo. Evropska gospodarska skupnost je oblikovala skuixjn projekt (ESPRIT) s finančno podiMro skupnosti in velikili podjetij. ZDA so koncentrirale sred-jtva za izvajanje prqektov pete raOu-naliiiSke generacijo .jiod, okriljem ob- ' • rambncga minislistva. Zahodna Nemčija poslavlja pr.ivkar svoj pellelnl naSrt razvraa in proizvodnje .novih raSuiialniSkili sistemov. V Franciji je iitcjvejicija 23 osvajanje novih lelino logIJ pete generacije drtavna In diul-bena, posega pa zlasti tudi na podroi-je Izobraževanja. Pri nas dosM nismo zasledili drul-bene, podjetniSce, Izobraževalne, ali ' podobne pobude za spremljanje tigih In načrtovanje naSih možnosti osvajanj. pele računalniške generaciie. Obstajajo pa individualne pobude strokovnjakov, ki opozarjajo na sprejetje določenih planskih in organizatijskih ukrepov. Bržkone pa je politična aktivnost za določene premike v smeri hitre]-lega računalniškega napredovanja pri nas tele na svojem začetku. Borit Ceriti BIT Revija za vse, ki gredo s časom, v naslednji številki prinaša tudi sestavke: Vojna med računalniki Računalniki in državna uprava Ali ao dornači računalniki dražji od uvoženih? Javno omrežje za prenos podatkov in teleinaiske storitve v Sloveniji Najnovejša tabela mikroračunalnikov Najnovejša tabela programov za poslovne računalnike Najhiiliša igra Dnevnikov BIT Sk)venska računalniška revija l/d.M.i: lO/.i) l' i' l.|uhl|.iinki dni.-inili Kiipil.ir|>.'V^i 2. liIlMIl l.juhliuna. P P -t- ('>l..vni circUiiik Onuvnikj: Mil.in .M>;di'n tKIjUivorni urednik: Kdo (ihivii' l)iioki,>r TOZU; UrajiK Dik-fic V. d, jilavni.'«;) urednika re\i|0 |)ne\nikipv HIT; J.ve Vdliui V u'iiuivkii zasnovi) rcvi|e pripravila; Marjan Krisper in J.i/e Villau Uredniški ndh.ir; Uih: Villan, .Marian Knspcr m /Vk-nka Vili.m 'IchiiK^iii urednik: Jane/ r)L>niniiiskii slu/hii ici. Hirti /a ckiMuiinskit propagando id. .1|7-'1.<.1 KL'klam:u-iK: tel. Mf<-141 /ir.i t:n!un pri SIJK. P,>dni/iiica I.Hil'l|.ina. šl. Sllini|.(i(r>..tl.ši.'< t )pruNčcno nrtimclnciiii k.i Rubrike: H Novosli AmsirailCPC464 10 Programi Prvi koraki TATJANA ZRIMCC 14 Pred-Slavljamo Sinclair ZX Spctirum TA I JANA ZRIMLf 211 Kaj dela Ivan llraiko 22 Slovarček računalniških pojmov Računalniki in... ... psihuiiit^i (dr. Dtenk) l'i Vesti Posebni prispevki: "i K.ičuiialniki prihaiajii! tìui'ori MÌm» Je/ernik 4 Telcmaiika Jl-.KMi) MKANT fi Lvropa v paničnem strahu pred konkurenco Govori Tomai Kalin 12 ViJci) igre osvajajo .svel ■ MAri:\>. KMlil' 17 Po.iclmo pismi) IK Mi in svci MARJAN KRISIT.R 24 Iskra Delia med /ahiiiliim in V/hiiUom (iovon A. P. Zeic/.nikar 27 C'e /aiisiaja inlorniacijslka ichnoliigija. zaMaj.i(<> luili ilrujic liovnri Srečko Kiismina ELECTRONIC SHOP - TRIESTE VIA F. SEVERO 22 - 34133 TRIESTE - TEL. 040/62321 Po9oJi dobave In prodaJei - W prodajalni Electronic Shop v Trotu lahko kunuJete za dlnarJe in za drusa defvizna Plačilna sredstva. Prodajalna ima na zaloai več kot 7000 različnih Proizvodov. - Će lelite nabaviti ußtrezei') ntaterialv piéit& na sornJi naslov ali vpra&aJte po telefonu. Electronic Shop vam bo poslal račun, ki sa lahko Plačate v vaäi banki. Plačilo v italijanskih lirah morate nakazati na sornJi naslov prek banke Institute bancario Italiano, yia S. Caterina 4. Trieste. - l'iobava materiala In komponent se Izvi'fti v IS dneh od dneva spreJema vplačila. - Minimalno vplačilo znaža ISOOOO lir. M ceno se vračunata Pakiranje in PoAtnina franko kupec. - V tabeli sPodaJ so navedene cene. ki velJaJu do 30. 9. 19Ö4, - Prodajalna Je odprta z izJemo ponedeljka od 08.30 do 12.30 in pd 15.00 do 19.00h. 4000 900 4086 I.6ÜÜ 4573 5.500 4001 'JÜO 4089 2.41X1 4582 1.70« 4002 900 40')3 1.200 4583 3.71X1 40Ü6 1.700 4094 2.100 4584 1.91X) 4007 4008 900 40')S 3.000 4585 2.100 1.700 4096 3.200 4599 4.900 . 40Ü4 1.3Ü0 4097 4.0tX) 4010 1.200 4098 I.7Ü0 4011 900 409') 2.000 74IX) 7401 900 4012 900 40014 1.400 4013 1.000 40085 2.500 91X1 4014 1.ÄOO 400'J8 1.30« 7402 91H) 401.1 1.400 40100 2.')0« 7403 900 4016 1.000 40101 2,000 7405 •JOO 4017 I..500 40IO2 4,000 7406 2.800 ' 4ÜI8 1.600 4(11(1.3 3,400 7407 2,WiO 40I'J 1.01«) 40104 2.500 7408 'X>l 4020 1,700 401 OS 4,IXX) 7410 1,|XXI 4021 1.700 40106 l.2(X) 7412 9«) 4U22 1.800 40107 1,200 7413 mi 4023 90« 40108 6,500 7414 1,21X) 4024 1.500 4UI0') l,8iU 7416 2 8lX) 4025 900 40114 6.01X1 7417 1,250 •102Ó 2.'J00 40I6U 1.9.50 7420 'JIIO 4027 l.OOO 40161 1.9.50 7421 9,50 40211 I.41M 40162 1.950 7425 L'alvi 4U2'J 1.700 401(1.3 l.'ISO 7426 1,1» X) 4U.I0 1.000 40174 l,6(«l 7-127 1.000 4031 3.51«) 40181 4,000 74 3U 1,200 ■ 4032 2.200 40182 1,«I0 7432 Lomi •llH.l 2.m 40192 2.001) 744U 1.1X« 4034 4.800 4ÜPJ3 2,01 X) 7442 2,(1 str. <&S. Ćernivec B.« Nadzorni prosram za multiproara-mirande pri sprotnem vodenju procesov, št. 2f str. 46. D3ordJević S.J.< Alsebra ključeva. St. 4' str. 75. ntonova-Jerman B.» J.Žerovnik« Uporaba proaram-skih srafov pri usotavljanJu vzporednosti v ra-ćunalniSkih alaoritmih I. St. 2r str. 20. Džonova-Jerman B.. J.ierovnikt Uporaba proaram-skih arafov »ri uaotavljandu vzporednosti v računalniških alaoritmih II, St. str. 53. Erjavec T.« Većopravilna tehnika v EDX okolJu v računalniku IBH Bistem/l, St. 2, str. 9. Erjavec t,« Communications Facilita. St. 2» str. 52. Faleokini B.< Razvoj informacijske industrije JugoslaviJe do leta 2000. št, 1- str. 3. Faleskini R.o Razvod računalništva in usmerjeno izobraževanje. St. 3. str. 3, Qama M., I.Bratko. y.BataaelJr R.Reinhardt, H.Martinecr M.SpbsbI, P.Tanciso Programski jezik Pascal I. St, I, str. 22. ßama M,, I.Bratkor W.Bataaeljr R.Reinhardt » M.Martinecr M.Špegel, P.Tancia» Proaramski jezik Pascal II. St. 3r str. 43. Görkes M.« Metodologija cinovanJa izvr&ilneaa procesorja za 32-bitni raCunalniäki sistem. St. I, str. 14. Jefić li.«.'.« Računarski sistem Delta 800. St. 2, Btr.3. Jenko M..B.tiBlak« MikroraCunalni&ki sistem za nadzor in vodenje dnevnih koPov. Òt. 1» str. 46. Jocković M.B.t Estimation of the Averaae Transfer Time of RandomltJ Chosen Blocks from a Disc Cylinder. St. 1. str. 41. Kastelic B.» R.Murnt D.PeCeke Tetitiranje ROM PomnilnHkov. St. 3. str. 49, Knop J.'U,, K.'Bzamanski. N.Trinaj3ti(ft future Developments of Computer Architecture. St. 1, str. 48. Koaov&ek F.» J.H4tjat> A.Trebar« Centralna procesna enota Helfta 16/Eiit-Slice. St. 2> str. 16. Kokol p., V.Žumeri Generiranje LALR tabel. St. 4f str. 20. Kukrika M.« Pristup dinamifikom razporedJivanJu zadataka u prstenastoj mreii računal^. Si. 2> str. 24." Kukrika M.« Pristup orsaniziranju baze podataka u razpodijeljenim sistemima, ét. 2> str. 60. Kukrika M.« Pristup kreiranju raspopedjivaća zadataka u distribuiranom ixvrönom sistemom sa radom u stvarnom vremenu, èt, 3r str. 38. Marić I.« Alsorithma for Fast B/D Conversion of Integers. St. 3» str. 21. Marković R.» Interaktivni generator proarama -Sirup. St. 3, str. 27. Meéko I.» RaCunalniSki proarami za Poslovno Planiranje. St. 2. str, 66. Mihovilović B.. P.Kolbezen« Paralelno izvajanje opravil v večprocesorskem sistemu I. St. 3» str. 31. Mihovilović B.> P.Kolbezen« Paralelno izvajanje opravil v veCprocesorskem sistemu II. St. 3> str. 35. Miletić M.M.» PMP-11, 16-bitni mikroraCunar kompatibilan sa PDP-11 miniračunarima. St. 4r str. 17. Mozetič I.« Principi kvalitetnega modeliranja. St. 4. str. 79. Murn R., D.Peček, B.Kastelic« Testiranje CMOS kombinacijskih vezld. St. 2, str. 42. Murn R., 8.Preé»rn. D.Peček, B.Kastelic« Odkrivanje napak z Beraerovim in podobnimi kodi I. St. 4r str. 68. H.Neilč«' Primjer izvedbe izvränoa sistema za Mikroračunala u realnom vremenu. St. 4» str. 3. PreSern 8.« Optična kontrola plofič tiskaneaa vezJa. St, 4f str. SI. Stojmenovlč 1., U.StoJkovič, L.Jerlnič, J.Mir-čevski« O implementaciji prevodioca Llspkit LISP-jezika na jezik 6ECD maäine izvröenoj na Fortran jeziku. St. 1. str. 57, Tuta M.» Nova drulina mikroprocesorjev Z800. St. 4, str. 43. Vukadin D*« Priključitev pisalnesa stroja na mikroračunalnik. St. 4, str. 39. Uechtersbach Đ.« Statistično multipleksiranje. St. 4, str. 13. Železnikar A.P.« Proizvodnja mikroračunalnlSke-aa sistema Partner. St. 1, str. 10. Železnikar A.P.« Alaol 60 za sistem CP/M 11. St. 1, str. 27. Železnikar A.P.« Alaol 60 za sistem CP/M III. St. 2, str. 31. Železnikar A.P.« Proarami za pisanje prosramov I. St. 3, utr. :>. J (i i t^zii i Kor A.P.! F'rosrxniii'dnje i zbirkami v je- ziku CbablL il. alf. '-//. Železnikar A.P.« Uporaba jezika Ada v Številskih izračunih. St. 4, str. 26. Železnikar A.P.« Ibmovski osebni računalnik Petra I. St. 4, str. 55. SISTEMI ZA ENERGETIKO Ljubljana, Tržaška Č. 2 ■ ; DALJINSKO IN LOKALNO PROCESNO VODENJE Z RAČUNALNIKI MINIRAČUNALNIKI IN MIKRORAČUNALNIKI V NAŠIH DOMAČIH SISTEMIH DIPS-11 IN DIPS-85 RAZISKAVE, RAZVOJ, PROIZVODNJA, INSTALACIJA,VZDRŽEVANJE SPECIALISTIČNO ŠOLANJE KUPČEVIH STROKOVNJAKOV ELEKTROENERGETIKA, PLINOVODI, NAFTOVODI, VODOVODI, INDUSTRIJA SODOBNA TEHNOLOGIJA - NAŠ TEMELJ PRI RAZVOJNEM DELU RAČUNALNIKI - NAŠI SOPOTNIKI NA POTI NAPREDKA OBIŠČITE NAS IN SE PREPRIČAJTE Že veliko let se ukvarjamo z raziskavami, razvojem in proizvodnjo sistemov za daljinsko in lokalno procesno vodenje. Temeljno vodilo našega delovanja na tem področju je slediti napredku v svetu in ga presajati na naša domača tla. Vedno smo zavračali nosilno licenčno povezovanje s tujimi firmami povsod tam, kjer smo jasno videli, da vodi v dolgoročno odvisnost in tehnično nazadovanje. Verjeli pa smo v moč lastnega marljivega dela in v ustvarjalnost naših delavcev ter z vstrajnim delom dosegli uspehe, katere nam lahko zavidajo neprimerno večji in bogatejši tekmeci. Prav zaradi lastne poti in lastnega znanja smo s svojim razvojnim delom ves čas uspeli-Slediti najnovejšim tehnološkim dosežkom v svetu. V praktično življenje (računalniški nadzor v elektroenergetiki) smo vpeljali najsodobnejše mikroračunalnike. . Tako smo od prvih računalniških korakov pred več kot petnajstimi leti dospeli do sedanjih kompleksnih sistemov za procesno vodenje.