64 informatica i INTERAKTIVNI GENERATOR PROGRAMOV « SIRUP omogoča programiranje brez poznavanja programskih jezikov. SIRUP je niz interaktivnih programov za splošno uporabo. Njegov osnovni cilj je, da pospeši in olajša pripravo in vzdrževanje uporabniškifi podatkov. SIRUP zmanjšuje čas, potreben za izdelavo aplikacij, angažiranja računalnikov in programerjev, za 30-90%. SIRUP deluje interaktivno s pomočjo parametrov, katere uporabnik sam določa in izbira. SIRUP omogoča hitre spremembe in dopolnitve programov.. ■ Iskra Delta Iskra Delta proizvodnja računalniških sistemov In Inženiring, p.o. 61000 Ljubljana, Pamiova41 telefon: (061) 312-988 telex: 31366 YU DELTA d časopis izdaja Slovensko druStvo INFORMATIKA, 61000 Ljubljana, Pamova 41, Jugoslavija UEEDNISKI ODBORs' T, Aleksid, Beograd; D, Bltrakov, Skopje; P. Dragojlovlć, Rijeka; S. Ljubljana; B. Horvat, Maribor; A. Handäid, Sarajevo; S. Hihalld, Varaždin; S. Turk, Zagreb GLAVNI IH ODGOVORNI UREDNIK: Anton P. Železnikar TEHNIČNI ODBOR: V, Batagelj, D.Vitas — programiranje 1. Bratko — umetna inteligenca D. ćeđez-Kecmanoviđ — Informacijski sistemi M. Exel — operacijski sistemi B. Dionova-Jerman-Blaiič — srečanja L. Lenart — procesna informatika D. Hovak — mikroračunalniki Neda Papid.— pomočnik glavnega urednika L. Pipan — terminologija V. RajkoviS — vzgoja in izobraževanje , M. špegel, M. Vukobratović — robotika P. Tancig — računalništvo v humanističnih in družbenih 'vedah Š, Turk — materialna oprema. A. Gorup — urednik v SOZD Gorenje TEHNIČNI UREDNIK: Rudolf Murn ZALOŽNIŠKI SVETs T. Banovec, Zavod SR Slovenije za statistiko, Vožarski pot 12, Ljubljana A. Jerman-BlaSič, DO Iskra Delta, Pantiova 4i, Ljubljana , B. Klemenfiič, Iskra Telematika, Kranj S, Saksida, Institut za sociologijo Univerze Edvarda Kardelja, Ljubljana J. Vlrant, Fakulteta za elektrotehniko, TrSa' ka 25, Ljubljana UREDNIŠTVO. IN UPRAVA: Informatica, Parmova 41, eiOOO Ljubljana; telefon (061) 312-986; teleks 31366 YÜ Delta LETNA NAROČNINA za delovne organizacije znafia 1900 din, za redne člane 490 din, za študente . 190 din; posamezna Številka S90 din. , ŽIRO RAČUN: 50101-678-51041 • Pri financiranju časopisa sodeluje Raziskovalna skupnost Slovenije, Na podlagi mnenja Republiškega sekretariata za prosveto. in kulturo St. 4210-44/79, z dne 1.2.1979, je ča sopìs oproä Čen . teme1j nega davka od prometa proizvodov TISK: Tiskarna Kresija, Ljubljana GRAFIČNA OPREMA.s Basto Kirn časopis za tehnologijo računalništva in probleme informatike Časopis za računarsku tehnologiju i probleme informatike spisani e za tehnologija na smetanjeto i problemi od oblasta na informati kata yu issn 0350-5596 letnik 8,1984-St. 1 VSEBINA R.Faleskinì 3 A .P.Železnlkar 10 M. Gerkeš 14 Razvoj informacijske industrije Jugoslavije do leta 2C00 Proizvcidnja mikroracunalniškega sistema Partner Metodologija snovanja izvršilnega procesorja za 32-bitni računalniški sistem M. Gams in drugi A .P.Železnikar 27 M.B.Joeković 41 22 Programski jezik Pascal 1 M. Jenko B. Delak J.V. Knop K. Szymanski N. Trlnajstić I.'StoJmenović V. Stojković L. Jerinić J. Mirčevski Z. Bekić 46 48 57 65 71 76 Algol 6D za sistem CP/M 11 Estimation of the Average Trans-fef Time of Randomly Chosen Blocks from a Disc Cylinder MikroraŽimalniški sistem za nadzor in vodenje dnevnih kopov Future Developments in Computer Architecture O implementaciji prevodioca Llpskit LISP-jezika na jezik SECD mastne izvršenoj na Fortran jeziku Anàliza multiprocesorskih sistema s lokalnom cache memorijom Uporabni programi Novice in zanimivosti informatic; YOURNAL OF COMPUTING AND INFORMATICS Published by INFORMATIKA, Slovene Society for Informatics, Parmova 41, 6100Ö Ljubljana, Yugoslavia EDITORIAL BOARD: T. Aleksić, BeogradJ D. Bitrakov, Skopje; P, Dragojlović. Rijeka} S. Hođžar, Ljubljana; B. Horvat, Maribor; A. Mandžić, Sarajevo; S. Mihàlid, Varaždin; S. Turk, Zagreb EDITOR-IN-CHIEF; Anton P. Železnlkar TECHNICAL DEPARTMENTS EDITORS« V. Batagelj, D. Vitas — Programming I. Bratko ~ Artificial Intelligence D. Ćeđez-Kecmanović — Information Systems M. Exel — Operating Systems B, Däonova-Jerman-BlaSiS -- Meetings L. Lenart — Process Informatics D. Novak — Mlorooomputers Neda Papld— Editor's Assistant L, Pipan — Terminology V, Rajkoviö — Education M. Spegel, M. Vukobratovlć — Robotics P. Tancig — Computing in Humanities and Social Sciences S. Turk — Computer Elardware A. Gorup — Editor in S02D Gorenje EXECUTIVE EDITOR: Rudolf Mum \ PUBLISHING COUNCIL: T, Banovec, Zavod SR Slovenije za statistiko, Vožarski pot 12, Ljubljana A, Jerman-BlaSlS, DO Iskra Delta, Parmova 41, Ljubljana .6. KlemenSid, Iskra Telematika, Kranj' S, Saksida, Institut za sociologijo Univerze Edvarda Kardelja, Ljubljana J. Vlrant, Fakulteta za elektrotehniko, Tria- ä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 US2 10 for individuals Opinions expressed in the contributions are not necessarily shared by the Editorial Board PRINTED BY: Tiskarna Kresija, Ljubljana DESIGN: Rasto Kirn YU ISSN 0350-5596 VOLUME 8,1984 - No 1 CONTENTS R. Falesklni A .P.Železnikar M. Gerkeš M. Gams et AU A .P.Želesnikar M.H.Jocković M, Jenko B . Delak J.V. Knop K. Szymanski N. Trlnajstlć I. Stojmenović et All Z. Beklć 3 Development of Yugoslav Information Industry to the Year 2000 10 Production of Microcomputer System Partner 14 Design Metodology for a 32-Bit Execution Processor for a 32-Blt Confiputer System 22 Programming Language Pascal I 27 A CP/M Algol 60 Language 11 41 Estimation of the Average Transfer Time of Randomly Choosen Blocks from a Disc Cylinder 46 A Microcomputer System for Surface Mining Supervteion 48 Future Developments of Computer Architecture 57 An Implementation of LISPKIT Lisp Translator 65 Analysis of Multiprocessors with Private Cache Memories 71 Programming Quickies 76 News RAZVOJ INFORMACIJSKE INDUSTRIJE JUGOSLAVIJE DO LETA 2000 UDK: 681.3(497.1) R.FALESKIN1 DO ISKRA DELTA, UUBLJANA: Članek opisuje nekatere aspekte prihodnjega razvaja Jugoslovarake Informacijske .Industrije. Vsaka razvojna strategija mora upoStevati svetovni rBÜunalniaSrgole je montaini mehanik. V kositrni kopeli obdelane tiskane plošče, ki jih vidimo na sliki, morajo biti še spremenjene, tj. modificirane. Plošča dobi doloCene preveze; ki so posledica razkoraka med načrtom, napako in dokončni zahtevo. Delo JE natančno, terja pa tudi ročno spretnost in osredotočenost. Slika Z. Gora^d Vidic jé Elektrotehnik, je kontrolni iriženir, odogvo— ren za pravilno delovanje modulov na tiskani plošfii. Modul je zapleteno vezje, ki ima ve£ sto elementov (velikih, srednjih in malih integriranih vezij, diod, uporbv, kondenzatorjev, tranzistorjev itd.). Kontrola signalov na osci loskopsken» zaslonu zahteva znanje in osre-dototenost. Slika 3. Marija Bajželj in Marta Grohar sta montažna mehanika. Mikroračunalnik Partner uporablja tudi sodoben pre-klopnièkii , napajalnik , hi je narejen pretežno iz domaći ih sestavnih dšlov (izjetna so polprevodniSki ele-nent i). Slìtia 5. Del razvojne skupine projekta Partner«, ki- je opravila tudi prenos znanja in tehnologije v proizvodnje. Gd leve proti tiesni; Lučka Rinkwitz (tajnica), Marko Kovačević, dipl. ing., mgr. Božo Blatnik, avtor tega prispevka in migr. Drago Novak (vodja razvojnega projekta). Manjkajo: Saä Hadži, dipl. ing., Dušan šalehar, dipl. ing. , Andrej Le-skovar, dipl.ing. (razvoj preklopni äkega nž|-pajalnika) in Bojai^ Dro-bež, dipl. ing.. Slika bernik, prispeva Tùdi Tomaä Pi-elektrotehnik k konöni kcm- troli tiskanih modulov • ' ' ' /-il^ 9. lacielovanje kablov ozii^oma njihovo spajanje s konwittorj i nora biti opravljeno natamene. in zanesljivo: Boris Db lak, elektrotehnik na delovnem mestu. Blika a. Raivoj preklopniškega napajalnika in prenos ustreznega. ziTianja'. v proizvodnjo je .bilo delo ftndreja'Leskovarja, ■ dipl. ing. (näjbiäje osciloskopu).- Reprodukcija, napajalnika je zahtevala vrsto popravkov in prilagajanje domačim elementom, seveda pa tudi posebno znanje nà področju zapletenega vezja napajalnika. Slika 18. Mgr. «iian Mokinda, .dipl,ing., vodja □ bmočne enote Kranj SOR Članek podaja pregled postopkov snovanja, uporabljenih pri izdelavi prototipa 32~bltnega iavršilnega procesorja, ki je sestavni del 32-bitnega računalniškega sistema, ki podpira kompleksno instrukcijsko množico. Izvršilni procesor je po predlaganem postopku v začetku definiran kot univerzalni trioperandni operator, ki ga postopoma razgrajujemo v vedno večje detalje. Vrednosti parametrov tirani posebna pomnilna struktura, ki je dopolnjena z deibvno pomnilno strukturo in omogoča hranjenje vmesnih rezultatov zaradi interpretacije operacij, definiranih z instrukcijsko množico. Zaradi'interpretacije operacij je vpeljana mikroprogramirana krmilna struktura, ki je definirana na podlagi karakterističnih lastnosti tnikroprogfamov. DESIGN METHODOLOGY FOR A 32-HT EXECUTION PBOCESSOR FOR A 32-611 COMPUTER SYSTEM: ArÜcle describes design methods used for a 32-bIt execution processor prototype design. 32-bit execution proccessor is relatively high speed universal operator support for a 32-bit computer system based on a complex instruction set. At the beginning we deflnfe execution processor as a universal three operand operator. With stepwise refinement it ^ then decomposed into lower level parts. In and òutcomming parameter values are written into 1/0 register set which is completed with working register set for holdlt^ partial results, generated with interpreted operations, defined by com||l«x instruction set. Because of operations interpretation microprogrammed control structure is defined based qn the characteristic features of microprogram ms. UVOD! Porazdelitev operacij, pri implementaciji neke računalniške arhitekture, na primerno organizirane'sisteme je os- ■ novna naloga vsakega snovanja. V preprostejših primerih' so sheme, ki definirajo povezavo takih sistemov v celoto enostavne, orgEinizacija sistemov pa je preprosta. Kadar pa je potrebno za implementacijo izdelati modele kompleksnih arhitektur, pa je takšna naloga znatno težavnej-sa. Pogosto imajo dominanten vpUv na organizacijo'takega modela zahteve po performansàh. V našem primeru smo izdelali model organizacije Izvr^ silnega procesorja, ki izvaja operacije določene s kompleksno instrukcijsko množico VAX arhitekture. Globalni model sistema je namreč takšen, da predvideva delitev operacij na instrukcijski in izvršilni del. Pri tem ima in-strukcijski del sistema nalogo strežbe izvršilnemu procesorju, ki izvaja zahtevane operacije. Osnovna naloga in-strukcijskega procesorja (strežba) definira lastnost in-strukcijskega dela, ki Je vhodno-lzhodno intenziven. Medtem pa je izvršilni del (izvajanje operacij) operacijsko intenziven. V nadaljevanju podajamo potek snovanja organizacije izvršilnega procesorja. 1. IZHODIŠČA ZA DEFINIRANJE ORGANIZACIJE IZVRŠILNEGA PROCESORJA Organizacija izvršilnega procesorja je podrejena pospešenemu izvajanju operacij, ki so določene s kompleksna ' instrukcijsko množico. S stališča Instrukcijskega procesorja, je iz'vršilni procesor samo razmeroma zmogljiv operator, ki mu instrukcijski procesor posreduje kodo zahtevane operacije in vre moramo v vsakem koraku iz množice E izbrati ravno tisto operacijo, ki jo zahteva pripadajoči element operacijskega niza, .. Začetni ptribllžek za takšno operacijo selekcije podaja slika 1.3. Slika 1.3: Začetni približek k selekciji operacij iz E Če posameznim elementom množice G priredimo selekcijske kode selj lal,2,...,ni lahko zapišemo tudi začetno krmilno enačbo .selekcijske operacije Izbrana operacija = seil AeijVsel^Ae^V,... kjer velja: i e {l, 2,... ,m} , j £ U. 2,...tmi , (VlV j) — seljAsel. . Za Izpolnjevanje performančnlh zahtev takega operatorja, je potrebno gruplr^Je operacij iz E v tri osnovne skupine; osnovne aritmetične in logične operacije; operacije pomika, rotacije,, masklranja In ekstrakcije; operacije množenja. Selé tako lahko izpolnimo časovne zahteve, saj zahteva vsc^a skupina operacij specifično organizacijo pripadajočega operatorja. Sedaj velja: E = rot U mul U alu kjer je: rot - skupina operacij pomika; rotacije ... mul - skupina operacij množenja alu - skupina osnovtUh aritmetičnih iri logičnih operacij. Ker se lahko v sistemski časovni enoti izvede naenkrat : samo ena operacija iz izbrane skupine operacij lahko model krmiljenja že .nekoliko dopolnimo po sliki 1,.4. Oznake na sliki pomenijo; {r^ |i= I, 2,.....oi =rof (.inj^l k = 1,2...... J = mul (a, I 1 = 1,2,...,p) = alu. ie ' Slika 1.4; Podrobnejša krmilna shema za Izbira operacije Glede na'sliko 1.4 lahko prilagodimo tudi krmilno enačbo, saj smo vpeljali dva nivoja selekcije. izbrana skupina operacij =.ael 1, sk.Arot V Vsel 2. sk. AmulVsel. 3.ek.Aalu £el i. ak. - izbira skupine operacij Ì2sbrana operacija sk. a sel lAr^Vsel .... ...VseioAr^ izbrana operacija 2. ak. = sel 1 Ani^Vsel 2Am2V ... v + t sel mul alu ■ rot mlkroinstrukcija izbrana operacija 3. sk. ... Vsel sel lAa^Vsel 2Aa2V ...VselpAa V celoti pa velja : izbrana operacija = sel 1. sk, A(sell Ar^V ... ...VseloAr ) o sel 2.sk.A(sel I ••Vsel qAm^) sel 3.sk.A(seUAajV...VselpAap) Omenimo, da lahko takšno enačbo realiziramo z bralnimi pomnilniki. Tako definirana krmilna enačba ima tudi zanimivo lastnost s stališča mikroprogramske realizacije. V mikroinstrukcijo lahko namreč vpeljemo vertikalno funkcionalnost polj po sliki 1.5. S tem smo tudi utemeljili enakost selekcijskih kod selj v operacijskih skupinah alu, mul, rot. Čeprav razgradnja modela s tem še ni zaključena, smo Slika l.S; Zgradba polja mikrolnstrukcije osnovne karakteristike snovanja univerzalnega operatorja že zajeli. 2. DEFINICIJA INTERNE POMNILNE STRUKTURE IZVRŠILNEGA PROCESORJA Za izpeljavo interne pomnilne strukture izvršilnega procesorja vzamemo model izvršilnega procesorja, ki ga podaja slika 2.1. Pomen oznak Je: M, R - pomnilna struktura v katero vpisuje operande instrukcijski procesor W - pomnilna struktura v katero vpisuje rezultate Izvršilni procesor Čeprav je shema pomnilne strukture na videz nepregledna, laliko krmilni sistem zelo Jasno definiramo. Triope-randni tip operacij namreč zahteva v enem strojnem ciklu tri adrese operandov in sicer v začetku strojnega cikla čitanje do dveh izvornih operandov in ob koncu strojnega cikla destinacijsko adreso rezultata. Tako lahko pomnilni strukturi priredimo trladresni pomnilnik iz katerega lahko hkrati beremo do dva operanda, vanj pa vpišemo en operand. Operacije pomnilne strukture defi- shemo interne pomnilne strukture. Krmilni enačbi A. in D strani se glasita; Cfieracija A Slika 2,1: Organizacija izvršilnega procesorja niraiTio takole; read 'A, read B read A = H ^ A read B = R : AB 0 write B = • tJ . ■ Ker se Čitanje in vpis časovno ne prekrivata, lahko preko adresne strukture B krmilimo čitanje in vpis operacij . kar nekoliko poenostavi strukturo pomnilnika. Pomnilno strukturo lahko tedaj ponazorimo kot n zaporednih lokacij, določenih z adresami. Nad vsako lokacijo laliko iavedemo operacijo čitanja ali vpisa. Zgoraj delir niramo množico operacij nad lokacijami .pomnilnika označimo s Po; Slika 2.2 podaja tedaj predlagano krmilno sel lAR.Vsel 2AR.V ...Vsel nAß. A A A R A (sel IV sel 2V ...Vsel n) A Slika 2.2 t Krmilna struktura pomnilnika Operacija B = sel 1 A(RgV Wg)V sel 2 ACR^V Wg)V ... .,.VselnA(RgVWg) = A(sei iVsel 2V'... Vseln). Ö B Ker imamo opravka s tremi strukturami M, R, tmp, W definiramo nad vsako strukturo nas^dnje operacije: Da preprečimo likraten vpis in čitanje postavimo t WE-odobreno čitanje, WE - odobren vpis. Sedaj lahko krmilni enačbi zapišemo določneje; operacija A = WEAsel M,R^ A(sellVsel2V ... Vsel p) V WEAsel Imp^ACsellVseiaV... Vsel q) operacija B = WEAsel M, fi^ A(sell VseiaV .. ■ Vsel p) VWEAsel tmp„Adprogramov. Operacije v zankah so sicer v našem primeru manj pogoste, vendar se zaradi ča- 18 Slika 2.31 Krmilna struktura pomnil^ka Izvršilnega procesorja izhod A Slika 2.4: Organlsaclja interne pomnilne strukture izvršilnega procesorja sovnlh zahtev Izkaže smotrna realizacija zančnega mehanizma, ki omogoča tudi vgnezditeV zanke. Zaradi razvejanosti mikroprogramov tadaj adresa nasled- nja mlkrolnstnikcije v splošnem ni enolično določena. Zato si prizadevamo mikroprogramskl pomnilnik organizirati tako, da bi bilo možno vnaprej prebrati vse mikro-inštrukclje, kt so možne naslednice mikroinstrukcije v izvajanju. Prvi dal naloge torej zahteva, da vsaki mikrolnstrukcijl v izvajanju določimo množico možnih naslednjih mikro-instrukcij. Drugi del naloge pa zahteva, da na podlagi statusov, ki se postavijo med izvajanjem tekoče mikroinstrukcije, izvedemo selekcijo Izbrane mikroinstrukcije iz prebrane množice mlkrolnstrukcij. Takšno nalogo je možno rešiti s primernim asociativnim pomnilnikom. V našem primeru smo ugotovili, da imajo vejitvé na do štiri možne veje mnogo višjo frekvenco, kot vajitve na več kot štiri možne veje. Zato se odločimo, da vejltve na do Štiri možne veje realiziramo s paralelnim branjem Štirih mlkrolnstrukcij, vejitve na več kot štiri veje pa klasično z modificiran jem naslednje adrese mikroinstruk-cije z Ali funkcijo, vendar samo do štiri mikroinstruk-clje natančno. Dokončna selekcija se opravi enako kot v primeru vejitve na eno izmed štirih možnih vej. Izhodiščno krmilno shemo mikroprogramlrane krmilne enote izdaja slika 3.1, Slika 3.11 Izl^Iščnl model mikroprogramlrane krmilne enote Začetna predpostavka je, da je mikroprogramòv toliko, kot je operacij v množici operacij Op. Na podlagi slike 3.1 lahko zapišemo enačbo za izbiro nlkroprogratna glede na zahtevano operacijo Op^. izbirai M aellAM^VselSAMgV ••• sel I AM.V ... Vsel nAM 1 . n Pravila, po katerih t^Če izbira mlkroprogramov za. Izvajanje, so seveda določena na nivoju Instrukcljske množice. Model, s katerim lahko ponazorimo tako operacijo, je pomnilnik, razdeljen.na podmnožice lokacij, kjer je na vsaki podmnožici lokacij zapisan mlkroprogram. Model krmiljenja izbranega mikroprograma Mj (selekcijo mlkrolnstrukcij) lahko ponazorimo po sliki 3.2. Slika 3.2; Izbira mlkrolnstrukcij v mlkropo-ogramu Pravila, po katerih se Izbirajo mlkrolnstrukclje, določimo sami. ■ Krmilna enačba za sliko 3.2 se glasi: izbira m^ = sel 1A ni ^v sel 2 A m^S/ ... sel iAmjV .. .V sel t Am^. Doslej razvit krmilni model mikroprogramske krmilne enote podaja slika 3.3. Za izbiro mlkrolnstrukcij znotraj mikroprograma izberemo princip "next" polja v mikroinstrukcijl. Iz slike 3.3 lahko razberemo zanimivo lastnost takega, načina Izbire naslednje mlkroinstrukcije. Z izbiro mikroprograma M^ omejimo gibanje kazalca, ki izbira mlkrolnstrukclje na razmeroma omejeno področje lokacij mlkroprogramske- ga pomnilnika. Iz tega pa sledi, da je lahko velikost / "next" polja znatno krajša od dolžine celotnega adresnega prostora mikroprogramskega pomnilnika. Pri tem je značilna naslednja lastnost takega pristopa: za izbiro mikroprograma lahko uporabimo identični mehanizem, kot velja za vejltvénl krmilnik na nižjem abstraktnem nivoju (nivo mlkrolnstrukcij v Izbranem mikroprpgramu). Mehanizem razvijemo v pošlo leni obliki. Adreso ponazorimo kot binarni vektor : "n-r n-2....."l' -O' Bazno.adreso, ki je osnova za določitev adrese A zapiše- mo: p O, o.....0> . Itomik na bazno adreso ("neict" polje, vejitev) izrazimo v obliki: PA =<0,0.....O, .....■ Adresa A je sedaj določena z relacijo: A = BA . ALI . PA ° V2''"®'r °.....0> ,.ALI . <0, O, ..., a^j) Alternativni zapis zgornja relacije, ki je primeren za izvedbo v logiki s tremi stanji lahko zapišemo: A = IBA' IPA, kjer je . operacija konkatenacije nizov ..... lPA=mik OH - AU funkcija (izbira ene izmed stirili pomnilnih matrik) : "i - mikroproyramski pomnilniki 2PA = <0, 0,...... 0, a^, Bp) . aol - oi»raclja selekcije - prekrlvalni register Izvedbo tako zasnovane mikroprogramske krmilne enote Op ~ univerzalni operator podaja slika 3.4. V - krmilnik vejitev Slika 3.4: Organizacija mlkroprogramske krmilne enote izvršilnega procesorja Oznake na sliki 3.4 pomenijo: S - aekvencer adrea mlkrolnstrukclj Uazgrafinja mikroprogramske krmilne enote s tem Še nt zaključena, podane pa so osnovne karakteristike za naš primer. ■1. SELlilClOHSKA Ot'EUAClJA Kcalisaclja selekcijske operacije: sel (sel , koda) : seli —- operacija 1 (mlkroprogran) i, mlkroinstnik- ciju i, ...) ael2 — operacija 2 (......) sein —- operacija n (......) izvedemo s jxiinočjo izraza: . izbira = sel I Ani jV sel2 Anri^y ... y sein A tn^^ V zciornjein izrazu je: Vi....."l'"o> binarni vektor, kjor je; {O, 1] . sel. kocin je preslikava definirana takole: sol. koda: sel^ —► , s^. koda; Sj, , kjer je! • . ; s^e io, l} in /^É ^^o. lì . ■ Selekcijsko ko(to pogosto zapišemo kòt logični produkt eie-, men tov s ob zahtevi, da je lahko pravilen en sani produkt v selektorsk i operaciji. " . , Zgled: ■ . Izbiro mikroinstriikcije m^ v inikroproc|ramu M. lavetleino takole: ■ . . ■ , - , , ■ . sel. koda.= ] za irilkroinstrukcijo m^. Za vse ostale inlkroiiiatrukclje iz M^ -^ {m^} ima selekcijska koda vrednost O, Tedaj lahko zapišemo: izbrana ni^ = OArn^vOAm^V ...VlAni.v ...VOAm^^ - izbrana m, =.;lAm, . ' ' izbrana m J ='m J : ■ .■ ~ ' . izbrana rn^ =■ j • ' ' 5. ZAKLJUČEK. Postopek navzdol njega snovanja je ilustriran na primeru implementacije izvršilnega procesorja, ki Izvaja opera- . ci je določene s kompleks no instrukcijsko množico. Za po-v nazoritev rezultatov so uporabljeni usmerjeni grafi in matematična logika. . ' ; ' ■ ; ■ . i ' , " ! ■ Izhodiščni približek je bil, da lahko model procesorja specificiramo s-aelektorsko operacijo, ki ma toliko vej, kot je Instrukcij. Vsaka veja tako re^izira eno izmed operacij specificiranih s kompleksno instrukcijsko mno^ žico. ■ . Zai-adi interpretacije teh operacij z bolj elementartiimi. oiieracijami, smo bili prisiljeni definirati lokalne parametre, katerih vrednosti hrani delovni pomnilnik. Posledica interpretacije je tudi mikroprogramska krmilna enota, ki jé za programerja na nivoju kompleksne instj:::ukcij-ske množice nevidna. Ilustriran postopek snovanja je bil uporabljen pri Izdelavi modela za celotni 32-bItni računalniški sistem , ki izvaja kompleksno Instrukcijsko množico, . .; Osnovna prednost predlaganega postopka snovanja so mnogo krajši časi snovanja, pregledna struktura sistema in , večja zanesljivckst realizacije, saj je nevarnost neodkritih napak mnogo manjša kot pri klasičnih postopkih snovanja, 6. UTEHATUHA 1. M, Gerkeš, M. DruMvec, M. Pernekt ApUkacija bipolarnega mikroprocesorja, poročilo o ddu za leto 1983, raziskovalna naloga št. 03-2570/796783, Visoka tehniška šola, VTO Elektrotehnika, Mal-ibor 1983. . ■ 2, S. P. Kartashev, S. I. Kartashev, eds,: Designing and Programming Modern Computers and Systems, Vol. 1 LSI Modular Computer Systems, Prentice-Hall, Ine,, Englewood Cliffs, N. J., 1982 ,3. J.K,IUffe: Advanced Computer Design, Prentice-Hall International, Inc., London, 1982 programski jezik pascal i UDK: 519.682.8 matja2 gams (1), ivan bratko (2,1), vladimir batagelj (3), robert reinhardi {1), mark m artin ec (1). marjanspegel (u, peter tancig (1) (1) INSTITUT „JOŽEF STEFAN", LJUBLJANA (2) FAKULTETA ZA ELEKTROTEHNIKO. UNIVERZA EDVARDA KARDELJA, LJUBLJANA (3) FAKULTETA ZA NAROSLOVJE IN TEHNOLOGIJO, UNIVERZA EDVARDA KARDELJA, LJUBLJANA ^ ilanku je onisano m»sto orouransltenii jeiilta Pascala ilede na ostale vižje proqran>»ke jezike. Opisani «o znaiUni p retis t avni k 1 oajholi oomerobnih skupin nrooramsk.ih 1e*ikov in posebej alporitmlčni jeriki» kamor uvrSiamo tudi hascal.. Sledi kratek onis tgortovine Pascala in ukljuina [irimerjava z ostalimi jeziki. Skozi celoten «lanek je osnovno merilo enostavnost oz. zapletenost pri orogratil ranj u s staUiča i'leweka - liporaönika, Proqramminq Lanquage Pascol 1 (codiparìsi on with other oroaranminq lanpuaqes). The progradimlng lanatjaqe Pascal is compared to other hioh level nroqramminq languaoas. Prnqrantninq languages are rleviaed into mo»t important qrouas ani) one representative ot each group is very shortly rtescrlbed. Special care is devoted to "alqorithmlc" landuages. Finally some toneluslons are dra-n. Throughout the par-er tne emphasis is ot> the human enqineerint) side. 1 . Uvod Proqramski ieiik Pascal se v svetu iedalie noli uveliavLja* ìeprav ni miljenček nobene velike raiunalniäke firme» tako kot npr. IB» poripira Pl/1. V zadnjih letih pa te v literaturi poleg hval pojavlia pree»i kritik Pascala. Marsikdaj so te kritike unraviiene. Zato le »miselno zbrati te kritike In jih objektivno oceniti /25/. Foleg teh poaosto drobni»karskih kritik pa je notrehno oceniti Pascal tudi v iiriem kontekstu programskih ieziVov. Prava uveUavitev Pascala ,iele prihaja /1/» njegov« usoda* kot eneoa naiboljälh predstavnikov skupine "alqoritmiinlh" (tudi postopkovnih, proceduralnih) jezikov, ba je v daljni bodofnosti negotova. Tudi drugi razlogi so botrovali nastanku tega ilanka# ncr. zmotne trditve v literaturi, da j» Pascal primeren predvse» z« uienje, ali marsikatera neuteme liena kritika v strokovni literaturi. Po drupi strani pa v nekaterih okoljih prevladuje pretirano navdušen j e.-ilede Pascala. Poitembno je dejstvo, da Pascal (upravlieno) prevladuje v alovenskem šolstvu /Z/. Radi bi »e zahvalili vsem* ki so sodelovali pri oopravljanfu ilanka, predvsem pa ; Janezu 2erovniku« Haretu Bohancu, Henriku Krnecu, Damjanu Boladiljevu in Iqorfu HozetiCu. Z. Programski jeziki Na kratko «e bomo ustavili pri inatilnlh skupinah visokih programskih jezikov <9lej sliko 1>. osnovno merilo z» razdelitev Je naEin izraiania oz. oblikovanja ideje v 4elufoio kodo. 2,1. Skupine visokih programskih iezikov SKUPINA PREOSTeVHX.K SkRAJuI OflllETt*) alooritmični j. FORTRAN tOBOl AUfi()L-6U e*SK C ■atrlini i. funkcijski j, logiini i. vzorini j. objelitni j. *PL LISP pnolA 7 (iivedenkaT J Slika 1. Skupine Programskih iezikiv. t»)' Tudi nonor, izvedenka, strannot/ anglelko "black hole". Pri ocenjevanju uspešnost jezikov, ki smo jih ozna^ DO^ET", so mnenja deljena. Mp oćita tovrstni« jeziko» kopico nekateri drugi avtorii pa jih tej problematiki bomo ä nadaljevanju flanka. Vsako Skupino iezikov okarakterizirati samo z enim ikuia onozoritj na stil programiranja, ki ga jezik To je bilo tudi osnovno merilo jezikov v skupine. Stili Opisani hkrati z opisom skupin veliki m*ri privzete po / 1 nrooramtk1 h ili s "SKHftJNI r. Hoar« v lil ponankI i ivpati• zaoovarjajo. O e oovorjli v sbo poskusili pridevnikom, ki oz. način nsibolj Pot-r ? O FH ♦ FUN MI u LISP (List Processor) J» nafhol) iiroko 'jporabljan jezik unetne inteligence. Nastajal le okoli teta.l-JAO /6/. Poglejmo si primer Slavka v LISPu/ tj. telo rekurzivne procedure/ ki računa faktorielo; (CONO ((ZEfinp (OD C-r (flMJS N tFACT (OIFfEPfNCE tK 1))))» ) 1184" podpira funkcijsko programiranje /7'' ki pa qa po naSem mnenju-lahko v velikS .«eri unorabljai^o tudi v Pascalu. funkcijsko oroqramiran j a je stil oi. način Dconramiranja tako kijt npr. , strukturirano ali oojektno nroaramiranie. Zelo preprosto novedanb je funkcijsko proqraoiranje tano, da prevladujejo funkcije/ oziroma vrednotenje in ne nrireditveni stavki kot v običajnem posfopkovfien programiranju. Poplejitio si na preprostem primeru stil funkci(skeoa orogramiranja; if NafiobuDosegadetalo) TneN Soroziopozorilo(letalo) fl&e if ?notrnjftoseoaC leta lo) thfm ir Nena javi jenoUeta lo) THtli (iproziAlarmdefaU) Eist ìf NeznanoleteceVozilo(letalo) THEN SproiiPoizvedtaoCstap) ELSE continue; Nb tak način lahko programiran'O precej oodobno kot v funkcijskih jezikih/ kar pa Pascal ni. Prav tako Pascal nima mnbiice ugodnih lastnosti LIS(>a# nnr. udobnega procesiranja seznamov. PROLÜG je noveiži jezik umetne inteligence. Omogoča nam tudi nedeklarativno in logično nrogramiran je /a,9/, ki je v Pascalu često telKo izvedljivo. na Pholog lahko glertamo tudi kot nn oroduVciiski sistem /10/11/, kar je eria izmed alternativ Bodočnosti programskih jezikov /1/. v Paseelu je smiselno uporabiti principe produkcijskih sistemov zlasti ori strukturiranju portnrogramov /11/. Pogleiiao si priner nek l arat i vnega in neLa^ itd., torej je jezik s Širokim potjroijeri uporabe in tudi primerno močni^ni konstrukti. V PL/I je v9t/ kar ae da razumeti^ tudi rtovoHeno* zato poskuša rsiuireti tudi nar>ske. Pl/1 (lodpira IQM in to je verjetno tudi eden od vzrokov za DrecejSnjo razširjenost teqa lezika. *LGOL-é0 ALGdL-AÖ PASCAL -lOODLA ada 55-60 A5 70 Slika i. Hazvoj aIqoritmiini h jezikov. 7b HO Na sliki i vidimo razvoj aUori t m i in i h jezikov. Slika je prevzet» pretežno po /15/. FONTRAH (FORmuU T H AH s I a t j on ) . fUKTHAN je nastajal okoli leta l'JSS kot program za orevajanje mate»Btiiriih postopkov v raćunatn.iške proqrane. Prvotno zelo onostavni verziji so »e kmalu pririrutite izi>eljanke; F'lHtHAM IJ, iij in IV. FOHTRAN je »e okoli lata 1''6(J postal zelo razširjen iezik. leta 1VAA sta bila sprejeta dva standarda za FOHTHAH, k) približrio arinovarjats FOHTfiANu II in FOKTffAHu IV. V taddiih letih so se pojavili 3e fORFRAH V, FO«THAH /7 in cela vrsta "strukturiranih" FOttTHAHov. FOhlRAN te uporablja predvsem za reievanje inanatvenih in tehni čnih problemov. ALfiOL (ALGOritmie Lancjua'je) je nastajal okoli leta 1vPÌ ev*^ ki so aali iasn proaramlrali v ksterem koU ompnjenih tret» ieiikov i'i Pascalu, raiii nroaranira v Pascalo. Pascal nina ta^o■ ohseìnepa nabora stanrtardnih pndoroirafro« kot FOWIHAM, venaar ie V standarrty rtoloiena možnost Hicaiiia podoroorariiov v fu(fT«anu. cnnul Ina pred. Pascaloiri to preanostf da ima datoteke z direktnim doseqom, ' indeksno sekwenci a Ine datotpke in lePe možnosti formati rani a raoisow (i/o), Glavna prednost RAŠICA ie nfepoua ooenostavljenost in interaktivna usmerjenost, irato nauertenih nomank I i i vos t i te Pascal brei dodatkov qlffde na omenjene jeiik» manj oritperen ta nekatere poslovne aplikaciie In ta "lonj veäie uporuhnike. Prvi je^ik, ki je oil narejen kot -ooinejii bret sorodnega jeiika/ oa je doživel Hok*1 žalostno usodof je bil ALGü),-6H. Danes se «alo uporaol.ia^ čeorav se poiavlinjo znaki oživlianja. la je^ik je nastal kot izpeljanka ALG0La-6n tako^ da je bil bistveno' snnsobnej£i in svotpodnejSI v iiraianju. , To na je vodilo v zelo obseine in počasne ore va)a Inike/ v nenreulertfost in teiko čitliivost. proqrawov, Orlkrlvanle tiapak je biLo oteikočeno in npodukti«nost le paola. PL/1 je nastal kot naslednik FüBTHAwaf C'JBüLa in ai.CiOLb 6(1 tako« da je patirai većino konstruktov il teh jejilkov in ie kaj. Je liočnejši od Pascals. Pafunalniiki strokfn/nlaki ga v rrecejänji meri ocenjulejo kot straooot. Teiko je v nekaj .besedan oovednti« kje so snovalci teqa ' jezika ooijrešiU. Moraa je razlog preobSirnost jezika« ki se ksie kot ' obsežna množlcs mej seboj dostikrat tujih konstruktov in prevelika svoboda izražanja. rtogoSe so noi^reSill. Implementator)i jezika, ki so napisali zelo oosezen in ooqosto neudinkovit prevajalnik, Ktjuh vsemu se PL/1 precej uporablja.' Podobno situacijo srečujemo tudi pri ADI, AOA ima relativno malo popolnoma novih konceptov qlerte na ostal» aUoritmline jezike. Predvsem M(JDiJla-3 ii le moino podobna, sem na Lahko nrlštejeiro ie USCD Pascal za mikroračunalnike, Pascal PCOS ta diskretno simulacijo in Concurrent Pascal la aplikacije v realnem iasu. Te verzije Pascala so us»erj«ne na podobna poHročja kot ADA, standardni Pascal' pa lahko oboqat1n^, Voi. 25, Nuir. ;>/ str, 121 - 125, februar I9n2 21.N.wirth : The Oesign of a Pascal Comriiler, Software Practice and Eitperience, 1, str. iuv - 1971 22.Second draft nroposal ISil/liP 71!)5 Sdsc i 1 i cat 1 on for the Con|>uter PrO'irammi n.) Lenaiiaoe '• Pascal, Pascal lieMS, nu*. 2iJ, deeeiJher 19Sl) .Jenseo/iJ.wi rth : Pascalriiser ''lanu"*! snH Ke()ort, Soringer VerUg, 19^8 24.HenehirBrl( test n^ Ouicksortu, Koécial Software Limited, In f ornia t i ca i, str, /7, |9o2 ŽS.N.fians, T .Nratko.V .j^atapel i ,K,Heinhflf rit .M.Mflc ti -nee,M.Spei)el/P.Tancig : prouran^tt i ieiik Pascci If (noorohnei 4 s znaliža poman k I(i vos t< Pascal a >, v pr ioravi algol 60 za sistem CP/m II UDK: 681.06 Algol 60: 519.682 a. p. železni kar ISKRA DELTA, LJUBLJANA Članek opisuje vhodne/izhodne procedure, izbiro vhoda/izhoda, zapiraj e in brisanje zbirk, vhodne/izhodne podporne rutine, neposreden vhod/izhod v pomnilnik in iz pomnilnika, naključni zbirfini dostop, knjiäniCne procedure in vključevanje zunanjih algolskih (knjižničnih) zbirk v algolski tekst (program). Kot programirni primeri so opisani programi za kvadraturno integriranje In izraftunavanje vrednosti hermitskih, ÖebiäevBkih, laguerrskih In legendrskih polinomov . A CP/M System Algol 60 Language II . This article deals with input/output procedures, input/output selection, closing and deleting files, input/output support routines, input/output directly to or from memory, random access files, library procedures and library inserts. Several programming examples are presented for quadrature integration and value calculation of Hermitian, Chebishevian, Laguerrian, and Legendrian ^lynomials. 3.25. Vhodne/izhodne procedure Za jezik Algol 60 ni bila strogo določena vhodna/izhodna oblika f ta je prejpugCena proizvajalcu prevar^alnika, bila pa naj bi dovolj vsestranska in zmogljiva. Vhodne/izhodne funkcije so zastopane z vrsto procedur, vgrajenih v sistem Saša izvajanja. Vhod/izhod mora biti periferno neodvisen in povezan s Številkami podatkovnih tokov oziroma naprav. V primerih nezbir-, 6no strukturiranih naprav (konzola, tiskalnik) je vhodna/izhodna operacija.določena z ustrezno Številko podatkovnega toka. Te Številke so pojasnjene v" Dodatku 5, V primeru diskovne zbirke je potreben določen dialog, s katerim odpremo ali oblikujemo imenovano zbirko. Tu se ustrezne tokovne Številke priredijo dinamifino s. sistemom, Vhodne/Izhodne procedure bomo opisali ' v nadaljnih odstavkih, zbrane pa-so v Dodatku 2 tega članka ((12)). V diskovne zbirke bomo lahko dostopali zaporedno in naključno, V vseh preddeklariranih V/1 procedurah je prvi" parameter tokovna številka, označena z 'dev'. Ime 'val' označuje realno spremenljivko in 'ival' celoStevilsko. Ker Je formalne parametre mogoče klical:! z vrednostjo, so dejanski parametri lahko tudi izrazi^. Pretvorba med realno in' celoStevilsko .vrednostjo je avtomatična. Imamo t . PROCEDURE skip(dev); Izdata se znaka CR in LF v napravo dev. INTEGER PROCEDURE chin(dev){ Bere se naslednji znak iz naprave dev. Rezultat te procedure je vrednost znaka. Pri diskovnem vhodu imamo na koncu zbirke znak ctrl-z. REAL PROCEDURE read(dev); SEAL PROCEDURE read(dev,label)i Bere se število.s plavajočo vejico ali celo Stavilo iz naprave dev. Število ima prost format in se konča z znakom> ki ni del števila. Decimalni eksponent začenja s črko E. Ne upoštevajo se znaka SPACE, tab in prazne vrstice pred številom, drugi znaki pa povzročijo napako. Presledek končuje Steviló z izjemo med E in eksponentnim poljem. Cela Števila se berejo brez zaokraSevalnih napak, brez decimalne pike ali eksponentnega dela. Pri branju zbirke z neznano dolžino se lahko uporabi druga (spodnja) oblika i na koncu zbirke se krmiljenje prenese na označitev 'label'. Prevajalnik ve, da je drugi parameter označitev ali označitveni izraz. Na koncu zbirke je navaden omejevalnik in skok se ne izvrši, dokler branje ni opravljeno. Če označitev ni dana v programu,- se v času izvajanja pojavi napaka, ko je dosežen konec zbirke. . Primeri veljavnih Številskih formatov so ■ 0.123 +1.23E -3 -123 Bralna rutina sprejme tudi formate, ki se nikdar ne pojavijo v izhodnih rutinahs E -3 ,123 -123. Lahko se pojavi potreba za branje izvirnih podatkov, ki vsebujejo komentarsko besedilo. Bralna rutina je lahko obveSčena, da ne upošteva znaka pred številom. Tu se uporabi poziv ioc(18)i Posledica tega poziva je, da se Števili w E -6 in .45 bereta kot -6 in i 5 {brez predhodnih znakov). Stanje, v katerem komentarji niso dovoljeni, doaeženio a pozivom ioc(l9) ; (to je prvotno stanje), PROCEDURE text(dev,"niz")( Ta procedura izda niz na napravo dev. Tu se lahko uporabi vrsta krmilnih znakov (glej odstavek 3.9) , Niz je lahko tudi nizni parameter procedure, ko Imatno npr. PROCEDURE sporočilo(s)j STRING s; BEGIN text(i,s)I ... PROCEDURE chout(dev,ival)f Pošlje ED en sam znak v napravo dev. Da hi se poslal znak, mora biti uporabljena njegova ASCII vrednost. Pri tem se lahko uporabi tudi chout{l,&X)J ko se znak 'X' odtisne na terminalu. PROCEDURE write(deV,ival), PROCEDURE write(dev,ival,OBnova)! Natisne se ival kot celo število na napravi dev. Manjkajoče osnova je decimalna. Nebistveni znaki se ne natisnejo. Za formatirano tiskanje se lahko uporabi funkcija rwrite. Tiskanje v oktalni in heksadeciraalni obliki je mogoče z uporabo tretjega parametra: osnova ;= O osnova ;= I osnova i» 2 decimalno oktalno heksadecimalno Druge vrednosti osnove povzročijo napako v ftasu izvajanja. PROCEDURE rwrite(deVfVal,a,ta)( PROCEDURE rwriteCdev,val)f Na izhod dev ee izda vrednost val v plavajoči vejici v tem formatui 'a' je celotno Število znakov s predznakom in decimalno vejico, 'b' pa je število znakov za decimalno vejico. Pri a = O se uporabi ekponenčni format z b decimalnimi številkami, äe je b = O, imamo formatirani celoätevilski izhod. Če sta a = O in b = O, ali če sta izpuščena, imamo navadni fi-mesbni eksponenčni format. Vobče imamo tri skupine ioc pozivov. Prva skupina povzroči operacije pri prevelikih vrednostih izhoda. Imamo tolei ioc (6 )i Ta rutina poskuäa prilagoditi Število tako, da pomika decimalno vejico, ta to ni mogoče, uporabi eksponenčni format, ko dolžina polja to dopuäöa, sicer pa izda vrstico zvezdic "****", ki označuje preseganje območja Števila. ioc(7) , Formatne spremembe niso dovoljene. Če Števila ni mogoče prilagoditi, se natisne vrstica zvezdic, ioc (8); Tiskanje napake ni dovoljeno. Pri izvajanju tega poziva se vrstica zvezdic nikdar ne natisne. Formatne spremembe so dovoljene} je potrebno, se uporabi eksponenčni format neglede na obseg polja. Druga skupina ioc pozivov je povezana s predstavitvijo presledkov v okviru izhodnega formata! ioc (9), Ta poziv postavi "manjkajoči znak preisledka" na ničlo (ASCII 0). Vodeče ničle se zaduäl-jo, Število je levo poravnano. (Ničelni znak je le past za rutino in se ne pošlje v Izhor dni tok.) Tretja skupina ioc pozivov ureja predstavitev pozitivnih Števil; ioc(11)i Uporabi se trenutni manjkajoSi znak presledka (glej prejSnjo skupino ioc pozivov), ko se pričakuje pozitivni predznak. V začetku je manjkajoči znak presledka presledek. Če se ioc(11)) uporabi za pozivom ioc(lO);, je rezultat zadušitev znakovne sledi, ki je bila rezervirana za označitev pozitivnega rezultata. ioc(12)j Za označitev pozitivnega Števila se znak '+'. natisne Opomba; Poziva rwrite in write se končata a tiskanjem "marjjkajofiega znaka presledka" (glej prejšnjo skupino 2 ioc pozivov). Ta &nak je v začetku postavljen kot presledek in rabi kot terminator za ločevanje izhoda, tako da ga je mogoče ponovno brati z bralno rutino. 3.26. Vhodna/izhodna izbira RML Algol omogoča uporabniku izbiro vhodnih/izhodnih zbirk in naprav iz programov ali s konzole tastature. Obstaja vmesnik, v katerega se vstavi V/I izbira z uporabo tokovne Številke 7 ali z ioc pozivi. Zaporedje dogodkov je takole sestavljeno: 1. Vstavi niz V/I izbire v vmesnik. 2. Pokliči interpret ukaznega niza za branje vsebine vmesnika in kopiräj niz ustrezno v "vhodno listo" in/ali v "izhodno listo" , 3. Poziv preddeklarlrane procedure "vhod" ali "izhod" prebere naslednji vstop v "vhodno listo" ali "izhodno listo" in vrne programu ustrezno tokovno številko, ko je odprl ali oblikoval potrebne zbirke. Vhod iz toka 7 se shrani v vmesnik in je za program dosegljiv, ko se je pojavil znak pomika valja. Nepravilni znaki se lahko zbrišejo z uporabo posebne tipke (rubout), S tokom 7 sta povezana dva kazalca, eden za vhod in drugi za izhod. Pri vmesniškero branju ali pisanju znakov se vrednost ustreznega kazalca povečuje za 1, Ta kazalca se lahko zbrišeta (resetirata) z uporabo teh pozivov s ioc(O)) ZbriSe se vsebina vhodnega kazalca. Poziv chin(7) bo sedaj vrnil vrednost prvega znaka v vmesniku. ioc ( 1)f Zbriše se vsebina izhodnega kazalca in vpiše se nizni terminator na prvo pozicijo vmesnika. Poziv chout(7,znak) f bo postavil vrednost znaka na prvo pozicijo vmesnika tn pomaknil nizni terminator za eno mesto naprej. Pri uporabi naslednjih pozivov löe(2)f toc(3); ioc{4)} in ioc{5)| naj bi programer pred branjem iz toka 7 uporabil ioc(O); in ioc(l){ za brisanje vsebin kazalcev. Naslednji loc pozivi omogočajo vstop vhodnih in izhodnih liat; loc(2)t Ta poziv povzroči na konzoli sporočilo OUT = IN? Uporabnik vstavi ukazni niz splošne oblike outputiist ='inputll8t(cr) Ko se pojavi znak 'cr', ki konbuje ukazno vrstico, se pokliòe interpret ukaznega niza. Vsak znak do enačaja (ali do znaka 'cr', £e enaiSaja ni) se kopira in shrani kot trenutna "izhodna lista", vse za enačajem pa kot tenutna "vhodna lista". Po en kazalec imamo za vsako od teh list in ko še pojavi nova vhodna ali izhodna lista, se kazalec postavi na začetek liste. iOC{3)) Ta poziv je podoben ioc(2)j, le da se besedilo vzame kot vsebina iz vmesnika brez sporočila uporabniku. Značilno pozivno zaporedje za oblikovanje vhodne/izhodne liste je lahko ioc(1)jtext(7,"outputliBt=inputlist")j ioc(3)} 100(4) f Ta poziv sporoči na konzolo INPUT» Uporabnik vstavi ukazni niz spioäne.oblika inputlist{cr) Ta niz-postane tako trenutna "vhodna lista", izhod pa je ostal nespremenjen, ioc(5); Ta poziv je podoben.ioc(4);, le da se besedilo vzame kot vsebina iz vmesnika brez sporočila na konzolo. Značilno pozivno zaporedje je lahko ioc(l)j text(7,"inputliBt") ; iooO)» Opombaj Poziv ioc(3); ali ioc (5)t pusti všebinp vmesnika nespremenjeno. Isti niz se tako lahko analizira dvakrat pri enakih imenih vhodnih in izhodnih zbirk. To operacijo opravi prevajalnik pri izbiranju vhoda in Izhoda, Splošna oblika vhodnih in izhodnih list je sestavljena iz zaporedja ene ali več naprav ali zbirčnih specifikacij, ločenih z vejicami. Npr. con:, aioutl, , lsti=data b RDRs V tem primeru smo specificirali 4 izhodne - kanale in 2 vhodna kanala. Poziv vhoda ali izhoda preddeklarlranih procedur bo poiskal ustrezno listo od trenutnega položaja do naslednje pojavitve vejice ali konca listej vrnjena bo Številka toka, ki ustreza najdenemu vstopu. Seznam mnemonike naprav s pripadajočimi Številkami tokov je dan v Dodatku 5. Splošna oblika specifikacije CP/M zbirke je DISK: IMEZBIRKE.RAZŠIRITEV V imenu zbirke so lahko črke, številke, znaka in '7'} vprašaj naj bi bil rezerviran za specifikacijo dvoumnih zbirčnih imen. Hale črke se pretvorijo v velike in vsi zanki, manjäi od presledka, se v V/I listah ne upoštevajo, IMEZBIRKE je sestavljeno iz enega do osem znakov. ZbirČna RAZŠIRITEV ima .1 do 3 znake. Kadar se razširitev ne navede, se upošteva njena manjkajoča vrednost (npr, pri imenu quad • se vzame quad,alg)} na začetku ima razäiritev 3 presledke, tahko pa zahtevamo obvezno navajanje manjkajoče razširitve z uporabo poziva Prvotno stanje (nenavajanje razširitve) doseže-' mo s pozivom ioc(21) ) Za DISK: lahko uporabimo A:, B:, C:, D: ali pa diskovne enote, ne navedemo (trenutno aktivna enota). Uporabijo se lahko tudi.stikalne opcije za V/I naprave in zbirke; te opcije so zaporedje do 12 znakov v oglatih oklepajih. Npr. pri vhodni zbirki DATA.DATfB] povzroči stikalo [B ] odprtje zbirke za naključni dostop. Vrsta stikal se lahko uporabi tudi v programih, saj obstaja možnost branja stikalne liste iz programa. Pojav dveh zaporednih vejic v V/I listi pomeni specifikacijo "ničte" V/I naprave NL: (tok 0). Z opisanimi ioc poživi se oblikujejo V/I liste, ki jih lahko uporabimo za prirejanje zbirk ali naprav skozi vhode in izhode preddeklariranih proceduri devi=tnputi S tem stavkom se prebere naslednji vstop iz < vhodne liste. Ko je vstop najden in je naprava, se napravi priredi vrednost, ki ustreza imenu naprave. Če je bilo specificirano ime diskovne zbirka, se ta zbirka odpre in dodeli se. AroesniSko območje za zbirčni krmilni blok in 2a sektorski vmesnik vsebina registra de ob vstopu a = rezultat v registru A ob izstopu Podrobnosti so navedene v priročniku CP/M Interface Guide. i :=fcblock (dev) V 'i' se vrne naslov zbirčnega krmilnega bloka, povezanega z zblrčnliti tokom 'dev'. To je lahko uporabljivo pri neposredni manipulaciji CP/M lastnosti. l:=exflt(a,t), Razälrl se lista zblrčnega krmilnega bloka. Sistem RML Algol dovoljuje v začetku odprtje In dostop v 4 zaporedne in v 2 naključni zbirki, če uporabnik potrebuje večje število zbirk, se s to proceduro razširi lista ztalr-čnih krmilnih blokov. Vsak poziv razširi dolžino liste za 1. Negativna vrednost v '1' pomeni, da je bila presežena maksimalna dolžina 16 vstopov. Parametri rutine exflt soj a = naslov uporabljenega vmesnika t = zblrčnl tip Če je t = O, imamo zbirko z zaporednim, sicer z naključnim dostopom. Uporabljeni vmesniki so uporabnjlško deklarirana polja, njihove naslove pa dobimo z uporabo BEGIN BYTE ARRAY buf[0il60j; i exflt(location(buftO]),0); Potrebni obsegi vmesnikov za serijske zbirke so 161 zlogov (33 za zbirčni krmilni blok in 128 za sektorski vmesnik), za naključne pa 3 3 zlogov. Polje mora biti dovolj obisežno, da vsebuje vmesnike in do ge ti medseboj ne prekrivajo. i=-l pomenilo napako, ko zbirka ni bila najdena ali zaradi slabe sintakse; i'=255 bo pomenilo odgovor sistema CP/M ne-glede na uspeh ali napako Kadar zbirčna.razširitev ni navedena, se uporablja manjkajoča. Če pa je ioc (20); aktivno, je razširitev treba navesti. Kadar imeni nove in stare zbirke sovpadata, velja tole; ioc{13)s ni preizkušanja ioc(14); zbriäe se prejšnja (stara) zbirka ioc(l5)f vrne se vrednost: -100 (v 1) i:=newext(j,"XYa'') ; Zbirka, ki je povezana s tokom j prek prejšnjega vhodnega ali izhodnega poziva, ae zapre, njena zbirčna razSiritev pa se spremeni v trlznakovni niz, dan z drugim parametrom. Ta niz postane manjkajoča zbirčna razširitev. Npr. zaporedje 3.29. Neposreden V/I iz ali v pomnilnik Branje in pisanje je mogoče tudi neposredno iz pomnilnikči in v pomnilnik. Takšen V/I je povezan s tokovno številko 10. Pri tem je potrebna nastavitev kazalcev, ki se ustrezno povečujejo (inkrementlrajo). Procedure, ki manipulirajo s temi kazalci, so v zbirki ALIb.ALG . Beti(a) ; Vhodni kazalec se nastavi na naslov a. seto(a)i Izhodni kazalec se nastavi na naslov a, 1I=lpoint; V '3. ' se vrne trenutni naslov vhodnega kazalca. l:"opoint; V 'i ' se vrne trenutni naslov izhodnega ka- žalca. Tiplfino zaporedje Jej BEGIN BYTE ARRAY buf[0»x000]( seto(location(bufCOI)( seti(location(buf[Ol)» rwrite(10,x,0,6)f ... 1 opoint) ... X 1= read(10)( .' takšen polja. V/I mora ostati v mejah deklariranega l:=swlist| V 'i' se vrne naslov preklopntäke (switch) liste. Uporabnik lahko preveri, ali je bila specificirana preklopnlška opcija za vhodnim ali izhodnim pozivom, tako da prebere vsebino preklopnlSke liste. Ti preklopniki (naj-Ve6 12 znakov) se lahko preberejo z uporabo vhodnega toka 10. Značilno zaporedje je seti(BwliBt); ii=chln(lO)ì Prvo stikalo je 'i'. Lista je zaključena z nièto vrednostjo. PreklopniSka lista vsebuje vselej informacijo o najbolj pogostnem pozivu V/I procedur. Manjkajoča razSirltev se shrani v 3 zloge, ki sledijo preklopniSki listi. Trije znaki se vplSejo v ustrezni vmesnik z uporabo Izhoda toka 10, In sicer» 3eto(ewliBt+13)J text(io,"XYZ")» To zaporedje postavi nianjkajočo razSirltev na vrednost XYZ. Ob vstopu se manjkajoča razširitev postavi na ničlo, tj. na tri presledke. Ta metoda se lahko uporabi tudi kot način branja majhnih količin podatkov; ta način je tako ■ podoben - DATA Stavku v jeziku BASIC. Npr. seti(Bloc("1.32 99.6 ... "))| FOR is=l STEP 1 «NTIL 20 DO xti1 :=reađ(10)( Procedura sloe je opisana v okviru knjižničnih procedur. 3.30. Zbirke z naključnim dostopom Zbirko lahko odpremo za branje prej z nakljufi-nlm kot z zaporednim dostopom. Zbirka se odpre kot vhodna zbirka s stikalom IB], Ce se zbirka popravlja. Imamo stikalo [bm], kjer M označuje modifikacijo. Na ta način lahko odpremo obstoječe zbirke za naključni dostop. Primer vhodne specifikacije je DATAI.DAT[B], DATA2.DAT[BM] Prva zbirka se odpre za branje z naključniiti dostopom, druga pa za branje/pisanje. ii=rblock(đev,a,b,h)f Prebere se 'n' blokov z diskovnè zblcke, povezane s tokom 'dev', začeiiSl pri bločnl številki 'b', ko se vsebina vpiše v pomnilnik pri naslovu 'a'. Dolžina prenosa je 128*n zlogov. Prvi blok zbirke Ima številko 0. Naslov je vobče odvisen od dela polja, oblikovanega s pomočjo procedure locations i :=rblook(dev,location(buf£o],c,3 O); Pri izstopu bomo Imeli za 'i' tele vrednosti: 1=0 uspeäno branje 1=1 branje po koncu zbirke 1=2 branje nenapisanih podatkov '1=3 aparaturna napaka Deklarirano polje mora biti dovolj veliko za sprejetje prenosa. Prenos za konec zbirke bo Izničen. l:=wblock(dev,a,b,n)) Zapiše se 'n' blokov na disk. Parametri so enaki kot pri rblock. Pri izstopu ima 'i' tele vrednostii i=0 uspešen zapis 1=1 napaka v razširitvi zbirke i=2 konec diskovne zbirke 1=3 ■ aparaturna napaka 1=255 imeniSki prostor je izčrpan 3,3.1.'Knjižnične procedure. Opisane procedure so vgrajene v sistem časa izvajanja in so znane prevajalniku ob prisotnosti . zbirke ALIB.ALG . Imamòt ii=locatlon(x)j Ta rutina vrne v .'1' naslov spremenljivke x, X je lahko realno, celoätevllsko all indeksno tipa realno, celoštevilsko ali zlogovno. V primeru realnega ali celoštevilskega argumenta se vrne naslov prostora, predvidenega , za to spremenljivko v času izvajanja,' Vsak tak prostor obsega i zloge in je v primeru celoštevllske spremenljivke enak le zgornji polovici. Pri elementih polja kot argumentih se vselej vrne pravilen naslov. Procedura izda vselej izračunani naslov spremenljivke( spremenljivka je klicana z vrednostjo in : prevajalnik sprejme tudi izrarz kot dejanski paraioeter. Podobno lahko zgradimo tudi pro- ■ ceduro za lociranje boolovske spremenljivke, le da pri enakem telesu kličemo parameter boolovskega tipa z vrednostjo. li=fspaae( Procedura vrne Število prostih zlogov (npr. pri kontroli sklada). Na velikih sistemih je rezultat lahko, večji od 32k zlogov in se tako pojavi negativna vrednost (dvojiSki komplement). bltnove (s,f, len) ; Opravi se pomik bloka dolžine 'len ' zlogov pri naslovu 's' na naslov 'f. Procedura location se lahko uporabi za ugotovitev naslova, npr. blmove (location (a[ol ) , location(b(0] ) ,100) Uporabnik sam odgovarja za pomikanje blokov v okviru mej deklariranih polj. Ta procedura dopuäöa tudi prekrivanje dveh blokov. l(=peek{aìì Procedura vrne vrednost zloga na naslovu 'a ' poke(a,t)i Procedura nastavi vsebino naslova 'a' na vrednost '1', upoštevaje 6 najvišjih bitov v a:=in(c)j To je vhod iz vrat» ta procedura izvrSi ukaz IN A, (C) , out(c,a)} To je izhod na vrata; ta procedura Izvrši ukaz OUT (C),A, bs=parity(1)( Ta boolovska procedura vrne TRUE, če je vre- đnost parnosti znaka za 'i' (8 najviS.jih bitov) soda (parna) , s.lcer pa vrednost FALSE. Lahko nastopi tudi več ujemanj, 5e se povečuje naslov od trenutnega ujemanja. Poinlkl in zasuki 3.32, Knjižnične vkljufiitve V naslednjih procedurah bo 'v' vrednost (tipa INTEGER} in 'n' Število mest za pomik ali zasuk, Vselej se uporabijo samo 4 zgornji biti za 'n', tako da je vrednost v obmoSju (0,15). Imamo i - it=shl(v,n) f it=lsr{v,n)} it=asr(v,n); i:=rotr(v,n); pomik v levo logični pontik v desno aritmetifini pomik v desno zasuk v desno Aritmetični pomik v desno razSlrl bit predznaka, logični pomik v desno pa- vstavi ni-öle. x:=randoin; Procedura vrne pcjvdonaključno število v intervalu (0,1). clarr(a,len>i Zbriši območje polja dolžine 'len' zlogov, začenši pri naslovu 'a'. dpb(u,t,s,a)( Nastavi diskovne parametre. 'u' je številka enote (O do 3), 't' je steza, 's' tìektor in 'a' DMA naslov. i:=rdiBk( Prebere disk neposredno z uporabo pred tem nastavljenih parametrov v 'dpb'. Rezultat CP/M poziva bo v 'i'. i:=wđiBk; Vpiäe na disk neposredno z uporabo pred tem nastavljenih parametrov v 'dpb'. Rezultat CP/M poziva bo v 'i', i:=sloc("nlz"); V 'i' se vrne naslov začetka niza. Dejanski parameter je lahko tudi nizni parameter procedure. Npr.: PROCEDURE x(B)i STRING aj BEGIiJ INTEGER i( ii=sloc(s) ) i:=sloc("XVZ^( Nizi BO sestavljeni iz zaporedja znakov, shranjenih kot zaporedje zlogov in zaključenih z ničlo. atext (dev,a)( Ta poziv je podoben preddefiniranl proceduri text, toda drugi parameter je naslov niza. Npr. ( text(đQv,"XYZ"); je ekvivalentno atext(đev,sloo!''XYZ'') ) ; i!=tlen(a)j Vrne se dolžina niza, katerega naslov je 'e'. Npr, : li=tlen vrne vrednost 3. ii=amatoh(long,short); Ta procedura primerja dva niza In išče prvo ujemanje kratkega niza short v dolgem nizu long. Parametra sta naslova obeh nizov. Ce se pojavi ujemanje, se 'i' nastavi na naslov v dolgem nizu, kjer se ujemanje začne. Če ujemanja ni, se 'i' nastavi na vrednost O, Obstaja mehanizem, s katerim je mogoče vključiti "knjižnične" izvirne zbirke v programsko telo,' in sicer v času prevajanja. Npr. LIBRARY "B:ALIB.ALG"f Učinek tega poziva je, da prevajalnik poiSSe zbirko, navedeno v narekovajih. Ta zbirka se odpre in njena vsebina se vključi v izvirni program v točki poziva. V našem primeru se zbirka ALIB.ALG na enoti Bi prebere v programsko besedilo. Ta poziv omogoča uporabo proce-durnth knjižnic brez večkratnega pisanja procedur v programska telesa. Če zbirčne razSirit-vo ne navedemo, se vzame razSirltev '.AUS' , Oglejmo si primer: BEGIN INTEGER i,j,k} LIBRARY "ALIB"; LIBRARY "lOLIB"; LIBRARY "STATLIB"» PROCEDORS abcf ... V tem primeru se v tekst vključijo vsebine treh knjižničnih zbirk v času prevajanja. Tudi te zbirke lahko vsebujejo LIBRARY pozive. Omejite je postavljena s številom vhodnih in izhodnih zbirk, ki so lahko istočasno odprte. V HML prevajalniku je ta omejitev 5. Slovstvo k drugemu delu ((12)) A.P.Zeleznikar: Algol 60' za sistem CP/M I. Informatica 7(1983), §t,4, str. 41 -54. ((13)) A.P.Eršov, S.S.Lavrova, M.R.Šura-Bura: Algoritmičeskij jazyk ALGOL-60. Mir, Moskva 1965. ((14)) Ja.S.Dymarskij, N.N.Lozinskij, A.T.Kaku-škin. V,Ja.Rozenberg, V.R.Erglis; Spra-vočnik programista. Toro pervyj. Gos. sojuz.izd.sudostr.prom., Leningrad 196 3 (str. 107 - 117). ((15)) L.A.Ljusternik, O.A.Červonenkis, A.B. Janpol'skij: Materaatičeskij analiz: Vy-čislenie elementarnih funkcij, Pizmat-giz, Moskva 1963. ((16)) E.D.But: Cislennye metody. Fizmatgiz, Moskva 1959. ((17)) S.M.Nikol'skiji Kvadraturnye formuly, Fizmatgiz, Moskva 1958. ((18)) V.L.Zaguskins Spravočnik po òlslennym metodam rešenija uravnenij. Fizmatgiz, Moskva 1960. DODATEK Primeri kvadraturnega integriranja in izračuna vrednosti ortogonalniH polinomov v tem dodatku bomo obravnavali nekaj primerov s podroSij kvadrature integralov in izračuna vrednosti polinomov. 4/1. Kvadraturno integriranje z Gaussovo mètodo Težišče naäega preizkusnega programa na listi 4/1 bo procedura quad(a,b,in,n,p,c,u,f,suni) J ki je primerna zlasti za istočasno integriranje veb funkcij v enakih območjih (integracijskih mejah) in pri enakih vozliščnih točkah. Integracijski interval (a,b) bo razdeljen na m enakih podintervalov za n-točkovno kvadraturno integriranje. Prameter p procedure quad bo predstavljal število funkcij, ki jih nameravamo Integrirati. Nadalje bomo imeli vnaprej dani polji konstant c in u, kjer bo c[kj normiranje uteži in u[k] normiranje abscis pri k = 1, 2, 3, ... , n. Procedura f(t,j) bo dana programsko . in bo izračunavala j-to funkcijo argumenta t. V polju sum bomo shranjevali rezultate integracije, in sicer v sumfj^ rezultat integracije funkcij'e f{t,j). Procedura quad je v tisti 4/1 prva in je bila sestavljena z upoštevanjem Gaussove formule m-1 n ■ c^f(a+h(i+u^)) kjer je h = {b-a)'/m, koeficienti c,^ in u^ pa so dani v listi 4/1 za 3-, 8- in l2-toekovno kvadraturno integriranje, sicer "pa* v literaturi ((14)) z večjo natančnosto J,n za 1- do. 48Ttoč-kovno integriranje, V listi 4/1 je f(t,j) v proceduri quad j-ta podintegralska funkcija, j pa je v intervalu (l,p)) tako lahko integriramo v enem Izvajanju procedure quad p raizličnih pod integral sklh funkcij. Procedura fune (x, j) v listi '4/1 vsebuje 3 funkcije, in sicer x*x, x*(H-x*x) .in 1, ki Jih.bomo integrirali v intervalu (2.0, 5.0). VALUE specifikacija v procedurah omogoča, da pokličemo proceduro tudi z vrednostnim (številskim) dejanskim parametrom, npr, qùad(2.0.,5.0,m,8,p,c8, ...)ì kjer so 2,0, 5.0 In 8 številski parametri. Nadalje si velja zapomniti, da moramo v enopre-hodnem prevajalniku za RML Algol procedurni dejanski parameter navesti z REAL PKOCEDURE func pri pozivu quad, kot je razvidno iz liste 4/1 v treh primerih. Hadalje smo v listi 4/1 parametrizirall vse procedure za izpis s spremenljivko dev, ki smo jo fiksirali z dev 6; zolo (CON:). Lista 4/2 kaie rezultate izvajanja programa iz liste 4/1. Za tri" Integrale bi dobili idealne vrednosti ^ x^dx = 39, / x(I+x^)dx = 162,75, / dx = 3 V listi 4/2 imamo,tudi seštete elemente polja C, ki so bili v programu zaokroženi. Idealna vrednost vsakokratne vsote je enaka 1.00. V zvezi z Gaussovo kvadraturno formulo so namreč izpolnjeni tile pogoji: u[n+l-k] := l-u[k] (1) ko so abscise u[kl simetrično razporejene glede na točko u = 1/2, c[n+l-k] := ctk"] (2) kjer so simetrični koeficienti enaki in è «w (3) Elementi polj c in u v listi 4/1 očitno Izpolnjujejo te tri pogoje. n Vsota vseh cCiJ 3 9.9gg99E-01 8 9.9939gE-01 IS 9.g9080E-81 n Integral 1 Integ)~al 2 Integral 3 3 3.a9998E ei 1.6S749E es S. 99999E ee B 3. 8999BE BI 1.BS749E 3IS a.gg999E ee 3.8S&08E ei l.&£5e£E m ' S.9S699E Lista 4/2. Ta lista kaäe izvajanje programa z liste 4/1. Najprej se kontrolirajo vrednosti koeficientov s pogojem (3), nato pa so izračunane vrednosti treh določenih integralov, in sicer za 3-, 8- in 12-točkovno integriranje. tako da še Izpisi poSiljajo na tls]ialnik (LSTs); pri dev := Ij bi dobili izpis na kon- Ltsta 4/1. Program na naslednji strani izračunava vrednosti integralov, uporabljajoč Gaussovo metodo za kvadraturno integriranje. Osrednja procedura tega programa je 'quad', ostali del programa je namenjen le preizkusu te procedure. Elementi polj u.in c so določeni le z natančnostjo jezika RML Algol in SO zaokroženi. Pomen ostalih procedur v programu je neposredno razviden Iz programske liste. BEGIN COMMENT Poekusi^o kvadr^tut^no integriranje x Gaussovo metodo Naslednja procedura je predmet nase pozornosti PROCEDURE quad (a, b, hi, n, p, c, u, f, sutn) ; VALUE a,b,ni REAL PROCEDURE ft PRROV su«i, u, REAL a, b; INTEßER in.n.p? BEBIN REAL h,t,rj INTEGER i,J,kj hi=(b-a)/mj FOR j!=l STEP 1 UNTIL p M BEB IN eumCjJ t=0irs=a-h( . FOR i 1=1 STEP 1 UNTIL m DO BEGIN r !>=r+hj FOR k 1 = 1 STEP I UNTIL n DO EiEQIN t!=r+uCk3*h( suKiCjl i=suniCj3-<-cCk3*f END k END i; BumCj]sah+sumCjJ END j END quad «««««"»«•»««•««««•««««««•«««««««••»««•«««««.««««I HEAL PROCEDURE func(M,j)j VOLUE K, j| REAL H( INTEGER j| ^EGIN IF„j=l THEN fancj=K*M ELBE IF THEN funcj=»c» ELBE funci=l( END fur-c — , PROCEDURE arg(dev,n)ì VALUE dev,n{ INTEGER dBV,n| BEGIN Bkip(dev); IF nl-uac43 5 U8C73 s-=l-uacS3 5 cacn i°,5IS6143e-ei; cßC33 136053; CBC53 i=ca[AJ( caC73 i=.cÖCa3i uscaa i-.st uiEcn uieC33 U12C53 ul2i:73 U12C9] ui2Cin clÈCl] cl£C3] C12C5I cl£C7] C12C9D ciscm :=.92196ße-e>2! la,113049} i». 31£IZIS5| :«=l-ul2C63 ) ì=l-ul£tAIj i«=l-ulSCS] Ì S38877e-Ol5 eee392e-eil; i=,11È746J !=c:12re] ; :=cl£C4]j !=i:12E£] ) uaC2I U&C43 s> UBC63 1' uacei t' cBCai )' c8t4] (« caC63 cflcai i< uiac^3 I Ul2t4] s U12C&3 s ulSCSJ s ul£C103s ul£Cl£3s cIStS] s cieCA3 1 clSC&I ! ciacs: I cieci03t C12C1S3I i. t01&67; ..^03283) I1-UÖC33; ■i-uscn? Mingi; .. lS1342s 'caC33 ; ^cSCl]; ». 206341 i =.A373Ö3) "l-ulfitSJ j »1-U12C3] i •l-ul2Ca3; S346pe-011 101504 i 124574; =cl£C33; =ClEC33! "cl£CU! COMMENT Kontrola vrednosti Blementov polj c3, CÖ in clE; tBMt (dev, "*N r. Vsota vseh cCi3">t text (dev, "*N---------------------") s csiim (dev, 3, c3) 'bBuin(dev, S, cS) ; csum(dey,l£,cl£)I Bkip(dev>j COMMENT Izračun vrednosti integralov! glava(dev,p> i arg(dev,3)i quad (2. 0, 5. 0, to, 3, p, c3, u3, REAL PROCEDURE fune,vsota); vred (dev, vsota, 3) ; arg(dev,8)i quad (£. », S. 0, m, Q, p, ud, REAL PROCEDURE fune,vsota); vred (dev, vsota, 3) ; arg (dev, 1£) ; quad (2. 0, 5.0, fd, 12, p, cl£, uie, REAL PROCEDURE fune,vsota)| vred (dev, vsota, 3) s 3kip(dBv) END quad FINISH 4/2. Izraöun vrednosti ortoqonalnih polinomov V tem poglavju bomo obravnavali algoritme In algolBke programe za izračun hermitakih, čebi-äevskih, laguerrskih in legendrskih polinimov. Te polinome je mogobe izrabiti tudi z rskurziv-nimi fornvulami, kar omogoča njihovo izraCunava-nje brea uporabe nekaterih standardnih (vgrajenih, preddefiniranih) prevajalniSkih procedur (izjema so le aritraetiöne operacije). Izračunane vrednosti bomo primerjali tako, da bomo izračune opravili z razliSnimi formulami. Nepo^ sredna kontrola je mogoča tudi z uporabo neposredne poiinoHiske izražave in seveda z uporabo tabel. Tako Imamo npr. za polinome Hermita, Čebiševa, Laguerra in Legendra tele neposredne izražave; Hj (X) =2x H2(X)=4x^-2 H3(X)=8X^-12X H^(x)=16x^-48x^+12 H5{x)=32x^-160x^+120x Hg {x)=64x®-480xV720x^-120 H^(X)=128x''-I344X^+3.360X?-1680X Lj (x),=x^-4x+2 L3(X)=-x^+9X^-18X+6 L5(X)=-X^+25X^-200X^+600X^-600X+120 Lg=x®-36x^+450x^-2400x^+5400x^-4320x+720 L^(x)=-x'+49x®-882x^+73SO*''-29400x^+5 2920x^--35280X+5040 Po(x)=l Pj(x)=x P2{X)=1/2(3X^-1) P3(x)=1/2 (5x^-.3x) P^(x)=l/B (35x^-30x^+3) p^ (x)=.l/8 (63x^-70x^+15x) P^(x)=l/16(231X®-3l5x^+l05x^-5) P^ (x)=l/16 (429*''-693x^+il5x^-^35x) 4/2.1. Hermitski polinomi T^(X)=X T2(xì =2*^-1 T2(x)=4X^-3X =8x^-8x^+1 Tg(x)=16x^-20x^+5x Tg(x)=32x^-4Bx^+18x^-l T^(x)»64x^-112x^+56x^-7x Procedura herm(n,xl v listi 4/3 izračunava vrednosti hermitskega polinoma Hjx) za poljuben realen argument x in za poljubno (celoStevilsko) stopnjo n_i rekurzivno formulo herm(0,x) = Ij herm(l,x) = 2*x; herm(n+l,x) = 2*x*herm(n,x) - 2*n*heriB(n-l,x) Lq(x) = Procedura herm2.(n,x) v listi 4/3 izračunava vrednosti hermitakega polinoma H n = i n i" 3 n o 4 ri " 6 1. ei0000E-8i a.00000E-01 -1. 19S08E 00 1. 15216E 01 -1. 12S4BE 02 '►.00000E-01 -S. 33600E 00 1.01056E 01 -3. J9639E 01 3.00aö0E-0i e.e0000E-0i -3. 3&400E 00 7. Ö0360E 00 -5. 90414E 01 4.00000E-01 a.0000eE'0i -4.EBB00E 00 4.7ä960E 00 -1. esassE 01 5. 1.00000E 00 -5.00000E 00 1.00000E 00 3. 09999E 01 M r. = 1 n 3 rt =■ 4 0 = 6 1.Q0IZI00E-01 1.00000E-el -£. 99O00E- -01 S. 94010E 00 -1. 45515E 01 00e00E-ei 00000E-01 -5. 9a000E- -01 Z. 7&1&0E 00 -1. 322 39e. 01 3. 3.00000E-01 "fl, 73000e- -01 £.46610E 00 -1. t0708E 01 00000E-0I 00e00E-0i -1.13600E 00 S. 0&S&0E 00 -B. 17991E 00 5.00000E-01 . s.0000eE-0i -1. 37500E 00 1,562S»E 00 -4. &718eE 00 K n " 1 r> = 3 n = 4 n = 6 1.00000E-01 t.000e0E-0i -S. 99000E- -01 E. 9401 ee 00 -1. 4551SE 01 0e000E-iai £.00000E-01 -5,9igggE- -01 ■ £,76160E 00 -1. 32239E 01 . 3.00000E-01 3.00000e-0i -B. 72998E- -01 a.46010E 00 -1, 1070ÖE 01 4.00000E-01 4.00000E-01 -1.I3È00e 00 2.06560E 00 -a. 17990E 00 S.00000E-01 5.00000E-01 -1.37500E 00 1.56e50E 00 -4, 67l8eE 00 lista 4/4. Ta lista prikazuje rezultate izvajanja programa na listi 4/3; tu ao izračunane vrednosti hermitskega polinoma, in sicer za H(n,x) (prva tretjina razpredelnice) in za h(n,x) (druga in tretja tretjina razpredelnice). Druga tretjina razpredelnice je izračun h(n,x) iz H(n,x), tretja tretjina razpredelnice pa izračun h(n,x) z retcurzijo. Razliko med drugo in tretjo tretjino razpredelnice ao minimalne! te vrednosti se dobro ujemajo s tabelo v priročniku ((151). ae BEGIN COMMENT Poskusni izračun vrednosti Hermitovega polinoma Naslednja procedura je predwet nase pozornosti «*««*»«•»«•**«*««««•*««***«»««•«*«'»««« ft*»« •««« I PROCEDURE herm ( rt, x ) ; VALUE n, X i REAL. X! INTEGER n; BEGIN REAL fi,b,c; INTEGER i| aä = l} bs=a»>ii IF n=0 THEN c:=a ELSE IF n=l THEN e«=b ELSE FDR i:=l STEP 1 UNTIL n-l DO SESIN c:=2*k*b-a*i»ai aB>=b| b:=c END; herfni=c END herm Tudi ta procedura je predmet nase pozornosti REAL PROCEDURE herraUn, n)ì VALUE n, Hi REAL K t INTEGER fti BEGIN REAL a,b; j b;=) END herrnl Se ta procedura ho predmet nase poiornoBti REAL PROCEDURE herraetn,K)i VALUE n, Ki , REAL INTEGER n; fiEBlN REAL a, b, Ci INTEGER i j as = li bj = ><( IF n=0 THEN C.-"a ELSE IF n=l THEN cs=»b ELSE FOR is=l STEP 1 UNTIL n-1 DO BEGIN ci=H*b-i*aj at=bj bJT END; herm2i=Ci END herniS dev; PROCEDURE ti6kaj; FDR j 1=1 STEP 1 UNTIL A DO BEGIN text (dev, " ">! rwfite(dev,herm(nlCj:,Ki:il))i END END skip(dBv)| skiptdev)} END tiskaj PROCEDURE g lava(dev)[ VALUE devi INTEGER deV) BEGIN text (dev, "»N M n-1 n = 3 n = 4 n " 6">i text (dev, "»N--------------------- END glava =i===ris:e:== ZacBtsk preizkusttBga progrataa INTEGER ARRAY ni Cl :43 s REAL ARRAY K1C1:S:I INTEGER dev; dBVi=£5 COMMENT Inicializacija polj nl in xl; men != Ij nlCE3 := 3i r,l C33 s-nUA] E= 6; xlCi: s= C.lj X1C23 s= (».Si X1C3D s=« 0,3) H1C43 '.= 0.4( X1C53 != 0,5) tiBkaj(dev,xl,nl,REAL PROCEDURE herm); tiskaj (dev, xl,r,l, REAL PROCEDURE hermS) ; tiskajldev,xl,nl,real PROCEDURE berrai) END FINISH Lista 4/3. Program na tej listi sestavljajo med drugim tri bistvene procedure, in sicer herm(n,x), herml(n,x) in herm2(n,x), zaprte med avezdične vrst-ce. Proceduri berm(n,x) in herm2(n,x) izračunavata dva tipa herraitskih polinomov z uporabo rekurzivnib formul H{n+l,x) = 2xH(n,x) - 2nH(n-l,x) h(n+l,x) = xh(n,x) - nh(n-l,x) tako da Je med njima doloÄena odvisnost, in sicer h(n,x) = 2**-(n/2) * H(n,x/V2) kjer je '** ' operator potenciranja, in '* ' operator množenja. Procedura her[nl(n,x) izračunava vrednost h(n,x) z uporabo te formule, tako da je mogoÒa primerjava izračunov v listi 4/4. Proceduri glava(đev) In tiskaj(dev,xl,nl,herm) sta namenjeni izpisovanju izračunanih podatkov. Procedura tiskaj pokliče proceduro glava iz zunanjega bloka, dočira pokliče proceduro herm parametrično, V glavnem programu se pojavljajo trije klici procedure tiskaj (na koncu programa) z različnimi pro-cedurnimi parametri (herm, herm2, herral). Za izpis na vrstični tiskalnik Imamo prireditev dev t=. 6, pri dev := 1 pa bi dobili izpis na konzolo. h^U) 2 . 2 — n (-1)" e^ (e 2 ) za poljuben realen argument x in za poljubno (celoštevilsko) stopnjo n z rekurzivno formulo herra2(0,x) = i| her!in2(l,x) = Jt^ herm2 (n+1 ,x) = x*herm2(n,x) - n*herm2(n-l,x) Med obema tipoma hermitskih polinomov obstaja odvisnost = I^hj./JT) -,2 ■ in ta odvisnost je upoštevana s proceduro ■herml(n,x) v listi 4/3. v listi 4/4 je mogoča primerjava dobljenih rezultatov. 4/2.2. öebiäevski polinomi V listi 4/7 imamo štiri procedure za izraGuna-vanje vrednosti fieblgevskih polinomov, kot je opisano v besedilu liste 4/7. l'rocedura cheb(n,x) izračunava vrednost čebigevaKega polinoma skladno s formulo T{n,x) = cog(n*arccos x) ki je realizirana tuđi s proceduro chebco(n,x), ki pa uporablja standardne algolske funkcije sqrt(t), arctan(t> in eoa(t). V listi 4/6 so vrednosti za obe proceduri zbrane v prvih dveh podrazpredelnicah. Procedura chebc(n,x) Izračunava vrednost čebl-Sevskega polinoma skladno s formulo C(n,x) = 2*coa(n*arccos x/2) ■ izračunane vrednosti pa so zbrane v tretji- pod-razpređelnici liste 4/6. Procedura chebl(n,x) upošteva odvisnost C(n,x) = 2*T(n,x/2) tako da je četrto podrazpredelnico liste 4/6 mogoče primerjati s tretjo podrazpredeinico. Procedura tisk(dev,xl,cheb) natisne posamezne podtabele liste 4/6, pri tem pokliče äe proceduro glava(dev) neparametrično. V stavku FOR j I=2,4,5,7 DO BEGIN ... so vrednosti za 'n' fiksirane z 2, 4, 5, 7, kot je razvidno tudi iz tabele na listi 4/6. Podatkovni tok 'dev' je fiksiran s.številko 6, tako da imamo izpis na tiskalnik, vse izpisne rutine pa so parametrizirane z 'dev'. Pozivi procedur cheb, chebco,- chebc in chebl kot procedurnih parametrov v proceduri tisk imajo obliko REAL PROCEDURE cheb itd. zaradi zahteve enoprehodnega prevajalnika. n = s r. = 4 r. = S n ■= 7 s, aia000E-(st 3. eeideeE-äi 6.60000e-0i s. Bei0(Zi0E~01 -9.80000E-01 -9.20000E-01 -a.2Đ000E-01 -i.EööaiE-ai 5.48799E-01 9. £0e00G-01 9eö00E-01 3.A+800E-01 -g.e&aaiE-ei -3. 97641E-01 4.öaifc0E-01 8.451S0E-01 9.908S0E-0l -4.461E7E~01 • -7.B573SE-01 4S113E-01 -9.a70£lE-01 -a.46164E-0) g.44955E-01 -9.4a303£~0l M r, " a n = 4 1-, = 5 r, = 7 i.odeexAE-ei £.eeaeoE-ei • 3. Èi»000e-0i fl,e0000e-0i -9.80000E-01 . -g. 1939ÖE~01 -a. -1. 28800E-01 g.A8a00e"0i 9.20798E-01 6, 9279gE-01 3. 4A799G-01 -9.É6820E-01 -3.97£36e-01 4.80ie3E-01 8.45l.?BE-ei -4.4e.ie7E-0i -7.Ö3730E-01 -6.45116E-01 -9.a70SlE-01 -a,4É162E-01 9.44g53E-01 -9.4Ö303E-01 K n = E rt = 4 ifi = 5 r, = 7 1.000a0E-01 Ž, 00ia0Cie-ai 3.00000E-01 6.60000E-01 B.80000E-01 -i.ggaeiflE 00 -1.9&000G 00 -i.9i000e 00 -1.56AA0E 00 ■ -1. ££560E 00 i.960i0e 00 i.a4.t&0E 00 I.B4810E m 47348E-01 -4.97303E~01 4. 93010E-01 g.60320E-01 1, 3e,743e 00 K 98775E 00 1. 52037E 00 -6,a5070E-01 00 -1.73879E 00 -1,41714E 00 9.S1S69E-02 M Ti = £ n = 4 VI = 5 r. = 7 E.00000e-01 3.00(zi0izie-0i 6.6000eie-0i 8.e0000E~0i -1.Sg000E 00 -1.3&000E 00 -1.564A0E 00 -1.&&S60G 00 1.9&O10E 00 1-841&0E 00 1.64ai0E 00 4.4734SE-01 -A.g7903E-01 4.g5010E-0l 9.60320E-01 1. 3&743E 00 1.9877SE 00 1.SS037E 00 -6.86070E-01 -1.290E3E 00. -1.73079E 00 -1.41714E 00 9.51569E-0S Lista 4/6. Ta lista (razpredelnica) je rezultat štirih izračunov vrednosti in sicer za čeblševak^ procedure cheb(n,x), chebco(n,x), ohebc(n,x) in chebl (n,x) , ki so zapisan"v proSsk? Usti I/f lil ttZ ^rimerfilvr^'^^'/n'^'"" rezultate izračuna Prednosti čeh^ševskega^poflnomrtipf^'^i; 3S BED IN COMMENT Poskusni iz)~acun vrednosti Cebisevovega pol i noma Naslednja procedura je pi-edmet nase pozornosti ' REAL PROCEDURE chebtn, k); VfiUUE r,, xi INTEGER n; REAL » ; BEGIN REAL a,b,cj IMTEGEB i; ai=l5 bs=x; IF n=0 THEIM csi=a ELSE IF r.= l THEN c:=b ELSE FOR ls=a STEP i UNTIL n DO EiESIN iìij=b5 b!=c EMD; cheb:=c END cheb Tudi ta procedura je predmet nase poaornosti REAL PROCEDURE chebc(n,«>j VALUE n, H ; INTEGER h} REAL BEGIN REAL a,b,cj INTEGER i) a!=£j bs=>i; IF n=0 THEN c!=a ^LSE IF n=l THEN ci=b ■ ELSE FOR i,=S STEP 1 UNTIL rt DO BEI3IN cj=><»b-a) ai=b5 bs=c END 5 chebc[=c END chebc Tudi ta procedura je predtaet nase poiornost i **•«■»••#«# ««.ut»»*.»» J REAL PROCEDURE chebco (ri, m ) j VALUE n, K| INTEGER r.) REAL H) BEGIN REAL arccos; . 3rccos:=arctari (sqrt ( I-k»» > /h) j chebcCiS=coB tn»arccos> | END chebcd. Tudi ta procedura jje predmet nase pozorriost i REAL PROCEDURE chebKn, k); VALUE n, m IhJTEGER nj REAL x; BEGIN X Ì=K/£Ì chebl!=S*cheb(n,«)j END chebl PROCEDURE glava ; text (dev, "»N---------- n S END glava PROCEDURE tisktdev,Kl.cheb)1 VALUE devi REAL PROCEDURE cheb} ARHAV Ml j INTEGER dev5 BEGIN INTEGER i,j,-glava(dev); FDf? i 1 = 1 STEP 1 UNTIL S DO BEGIN ski p(devi ; rwrite(dev, Ml Ci] ) ( FOR j;=£,4, 5, 7 DO BEGIN text (dev, " "); rwritetdev,chBblj,KlCi3>> j END END 5kip(dev>; ski p(dev); END tisk ===5S5SE== Začetek preizkusnega prograwia REAL ARRAY «1 CIiSD j INTEGER dev) dBv:=6} COMMENT Inicialisacija polja «If Micn != 0.1; Kicsa s= ß.Si xicsa Mit« «!. 66; M1C53 1= 0. Böf tisk(dev,Ml,REAL PROCEDURE cheb); tisk(dev,}fJ,y;i, 1«9> J VALUE dev; HEAL PROCEDURE lag; ■ RftHAV Kl, integer flfimv r,li INTEGER dev} BEGIN INTEGER i,j; g 1 ava > | END • END _F.kip = 1; leg(l,x) = Xf leg(n+l,x) = leg(n,x)*x + + (n/(n+l>)*(leg(n,x)*x - leg(n-l,x))> M ri = £ r, = 3 1-1 = 4 r« = 6 e. e>eiei0i3E 00 -5.00000E-01 0. 0đ000E 00 3. 75000E- -01 -3.l&5a0E~01 3. 50aöl(0E- -01 -3. Ì&£50E;-01 -4. 17ai£E- -01 -1.07£S3E- -03 £. ££510E-01 6. 9(a000E- -01 S.14150E-01 -£. 137SflE- -01 -4. iseaaE- -01 -9.&6139E-0S 7. -01 £.35000e-01 -1. g£500E- -01 -4. I£06£e- -01 -1.252e6E-01 9. 90000E- -01 g.70i4gE-0i 9. 407A6E- -01 9. 0££3OE- -01 a.00£a7E-0i tista 4/11. Tabela kaže vrednosti izračune legendrsklh polinomov s programom na listi 4/10. ESTIMATtON OF TRANSFER TIME CHOSEN BLOCKS CYLINDER UDK: 681.327.63 THE AVERAGE OF RANDOMLY FROM A DISC MIROSLAV B. JOCKOVIC INSTITUT FOR NUCLEAR SCIENCES - VIWČA The paper deals with a part of the research of efficient use of magnetic discs and coritains the analysis of the transfer time of a group of blocks on a single disc cylinder. The optimum strategy of accessing sectors was considered in order to minimize the transfer time of selected blocks. The pfo-±iability distribution function has been defined which describes the distribution of blocks, 1 sector in length, on a magnetic disc cylinder and a mathematical model for data transfer time has been given. The model has been proven on a computer system. The naper also deals with aspects- of the model application. Rad pretstavlja deo Istraživanja efikasnog kori5<5enja magnetnih diskova i sadrži analizu vremena prenosa grupe blokova sa disk cilindra..Razmatrana Je optimalna strategija pristupa sektorima sa ciljem da se minimizlra vreme prenosa izabranih blokova. Definisana je funkcija distribucije verovatnoda koja opisuje distribucije blokova dužine 1 sektora na magnetnom disk cilindru i dat je matematieki model vremena prenosa. Model je potvrdjen na raCunarskoi" sistemu- Rad takodje razmatra aspekte primene modela, ' ■ 1. INTRODUCTION The main restriction In online processing is the time it takes to trans^fer records between store and discs. The delays which result from these transfera can be- a very critical factor in system performance as a whole. A number of software and hardware parameters can affect the disc transfer time. This paper is only a part of the total problem and contains the analysis of the transfer time of blocks distributed on a single disc cylinder. Suppose that K blocks are requested from the cylinder with I tracks and N sectors per track. Each block one sector in lenght. Let the distribution ef requested blocks, shown in Fig. 1, be one of the possible distributions of K = 13 blocks on the cylinder, with N •• 15 and I = 20. N 20. 1 2 3 4 5 6 7 ... 15 12 3 17 18 '49v 5 20 35 M Fig. 1. Disc cylinder Nnraber.1,2,3,4,5,17,18,19,20,34,35,36,49 represent the block sequence numbers on the cylinder. If we define a sector column (denoted by the shaded area) as a set of I sectors locate<' at the same angle with respect to the reference mark, the distribution of blocks per sector columns is 1224310...0. This means that one Mock is in sector column 1, two blocks in sector column. 2, etc. The minimum transfer time can be realised if we first access a -sector column with the maximum number of blocks'. So, if we access sector column 4 first,we shall traverse 48 sectors in order to- transfer 13 blocks. Generally, we wish to investigate the timing aspect of the data transfer and to produce ah analytical expression for estimating the.average transfer time of a group of randomly distributed blocks held on a disc cylinder. Little work has been published in the above problem area (for example, see the references 1,2, 3,4), although a great deal of related work" has been published on the analysis of disc performance for different file structures. Weingarten /1/ first discussed the techniques of sector scheduling. He simplifièd the drum model, using conservative approximations, to the extent necessary for the application of well-^known results from the theory of queues applied to analogous gueueing modéls. penning /2/ extended Weingarten' s results and studied the significant incre- ' ases in the performance of both disc and drum systems brought about by scheduling their usage.. ^y Scheduling is meant the sequencing of existing demands on the system according to the state of thè system and characteristics of input/ output devices. Theory and Pinkerton /3/ improved father the scheduling technics. Fuller /4/ suggested certain considerations in reducing the rotational time. Further investigation in this area are.aimed at discovering new aspects for effeclent disc utilisation. 42 2. MATHEMATICAL MODEL Let d = (N, Nj ) represents a dis- tribution oE requested blocks on a disc cylinder with Cj^ sector columns each including N^ blocks, Cj sector columns with blocks etc, and finally Cj sector columns, each with Hj blocks, whereby I i Nj > Nj > ... > N^ >_ I and According to distribution d we can say T(N,I,K) 1 + + r (1) (2) (3) In order to read (or write) and transfer the first block, l+N/2 sectors must be traversed In average. L^j is the number of sectors traverseci Suring the transfer of the K-1 blocks upon the first block has already been transferred from one of the sector columns from group C^. P^ is the probability distribution function for different distributions of K blocks in N sector columns. Here, we shall derive a probability distribution function which gives correct results in the Interval 1 < K ^ M x I. First we define the total number of possible methods of selecting K blocks from N sector columns, l.e.,U. Let Wj^, mj'-'-'"^ Integers such that K, I 1 lOj >_ 0 (4) The number of ways In which a population of K elements can be divided into N ordered parts (partitioned into N subpopulationa and ordered by sector columns^) of which the first con* talna mj^ elements, the second m^ elements, etc,, is K K-m L )( I, K-m.-m, K-m,-m. ., ,-m„_, ><«, >••■< J > HI3 Sote that the order of subpopulationa is essential In the sense that, for example (m^^ = =3, mj^S,.,.) and ,^2=3,..,) represent different partitionsj however, the order within mj^ is not relevant. If we want to introduce the order of the subpopulations, we must multiply the amount (5) by t ion nf m|s which have the value Jt). Summing All different populations, the expression for 'J becomes : K K-m, K-m,-m, " = ^L > m ' < m > . "^N-l Nl It a l fa (6) where u is the total number of populations which differ one another by the value at least of one element of m^^tl 1,....,N). Gq. (6) can be easily reduced to; KIN! U gi m^ tmjl . . .m^jl I n a,i £=0 * (7) The number of ways In which K requested blocks can be distributed among ..+Cj sector columns represents the favourable cases in the sense of the distribution d. Let denote this number by V. In order to calculate the proba-llty distribution function given by P^ » = V/Ü, we must find V. The evaluation Of V is as follows. N There are ){ 1"1 (Cj^Nj^) ! (Hlt)'^l (8) different selection methods of C^ sector columns with the maximum number of Nj^ blocks per sector column, where (g ) = different selections of Cj^ sector colu-^ mns from a total of N sector columns, I"1 )=different selections of Cj^Nj^ blocks from a total of K blocks. (Cj^N, ) I -?r-=permutation with repeating C,N, blocks (Nl)l 1 stored in Cj^ sector columna, whereby the sequence within each sector column is unimportant from the aspects of the distribution d. N-C, K-N,C, (C,N-)I There are ( ^ ( „ Ì ^ % (tljD'^Z (9) different methods of selecting Cj sector columns with N^ blocks per sector column, etc., and finally, for the J-th group of Cj sector columns with Nj blocks per sector column there are N)/ n al 11=0 (Oj^ is the number of elements in the distribu- different methods of selection. Ab the events (1 = 1,2,...,J) are simultaneous, the number of favourable cases V Is obtained from the product "^here is an insignificant reduction in the transfer time when adjacent sector columns contain the maximum number of blocks. 3, verification of the model H K (N-C, )1 N-C, K-N,C, (N,C-)1 (NjU^J Eq, (11) can be readily reduced to:. K!N(S) (11) V = n (N. 1) ^.c, 1 1=1 ^ ^ where N(S)=N(N-1)(N-2)...(N-S+1) (12) (13) tii order to verify the model an experiment was conducted on an ICL .2903 computer system operating under a manual executive. Processing vas carried out on PERI level (ICL's Assembler) without the use of House)teeplnq package (sets of subroutines which enable the programmer to accesa data In direct access files at the record level). The system consisted of a main program in FORTIU^N with a PLAN ■ subroutine. The subroutine' measured the access and transfer times of the contents of a group of blocks into the operating store for each individual distribution. The main program identified subsets of blocks in sector columns for each distribution, starting and ending blocks, etc. and S = E C, 1=1 ^ (14) Finally, the expression for the probability distribution function becomes K(S) ^ d 0" (15) NJ ( n N.I 1=1 ^ m^lm^' • •>»[,1 J! £«0 Now we need to explain the procedure for gettincf Ld. Additional Nj^-1 revolutions, or N(Nj^-l) sector tlities (one sector time is the fime for reading or writing 1 block) are required In order to transfer Nj^-1 blocks from each of the sector, columns from group Cj^, During this period all blocks from groups of sector columns ' * • •'^'j have been read as they have fewer blocks per sector column. However, we need to add N(l- ~) sector times for transferring the last blocks from the remaining Cj^-1 sector columns. This increment in time due to last blocks in group Cj^ la calculated using the mathematical theorem given and proven in APPENDIX . If we denote this Increment by M{C), Its value is readily obtained by substituting C = Cj^-1 in M(C). The total time for this distribution, together with the additional l+N/2 sector times for reading the first block, amounts to To provide the handling of experimental data, it is necessary to establish the relation between the measured quantity t^g(K) and the parameters of the exE>eriment N, i and K (tj^g(K) is the time required to transfer K blocks from S sector columns in i-th distribution). Firstly, v/e must determine the number of ways in which K blocks are iJistrlbuted over Š Sector columns for an arbitrary distribution 1, D^g. Suppose now that, we have nj^^+n^^^"*"'• ~ where n^^ means the number of blocks to be transferred from the-j-th sector column tn i-th distribution. The number of n^^^'s different from zero must be equal to S. It comes out that exactly N-S of n^j's must have zero value. The number of distributions of n.. blocks over Ì tracks I ■ of j-th sector column is (_ ). Accordingly, ii p^g is given by .''ll- "i2 . "iN Multiplying D^g by t^g(K) gives the time to transfer all D^g combinations of K blocks from 5 sector columns in a given distribution i, Tj^^. The number of distributions i is the number of distinguishable distributions in which none of sector columns remains empty and amounts to SK (gl}) /ref. 5/.' ■Evidently, r,„ must be summed over all R_„ disia oK tributions to obtain T„. It should be noted H that Tg is obtained only for one, of (g) possible combinations of sector columns. To include all M (j,) combinations of sector columns in our statistični com'->i)tat1-0npi it is necessary to multiply Tg by (") to obtain T^j^g. Now, T^^g should be sununed over all values which S can take. Evidently, the lower value of S is Sp=fj, while the upper value is S^^ = N for k/H ^ 1 and S = k for k/N « 1. Thus, we obtain T„ _ = I T., „. The experimental mean trans-S r -a _p fer time,t^{N,I,K), is evaluated by dividing T„ _ by the total number of all distributions of K blocks over N sector columns with I tracks, '^total' normalized experimental mean number of traversed sectors during the transfer of K blocks, Tgiusy until the end of transfer of the group of blocks, irrespective from block positions on the cylinder. A correct probability distribution function defining the probability of each random selection of a group of K blocks from a set of 'ixl sectors is derived. Although the paper considers only the physical data organisation, a suggestion is made to include the model descrl-hßd into the operating system in order to improve i-.he system performance. 4G APPENDIX REFERENCES Theorem! If C of different Integers are selected randomly (with no replacement) from a group of Integers 1,2,...,N, the expected value of the maximum integer amoiig C numbers selected is M(C) = (1 - T+Č )N Let us give one of the possible proofs for this theorem. In taking C numbers out of N possible numbers, the maximum numbers can be, C, C+1, C+2,..., N-1,N. The remaining C-1 numbers can be drown in the following number of ways Ic-l'' »c-l'' 'c-l' 'c-i'' 'c-l' (18) The total number of poiBsible combinations in drawing C numbers amóunts to (p), Therefore, the mathematical expectation of the maximum value of the integer among C selected iss /1/ Heingarten A., The Eschenbach drum oherne, Comm. AGM 9,7 (July 1966) /2/ Denning P., Effects of scheduling on the file memory operations, Proo. ÄFIPS SrfCC, Vol. 30,AFIPS Press, Montvale H.Y.,1967 /3/ Theory T.J. and Pinkerton T-B., A comparative analysis of disc scheduling policies, CACM, vol. IS, No 3, 1972. /4/ Fuller S., Analysis of Drum and Disc Storage Units, Springer-Verlag, Berlln-Heidelberg-- New York, 1975 /5/ Feller VI.* An Introduction to Probability Theory and its Applications, Vol. 1, John Hiley s Sons, New York, 1968. /6/ Coffman E. and Denning P., Operating Systems Theory, Prentice Hall, New Jersey, 1973 /7/ ICL (1974), Direct Access, Technical Publication 4385 ICL (1972) , Plan Ileference Manual, Technical Publication 4 322 M(C) C J) + (C+l) ) + (Cf2) +. . . +N (^'J) ^r——— r i (^.J) 'c' c "i? " i r; i=c ^ (19) N For the calculation of the sum r the fol- i=C lowing mathematical relation will be used: <20) From Eg. (20) and (19) follows thati N , N-C d) = E {"^c"' i=C ^ . )c=o ■ N+l ' 'c+i' (21) By substitution Eg.(21) into Eq.(19) one obtains C .,N+1, : C M(C) TTT 'cn» = ■ (22) and for a large N (N >> 1) M(C) - T7Č'« (23) Ml KROR ACUN ALN ISKI SISTEM ZA NADZORIN VODENJE DNEVNIH KOPOV MILOŠ JENKO, BOŠTJAN DE LAK UDK: 681.519.7 ISKRA DO AVTOMATIKA, TOZD PROJEKTIRANJE IN GRADNJA SISTEMOV Članek podaja multimUfroraSunalniškl sistem zasnovan na aepljekih vodilih in možnosti njegove uporabe v nadzoru In vođenju segmentov in dnevnega kopa v celoti. Sistem je sestavljen iz aparaturne opreme družine TI-30 in programske opreme, katere Je programski paket MOS^IK (mikrooperaoijskl sistem protokoliranja in krmiljenja). centralni del Prikazana je mođularnoBt celotnega sistema in povdarjena je njegova uporabnost v aplikacijah različnega namena In obsega. Programski paket MOSPIK omogoča zajem do 240 signalizacij z ločljivostjo 10 ms in 55 analognih meritev v času ene sekunde.- Vsebuje vse standardne obdelave nađ vhodnimi informacijami In nudi možnost prikaza informacij na alfanumeriSnem zaslonu ali plsalniku. V Slanku je podrobneje obdelana aplikacija paketa na projektu REK Bitola, kjer je izpeljan nadzor delovanja štirih bagrov, dveh odlagalcev, drobilnice, transformatorske postaje In sedemnajstih transporterjev. The article describes the microcomputer system, based on aerial buses and possibility to be applied for supervision and control of segments and surface mining on the vhole. The system consists of hardware from family TI-50 and software the central part of which is the programming pachage MOSPIK (mlcrooperatlonal system for registering and control). The article represents the modularity of the entire system and points out its usage in applications of varions purposes and scopes. Programming pachage HOSPIK encompasses up to 240 signallings with resolution 10 ms and 55 analoge measuringa in time of one second. It deals with standard processes of input information and indicates it on alfanumerical display or printer. The article shows in all details the application of package on the project REK Bitola where the system supervises four dredgers, two unloaders, crushing units, transformer stations and 17 conveyers. Procesiranje informacij v projektu REK Bitola se sestoji iz treh delov: - zajem Informacij - obdelava Informacij - Izdaja informacij ZAJEM INFORMACIJ V projektu REK Bitola zajemamo 574 enobitnih digitalnih informacij z ločljivostjo ene sekunde. Dobimo jih preko telemehanskega sistema TM-15 in digitalnega aparaturnega modula DIV-D. Naloga programskega paketa HOSPIK pri zajemu je, da določi spremembe disitalnega vhoda. Pod to adreao je vsebovana skupina osmih enobitnih digitalnih signalizacij, ki vsebujejo tudi nastalo spremembo enega ali več digitalnih vhodov. Informacija, ki vsebuje naslednje podatke: - byte, ki označuje skupino digitalnih informacij, kjer je nastala sprememba, adresa skupin, kjer so nastale spremembe, se shrani v krožni pomnilnik, ki predstavlja vhodni vmesnik za nadaljno obdelavo vhodnih Informacij. Modul, lei Ima nižjo prioriteto lavode, is prej omenjenega vhodnega vmesnika naslednje operacije! ia byta, ki oanačuje skupino spresaemh, ugotovi Število blokov, ki jih bo treba formirati.za vpis v naslednji vhodni vmesnik modula, ki bo iavedel nadaljne obdelave, ~ vsak formirani blok vsebuje podatke; " dolžina bloka;■ - adresa skupine vhodov, kjer je nastala spremembaj - digitalno' atanje na vhodih in realni 5ae nastanka spremeahe (ura, minuta, sekunda in stotinka sekunde) OBDELAVA IKPORHACIJ S pomočjo statičnih list in vhodnih podatkov poiäSe v ranžirni listi {programska preslikava enobltnih digitalnih fiaiSnlh vhodov) ustreano podllsto, ki vsebuje aadnje stanje vseh digitalnih vhodov v eni skupini in pripadajoöa tehnološke adrese. 3, primerjanjem vhodnega byta stanj in byta atari j v ranžirni podi iati, poläCe spremembe atahj digitalnih vhodov v skupini.- S pomočjo tehnoloSke adrese vplSe novo atanje v banko digitalnih slgnallaacij. Pri laraSunu Časa delovanja poaaneanega objekta se pripravi vhodni vmesnik sa modul za iaračun casa. Ta vsebuje podatke: . - dolžina bloka, - tehnoloSka adresa digitalnih signalizacij, - realni čas nastanka spremembe. Ko je sprememba obdelana, modul pripravi blok podatkov za iapia obratovalnega stanja informacije. Ta blok vsebuje! - dolžino, - Številko iahodne enote (CRT, printer), - podatke o realnem času spremembe, - pripadajoče tehnolöäke adrese, - atanje digitalno Informacije. VpiSe ae v vhodni vmeanik modula za iKpis obratovalnega protokola. Modul za Izračun časa delavanja objektov določi čai5 delovanja s pomočjo vhodnega vmesnika In statičnih liat. Ta čas delovanja v zadnjem intervalu ae priSteje k okupnem Času delovanja objekta. Celotni izpis pri projektu REK BITOIA ae vrši na enem vhodneiB kanalu - na printerju. Kljub zahtevi po izpisu spontanega protokola ae lahko ciklični protokol nepreklnjemo izpiäe, Ta se v tem primeru izpiše po zaključku aikllfinega protokola. Seatavljena vratica v obliki A3II kode se a pomočjo modula aa izpis prenese v Izhodni vmesnik. Vrstica ' se na izhodno enoto (printer) izpisuje znak po znak s pomočjo menit or skega dela programskega paketa' MOSPIK. Modul aa spontani ispis vzame iz pripadajočega vhodnega vmeanika podatke. Po vlfljučeneffl algoritmu 8 pomočjo statičnih liat določi kodo digitalnega vhoda in pripadajoče delne tekste. Vrstico spontanega protokola sestavljajo: - koda digitalnega vhoda, - tekst a opisom digitalnega vhoda, - stanje vhoda in realni čaa nas-topa spremembe na digitalnem vhodu. Kodul za ciklični izpis s pomočjo dinamičnih in statičnih list aestavi 25 vrstic teksta ®a 25 objektov. Te vrstice prenese v izhodni vsesnik za izpis na printer. Vrstica cikličnega Issplsa vsebuje kodo objekta, tekstni opis objekta in čas delovanja ea cikal zadnjih osmih ur. IZDAJA. ladaj informacij je sestavljena la dveh delovs - spontani lapla Infortnacljo - ciklični izpis informacije FUTURE DEVELOPMENTS IN COMPUTER ARCHITECTURE UDK: 681.324 J. V. KNOP, K. SZYMANSKI, N. TRINAJSTtĆ COMPUTER CENTRE, UNIVERSITY OF DUSSELDORF 4000 DUSSELDORF, FEDERAL REPUBLIC OF GERMANY Abstract An overview is given of the development of computer architecture. It'is shown which approaches provide more computational power without changing the well-known hardware technology ot silicon-based chips by developing new computer architectures. Multiprocessors, dispersed networks,, local networks, data-flow systems and highly parallel systems are discussed. Their impact on mathematics and natural sciences is expected to be-enormous, especially in the area of non-numerical aspects of confuting, Ear surpassing the present achievements. jPovaetgk_ Fodan je pregled poti razvoja računaIniSks arhitekture . Obravnavani so večprooesoraki siatemi jporazdel jene in lokalne mreža in sodobni paralelni sistemi.Povdarjen je vpliv tegs razvoja na naravoslovne vede v okviru'; n enumeri č nega ra-5unanjB. 1. Introduction Considering the development of.digital"computers one finds that the speed of computation was increasing by a factor of 10 every 3 years throughout the sixties and seventies. This tendency was described by the "Gcosch-Rule" (Figure 1) which states that the computational power is a function of the square of the costs (effort) (1); if one pays twice the price of its predecessor, one obtains a computer which has four times the computational power. And this computer had the advantage of being compatible with the predecessor. The reason of this development has to be seen in the rapidly evolving technology of microelectronic components and integrated circuits. This progress has historically gone from circuits containing gates, to MSI (Medium Scale Integration) chips for byte-sliced processors, memory and input-output functions. The current plateau of micromlrilaturizatldn, namely Vety-Large-Scale-Integratlon (VLSI), is enabling the introduction of integrated circuits (icsj with cost performance characteristics (Figure 2) that ate ordets of magnitude superior to circuits available only a few years ago. By the mid-BOs, million-bit memory components should be In production. By 1990 single-chip microconputers and custom iCs can be expected to contain'a million active devlcés (e.g. transistor elements) (Z). throughput r... ...... domain ofi Grosch-Rule asymptotic area costs (with one central processor) Figure 1 : Groficih-Rule But this progress in microminiaturization has to come to an end as physical boundaries are reached. We only point to limitations present in the fabrication of the chips (wave length of light), the problems of effl-ctency/costa .....microprocessors (200!1/decade) __secondary memory . (100!1/decade) —^aln-frame cpu (tO:l/decade) Figure 2 r , / 1960 1970 19 BO year several physical effects on the chip such as - power dissipation - usable area of silicon, - cosmic-radiation faults, ^ - thermal and electrical noise, etc. Of course exténsivé research and development in the following areas will extend these boundaries - process and material technologies (especially in regard to improved material purity), - lithography techniques (improvements in photolithography, UV, x-ray and electron-beam lithography) , - design and simulation techniques, - packaging fCor example, effective heat dissipation, reliability and pin'-out limitations), - testing (adequate fault detections, cost efficenciea, selfteatlng, etc.) In this area the combined efforts of molecular biologists, chemists, physicists and mathematicians may introduce quite a new technology based on the idea of the molecular switch. Thefore, the research in the area of bioelectronics should he viewed with optimism and hope that new kinds of chips (blochips) will emerge with superior properties in cotrparison with the chips presently in use. What we can see at this point is that the. validity of the Grosch-Rule is bounded so far as computers, of the normal "von Neumann" -type are concerned. The Grosch function will lead to an asymptotic behaviour. By a von Neumann architecture we understand a computer consisting of a memory, a control unit and an arithmetic/logic unit, instructions and data are stored in the memory and are processed in a "natural" sequence of instructions and addresses (Figure 3). ■ Input Figure'3! von Neumann computer A new approach to get more computational power has. to be made. This approach uses well-known hardware and tries to find a way to get.more computational power by combining many computers into a network of computers, into a multicomputer system. Several types of multicomputer systems have been developed« li multiprocessors, 2. dispersed-networks, 3; local networks and distributed systems, A. data-flow systems, . 5, highly parallel and internally concurrent systems. We will consider these five types of multi-cotiiputer systems and discuss some of the advantages and disadvantages iaf these types of architecture. 2, Multiprocessors One of the first ideas of getting more computational powee was the simple mult i plication of the structure which led to multiprocessor structuces. In 1971 Minsky marte the conjecture that you can only exoect an increase of the throughput of loqaritVimus dualia p (Id p)(Figure 4), where o is the nomhet of processors. maximum»? SCHEME I Id p (number of processors) p Figure 4: Minsky's Conjecture The limited local complexity of multicomputer systems So while constructing multiprocessors one has to reduce the global complexity, for instance by connecting one processor not with all the other processors but only with his four neighbours. Hereby you can assure that the local complexity will be constant and the global complexity grows only linearlly. scheme ii This conjecture 19 nowadays assumed to have been hindering the research on the field of multiprocessors, because of the conditions for Minsky'B statement vias that only one job is processed. One finds other conditions if one processes more than one program or programs which have the ability to be processed in parallel. One of the greatest difficulties in constructing multiprocessors is the "degree of complexity" resulting from the necessity of combining all processors with each other, while the local complexity (that is the number of processors which are linked to one processor) is only growing linearly. In the graphs in scheme I and II the processors are denoted by the vertices and the connections between them by the edges. It is easily seen that the local complexity - the degree of the vertex - is equal to n-.l if each processor is connected with each other processor (n is the number of processors) , and the global complexity is equal to the number o£ connection£s, i.e. edges of the graph, k = n(n-l.)/^. Global Complexity Local Complexity k = iiJ^ » 21 n-1 = 6 In the times of expensive hardware a considerable effort was spent on the construction of systems which made sure that the processor at any time finds a program which can be processed. SI This led to the principle of time sharing. Now in the times of diminishing hardware costs one finds a tendency that a program (or bettertask) will stay in a processor for a longer time, processes data and moves data to the next processor which is then responsible for further processing of this data. One gets a flow of data through a field of processors working in parallel.. To organize the data flow through the processors and distribute the tasks to the processors the operating system may be in a special processor or special layer of processors fif the operating system is divided In parallel working tasks, too>. The architecture of this multiprocessor will look like a pycainld of processors linked, horizontally and vertically together (Figure 5). Atthis point we have to mention that all.processors are of the von Keumann-type, Figure 5: Multiprocessor architecture with constant local complexity ■ It is useful to construct programs being , processed on such, a multiprocessor in a way that segments of the program which ace processed concurrently are formulated in special tasks. We give as an example of this way of processing the" "Many-Dody-Prohlem" in puantura mechanics (Figure . Another example which can be solved easily in this way is ah initio, computations In quantum chemistry (1). - 3. Dispersed Networks 3.1 Logical Structure As communication reliability continues to increase and long distance communication costs continue to diminish, it becomes increasingly feasible tó develop computer-communication networks spanning wide geo-, graphical areas. The demand foe reliable, controllable communications in distributed systems, and to some extent, the desire for verifiable protocols has led to the definition and standardisation of various levels of intercommunication abstractions in such networks. The current decomposition is the 7-Layer-ModeI (4) (Figure 7) such as Layer 1. Physical 2. Link Network Transport 5. Session Presentation Application Layer Application Presentation Session Transport Network . Data Link ■ .Physical Examples ISO Z5<)3 (International Standardization Organisation) HDLC (High-Level Data Link Control), SDLC (Synchronous Data Link Control) X,2S TCP (Transport Control Protocol) SNA (System Network Architecture) VT .(Virtual Terminal) IPC (Interprocess Comuni- cation Protocol), FTP (File Transport Protocol) intermediate node physical media for . interconnection Figure It Layeirs of the reference-model S2 compute new location body i increment i change old location by new compute compute compute new r>ew new location loc. location 1 i n Figures 6i Many-Body-Problem (sequential) Figure 6: Many-Body-P rob lem (parallel) Standardieatlon of the lower four levels in this hierarchy provides the hasis £or flexible Interconnectability. The physical level is concerned with the actual sequence of bits being transmitted on a communication channel between systems. The link level is concerned with the establishment atnd maintenance of Internode links. The network level Is concerned with maintenance of the network and protocols for system intercommunication, including touting. The transport level is concerned with the transmission of packets, particularly end-to-end control of their reliable delivery. The upper three levels are more application dependent and consequently less defined. It la hoped by the standardization qroups that the establishment a£ such standards will have a stabilizing influence on computer proliferation, i.e. by increasing the ability of computers to be linked together. This standardization is also important to permit the construction of multioomputer structures of different hardware-components. 3,2 Examples A good example for a dispersed network is the ARPANET, although its protocola should be considered as prototypes rather than as standards. A new network has just heen established in the U.S. as a project of the National Science Foundations CSNET {The Computer Science Research Network) (!>) , It is a logical network (Figure 81 utilizing the services of several physical networks, namely ARPANET, Phone Net, Telenet. There ore three service-functions implemented in CSNET - network mail (available to nil users) - file transfer, to copy Elles from one host to another, remote login, which is the ability to log into one's local CSNET host and use the network to get to another CSNET host and log in there. ^ HOST Figure 8: Logical Structure of CSNET (5) 3.4 Workatatlons In close connection with the development of aispersed networks we have to see the development of workstations. Due to the sinking costs o£ hardware, personal computers are gaining more Importance. They may be used in offices (public and business administration), schools, universities (fi), research laboratories (6), computing centers, etc. Portable workstations help to allow one to become independent of a certain working place. In contrast to the use of terminals of mainframes, single-user-computers guarantee independence and aie always available. The user profile may be designed to the knowledge and the special interest of the user. However, in many cases workstations alone will not be sufficient. A user may need facilities which are expensive to buy or which any user does not use continously. À highspeed printer, a good quality printer, highspeed disk storage, archiving Eacilities .and service programs are examples for such facilities. In addition, there ace.problems which cannot he solved on a small personal computer, hut must be done on large or very large computers. Second, the normal office worker or scientist or any other person using workstations rlo<»s not work in a vacuum and needs to comitiun icate in various viays with the outside world. , To do this there is a need Cor access to Specialised services and databases, intor- mation' services, libraries, patents information, dat networks.and electronic mail services.. These should be accessible from the user's desk. For. example, automated office systems generally based on interac- . tive workstations connected to a communication network. In conclusion one can say each workstation has some degree of functionality: text processing, communication and personal applications, which include in many cases graphic functions (7). Workstations are typically single user (hut multi-tasking) computers with local processing power, a keyboard, a visual display screen (which can eventually be replaced by a TV), local magnetic storage (floppy or : Winchester drives) and a quality printer. The keyboard should be suitable for text handling. In many cases good support of program and data input is also useful. The -keyboard may be replaced or supplemented by a mouse or another easy input system. The high resolution screen may have graphic facilities, for both line art graphics display and for the. display of facsimile transmissions and other digitised images. For graphics a non-impact image printer is requi-' redi For economic reasons this will probably need to be a shared central facility, but ■in the longer term it may be possible for this to be provided in the workstation, Ergonom^ considerations are important not only" from the point of view of convenience, comfort and safety àt the operators, but also for the need to minimize errors by bad human interfaces. As workstatons come into use in offices and othér normal working places things like visual screen, keyboard, etc., have to be designed to ergonomie aspects. Environmental factors as heat and noise, etc., have to be considered (S). Other general important points'of workstations are reliability, simplicity, flexibility and adaptibility. In almost any case text processing facilities are required. Tayloced'to the different roles of workstation there may exist different ■ softwa ré modules: decision support systems ,. computer aided graphics and design tools, compilers, etc.. To allow the communication functions, workstations must have access facilities to Local Arda Motv/orks and. to Public Networks. ' 1--ÜP-: The following should be available, for example: - electronic message systems £or person-to-person coniniunication - teleconferencing systems - Telete* - Facsimile: electronic transmission of images which typically are not text, soch as pictures, drawings, annotated documents, etc. - remote data accessi file transfer, access to remote (distributed) data bases • - remote access to central computing facilities - terminal access to other computers - remote job entry. can he up to 500 meters in length. The current design is limited to a maximum distance of 2.5 kilometers. One hundered terminals can he supported per segment, and overall maximum is at present 1000, The Ethernet, as it is most often used, acts merely as a communication medium. Computational resources of a particular maschine are not made available to any other maschine in the local network. Xerox has been pursuing a very interesting experiment in which programs can span meschine boundaries. Such programs are called worm programs. A worm is composed of program segments, each of which is capable of running on any other maschine. The worm mechanism finds free machines as needed. 4. Local networks and Pisteibuted Systems The technology developed for distributed networks has also influenced the design of local networks (4«3). Prom a functional point of view, a local computer network may be thought of as inhabiting a region between multiprocessing systems and dispersed networks for purpose of resource sharing. Characteristic of a local network is the existence of a high-speed transmission medium (up to 10 HBits/st for data transmission over a "limited" (i.e. 0.] - TO km) distance. The nature of the transitiission medium and the topology of the network are left unspecified. Several network adapters attached to this transmission medium serve as line interfaces for computing equipment. The adapters transmit data on the transmission medium. Computing system components can be attached to the adapter. Much effort has been devoted in recent years to developing technologies for local networks. Two of the basic networking technologies that have been developed are the ring and bus network. One of today's most widely emulated local network technologies is that of the Ethernet 17.) . Digital Eoulp-ment Corporation, Intel Corporation, and Xerox Corporation are jointly developing a local area network based on Xfico* Ethernet, This network consists of a coaxial cable as transmission medium and transceivers to link different kinds of computers, peripherals and data terminals. The network is designed to operate at 10 million hits pet second. A typical configuration consists of one or more segments of coaxial cable each of which 6. Highly-Patallel and Internally Concurrent Systems The computer architecture introduced with - dispered networks and - local networks should increase the computational power in the sense of getting more throughput for a community of users, to get additional functions on remote hosts or to find adequate computational power for solving special kinds of problems. These architectures do not help one to get high speed for extensive computation for solving a single problem. For these computations for instance on the field of computer tomography, pattern recognition, or quantum chemistry, one needs the so called supersystems (10,13), By a supersystem we understand systems with throughput in excess .of one billion Instructions per second and with general purpose computational flexi-bllty. These systems, of course, do not exist today). At this point of discussion we have to mention highly parallel and internally concurrent systems such as ILLIAC IV and vector-machines as CDC Star, Cray 1 and CDC Cyber ?05. The systems are often thought of as multiComputers but they can he thought of at a very high level of abstraction as systems that logically have only a single processor and a single instruction stream which is able to operate on a field of data. These architectures do not lead to a 'supersystem because of lack of general purpose' computational flexibility. be 6. Data-Flow Architecture One of the jnost exciting new directions in multicomputer architecture is untruestionahly the data-flow concept (?) . In tra<1itional computing systems fvon Neumann machines), a processor addresses a piece of data-hy its location. An Instruction is executed with whatever data happen to be in that location and the processor then goes to the nevt instruction. Thus the data come to thè processor in a sequentially preprogramme<^ way. In data-flow architecture there is no explicit concept of a program counter or of control flow. An Instruction is ready to he executed whenever all its -operants are in place. Thus execution of many instructions may happen concurrently, in an order that need not be determined in advance. As a consecuence this architecture offers a great potential for the future of very large computations, especially those that permit extensive instrin-aic concurrency. The only disadvantage of such a system is that it is not developed until now. The data-flow architecture is an architecture which is far away from the von Neumann architecture. 7. Some Application to Maturai Sciences 7.1 Portable Soft-ware In order to increase the usefulness of personal computers, the exchangeability of programs is a necessary contition. Therefore, one may expect the growth of the availability of portable programa in the future. 7.2 network Communication For many resulta observed in natural sciences and mathematics, the essential quality is the speed and the cost of one dissemination of information. Under the speed of dissemination of information we consider, for example, transmitting simultaneously the information to sav 200 places in less than 30 minutes. The transmitted information mav be a new experimental data, or a correction of some previously published data, ßtc. The cost of transmitting information in this way ia expected to be roduced in comparison v;ith the cost of classical svs.tetns (secretć^rv ' s typing tine, preparing addresses in some way, postage, time spent while information travels from sender to recei.ver,etc. 1 . A reduction in cost is expected because the network communication becomes a one-man operation. Besides, in science it becomes a scientist-to-scientist communication without going through any structure In between them. In addition, it is a JiS-hDur a day, every day of the week, open system. This becomes even more important in connection with the prediction of many that a great number of the scientific journals will gradually change their mode of printing and distribution. It is exspected that they will be electronically prepared and distributed through the network communicating units, 7.3 Knowledge Centers Many computations in natural sciences, especially in physics and chemistry are routine work. However, the results are not available for all concerned. This is so because many do not possess either the computing devices or the necessary soft-ware or the time for . doing the desired computations.. The lack of the first two factors may be avoides by establishing the national and international knowledge centers for each faculty of science which would provide the necessary to know-how, computations, and even the interpretations. The time factor is related to the predicti-vity power of .the given theory and the related soft-ware, because in this ever competitive world the standard theoretical calculations should not last longer than the related experimental work (34), Finally, the justification for establishing the knowledge centers is also the fact that we cannot, expect that the time will ever come when everybody would possess the time and the necessary specialised hard-ware and software. In order to summarize this section we point out that the use of computers in natural sciences and mathematics will be influenced by two major factors. The first one is of the organisational nature and the other one is of technical nature. Only improvements and new developments in both aspects may bring forth the rational use of computers in chem.Ì3t ry, sa B. Concluslor^B ■In the future we see the development of microcomputers to such an extent that they will overshadow the traditional main-fcame hard-ware. We see black days fot mainframes, because they failed to produce the techniques for computer-coHiputer communications, like local network and is not yét possible to carry out the automatic decompositlon of large numerical and non-numerical problems to loosely coupled part-problems. Therefore, the Amdahl- Cray-Cyber line le probably a dead end line because it does not permit the development of the novel concepts in computer technology. 4. Carl Troppe, Local Computer Network Technoloqles, (Academic Press, New York, t<»81). 5. CSNET Project Status Report 7/8/83. 6. Deutsches Forschungsnetz - DFN, Bericht der Arbeltsgruppen, Karlsruhe, 198?. 7. M. H. Olson and H. C. Lucas Jr., Comm. ACM, S, fi38 (15B?.) 0. S. G, Price, Introducine the Electronic Office, (NCC Publications, Manchester, 1979(. 9. K. C, E. Gee, Local Area Networks, (NCC Publications, Manchester, 1182). Bibliography 10. R. 6. Arnold, R. O, Ber^ and W. Thomas, IEEE Trans. Comput., C 3], SflS, (1?82). 1. G, Regenspurg (Ed.), GMD - Rfichnerstruktur - Workshop, Beficht Nr. 128, (R. Oldenburg Verlag, München-Wien, IPBOI. 2. P. G. Neumann, D. H. Brandln, J.-A. GOguen, 3, Goldberg, and M. A. Placito, Directions for Future Research and Development in Multicomputer Systems, SRI Project 1fl?fi. 3. R. Seege, J, Comput. Chem. 3, IfiS 11. E. B. Swartülander, B. K, Gilbert, IEEE Trans. Comp., C 31, 399 (5.982). 12, J. P. Iqna^io, D. F. Palmer-, and C. M, Murphy, IEEE Trans. Comput. C 31, VlO (I^SS), 13, K. B. Irani and N. G, Khahba?., IEEE Trans. Comp. C 33, (1902). 14. M. J. s. Dewar, Science l^S.' 531 (1975) . O IMPLEMENTACIJI PREVODIOCA LIPSKIT LISP ~ JEZIKA NA JEZIK SECD -M ASINE IZVRŠENOJ NA FORTRAN-JEZIKU UDK: 681.3.068 IVAN STOJMENOVIC, VOJISLAV STOJKOVIC, LJUBOMIR JERINIC, JULIJANA M1RCEVSKI INSTITUT ZA MATEMATIKU, NOVI SAD Programski jezik lISPKIT LISP je jeđaE dijalekat programskog jezika HSP. U radu je detaljno opisana implemantaaija prevodioca LISPKIT LISP-jezika na Jezik SECD-maSxne. Implementacija je izvršena na FOKTBM-jeziku i pro-sleđena je na raSunaru DELTA 11/3^ Instituta za matematiku Prirodnomate-matiSkog fakulteta u Novom Sadu. Navedeni prevodilac je sastavni deo interpretatora LISPKIIE LISP-jezika. Koliko je autorika poznato, ovo je prva implementacija LISPKIT LlSP-inter-pretatora izvršena u našoj zemlji. An implementation of LISPHT LISP-translator, The programming language LISPKIT LISP is the one dialekt of the programming language LISP. In this paper was described the one implementation of the translator of LISPKIT LISP-language to SECD-maohine language. The implementation is completed in POETEAN-language and ia tested on the DELTA 11/51^ computer system of the Inetitue of mathematics University of Novi Sad, The trsmslator Is the part of LISPKIT LISP-language interpreter. The authors don't know any similar implementation of LISPKIT LISP-interpreter in Yugoslavia. 1. Uvod Programski jezik LISP (McCarthy [3]) je najpoznatiji jezik veštačke inteligencije. Koristi se za implementaciju sistema i visokih programskih jezika'veštaSke inteligencije. Od 1958. godinè do današnjih dana izvršeno je niz programskih i mašinskih implementacija LISP-jezika i njegovih dijalekata. Najpoznatije su aledeće implementacije(Boley[l]): Godina Verzija Autor riefito-Ustar 58 LISP 1 McCarty MIT 62 LISP 1.5 McCarty MIT 68 LISP A Sandewall Uppsala 70 MACLISP Moon MIT 73 LISP70 Tesler Stanford 73 MLISP2 Smith Stanford 73 QLISP Wilber SRI 74 LISP MACHIHELISP 'Weinreb MIT 75 MAGMA LISP Montangero Pisa 76 VLISP Greussay Paris 79 GONCUEKEWT LISP Sugimoto Kyoto 80 LOGLISP Robinson Syracuse 82 COMMON LISP Stule C-HV 82 GLISP Kovak Stanford U ovom radu je detaljno opisana implementacija prevodioca LISPKIT LISP-jezika na jezik SSOU-mašine. Implementacija je izvršena na PORTRM-jeziku i prosleđena je na računaru DELTA 11/3ÌH?. Navedeni prevodilac je jedan od tri sastavna dola interpretatora LISPKIT LISP-jezika napisanih na višem programskom jeziku: 1) LISP-prevodilac.POETRAN, 2) USP-prevodilac.LISP (Henderson [a]), 3) Simulator SECD-mašine.FOETRAIf(Stojkovi0 (Videti sliku 1) Za izvršavanje (rad) LISP-interpretatora neophodan je jedan od sledeća dva para programa: A,1, LlSP-prevodilac.računar A.2. Simulator SECD-mašine,računar ili ■ B.l. LISP-prevodilac,SECD-mašina A,2. Simulator SECD-mašine.računar. Programi A.l i B.l au semantički ekvivalentni. Mediitim: a) program B.l. dobij a se automatskim prevođenjem programa LISP-prevodilac,LISP pomoću programa A.l. ili ručnim prevođenjem programa •w 58 POBTRAH -prevodilac. rafunar LlSP-prevođllac.FORTRAH ^ LlSP-prevođllac.rafunar LTSP-prftVOd 1 laf; ■ T.TfiP ^va^nnar simulator SECD-maSlna,FORTRAfi ^ | simulator EECD-maSine.raöunar X.Y Označava program X napisan na jeziku Y SLIKA 1, LlßP-pravodilac.LISP Sto se inače zbog grašalca na preporučuje. b) izvršavanje programa B.l. simulira sft pomoću programa A.2., što nije slučaj sa izvršavanjem programa A.l. o) program B.l. se sporije izvrSava od programa A.l, d) zapis programa B.l. Je kraći i čitljiviji od zapisa programa A.l, e) program B.l. ae Jednostavnije modifiltuje od programa A.l, f) Jednostavno se dokazuje korektnost programa B.l., što nije slučaj ea program A.l. Programi A.l. i B.l. izvrgavaju prevođenje programa sa MSPKIT LISP-Jezika na Jezik SECD--mašine. Program A.2. izvršava na realnom(postojećem) računaru simulaciju procesa izvršavanja datog programa napisanog na maiinskom Jeziku SECD--maSine za date ulazne podatke na SECD-maSini i po završetku procesa izdaje dobljeni rezultat. 2. LISPKIT LlSP-jezik Programski Jezik LISPKIT LISP Je Siat funk- Lis P-pr evodilac.SECD-ma Sina rezultat cionalni programski Jezik i predstavlja Jedan dijalekt(verziju) programskog Jezika.LjSP. Atributi čist i funkcionalni imaju sledeče značenje: - ne postoj a bočni efekti« - LISPKIT LlSP-programi su funkcionalnog oblika. Simbolički ili skraćeno S-izrazi su oenovna struktura podataka i funkcija LISP-Jezik« i njegovih dijalekata. Sintaksa S-izraza se može pomoću proSirene Backusove notacije definisati na sledeéi na-činC Stojković [7]): •fS-izraa> : !• [(tazdvoj)] <Člai^ [CrazdvoJ^J gjontrol/^ : ;»J i ! - .^|tab| j <člsn> : ; - | : : = <8iiBbol) ! ti« (Blovo ili podvlaka^ {} :!= a|BjCI...|X|y|Zj_ 4!ifra)i:= 011 IsljkI 5l6|7l 8l 9 : : [(znak)] ::° {} ] ) <3-izraz lista) : s =<3imbol>^-lzraz aimbo]^ | | OS-izraz simboJ) |^azđvoj) . ^ceo broj baa znaka) <^S-iaraz ceo broj>| [(^azdvoj)^ <^iiak> ^cao broj bez znaka) . ] ^S-iaraz molekul) | £, : s = tz "LIŠPI ' "(1) -2 (2) ((DR I DJ 4)(ai000 NOVI SAD)) (?) ((EK,(I.(DJ.(^)))).((21O00.(N0VI.CSAD))))) (1-) su primeri S-izraza, Prema članu kojeg sadrže, S-izraze možemo podeliti na (simboličke i hu-meriSke) atome i molekule, (1) je primer simboličkog, a (2) numeriökog atoma. Po konvenciji o izostavljanju tačket.) izrazi (5) i (if) predstavljaju Isti molekul. Prazan molekul () se označava sa NIL. Po definiciji' je NIL simbolički atom. Simbolički atomi T i F označavaju redom istini tu i lažnu logičku vrednost. LISPKIT LISP Jezik sa sastoji la sledečih klaaa funkcija! a) primitivnih funkcija -(CAR X) -vrednost funkcije je prvi aletuent vrednosti molekula X. "(CDR X) - vrednost funkcije je molekulC može i prazan) dobij en izostavljanjem prvog elementa molekula X ili drugi element para-X=(A,B), -(COWS X 3f) -vrednost funkcije Je par (X.Y). -(QUOTE X) -vrednost funkcije jé jednaka X. b) aritmetičkih funkcija -(ADD X Y) -vrednost Je X+Y (tj. zbir vrednosti argumenata X i Y), -(SUB X Y) -vrednost je X-Y, -(KÜL X Y). -vrednost Je X«Y (proizvod vredno- . ati X i Y). -(DIV X Y) -vrednost ja celobrojni količnik X div Y. -(HEH X Y) -vrednost je ostatak X mod Y celebro jnog deljenja X sa Y. -(EXPO? X Y) -vrednost je X* (X**Y) (Y>0). cj logičkih funkcija (predikata) -(ATOM X) -vrednost funkcije je ® ako je vrednost argumenta X atom. -(EQ x: Y) -vrednost funkcije je T ako su Tn?e-dnosti argumenata XI Y međusobno jednaki atomi. -(HE S Y) -vrednost funkcije je. E ako su vre^ dnosti argumenata X i.Y međusobno različiti atomi. ! -(LE X Y) -vrednost funkcije je 3? ako Je vrednost numeričkog atoma X manja ili jednaka vrednosti numeričkog atomaY, -(CìE X Y) -vrednost funkcije Je T ako je vrednost numeričkog atoma X veća ili jednaka vrednosti numeričkog atoma Y. -(LE X Y) -vrednost funkeiJe.je T ako Je vrednost atoma X manja od vrednosti T. -(GT X Y) -vrednost funkcija je (C ako Je vrednost 1 veda od vrednosti Y. d).uslovne (if) funkcije (ualovnog izraza) -(IP X Y Z) -ako jeSrrednost argumenta X Jednaka T vrednost ualovne funkcije jednaka je vrednosti S-izraaa Y, u suprotnom vrednost ualovhe funkcije jednaka je vrednosti S-izraza Z. e) A.-izraza (ili definicionog izraza funkcije) -(LAMBDA (Xj^ ... Xjj,) Y) -X^^,... .X^^^ su simbolički atomi i predstavljaju promenlji-va od kojih zavisi funkcija koja se definiše. Y je S-izraz.obrazovan od navedenih promenljivih i služi za izračunavanje vrednosti funkcije, nakon što se izvrSi povezivanje promenljivih sa odgovarajućim vredno. stima. f) poziva funkcije -(P Xj_ ... X|u) - I* je simbolički atom i predstavlja naziv funkcije. au Eucgumenti funkcije. g) blok nerekurzivnih, odnosno rekurzivnib' lokalnih definicija -(LET Y (X^.Y^)...(X^.YJ) , -(LETREO Y simbolički atomi i predstavljaju lokalno definisane promenljive. Yj^,.. su S-izrazi i redom definiSu lokalne promenljive. (X^^.Y^^),..., (X^^.Y^) su lokalne definicije i označavaju pridodeljivanje atomima. Xj^, vrednosti 8-izraza Yj^,...»Y^^, (LETRBC APPEND (APPEND LAMBDA ( X Y ) (IF (EQ X (QUOTE NIL)) Y (COire(GAR X)(APPEND(ODR X)Y)) ) ' ' ■ Je primer LISPKIT LlSP-programa. Navedeni program dafiniše funkciju append. Vrednost funkcije je molekul Jednak konkatenaoiji molekula koji redom odgovaraju prvom i drugom argumentu funkcij e. Za argumente (1 2 5) i (1 (2)5) koji se aa-daju kao ulaairii podatak ((l 2 5)(l (2)5)) do-bija se rezultat (1 2 5 1(2)5). Može ee formalno piaati: liap(append,((l 2 3)(1(2)3)))=(1 2 3 1(2)3) ill u opStem slučaju lisp(fn,args)=re suit, Sto anači da liag-interpretator aa funkciju fn i ulaani podatak arga daje sa resultat result. 3. Opis SECD-mašine SECD-mašina se može formalno definisati kao binama funkolja execute (fn, arga). Prvi argument funkcije execute fn je program napisan na maSlnakom-Jeziku &ECĐ-niagine. Drugi argument funkcije execute- args je ulazni podatak programa. Vrednost funkcije execute- result je reaul-r tat dobijen izvršavanjem programa fn za ulazni podatak args na SECD-maSini. Program fn, ulazni podatak arga i rezultat result su S-iarazi. SECD-maŠina ae saatoji ia 4 glavna, više pomoćnih registara i memorije. Glavni registri su: s (STACK)'- koristi se za Suvanje meduresultata dobljenih u procesu izraSunavanJa vrednosti funkcija- iavržavanja programa, e(ENVIRONMENT)- koristi se aa Čuvanje tekućih vrednosti promehljivih, c(CONTHOL)- koriatl sa za Suvanje programa ili dela programa koji se trenutno iavr-äava, d(DUMP)- koristi ae aa privremeno čuvanje vrednosti registara a, e i c za vreme izvršavanja neke funkcije. Imenovani pomoćni registri au NID, TIP koji se redom koriste za čuvanje vrednosti atoma: NIL, T i P. Memorija je listaCraolekul) slobodnih elemenata. ■Sadržaj svakog od navedenih registara Je S-izraz ili pri implementaciji pokaaivaS na strukturu podataka koja predstavlja S-iaraa, Stanje SSCD-mallne može se formalno opisati navođenjem sadržaja 4 glavna registra- otud i naziv SEGD. Had SECD-maŽine je definiaan programom fn 1 ulaznim podatkom arga. Na početku rada SECD-masina se nalazi u po-Setnom stanju. Podetno atanje SECD-maŠine Je; s=(ergs), e=NIIi, o=fn, d=NIL . Za vrerae rada, SSCD-maälna pralaai ia Jednog stanja u drugo stanje. Prelazak iz jednög stanja u drugo stanje je definisano naredbom programa, koji ae trenutno izvršava. Po završetku rada^SECD-maŠina se nalazi u završnom stanju. Prvi element molekula, čiji Je pokazivač sadržaj s-registra zavränog stanja SECD-maSine je rezultat izvrSavanJa programa. Naredbe maSinskog jezika SECD-mašlna definišu se navođenjem stanja SEOD-maSine pre i posle izvršavanja naredbe, što se simbolički piše: s e naredba -> 0' e' d' I naziva prelaz SECD-mašine. dekadni i mnemo kod operacije prelaz SEOD-mašine 1 LD se (LD i.c) d —s- (*.s) e C d i x=locate(i,e) 2 LDC s e (LDO x.c) d —^(x.a) e c d 5 LDP a o (LDP c'.c) d —»■ ((c'.e).s) e c d 4 AP ((c'.e') v.a) 6 (AP.o) d—9. HIL (v.e') o' (b e c.d) 5 RTN (x) e' (ETK) (s e c.d) —»•(*.s) e c d 6 DUM s e (DUM.c) d —> s (Np,.©) c d 7 RAP ((o'.e') v,s) (NIL.e) (RAP.c) d —f NIL rplaca(a',v) c' (a e c.d) 8 SEL (x.s) e (SEL c^ c^.c) d s e c^ (c.d) i x=T ili x=P .9 JOIN e e (JOIN) (o.d) s e c d 10 CAR ((a,b).e) e (CAR.c) d -»-(a.s) e c d II CBR ((a.b).a) e (CDR.o) d ^(b.a) « e d 12 ATOM (a.s) e (ATOM.c) d (t.s) e c d i t=T ako je a atom, t«P u suprotnom 13 CONS (a b.s) e (CONS.c) d ((a.b).s) e c d 14 EQ (a b.s) e (EQ.o) d —s>(b=a.s) e e d 15 ADD (a b.s) e (ADD.c) d —»»(b+a.s) o o d 16 SUB (a b.a) e (SUB.e) d —»(b-a.s) e c d 17 MUL (a b.s) e (MUL.o) d —»(bita.e) sod 18 DIV (a b.a) e (DlV.c) d —^(b/a.fl) « o d 19 REM (a b.s) e (EEM.c) d — (b mod a,a) e o d 20 LE (a b.s) e (LE.c) d —ü-(ba.s) e c d 26 STOP 3 e (STOP) d —5> s e (STOP) d locate( (a.b),e) Je Slan sa rednim brojem b u podmolekulu sa rednim brojem a molekula e. Podmolekuli datog molekula, kao i njihovi Čla- novi au numeriseni brojevima 0,1,3... rplaoa(e',v) Je S-izraa e'u kome je izvršena zamena CCAJ9 e')=v. Punkcija STOP štampa (OAH .s)- resultat rada SECD-maŠine. Sledi primer rada SECD-mašine, 3 e(LDC 1 LDC 2 LDC 3 MUL SUB LDG.4 EQ STOP) d (l.s) e (LDO 2 LBC 3 fWL SUB LDC EQ STOP), d (2 l.a) a (LDO 3 MUL SUB LDC 1- EQ STOP) d (5 2 l.s). e (MUL SUB LDC 4 EQ STOP) d (6 l.a) e (SUB LDC if EQ STOP) d. C~5.a) a (LDC 4 EQ STOP) d (4 -5.s) e (EQ STOP) d (F.a) e (STOP) d Rezultat rada SECD-maline je F, U primeru je proverena taÖnoat relacije A=l-3t2, Prevodilac LISPKIT LISP-jezika na jezik SECD-maäirie OanaSimo sa compile prevodilac LISPKIT lISP- jezika na jezik SEGD-Bašiiie, aa fn program na LISPKIT. LISP-jeziku i sa fn* odgovarajući program na mašinskom jeziku SEOD-maSine. Očigledno je. da važi! compile (fn)=fn'*. Ako se. na program fn i ulazni podatak args primani funkcija execute dobija se kao rezultat result. To dalje znači da vaSii lisp(rn,args)=execute(fn*,arg3)=result . Za svaku funkciju (program) LISPKIT LISP-jezika postoji pravilo na osnovu kojeg še vräi prevođenje u odgovarajuću funkciju jezika SECD-maSine. Prevod S-izraza e u odnosu na molekul promenljivih n označimo aa e»n. Važe sledeća pravila prevođenja:- x»»n=(LB i) j i=location(x,n) Ovo pravilo ae primenjuje ako je x atom. i=(a.b)=location(x,n) označava da je x b-ti element u a-ton) podmolekulu molekula n. Na primer, looation(^PEND,((A B)(p E 3)(APPEND 1))=(2.0) - (QUOTE s)*n = (LDC a) - (ADD Bj^ e2)*n= 0-j*n| e2»n) (ADD) - (CONS e^ egjwn = Sgtin | e^ün] (CONS) ■ • - (IP ej^ eg e^^tn = ej^n|(aEL eg^^K^OI") ej«*n|(JOIN)) - (LAMBDA ... e)wn = (LDF ei»(CXj^ ... ..X^).n)|CfiTN)) a|b=append(a,b) označava konkatenaciju. Za ave aritmetičke funkcije i binarne logička funkcije pravila prevođenja su analogna pravilu prevođenja za ADD. Sato se može pisati - (BIN e2}*n.» ej^j^nle^^nUfllN) 4BIN€{ADD, ' sub,mul,div,bkm,expt,eq,ne,le,ge,lt,gt} - (UN e)*n = e*n|(UN) j UN€{cAH,CDR,ATOm}. - (let a (xj^.sj^) .. - (LETREC e (Xj^-ej^) - (e e. :|(C9NS)|...|e^*n|(C0N3) | (LDP e^n| (AP) U poslednjem pravilu e je poziv funkcije. Označimo sa comp(e,n,c) funkciju coiiip(a,n,o) =e*n|c. Prevod funkcije LISPKIT LISP-jezika na jezik SECD-mašine može se napisati u obliku: fn* =compile(fn)=fii)«KILl(AP STOP) = =comp(fn,NIL,(AP STOP)) . . Prevedimo, na primer, funkciju f=.(tAMBDA(X Y)(ADD(MUL'X(CAB Y))(QUOTE 1))) . koja izračunava proizvod vrednosti X i prvog elementa Y uvećan za 1. f*=(LAMBDA(X T)(ADD{MUL X(CAE Y))(QUCTE l)))* NILKAP ST0P)= (LDF(ADD(™I, X(CAR Y)) (QUOTE 1))*((X Y).HIL) |(RTN))|(AP STOP)= (LDr'(MUL ; ■ X(CAR Y))*((X Y))|(QUOTE 1)*((X Y))|(ADD)I (R'PN)).|(AP STOP)= (LDP X*((X Y))|(GAH Y)*; ((X y))|(HUL)l{LDC 1)|(ADD)|(ETN))1(AP STOP )= (LDF(LD(0.0))| Y*((X Y))|(CAR)|.(HUL) |(LbC 1)|(ADD)((RTN))|(AP ST0P)= ■(LĐF(LD(0.0))| (LD(0.1))I(CAR)I(MUL)|(LDC l)|(ADD)1(RTN)l (AP ST0P)= (LDP(LD(0.0)LD(0.1)OAR MUl LDC ' 1 ADD RTU) AP STOP) Prevod zapisan pomoću dekadnog koda operacija glasi: f*=(3(l(0.0)1(0.1)10 1? 2 1 15 5)t- 26) . Za ulazni podatak (2(3 4)) LlSP-interpreta-r tor daje rezultat lisp(f,(2(3 4))=execute(f*,(2(5 4))=2*5+1=7. Promenljivoj X ja dodeljena vrednost 2, a pròmenljivoj Y vrednost (3 t-). Koristeći navedena pravila svaka funkcija ae može ručno prevesti sa LISPKIT LISP-jezika , na jezik SECD-mašine, Da bi se prevođenje izvršilo automatski potrebno je programski im», plenientirati funkciju compile, odnosno comp. . Obrada S-izraza u FORTRAN-jeziku je detaljno opisana u Najveći problem je nepostojanje rekurzije u' FORTRAN-jeziku i rešen je upotre-r. bOB steka ([i-]).' S-izrazi se u FORTRAN-jeziku obrazuju od slogova. Slog se sastoji iz sledeča 4 polja: IS, VALUE, CAR, GDR, koja su članovi odgovarajućih nizova. Po prirodi problema polje IS je logičkog tipa, a polja VALUE, CAR i CDR oelo-brojnog tipa. Polje IS određuje da li jè u pitanju molekul, simbolički ili numerički atom( odgovarajuće vrednosti au 'C', 'S', 'N'). Vrednoat polja 18 ae postavlja pozivom konstruktorskih funkcija C0N3, SYMBOL ili NUMBER zavisno od tipa S-iz-raza. Utvrđivanje tipa S-izraza ae vrši pomoću funkcija ISCONS, ISSYMBOL i ISNUMBER. .Ako Je S-izraz numerički atom, njegova vrednost se upisuje u polje VAME, Ako je 3-izraz simbolički atom, u polje VALUE upisuje se redni broj reda tablice simboličkih atoma koji sadrži dati simbolički atom. Ako je S-izraz molekul oblika sl.s2,u polje CAR upisuje se vrednost pokazivala strukture podataka koja reprezentuje S-izraz b1 (tj. redni broj odgovarajućeg člana niaaj, a u polje CDH upisuje se vrednost pokazivača strukture podataka koja reprezentuje drugi S-izraa s2. Polja VALUE i CAS mogu se zameniti jednim poljem. Zbog kasnijeg dinamičkog upravljanja oiemori-jom ([^1), podesno je sav dodeljeni-memorijski prostor organizovati u obliku liBte(molekula) slogova uedefinisanog tipa, tj, liete slobodnog meniorijskog prostora. Obrazovanje i inici-jalizaciju takve liste vrši podprogram INITSTOREw Punkcija COMPILE može se defini sati na sledeči način; FUNGTIÜH COMPILE(E) « ÀPSTOP=C0 ti SKf ( 26, NIL > APSOX) P=CONSH ( , APS TOP ) COMPTLE=CONP(E,HIL,APSTOP) RETUSH END Promenijiva APSTOP u funkciji dobij a vrednost (4 26J. Punkcija CONSN(I,J) na prvo mesto molekula J ubacuje numerički atom 1. PUNC HON COWÖK(I,J) * COKSN=GONS() C AB (COHSH)=NUMBERC) VALUE(GAE(CONSM))=I CDß(COWsn)Bj RETURN END U zavisnosti od vrednosti e i (OAR e) funkcija COMP(E,H,G) Je podeljena na ? delova. Prvi dtìo je prevod ako Je e atom i može ae aapiaati u obliku: 70 IF(IS(E).£Q.SLOVOC) GOO» 1 COMP=CONS() CARfOQMP}=LOCATIONCE,N) CDR(COMP)=a G0HP=G0NSH(1,G0WP) GOTO 100 Potprofjraitii STOHE i LOAD redom vrše upis i čitanje Biitiboličkog atoma iz tablice atoma. Drugi deo je prevod funkcije (QUOTE E) i može ae aapisati u obliku: 2 OOMP=COMS() CAJÌ(COMP)=OAR(CI)R(E)) GDn(CüMP)=G C0NP=C0N3N(2,C0MP) ü0;i'0 100 u preostalim delovima odgovarajući prevodi koriste rekurziju. Zbog toga ja uveden stek u obliku celobrojne matrice STaCK(I,L) Upis vrednosti u stek vräi podprogram UPISOSTEK: SUBROUTIHE UPISUSTEK(K) « * L=L+1 STACK(1,L)=E STACK(2,L)=N STACKC5,L)=C STACK(4,L)=K REOTRN EMD L-ta kolona stoka sadrži informacije o trenutnom stanju S-izraza E,N,C pre početka prevođenja nekog dela početne funkcije, i informaciju o tome kako nastaviti rad programa po završetku prevoda posmatranog dela. STACK(l,Ll STAGK(2,L) i STAGK(5,L) imaju redom vrednost E,N,0, a S'PA0KC'^,L) ima vrednost koja-određuje obeležje naredbe od koje program nastavlja rad Po završetku prevoda nekog dala funkcije iz ateka se uzima poslednja (L-ta) kolona i iz nje vrednosti E, N, Ci informacija o obeležju naredbe kojom se nastavlja rad programa. Uzi® Banjom L-te kolone iz steka ona ae briSe iz Bteka Bmanjenjeni L za jedan. Odgovarajući deo u programu izgleda ovako; 100 IP(L.EQ.O) RETURM E=STACK(1,L) K=SrACK(2,L) C=3TACK(3,L) L=L-1 GOTO(11,100 53,99,55,S9,77,88,99,88,119, 129,11) STAOKC'J.L+I) Program zavrčava rad kad se iz steka ne mogu uzeti odgovarajuće vrednosti, tj. kada je stek prazem (LsO). Treći deo programa je prevod aritmetiSkih. i logičkih funkcija i primitivnih funkcija OAR, CDH, CONS. Dokadni kod funkcije koja se prevodi je označen se KOLIKO. U slučaju funkcije ADD rezultat rada je: comp((CAR(CDR E)) ,N,coinp((CAR(CDR(CDR E))), N,(CONS(QUOTE 15) C))) . Slično vredi aa sve binarne aritmetičke i logičke funkcije. Prevod funkcije COHS se jedino razlikuje u tome što u gornjem iarazu prvi argumenti funkcija GOMP zajiienjuju mesta, ' U slučaju fuiikoija OAR,. CDR i ATOM rezultat rada prevodioca je: 00(iip((CAR(CDR E)),K,(CONS(QUOTE X)0)), (10,11,12) „ Odgovarajući program je-. 5 CALL UPISUSTEKd) IPfKOLIKO.LE. 12) STACK:(4,L)»2 IFCKOLIKO.EQ,13) STACK(4,L)=15 n!'fK0LIK0.LE.13)B=CAH(CDa(;E)) IF(KOLIKO.C1T.13JE=CAH(CDR(GDR(E))) C=C0NSP1 (KOLIKO,G ) CiOTO 70 11 K=STACK(4,L^1) CALL.UPISUSTEK(2) CDHfC0B(E))) CDH(E)) ipfk.bq.13) e=.car ip(k.ne.13) e=CAH c=comp goto 70 70 obeležje naredbe kojom počinje izvrgavanje rada funkcije 00KP(E,N,0). Četvrti deo programa je prevod funkcije IF. Rezultat rada je: coidpUGAH(CDR £)),N,(C0HS(quote 8)(C0Ha(oomp (OAR(ODR(CM E))),M,(CONS(QUOTE 9)NIL)) (C0N3Ccomp(CAH(CDR(Cl)H(0DR(E)))),M, (CONSCQUOTE 9)NH)). 0)))) . Odgovarajući deo programa može se napisati u obliku: 7 call upisustek(12) e=car(cdrccilr(gdr(e) ) ) ) g=c0wsnc9,bil) goto 70 129 ElSEPTr^COMP ■ oall upisustek(6) e=oar(cdr(cdr(a))) c=gönsnc9,nil) goto 70 69 gc=consc) carfcc)=comp ■ - cdr(co)=cons() carfodrfcg))=el3ept gdr(cdb(cc))=c call upisustek(2) . e=car(gdrce)) c=c0nsn(8,c0) goto 70 U preostalim dolovima programa koristi ae pomoćna funkcija coiiiplia(e,n,c)=(LDC BIL)|ej^»n | {CONS>j... , . .I ej^nl(cons)|o koja je realiaovana u okviru funkcija comp bez posebnog potprograma. oomplis je realizovan n^ Bledeči način: 71 ip(e.ne.hil) goto 10 complis=cons() car(complis)=nil čbii(cowplis)=c complis=consnc2,complia) goto 100 ■ ~ . 10 call upisustekfs) e=gar(e) c=.c0nsb(13,c) : goto 70 55 call upisüst£k(2) e=cdr(e) . ■ ' c=gomp ^ goto 71 Pati deo programa je provod funkcije LAMBDA, i može aa reslizovati na sledeći načlnt if .00=C0NS() oarccc)=car(cdr(E)) CDa(gc)=H . ■ ■ oail upisustek(?) e=car(cdr(cdii(e;)) n=cc ■ . 0=c0ksw(5,kil) goto 70 77 - m=00ns( ) "0AH( CDR( c0mp=cónsn(?,c0) goto 100 Rezultat rada ovog dela programa je prevod funkcije. LAiIßDA: . (C01IS(.QU0TE 3) . ' complis(exprsC CCAR(CDR(ODR E)))),N,(CONS. (QUOTE 5)(CONS oomp((CAfiCCDR E)),(CONS var3(CDR(CDR E)),N),(GONS(QUOTE 5)NIL)) (CONSCQUOTE it) G)))) . U slučaju funkcije LETREC program treba da izvrši; (COHS(QUOTE 6) complì3(exprB.(0DR(CDR E)), (CONS vars(CIIH(CDR E)) N)»( CONS (QUOTE ?> (CONS oompgCAR(CDR E)),(aONS var3(CBa(CDR E)) N),(C0NS(QU0T2 5)NIL))(C0NS(QUOTE 7)C))))) . Rinkoije vara i exprs izdvajaju pronienljive i izraze iz definicija, tj. vara((Xj^.e^)... (Xj^.ejj.))=(Xj^ ... exprs((Xj^.Oj^)...(Xj^..e,j.)): =(ej^ ... ej^) . Obš funkcijo su re ali zo vane po--moću podprograma VAHS(S,EXPRS) za koji važi: vara(S)=VARS(S,.PALSE,) i exprs(S)=VAIÌS(S, .TRSJE.) . Program koji realizuje navedene prevode može se napisati u obliku; 5 M=GONS()- C Aß ( M ) = VARS( CDH ( CDR (E ) ).,. J'ALSE, ) CDR(M)=N IP(LET) CALL UPI3USTEK(8) IF(LETREC) CALL UPISUSTEK(10) E=CAR(CIlR(E)) N=M . C=C0W3N<5,NIL) GOTO 70 CALL UPISUSTEK(STACK(1-,L4-1)+1) 88 99 119 cg=gonsk(4-,o) if(stagk(4,l).eq.11) cc-c0nsn(7,0) c=c0ns() car(c)=comp cith(c)=co 0=consn(5,c) if(sta0k('(-,l) . eq. h)n=m e=.varsccde(cdr(e)), .true. ) goto 71 COMP=COM^S goto 100 cohp-consn(6,complis) goto 100 U aedinoni delu programa sé obrađuje po živ funkcije. Program treba da izvrši: coniplia((CDR E),N, CQmp((0AB E),N,(CONS (QUOTE if) 0))) . .. ' Sledeči deo programa to izvrSavai w . gall upisustek(3) e=car(e) CsCONSN^iV-C) . goto 70 35 CALL^ UPISUSTEK(if). i E=ODR(E). C=COHP GOTO 71 5» Pomoćni podprogrami koje prevodilac koristi, Opišimo podprograme koji nisu dosad pominJani. Potprogram OETEXP(X) obrazuje strukturu po-datE^a- S-izraz koji odgovara datom programu napisahotn na maSinakom jeziku SECD-maäine, odnosno datim ulaznim podacima. X je pokazivač na obrasovanl S-iaraz. Podprogram GETEXP koristi, pored nekih već pomenutih podprograma, podprograme GETCHAB( čita tekući karakter iz teke), GETMKEN (obrazuje atom,.,(,) ili kraj teke), TOSTRING i TOINTEGER (transforralše bro-jevne podatke u azbučne i obratno), CONC (dopisuje znak u atom koji se formira), ASS (određuje ulaznu i izlaznu jedinicu programa i ulaznog podatka), ISLETTER, ISDIGIT, ISOBARA-CTER, ISDEIIMITER koji utvrđuju tip datog znaka. PoRUN LISP INPUT FILE NAME = ( 6 2 NIL 3 ( 1 ( . 1. ) 9 ) ( 2 NIL 1 ( 0 . 11 13 1 ( .1 . 0 ) 4 1 ( 0 2 NIL. 14 a ( 1 ( 0 1 ) 1? 1 ( 0 . 0 ) . 0 ) 10 15 9 ) 5 ) 13 3(l(0.0J5;74 2l; INPUT I'iLE NAME = ^ (12 5 1(2)3)- Poruk® programera LlSP-interpretatoru su podvučene. 7. Zaključak Programski komplet se sastoji iz glavnog programa i'35 pomoćnih podprograma- sve skupa oko 100^ naredbi FORTRAN-jezika. Zahvaljujući maSinskoj orjentacijl JOHTRAH--jezika i zvršna(task) verzija programa efikasno koristi tehnička mogućnosti računara. Zbog Široke rasprostranjenosti FORTHAN-jezika programski komplet je dostupan velikom broju korisnika. Prevođenje programa sa LISPKIT LISP-jezika na jezik SECD-mašine pomoću prevodioca implementiranog na FORTHAH-jeziku se izvršava brŽe nego pomoću prevodioca na jeziku SEOD-maSine. Literatura [1] Boley H., Artificial Intelligence, Language and. Machine, Bericht Nr. 94, Universl-tlit Hamburg, 1982. Henderson'P., Functional Programming; Application and Implementation, Prentlce--Hall, London, 1980. McCarthy J., Recursive Functions of Symbolic Expressions and Their Computation by Machine, Comm. ACH, 3(4), I960,184-195- I4] Stojkovič v., Stojmenović I., Jerinié LJ., Mirčevski J., Kulaš M., Dinamičko upravljanje meraorijora sa gledišta koriščenja i implementacije programskih jezika, V Međunarodni simpozij "Kompjuter na sveučilištu", Cavtat, 1983, str ISS-l'^S. |5j Stojković V., Jerinić Lj., Stojmenović I., Mirčevski J., Kulaš M., Implementacija NP-tehnike obrade S-izraza u FORTRAN-jeziku, V Međunarodni simpozij "Kompjuter na sveučilištu",Cavtat, 1983, str 379-386. 1.6.1 Stojković V., Stojmenović I., Mirčevski J., Jerinić Lj., Kulaš M., Programska Implementacija simulatora SECD-mašine, XXVII Konferencija ETAK-a, Struga, 1935. [7] Stojković V., Jerinić Lj., Mirčevski J., Stojmenović I., Budimac Z., Putnik Z., 0 proßrarnskoin jeziku za obradu lista ■ LISPKIl' LISP i njegovoj primeni, Bilten Pokrajinskog gaveta za informatiku, Novi Sad (u priptemi). ANALIZA MULTIPROCESORSKIH SISTEMA S LOKALNOM CACHE MEMORIJOM UDK: 681.324:681.327.67 BEKIC ZORAN SVEUČILIŠNI RAČUNSKI CENTÀR, ZAGREB u radu se govori o osnovnim parametrima arhitekture i organizacije multlprocesorakih alstema s lokalnom cache memorijom. Ukazuje se na neke važne probleiie koji postoje u analizi takvih računarskih sistema. Posebno se govori o utjecaju ponašanja programa na efektivne performanse takvih računarskih sistema 1 o mogučnostlma modeliranja ponašanja programa. .Ukazuje se 1 na problem koherentnosti Informacija u multlprooaBoraklm siàtenlma s lokalnon oaohe memorijom, ANALYSIS OF MULTIFROCEISSORS WITH PRIVATE CACHE MEKOHIES. Major parameters of architecture of multiprocessor system With private cache memories are considered. Some probl'eias of euoh multiprocessor architecture analysis are discussed. Program behavior Influence on effective performancfea of such computer systems and possibilities of its modeling are especially considered. Cache coherency problem in multiprocessor syatens with private cache memories is also mentioned. UVOD Paralelan rad nekolicine procesorskih Jedinica osnovna Je, dakako, karakterlstilca mviltiprocesaralclh sistema. Uvođenjem većeg broja procesorskih jedinica povećava se noinlnalna procesorska moć računarskcg sisteoa. Efektiv- ■ ne performanse raultiprocesorskog sistema najčešće se, tneđutim, razlikuju od norainalnih, pošto ne zavise samo od broja procesorskih jedinica u sistemu, nego i od dri!«-gih .arhitekturnih osobina a tako.der 1 od tipa programa koji se rješavaju na sistemu. Tako se brzina rasta efektivnih performansi M jenja od log^itamske zavisnosti od broja pr^esorskih jedinica (odnosno od nominalnih performansi) pa do rijetkih pojedinačnih slučajeva kada su efektivne performanse veće od nominalnih. Jedan od osnovnih uzroka degradacije efektivnih performansi mul tiprocesorskiii -sistema je neadekvatna arhitektura memorije. Kaime, povećanje procesorske moći sistema dovodi do povećanih zahtjeva na memoriju 1 njene karakteristike. Osim povećanja apsolutnog broja dohvata iz metaorije (što i nije glavni problem, a pCgotovo nije specifičan problem samo za multiprocesorsku arhitekturu menurije) pojavljuju se i posebni problemi, kao ria primjer, mnogobrojna istovremena obraćanja u memoriju, izazvana sinhronizacijoni rada procesora ili postojanjem zajedničkog područja podataka. Istovremeno obraćanje u memoriju većeg broja procesora obično izaziva zaustavljanje . nekolicine njih, što očigledno dovodi do degradacije efektivnih performansi sistema. Da bi se poboljšale karakteristike arhitekture mauorije u multiprocesorskim sistemima realiziraju.se mnoge ideje, koje se primjenjuju i u klasičnim računarskim sis- temima. Memorija se dijeli na nezavisne module, što omogućava da kao cjelina istovremeno odgovara na nekoliko zahtjeva za dohvat iz memorije (dakako pod uslovom da ti zahtjevi budu upućeM različitim aiodulima memorije). Healizira se i ideja raslojavanja-roemorije na nivoe, koji se.razlikuju srednjom'brzinom odgovora na zahtjev procesora i najčešće svojim kapacitetom. Uvođenje cache memorije u multiprocesorske sisteme moguće je na dva principijelno različita načina. procesori .H___ löT— kenunilcae. mreSa oaaha maorlje moduli glavne DM morij« Slika 1« Knnfigaraelja sa zajeđnlElcim cache maiiorlj. Vezivanjem cache memorije za određenu oblast glavne m^ naorije, tj. najčešće za pojedini modul glavne metnarije, nastaju sistemi sa zajedničkim cache manorijama.. U takvoj konfiguraciji cache memorija Ima uglavnom istu ulogu kao u klasičnim jednoprocesorskim sistemima i praktički se može razmatrati kao primarni ili nulti nivo memoriJske hijerarhije. Alternativna mogućnost uvođenja cache memorije sastoji se u pridruživanju cache memorije svakom procesoru sistema, čime nastaju multiprocesorskl sistemi s lokalnom cache memorijom. U ovom slučaju, neki autori nisu skloni razmatranju cache memorije kao običnog nivoa memori jske hijerarhije. Između ostalog, objašnjavaju to i time, što se pretpostavlja da je dinamika izmjene porcija informacije u cache memoriji u takvoj konfiguraciji znatno veće nego u ostalim nivoima memorijske hijerarhije. Također se pretpostavlja da Je količina in- ' formacije koja se predaje u toku jedne izmjene medu glavnom i cache raemorijom znatno manja nego Sto je to obično medu sussjednim nivoima meraorljske hijerahije. "'s 1 1 ! 1 1 1 np X nm 1 1 1 prao«aorl caohe n«Dorl]« koBunlkao« mreÌK (Sodali glavna manorlja Slika 2. Konfiguracija a lokalnia csoha nemorljaaa U svakom slučaju uvođenje lokalne cache memorije osim funkcije buferizaćiJe toka informacije među procesorima i modulima glavne memorije ima cilj iskorištavanja tendencije lokalizma u aekvenclJalnom nizu obraćanja pojedinog procesora u.memoriju. Ta je tendencija u većoj ili manjoj mjeri uvijek prisutna u svakom programskom kodu, a proizlazi iz slijedećih činjenica: 1. Dio obraćanja u memoriju je čitanje instrukcija programskog koda, koje su sekvenciJalno razmještene u glavnoj memoriji. Na taj način obraćanje u memoriju zbog čitanja instrukcija je u toku nekog vremenskog intervala lokalizirano na ograničeno potprostrana-tvo adresa glavne memorije. 2. Kod mnogih grupa algoritama proces obrade je unutar nekog vremeaiskog intervala koncentriran na ograničenu grupu podataka, ^o je ta grupa podataka smještena unutar nekog zatvorenog potprostranstva adresa, tada će i niz obraćanja u memoriju pokazivati znakove lokalizma. Najveći efekt od uvođenja cache memorije u multiprocesorskl sistem postiže se u teoretski idealnoj situaciji kad u svakom trenutku svaki od procesora ima trenutačno potrebne podatke u svojoj cache memoriji i znači ne biva blokiran zbog situacija Istovremenog obraćanja u glavnu memoriju. Koliko će se rad realnog multiprocesorskog sistema 3 lokalnom cache memorijom približiti toj teoretski idealnoj situaciji zavisi prije svega od algoritma problema koji se na njemu riješava, ali i od određenih parametara arhitekture i organizacije računarskog sistema. PARAMETRI ARHITEKTURE MULTIPflOCESOfiSKIH SISTEMA S LOKALNOM CACHE MEMORIJOM Blokom memorije zvat ćemo porciju informacije (količinu mašinskih riječi) koja se predaje u toku jedne izmjene između glavne i oaohe memorije. Potpuna analiza utjecaja lokalne cache memorije na efektivne performanse multiprocesorskog sistema treba osim osnovnih parametara multiprocesorskih sistema (broj procesora, broj, veličina i raslojavanje modula glavne memorije) razmatrati i takve specifične parametre arhitekture i organizacije kao što su: 1. Organizacija mapiranja. odnosno algoritam preslikavanja glavne memorije u cache memoriju. Problem maplranja pojavljuje se uvijek kad Je potreban prenos inf-sirmaclje između dva memorijska prostranstva (fizička ili virtualna) različitih kapaciteta. Postoji nekoliko standardnih algoritama preslikavanja glavne memorije u cache memoriju: a) asocijativni, koji dozvoljava da svaki blok glavne memorije bude smješten u proizvoljnom bloku caohe memorije, b) direktni, koji određenom podskupu blokova glavne memorije pridružuje određeni blok caohe memorije i predviđa da u tom bloku cache memorije može biti istovremeno samo jedan blok pridruženog podskupa glavne memorije. c) akupno-asocijativni, koji podskupu blokova glavne memorije pridružuje podskup blokova cache inemorije, s tim da svaki blok iz podskupa glavne memorije može zauzeti bilo koji blok pridruženog podskupa blokova oaohe memorije. d) sektorski, koji predviđa organizaciju transfera između glavne i cache menßrije sektorima (grupama blokova) s tim da raspored blokova unutar sektora bude unaprijed fiksiran. Asocijativno preslikavanje daje najveću slobodu izbora mjesta u caohe memoriji za novi blok glavne memorije, a time smanjuje broj povratnih transfera blokova iz caohe memorije u glavnu memoriju. Međutim, takva organizacija zahtijeva kod svakog obraćanja u memoriju asocijativno (istovremeno) pretraživanje cache memorije, što, zavisno ođ njene veličine, može oduzeti mnogo vremena, a svakako povećava cijenu njene sklopovske izvedbe. a/ aaocijatirno gl.mem. b/ direktno ^l.neffl. eacha o/ ekupho-asocijativno gl.men eaoh* d/ sektorelco Sl.m«iiiÉ SI. 3. Naiini preBlilwTSiija gX^vn« neawrlje u oaoha Suprotno asocijativnom, direktno preslikavanje minlmi-sira vrijeme provjere prisutnosti bloka u cache ineniori-jl, posto-Je fiksno predodređeno mjesto gdje ae blok može nalasiti. Nedostatak Je o'Äig algoritma što pred-odredeno ' vezivan je blokova glavne memori Jéaa blokove cache memorije može dovesti do neracionalnog iskorištavanja pojedinih dijelova cache meraorije. . Sicupno-asocljativni algoritam preslikavanja ujedinjuje prednosti prvih dvaju algoritama, dajući relativnu slobodu izbora mjesta u cache memoriji, istovreiaeno ograničavajući vrijeme pretraživanja. Sektorsko preslikavanje također teži Istom oilJu kao i skupno-asooijativno, omogućavajući izbor smjestaJa sektora u cache memoriji, ali istovremeno ograničavajući mogući broj varijanti fiksiranim rasporedom blokova unutar sektora. 2. Organlzaolja zamjenjivanja, odnosno algoritam izbora bloka u cache memoriji koji treba biti izbačen iz nje (eventualno vraćen u glavnu memoriju) u trenutku kad procesor zahtijeva transfer novog bloka iz glavne u oache memoriju. Najčešće se upotrebljavaju slijedeće strategije: a) LRU (last-reoently used) - iz oache memorije se iabacuje blok, koji najduže nije bio korišten, b) FIFO (first-ln-first-out) - iz cache memorije se izbacuje blok, koji se najduže u njoj nalazi, c) slučajni izbor bloka, koji treba biti izbačen iz cache memorije. Utjecaj izbora algoritma zamjenjivanja na efektivne performanse računarskog sistema zavisi od izbora organizacije raapiranja. Međutim, analize au pokazale da je taj utjecaj uglavnom neznatan. To se može objasniti relativno malom predviđenom veličinom cache' memorije, pa sam izbor bloka he daje veći broj mogućnosti. 3. Organizacija obnavljanja sadržaja glavne memorije. . kojom se određuje u kojim se slučajevima sadržaj bloka glavne memorije korigira sadržajem odgovarajućeg bloka u cache memoriji. Postoje' dva principijelno različita pristupa; a) direktno pisanje (WT-write-trough), koje predviđa da se istovremeno s pisanjem u blok u cache memoriji, korigira i sadržaj istog bloka u glavnoj memoriji. . b) fiazmjena blokova (FS-flag-swaping), koja predviđa da se.sadržaj bloka u glavnoj memoriji korigira tek pošto blok u cache memoriji bude izabran za zamjenjivanje, odnosno vraćanje u glavnu memoriju. Iako FS organizacija djeluje povoljnije, pošto u principu manje opterećuje; glavnu memoriju, optlmalnost prve ili druge strategije potrebno je ocijeniti u cjelini s ■ ostalim parametrima izabrane arhitekture. Naime, FS organizacija pridonosi kompliciranju ionako teškog problema koherentnosti u multiprocesorsklm.sistemima s lokalnom cache memorijom. S druge strane, činjenica da operacije pisanja čine tek 10-30% svih dohvata iz memorije donekle objašnjava neka opažanja da u određenim situacijama WT organizacija pokazuje bolje rezultate od FS organiMcija-obnavljanja sadržaja glavne memorije. Tako Yen i Fu (7) analitički pokažuJU' da FS organizacija daje znatno bolje rezultate ako je vjerojatnost uspjeha kod obraćanja u cache memoriju (hit ratio) veća od 0.85, dok kod vjerojatnosti manje od 0.5 nešto bolje rezultate pokazuje WT organizacija (autori su dakako u svojoj analizi imali 1 neka druga ograničenJa-pretpos-tavke o ponašanju programa), Ij. Organizacija dohvata bloka iz glavne memorije u cache memoriju, koja određuje kada i kakva informacija se prenosi iz glavne u oaotie memoriju. Strategija direktnog punjenja oache memorije tload-through), predviđa da se u cache memoriju prije svega transportira onaj dio bloka, koji sadrži riječ, zbog . koje je 1 došlo do obraćanja u glavnu memoriju. Na taj se način omogućuje da procesor nastavi rad paralelno s transferom ostatka bloka iz glavne u cache memoriju. Ako se koristi WT organizacija obnavljanja sadržaja glavne memorije, moguće je koristiti strategiju dohvata koja ignorira operacije pisanja, tj. ne Inicljalizira transfer iz glaime u.cache memoriju, ako je neuspješno . obraćanje u memoriju izazvala operacija pišanja. Implementiranje takve strategije u VT organizaciji obnavlja-, nja doprinosi smanjenju ukupnog prometa medu glavnom 1 cache memorijom. 5. Homogenost cache Piemorlje. Moguće je uvođenje funkcionalne specijalizacije područja unutar cache memorije. Tako ae može uvesti podjela cache raeinorije na prostranstvo programskog koda i prostranstvo podataka ili na prostranstvo sistemskog koda i prostranstvo korisničkog koda. Podjela na prostranstvo koda i prostranstvo podataka osigurava da blokovi s programskim kodom ne budu prerano izbacivani iz cache memorija zbog vrlo dinamičkog korištenja podataka. Takva podjela inedutim može uzrokovati i neracionalno iakoriatavanje cache memorije. Kaplan i Winder (3) su pokazali da podjela na prostranstva sistemskog i korisničkog koda ima veliko značenje kod izvršavanja korisničkih programa organiziranih kao niz kratkih jednostavnih aktivnosti, kad često dolazi do prekljuČivanja procesora a jedna aktivnosti na drugu. 6. Veličina cache meciorije svakako Je jedan od osnovnih parametara analize multiprooesorskih sistema s lokalnom cache memorijom. Obično ae veličina cache memorije kreće od 1-16 K. Njenu veličinu potrebno Je u svakom konkretnom slučaju pažljivo odrediti kao kompromia medu obično visokom cijenom cache memorije i težnjom da se minimizira srednje vrijeme dohvata iz memorije. 7. Veličina bloka meinorije. Kako pokazuju mnoge analize (3, 7, 8) Veličina bloka memorije jedan Je od najvažnijih parametara arhitekture multiprocesorskih sistema a lokalnom cache memorijom. Izbor veličine bloka raemorije (kod fiksirane izabrane veličine cache memorije) mora biti izvršen pažljivim balansiranjem suprotnih tendencija izmjene efektivnih performansi sistema u zavisnosti od veličine bloka. Naime, povećanje veličine bloka u početku može znatno poboljšati performanse sistema, pošto se povećava količina informacije koja se prenosi iz glavne u cache memoriju u toku jednog transfera. Međutim, nakon neke kritične točke povećanje veličine bloka ili ne doprinosi poboljšanju performansi ili utječe na njih negativno. To ae nraže objasniti tmogim razlozima: opadanjem korisnosti informacije u bloku s rastom njegove veličine, rastom količine'informacije koja se istiskuje j.z cache memorije kod zamjene blokova, rastom vremena potrebnog za transfer bloka iz glavne u cache memoriju, Sto dovodi do povećanog opterećenja glavne memorije i komunikacionih veza medu glavnom 1 cache memorijama. Pravilan izbor veličine bloka zbog toga je vrlo važan za konačnu veličinu efektivnih performansi. Analize (7) pokazuju da Je optimalna veličina bloka obično između 16 i 256 bytaea. B. Karakteristika linija povezivanja glavne 1 cache me-tnorije. Očigledno Je da brzina transfera blokova medu glavnom 1 cache memorijom znatno utječe na performanse memorijskog sistema u cjelini. Ta brzina osim od mogućnosti same glavne memorije zavisi i ođ sklopovskih performansi linija povezivanja, konfiguracije tih linija, kao i od njihove širine, odnosno količine informacije, koja se može istovremeno slati kroz jednu liniju. Poboljšanje navedenih karakteristika memorijskog sistema može bitno utjecati na efektivne performanse računarskog sistema, ali i na njegovu cijenu, sto znači da kod projektiranja arhitekture treba tražiti optimalni kompromis. PONAŠANJE PBOGHAMA I NJEGOVO MODELIHANJE Velik broj autora t.2, 5, 6, 7, B) naglašava prvostepeni utjecaj ponašanja programa na efektivne performanse računarskog sistema s lokalnom cache memorijom. U analizi takvih računarskih sistema pod terminom "ponašanje programa" podrasumjeva se (kao i kod analiziranja straniČne segmentske organizacije memorije) karakteristika-niza zahtjeva za dohvat iz memorije u dinamici izvršavanja programskog koda. To ponašanje ima tri slijedeća aspekta; 1. vremenski, tj. vremensku učestalost zahtjeva za dohvat iz memorije, 2. redosljedni, tJ. redoslijed kojim ae pojedine lokacije (blokovi, moduli) glavne memorije koriste, 3. logički, tj. Icgičku zavisnost među pojedinim zahtjevima za dohvat iz memorije. Jasno je da ponašanje realnih programa zavisi od mnogobrojnih faktora; počevši od algoritma problema, koji se rješava tim programom, pa do osobina upotrijebljenih kompajlera ili čak iskustva programera. Vremenski aspekt ponašanja programa u računarskom sistemu s režimom multiprogramiranja može se mijenjati od Jednog izvršavanja do drugog u zavisnosti od stanja i opterećenja sistema. U multiprooeaorskim sistemima opterećenost i stanje sistema utječe, osim na vremenski, i ns logički aspekt ponašanja svakog programa. Sve navedeno govori da je ponašanje programa ne samo jedan od najvažnijih objekata analize multiprocesorskih sistema s lokalnom cache memorijom, nego 1 objekt koji je nemoguće formalno parametrizirati u općem slučaju. Pošto, (jieđutim, nije moguća nikakva analiza efektivnih performansi bez nekih osnovnih pretpostavki o ponašanju programa, a to anaci i o stupnju lokalizma u dohvatima memorije, razrađeni su neki modeli, koji (ovisno o cilju) analiziranja) vise ili manje uspješno simuliraju ponašanje realnih programa. Kod modeliranja frekventnosti zahtjeva za dohvat Is memorije obično se koristi jedna od dvije moguće varijante: a) procesor u toku jediničnog vremenskog intervala inicijalizira novi dohvat iz memorije s nekom zadanom vjerojatnošću ili po nekom zadanom statističkom zakonu, b) procesor inicijalizira novi dohvat, svaki put kad nije blokiran nekom drugom, prethodno započetom, nkcivnošću. Rerloslijeri dohvata iz memorije najinteresantniji je aspekt ponašanja programa, pošto direktno iskazuje lokalizam u program.'^kom kodu. Jasno Je da Je zbog toga baš za taj aspekt ponašanja prograra razrađen veći brpj tnodela, koji mogu imitirati redoslijed dohvata u realnim programima. Medu njima su i slijedeći; a) IRM (independent reference model) koji predviđa da svaki blok mecaorlje ima fiksiranu (možda ne uniformnu) vjerojatnost dohvata. U nekim slučajevima koristi se čak i RIBM (random IHM) model, koji predvida jednaku vjerojatnost dohvata Iz svakog bloka.- b) W£M (working set model) koji predvida postojanje diskretne vjerojatnostne funkcije vremena f(I), gdje je f(I) - dio već izvršenih instrukcija, za koje je dohvat iste memorijske lokacije (u našem alučaju bloka) bio prije I Jedinica vremena. Dru- . gim riječima, ako Je zadnji dohvat iz nekog bloka bio u vremenu t^ tada Je vjerojatnost dohvata iz■ tog bloka u vremenu t^ Jednaka f(t2-tj^). c) LRUSM (last recently used stack model) Je osnovan na ideji da se blokovi nalaze u stogu, s tim da se na vrhu stoga nalazi zadnji upotrebijeni blok, a na dnu blok koji najduže nije bio korišten- . Svaki put kad ae vrsi dohvat iz nekog bloka, taj blok dolazi na vrh stoga. LRUSM model pretpostavlja da je vjerojatnost dohvata iz nekog bloka jednaka p(I), gdje.je I-trenutačno mjesto bloka u stogu. Vjerojatnostna funkcija pd) nezavisna Je od svih ostalih faktora osim pozicije bloka u stogu. Osim navedenih modela ponekad ae koriste i drugi, koji se međusobno razlikuju, uostaloca kao i navedena tri modela, kako stupnjem apstraktnosti, detaljisacije i težnosti imitiranja ponašanja realnih programa, tako i potrebnim vremenom i statističkim podacima za njihovo implementiranje. Logička zavisnost medu pojedinim zahtjevima za dohvat iz memorije postaje predmetom razmatranja u analizama multlprocesorskih sistema, koje dopuštaju da procesori imajii istovremeno nekoliko nedovršenih zahtjeva za dohvat Iz memorije. Raznovrsnost ali istovremeno i nepotpunost i parcijal-nost pojedinih metoda modeliranja ponašanja programa potvrđuju da još ne postoji zadovoljavajući pristup tom važnom aspektu analize multlprocesorskih sistema s lokalnom cache memorijom. Svaki od postojećih modela je zasnovan na određenim pretpostavkama koje olakšavaju analizu performansi sistema, ali koje ae ponekad 1 znatno udaljuju od realnih situacija (kao što je, na primjer, slučaj 3 BIRM modelom (6)). S druge strane, praktički sve analize koje bar donekle uključuju i- utjecaj ponašanja programa, pokazuju da ponašanje programa iraa presudan utjecaj na efektivne performanse računarskog sistema. Sve to govori da hl kori analize efektivnih performansi računarskih säatemsi s lokalnom cache memorijom bilo potrebno puno' pažljjvije razmatrati taj problem. PROBLEM KOHERENTNOSTI U MULTILBOCESORSKIH SISTEMIMA S LOKAUJOM CACHE MES40RIJOH Govoreći o analizi multlprocesorskih sistema s lokalnom cache memorijom nemoguće je ne spomenuti Jedan važan piroblem, specifičan za arhitekturu s lokalnim memorijama. Radi se o problemu.koherentnosti, odnosno jednoznać-nosti informacije. U multiprocesorskim sistemima taj se problsn pojavljuje zbog slijedećih razloga: a) postojanje zajedničkih područja podataka za nekolicinu procesora, odnosno različitih kopija tog područja u cache memorijama različitih procesora, b) migracije procesa s jednog procesora na drugi, dakle mogućnosti da kod'aktivizaclje nekog procesa sadržaj pripadajuće cache memorije .ne odgovara stanju u trenutku blokiranja tog procesa. Moguća su dva pristupa u rješavanju problema koherentnosti informacije. Statičko rješenje predlaže diferencijaciju blokova memorije na one koji mogu biti transportirani u lokalne cache memorije i one koji to ne mogu biti. tedu posljednje odnose se i blokovi sa zajedničkim podacima. Na taj način statičko rješenje onemogućava postojanje različitih kopija kritičnih blokova. Ako je, međutim, broj kritičnih blokova velik ili se oni.često»koriste tada glavno opterećenje opet prelazi s cache na glavnu memoriju. Dinamički pristup predvida međusobno spajanje cache ine-morije i primjenu direktnog pisanja (WT) u organizaciji obnavljanja sadržaja glavne memorije. Osim glavne memorije obnavlja se i sadržaj izmjenjenog bloka u svim cac-■ he memorijama, u kojima Je- on u tom trenutku prisutan. Glavni nedostatak takvog pristupa je u kompliciranosti njegove sklopovske izvedbe, koja je ili prespora (spoj preko zajedničkog kanala) ili preglomazna (međusobno spajanje svih cache memorija jednosmjernim kanalima). Osim toga, procesor završava operaciju pisanja tek nakon Sto dobije povratni signal od svih ostalih procesora {cache memorije) da.Je korekcija bloka izvršena. Količina nepotrebnih razmjena signala između cache me-raorlja može se bitno smanjiti uvođenjem tablice blokova glavne memorije i lokalnih tablica stanja cache memorija. Takav pristup rješavanju problèma koherentnosti čini se zasad najrazumnijitn, iako Je jasno da i on ima odre-denih nedostataka (2); 1. iako znatno smanjen, ostaje problem povišenog intenziteta komunikacija između procesora (odnosno njihovih cache memorija), . 2, tablica stanja blokova glavne memorije postaju kri- • tičnim resursom sistema, koji se neprekidno inten. zlvno koristi, pa kao takva može postati značajnim "uskim grlom" sistema. Zbog toga bi bilo nužno smjestiti ih u posebno brzu memorlJi4 ili pokušati riješiti 70 taj problem kako to predlažu Dubois 1 Briggs: ras^ poredivanjem tablice stanja blokova po modulima glavne memorije, tako da se podaci koji se odnose na blokove nekog modula nalaze u dijelu tablice smještenom u tcjm istom modulu, 3. broj radnji potrebnih za izvršenje operacije dohvata iz memorije postaje vrlo velik (al. 4) i znači ieahtljeva izninine mogućnosti kontrolne Jedinice sistema i kontrolnih jedinica memoriJskih sklopova. Analizirajući utjecaj probletaa koherentnosti na efektivne performanse multiprocesorakog sistema s lokalnom cache memorijom Dibols i Briggs dolaze do zaključka da je kod izvršavanja procesa, od kojih svaki ima bar 10% dohvata iz zajedničkog područja podataka, problem koherentnosti glavni razlog degradacije efektivnih performansi sistema. Iako su autori u svojoj analizi krenuli od nekih restriktivnih pretpostavki, što oduzima značaj opće zakonomjernosti dobivenim rezultatima, ta a^ializa potvrđuje da problemu koh^entnostl treba posvetiti mekslitial-nu pažnju. ZAKLJUČAK Objekt analize multiprocesorskih sistema 3 lokalnom cache memorijom vrlo Je složen i kompleksan. Uvođenje lokalne cache memorije povećava broj organizacionih i arhitekturnih mogućnosti kod projektiranja računarskog sistema. To, Jasno, dovodi do povećanja broja paraioetara koji se razmatraju, što neminovno komplicira,analizu predložene arhitekture i efektivnih performansi sistema. Pošto su mjerenja realnih sistema danas Još praktički nemoguća, jedini mogući pristup analizi i evaluaciji efektivnih performansi Je modeliranje računarskih sistema s lokalnom cache memorijom. Bez obzira radi li se o analitičkim 111 slmulacionim modelima, u takve analize potrebno je uključiti sve specifične parametre. Posebnu pažnju potrebno je kod modeliranja i analize posvetiti problemu koherentnosti informacija i utjecaju ponašanja programa (kao i mogućnostima njegovog točnog modeliranja) na efektivne performanse sistema. Nema razloga sumnjati u korisnost uvođenja lokalnih cache mentorija u multlprocesorske sisteme, a zadatak je analize njihove moguće arhitekture i organizacije da svgerlra optimalne vrijednosti parametara te arhitekture, pri kojima će ae postići najpovoljnije efektivne performanse. LITERATURA: 1. D. P. Bhandarkar, "Analysis of Memory Interference in Multiprocessors"; IEEE Trans. Comput., Vol. C-21+, pp. 897-908, Sept., 1975. 2. M. Dubois, A. Briggs, "Effects of Cache Coherency in Multiprocessors", IKEE Trans. Comput., Vol. C-31, pp. 1063-1099. November, 1982, 3. K. R. Kaplan, fi. 0. Winder, "Cache-Eased Computer Systeina", IEEE Computer, Vol. 6, March, 1973- t. J. H. Patel, "Analysis of Multiprocessors with Private Cache Memories" IEEE Trans. Comput., Vol. C-31, pp. 296-3Qit, ftpril, 1982. 5. G. S. Rao, "Performance Analysis of Cache Memories", Journal of the ACM, Vol. 25, Mo 3, PP. 378-395, July, 1978. 6. B. Samakrishna Rau, "Program Behavior and performance of Interleaved Memories'; IEEE Trans, ©smput., Vol. C-28, pp. 191-199, March, 797. W. C. Sen, K. S. Fu, "Analysis of Multiprocessor cache Organization «Ith Alternative Main tiemory Update Policies", IEEE report, 1981. B. 3. Bskms, 'AHa;iH3 nyflbTMnpouBCOopHux cMcreii c /loKa/ib-HQM nnpinTUO", MOCKOBCKHM racyj;3pCTBBHHyft yHHeepcviTeT, CtìopHMH cTaTbSM, 1983 (u štaiipl). Slik« it. Jodna moguda varijanta oporaelje piBanj« UPORABNI PROGRAMI Sprememba programa PIP (CP/H 2.2) za vefiltratno zbiröno kopiranje Ko imamo tako obe heksadecimalnl zbirki (P&-PIP1.HEX za 8080 in RPIP1.HEX za Z80), lahko izvedemo modifikacijo programa PIP.COM, ^n sicer takole I *********************************** * Informatica up ii * * PIP for Multiple File Transfers * * september 1983 * ♦modificiral A, P, Železnlkar * * sistem CP/M 2.2 * ************************************ 1. Področje uporabe PIP (Peripheral Interchange Program) je prehodni ukaz (program) sistema CP/M 2,2 za kopiranje ene ali vefi zbirk iz enega diska nadrugega ali na periferne naprave. PIP ne dovoljuje s'preprostim ukazom kopiranja zbirk na vefi diskov: vselej zahteva po kopiranju izstop iz PiPa, vstavitev novega diska in ponoven klic programa PIP. To je seveda zamuden postopek pri kopiranju zbirk na veS diskov. Postavimo si tole nalogo; modificirajmo PIP tako, da bomo z ukazom v eni vrstici lahko tega ponovili poljubno mnogokrat brez ponovnega pisanja ukaza pri poljubni izmenjavi diskov oziroma disket in seveda brez izstopanja iz PIP in toplega zagona. Prikazali bomo dve identlfini modifikaciji PIPa, in sicer z uporabo zbirnika ASM (8080) in ukazov DDT in SAVE ter z uporabo zbirnika ZASM (Z80),• povezovalnika LINK in ukazov DDT in SAVE. Tako bomo hkrati spoznali še nekatere mehanizme programiranja v zbirnih jezikih. 2. Kratek opis obeh programov Za modifikacijo programa PIP moramo poznati določena mesta modifikacije. Modifikacija programa ne bo naslovno strnjena: imeli bomo tri ločene segmente, Z zbirnikom ASM (B080) bo ta problem segmentiranja rešljiv enostavno, ker ta zbirnik generira prevedeno' hekaadecimalno zbirko, ki natanko upoäteva psevdoukaze-ORG in tako i e natanko segmentira celotno modifikacijo, Oglejmo si najprej ta modifikacij ski program na listi .1, Iz liste 2 je razvidno, da jé heksadečimaIni prevod natanko to, kar smo želeli. Trije segmenti so določeni s psevdoukazi ORG lOOH, ORG lOAH in ORG 96FH v listi 1 (in seveda z psevdo-ukazom END na koncu programa). Program je dokumentiran, tako da dodatna pojasnila niso potrebna. V listi 3 je enak program napisan v zbirnem "Jeziku procesorja Z80, in sicer v treh absolutnih modulih, ker je ZASM premešfievalni zbirnik, (ne absolutni kot ASM). Te trije moduli se povežejo v en sam heksadeciraalni kos s povezoval-nikom LINK, ko imamo npr. operacijo LINK rpipl,rplp2,rpip3 Posledica te operacije je heksadecimalna zbirka rpipl.hex, ki jo vidimo na listi 4. Tu je razvidno, da je ta zbirka natanko to, kar smo že-l.eli. Tako bo nadaljna modifikacija programa PIP enostavno izvedljiva z uporabo . prehodnega ukaza DDT za oba naSa primera. A>đdt pip.com save 29 rpip.com'(cr). )lz'29 strani v pomnilniku ( oblikujemo novo zbirko ; RPIP.COM Podoben ' postopek imamo tudi za zbirko RPIP1.HEX, ki smo jo imeli za procesor Z80, Sedaj nam preostane samo Se preizkus dobljenih COM zbirk rpip.com (8080) in zipip.com (Z80). 3. Izvajanje dobljenih programov Večkratno kopiranje zbirk brez vračanja v CP/M lahko preizkusimo z ukazoma rpip in zlpip, in sicer predvsem oba nova ukaza R (resetiranje diskete v stanje R/W) in H (hitra ponovitev kopirnega ukaza z vstavitvijo nove diskete). Pri tem ostanejo v veljavi seveda vsi dosedanji ukazi programa PIP. HaS primer pa izgleda takO/ kot je prikazano na listi 5. Tako smo si pripravili novo, privlačno orodje za množično kopiranje disket na sistemu z operacijskim sistemom CP/M 2.2. Nov sistem CP/M Plus ima te možnosti Se vgrajene v osnovni sistem, tako da jih ni potrebno posebej dodajati.- 03OLOOO0C3OAO12E ■1Q010A00 3A8000B7117A01CC7401C3CE04 21CB1E08 1001IA003680EBOEOACD05003ACC1EFE01C26D01F7 10012A0.03ACDlEEfi5FFE48C256012AF3Ü122CClED2 10013A0 011DBÖlCD740121CClE4E0600a3093624Al 10014A0011CD1ECD74010E0DCD0500C9FE52C26D32 10O15A00O111B4O1CD7401OEODCDO5OOGD2EOSE1BB 10016AOOC33C052ÄCCIE22P30IC90E09CDOSOOC9DC lOO17A0 0ODOA5O4 95O2O3a2E3S2O7A2O7 265736558 10018A00746972616E6A656D2Ò28522920696E2031 10019A00732068.69'74726F20706P6E6F76697476F7 1OO1AAO0696A6F20284829ODOA24ODÒAS265736569 1001BA00746972616E6A6520767365682064697312 1001CA006B6F76 20762073 74616E6A6S20S22F57A2 10OIDÄ00240D0A506F6E6F7669746 57 6206B6P70A6 OB01EA006972616E6A613A2024000017 03096F00C31701AA 0000000000 Lista 2, Keksadecimalni kod (Intelov format) za program z liste l ima tri ločene naslovne segmente (lOOH, lOAH in 96FH)( to pa smo tudi želeli, S tako strukturiranim kodom smemo neposredno prekriti obstoječi kod (PIP.COM) v pomnilniku {z naložitvijo v okviru ukaza DDT). A>C:PIP •CaH;«B:PAPIPl.PUJ 0 U C EB DUD OEOA 01 IF CD0500 O!22 3ACCIE BISS FEOl 0127 C26D0I 012A 3ACD1E 01 2D E65F 0I2K FEÌ16 S0131 C2SäOt L0t3Xl aAF3 0l 0137 È2CC1E 013A ItDBOl 0 1 3D CD74I0 t 0140 SlCCtE 0143 4E 0144 0600 0146 33 0147 09 0146 3684 J PRILAGODITEV PROGRAMA PIP ZA UPORABO PRI VEC- KRATiJErt PREWOSU SBIBK! FUlJKCIJI R CBESETI-J RAJfJE OISKOVJ IM H (HITRA P0.J0V1TEVJ J DISSETE LAHKO 2AitE.JJUJEI40 BREZ UPORABE TOPLEGA ZACaJA I>J IZSTOPAJJA 12 PROGRAMA PIP JVSTOPi'fA TÒCKA ZA BDOS ;DlSKOViJI/UKAiMI VilESiJIK. CP/M FtiJKCIJE; ;FU)lKCiJA TISX. SPOROČILA .•FUiJKCIJA BRAtu ukazü >dolsiaa ukaza ;IZHACUJ ODI-IIKA ODDS ■ BOOS EflU 0 5K ooso = V.iES Eau OgQH 0009 = i TI SPOR EflU 9 OOOA B BRAKOiJ EQU 10 OOOD = REDISK ■ EäU 13 D4C£ = * ZAPI P tau 04CEH lECB = KOVUES Eau lECBH Oe£E V CHLF EQU 082EÌÌ 0S3C C A.UALIZ Eau 0 53CH 096F ~ VSTAVI EäU 096FH OĐOA S 9 LF EttU OAH OOOD = CR EQU ODH 0100 i • 0R5 tOOH 0100 C3DAĐ1 # J.1P ZACETK 01 OA Ì ! ORG lOAH 01 OA 3AS000 » ZACETKiLDA v:iES OIOD B7 OHA A OJOE U7A01 LXI D.. SPORI Olli CC74C1 CZ TISKAJ D M4 CDCE04 J:1P ZAP IP 0117 21CSIE t OODAIJOSLXI HK0V«ES+2 ;tiska;ije spoho'ila 014đ cd7401 call tiskaj Ol SD OEOD mvi c 's d1b4 i OOOASa6S7 3spors db cr.lf, 'resetiRAiJje vseh diskov v ' Ol DO 7374616e6a ob -staijje r/ws- Ol db J ddaa506f6£spor3 > oa cr..lf< -poijovitev kopiranja« i' 0if3 0000 stevzij DU 0 ; ŠTEVILO ZiJAKOV V KftJ Vi-l 096f org vstavi {vstavitev spreileilbe se ; se zacije tukaj 096r c3i7đi JMP doda=jo ;D0daìja ukaza r in h 0972 EilD Lista 1, Ta lista prikazuje program v zblrnejn jeziku procesorja 8080, s katerim bomo prekrili obstoječi kod programa PIP.COM-, to operacijo bomo imenovali modifikacija programa PIP.COM (angleško patching). Program v zbirnem jeziku je bil preveden s standardnim CP/M zbirnikom ASM.COM, ki generira absolutni raSunalniški kod. V prvem segmentu programa (lOOK) spremenimo začetni skok, tako da PIP začne najprej izvajati programski segment, ki začenja pri naslovu lORH. Ta drugi segment natisne ustrezna sporočila na konzolo, s katerimi pouči uporabnika, kako lahko dodatno uporablja modificirani PIP {dodana sta dva nova ukaza R - resetiranje v stanje R/M in H -hitra ponovitev prejšnje operacije pri novovstavljeni disketi v diskovno enoto). Uporabniški ukaz za določeno sestavljeno PIP operacijo še vstavi v poseben vmesnik, tako da je mogoče ta ukaz ponoviti poljubno mnogokrat pri novih disketah z uporabo ukaza H. Tretji segment je skok na lokaciji 96FH na naslov DODANO. Sporočili S in L o napaki (lista) nista bistveni! •COHr'CtRPIPI .PRÌJ AODR CODE sd systeis z60 asseji3ler paüe >0 130 0100 C3FFFF ■ehkors=ootlo ST:iT SOURCE STATEMEJJT 00.01 ; pf.vi hoolil progeaiìa rpip s pojas;j:tvijo v DDD2 ; DULU HP1P2.AS.1 . ' 0 D D3 .0 0 04 PSECT ABS •OBOE . . GLOBAL 2ACtTK ■ 0 0 06 ■ . OSG 13 0H 00 07 kiP ZACETK ' JSKOK V BISTVEJI DEL 00 0 6 E.JD . ; DRUGEGA MODULA ADDE .CODE »0005 >OOSC >D0 09■ >000A >0 0 QD > 04CE >1 EC 3 >oe£E >0S3C >aioA 01 DA ■ OlOD oro E Olii 0114 0117 01 lA Olle 01 ID 01 IF 0122 0125 0127 3A3DÜ0 B7 ! 1 770 1 CC7101 C3CE04 £ÌCB1E 3680 EB OEOA COOSOO 3ACC 1 E FEPl 2041 st;it source stateì-ie^jt SD SYSTEMS Z80 ASSEMBLER PAGE 000 1 0G02 0003 Q0 04 0 0 0 5 0006 0 0 07 0 0 08 0 0 09 0010 oon 0012 0013 0 0 i4 OOlS 00 16 0017 0018 0019 0020 0021 0022 0023 0 0 2« 0025 0 026 (1027 0028 0029 0030 0031 0032 0033 0034 0335 0036 0037 D038 ." PRILAGODITEV PROGRAidA PIP ZA UPORABO PRI VEC-; KHAMEi-l PREJOSU iBIRK: FUiJKCIJI R (RESETI-1 RA.JJE PISKÜVJ H CHITRA POiJOVITEV) ; DISKETE LAHKO ZAilE;^JUJE^O BREZ UPORABE TOPLE: GA ZAGOJA Il-J IZSTOPAiJJA 11 PR0QRA.1A PIP ■PSECT ABS ' GLOBAL ZACETK GLOBAL DODAi-JO BDOS WIES equ 0 5h equ. eoh TISPOR EaU 9 BRAKO.J EÙL- 10 REDISK.EüU 13 1 ZAPI? EQU . 4CEK KOVi-lES EQU IEC3H CRLF ESiU 82EH " AJALIZ EQU 53CH # ORG lOAH i SACETK:LD A,.(VHES> OR A LD OE>SPOR1 ;vs,tqpìm tocka za bdos j diskov';-ji/ukaziji uileswik cpai fu.jkcije: ;fujkcija tisk. sporočila. -•füijkclja 3.RA;JJA ko.jzole ■;fujk. resetlraiitja diska jijorllaliili začetek pipa -;ihtesiii' ko;jzol;ji -u:-1es.jìk jlijterija cr/lf rutiija ■ ; vstop.i-jasl- analizatorja ilUE ZBIRKE SPEC1FIC1RA;^07 ; =0/ CE li-iEiiA ;ZACETlJO SPOROČILO call zatiskaj ;natis;ji sporo* i lo JP ZAPIP ;skocl fjà začetek pipa ; KAZALEC iJA KOMZ OLUi VMES ; Z DOLZirJO 126 ZLOGOV ; KAZALEC ZA CP/M JE U DE ; PREBERI KOWZOUJI VtlES-JIK ; Z UPORABO C?/ii LD A, CKDVMES+n;STEVILO VtlPKAi^IH Z.JAKOV CP 1 1 ALI JE SAllO EDEiJT JR aZ,RESI-S S CE GA RESI ITD. DODAiJO:LD HL/KO Vil ES LD chlji128 EX DE»HL LD C/BRAKOiJ CALL BD13S 0129 3ACD1E 0039 LD A, (K0VMES + 2);UZE1I £,^QZ,JAKOVn(I UKAZ 012C CBAF 0040 RES 5>A ; KOT VELIKO ČRKO DISE FE48 0041 CP 'H' .;ALI JE HITRO POiJAVLJAi^JE 0130 2022 0042 JR iJZ^RDISX-S ; iJIl RESETIRA.JJE7 0132 2AF0D1 0043 \ ld hl^cstziuj JE! ŠTEVILO ZIJAKOV; 0135 22CCtE 0044 LD CKOVMES+J)> HL 013S 1 ids 01 0045 LD DE^SP0R3 ;spoRociLo 0 pavoviTvi 013b CD7101 0046 CALL TISKAJ i POSTOPKA' . 0I3E .2ICC1E 0047 LD HL,KOVilES+l ;KAZALEC k zadi'jjei'iu ukazu 0141 4e 3048 LD C< CKL) ;dolzi;ja ukaza 0142 OčDO 0d49 ld bjO JIZRACUJ ODMIKA 0144 23 0050 IWC kl 014~S 09 0B51 add KL>EC 0146 3624 0 0 52 LD tHL>* 'i ' ;KOìiIEC SPOROČILA 0148 IICDIE • . 0053 LD DE»KOVMES+2 ;T1Ska;jje sPORO'Ìla 0 14s CD7t01 0 0 54 CALL TISKAJ 014E OEOD 0055 LD c-REDISK JIZVAjAiJJE FU.-ÌKCIJE RESE- 0150 . CDD500 DDS6 CALL BDOS ; tirai'jja diska 01 S3 C9 0Ü57 RET 0058 S 0 154 FE52 0059 RDlSKt CP 'r' ;RESETIRA4JJE DISKA? ' 0 156 2012 0060 jr MZ^RESI-S : 'E iJl^ SHiWJI ITD. 01 58 UBICI 0061 LD DEjSPORE ;TISKAJ R/V SPORO"I LO 3ì5b CD7Ì01 0062 CALL TISKAJ 0J5E OEOD 0063 ld c-redisk ;iZVAJAi.iJ£ FUJKCIJE RESE- 0160 COOSOO 0 0 64 call bdos ; TIRAi^JJA DISKA 0163 cd2e0s 0065 CALL CRLF ; tiskaj CF.LF 0166 EI 00.66 .POP HL ; očisti sklad 0167 C33C05 D D 67 ■JP ahaliz izdaj zi^jak DO 68 * 016a 2acc1e 0069 RESI : LD HLjt KOVMES+n; ŠTEVILO ZiJAKOU + ZfJAK 0160 22F001 0070 LD CSTŽ.iI>-HL aiTO C9 007 1 RET 0072 i 0171 0E09 0073 TIEKAJiLD C,TI SPOR. ' JFUtJKCIJA TISKAiJJA SPOR. 0173 CD0 50 0 0074 CALL BDOS 0176 C9 0 07 5 RET 0076 i 0177 odóa 0077 SPORI DEFW OAODH 0179 50495020 0078 DEFM 'pip 1-5 Z RESETIRA;JJEf1 CH) 312E3520 7A20 7 26 5 73657469 t26i&e6a 656D2Đ2S 522920 0194 696E2073 0079 DEFU 'IH S HITRO P.Ü.JOVITVIJD CH) ' 20686974 726F207O 6F6E6F76 69747669 6AĆF20 28 4829 OlAE ODOA 0080 .DEFU OAODH 01 BO 24 0081 DEFl-1 -S' 0082 * OIBI ODOA- 0083 SPaR2 DEFU OAODH 01B3 52657365 0084 DEFil 'HESETIRA-JJE VSEH DISKOV V ' 74697261 6E6A6S20 7 < ~3 a. o M g H > <= Ó < 0. o ^ o 03 o B. U) o m co CG co 55 > i M t M O J > . h) 13 Q O S 3 M H CT. CD « CM tO CK O O. CD n c3 vo r- m «i -o •o <0 r-n w i» m cj — lo r- -o f- >0 0 M VO >0 O) o o « o td o o JI t- t* I- ^ CJ k o o J > < n>or-cù u. u. o o Ll, U, »OiO Ü. o. (7. >0 C3 C9 Ch A * "= O ma n m o K > a < a u, (i s >D (- g ■ J <> ui a H « =■ o um o Ö o 3 o a to J o (S o. a o. <3 u o T W § E- irt > II S O U > o >10 --rf I > I -H s <» > o ^ 4J > C(«H-Hg «-HO lana-n «J tnx) rH ffl > o o C ■»H o o +> -r-. 4J OtU 5) Ot n e m C ~ 10 a « D > M ra s > (O C o o -kJ ffl u N M _ ■n -p -H Ol o > rS C C > 3 ig ffl K O U C n -IN M d) 13 d) ^ C o ■H E K o >0 s fr, eg C Ä ' —^ 11) ro ui u u> <11 C > o -rt « g 'n U m C Id § i« IO o . - o .H » (J ij K Bi O I I ( (U O m vj 0) C e M «>)0 ai u 01 -rt -H o (d n u > -H „ J-I Q. 01 o «1 o gl o -Ut) E Ö đ > )«1 O (CU o r^ U co laA o -rt m o C rt e Ji NM H -H > 3 (3 ^ (O-H ii M ■o > 'trn 'm 3 * --- COi-tMBlCU-H nai>eio o rOiO «) u NC Ü -H u > n H) o o C 'H >ÄT-vM di'» O O JH Ol-rl ^ -ri a H « Ä m 3 B „ . - 4J .H m N >0 ■■■I lUiJUJO Ji coc M m >&! H 0) -H > -H a > 01 C -H -l-l N .H o n oj • d) H jj h -H 'n • tì 'H -n o H fO & diti s; tn dl y to 0) (H -n .'«oi; • t^ flis ^-Hia io<» — NHEHlđ U 4J -r-i U "'n n « ■H o w n 01 -H M d) 0.O o o a4J -yuidlJJilÒ-ng 0) >« OJ N ro oi itPi oj eocnto-nioo) O T^ tji Ö nJ C C tlntCiD-rtidiul. O1O.HIC 5 ON O-rt d) Ot-H JÄ TJ a Ifl U1 i« • 6 Al - M (5 n OT! fli ■»w-i-iqjfl.+J lasanAios: u 3 •o;^ BOg-Hid-Hß-rtrtfH o --H H > ^ <0 fu .0 'Ö m N o. hi M » lO Ji -o ei o H -H o e .Ü +1 g > 01 N N C o Ü u ao U C 01 M O -H 'H - _ , iHđ4Jxii;3i-i-HODOA24ODOA526S7365746972616E6A652O767365682O646973636f762e 12OO1CA002076207374 616E6A652O52 2F5724 0D0A506F6E6F7669746576206B6F7069726137 t080lEA006E6A6l3A2024000056 IO3096FOOC317O1AA iOOOlOOOlPE Lista 4. Zilogov hekaadecimalni format na tej listi se razlikuje od Intelo-vega formata na listi 2. Tu je maksimalno število zlogov v vrstici enako 32 (20H) za razliko od 16 (lOH) pri Intelovem formatu. Nekatere vrstice so seveda lahko tuđi krajäe (npr, prva, deveta, deseta in enajsta). Prikazani format oöitno zadovoljuje naSo zahtevo po prekrivanju programa PIP.COM v pomnilniku, ko uporabljamo Interne ukaze prehodnega programa DDT,COM. Razlika med Zilogovim in Intelovim heksadecimalnim formatom je tudi v zadnji vrstici. Intelova zadnja vrstica je sestavljena iz samih nifiel (glej listo 2), v Zilogovi zadnji vrstici pa se oblikuje med drugim tudi vsota parno-sti (zadnji zlog = zadnja dva znaka = FEH). Izkaže ae, da ta razlika v zadnji vrstici ne povzroča stranskih u6inkov in da smsTOO Zilogove heksadeci-malne zbirke brez nadaljnega uporabljati v okviru ukaza DDT, Še pojasnilo! v drugi vrstici pomeni 't' za6etek nove naslovne vrstice z dolžino 20H zlogov pri naslovu OIOAH, ko imamo tip zapisa 00 {zadnja vrstica ima tip 01); nato sledi 32 zlogov. Na koncu vrstice je vselej zlog vsote parnosti. Ta format je nastal v razdobju uporabe ASCII teleprinterjev in zadnji zlog se je uporabljal za verifikacijo pri Sitanju z luknjanega papirnega traku. A>CäilIPlP PIP 1.5 -L RESETI fìAiJ J Jul I.l S llITitU PÜ.vÜVI TV IJ Ü U-l) •H------- RESETI RAWJE VSEH DISKOV V STAlJJE h/V •D:=C!*.7SC ---^--- COPYING -AAAA.ASC BBBB.ASC CCÜC.ASC DDDD. BSC »H ------——------:---— PO>iOUITEV ItOPIRilMJA; DisĆi'.'SC Poklißeroo modificiran program ZIPIP.COH, ki se nahaja na diskovni enoti C: Program se javi s sporočilom Uporabimo nov ukaz R, ki povzroči resetl- ranje zbirk v stanje R/W Vtipkamo PIP ukaz, s katerim ee bodo vse zbirke, ki konfiujejo v razširitvi 8 podnizom 'SC' kopirale z diskete enote CI na disketo enote >D Vstavimo novo disketo v enoto >D in ponovimo postopek kopiranja COPYING -AAAA.ASC BBBB.ASC CCCC.ASC DDDD.ase •H - POHOViTEU KÜPnSAiJJAj 01=0«». TSC COPYING -AAAA.ASC 3BBB.ASC CCCC.ASC DDDD.BSC A> Vstavimo novo disketo v enoto iD in ponovimo postopeJc kopiranja Po trikratnem kopiranju izstopimo iz programa ZIPIP.CC»1 v operacijski sistem CP/M na začetno diskovno enoto sA Lista 5. Primer na tej listi kaže, kako je mogoče z modificiranim programom PIP večkrat kopirati zbirke iz ene diskete na drugo brez vmesnega vračanja v sistem CP/M, Pri tem smemo diskete v diskovnih enotah poljubno zamenjevati z novimi ih uporabljati vse ukaze programa PIP vključno z novima dvema ukazoma R in H. Podobno listo bi dobili z uporabo programa RPIP, ki je bil napisan za procesor 8080, ************** * Modula-2 za CP/M sistem • *************************** ********************************* • Mikrovojna filmska zanimivost * **•*»*****»•»***»*» ■«»»**********• Prevajalnik za jezik Hodula-2 na CP/M sistemi: zahteva 60k zlogov pomnilnika. Modula-2 je napreden programirni Jezik (o njenu smo pisali tudi v časopisu Informatica),- kl se je razvil iz jezika Pascal. Njegov poudarek temelji na konceptu modula, kar omogoča razvoj obsežnih programovj ki so sestavljeni iz modulov; ti se shranjujejo v programski knjižnici. Ker je vsak modul razdeljen v tfcim, definicijski in imple-mentacljaki del, je mogoče vsak modul modificirati brez vpliva na njegovo povezavo z ostalim delom programa. Razen tega ima Modula-2 lastnost tipskega preizkušanja med ločeno prevedenimi programskimi segmenti. Sintaksa Module-2 je podobna pascalski sinta-, ksi, je pa bolj sistematična in lažje priučij 1-va. Hodula-2 ima tudi nlzkoravninske prlpomoč-''fi omogočijo neposreden dostop v računalniško opremo.in dovoljujejo strogo tipsko preizkušanje. Ta relativno nov jezik ima tudi mul-tiprogramirne možnosti, kot so signali, monitorji in procesno oblikovanje,. Koncept proce-durnih spremenljivk prinaSa nove možnosti za programsko krmiljenje. Modulo-2 je definiral N. Wlrth, ki je oblikoval ]ezlk Pascal v lotu .19 70, Cena pkketa je ^ 100. Naslov proizvajalca! JRT Systems, 4 5 Camino Alto, Mill Valley, CA 9494X,-USA. V novem filmu podjetja MGM/UA, ki ima naslov »Vojne igre", uporablja lOO'vojaških strategov dva mikroslstema podjetja CompuPro. Dva sistema poganjata vrsto zaslonskih računalnikov z zanimivimi barvnimi učlnklj programe za te efekte je izdelal filmski računalniški konzultant Steve Grumette. Za veliko vojno dvorano je Grumette aprograml-ral 120 monitorjev, ki oddajajo na stotine različnih bojnih planov z bliskovito hitrostjo -vse z uporabo sistemov CompuPro. Pri tem je odločilna hitrost za realno dogajanje na sceni. Glavna prednost je namreč v tklm, mikromodulu M-Drive, ki simulira winchestrski disk z veliko hitrostjo. Druga zahteva je bila zanesljivost mikroslstema. NOVICE irj ZANIMIVOSTI * Hovice Iz podjetja Digital Research * ********************* db***************** Podjetje Digital Research je objavilo nov cenik svojih programskih izdelkov, in sicer: Opis izdelka Format Format 3740 3740 disk 8" disk 8" 8-bitni 8086 Operacijski sistemi in pripomočki CP/M 0165 0275 CP/H Plus St385 MP/M 0495 0715 CP/Net $220 . Despool 0 55 Tex $110 Jeziki in prog ramimi pripomofiki CBASIC 0165 0358 CBASIC Compiler 0650 0660 Personal BASIC 0165 C 0660 Pascal/MT+ 0385 0660 Speed Programming 0220 0275 Package Pascal/Mr+ with Speed 0550 0880 Programming Package PL/1 0605 0825 CIS Cobol 0935 0935 Level II Cobol 01760 Animator 0880 Forms II 0220 Native Code Generator 0880 Run Time System 0440 DR-Logo 0 99,95 0149,95 Programirne storitve Programmers Utilities 0220 0220 BT-80 0220 XTL86 0165 SID 0110 0165 Access Manager 0330 0440 Display Manager 0440 0550 Grafika GSX 0 82,50 0 99 DR-Kernel 0550 DR-Plot 0550 DR-Graph 0440 DR-Draw 0440 Cene v tej Éàbeli veljajo za en sam kos. Seveda prodaja Digital Research še druge izdelke za IBMov PC, Apple II, Rainbow (DEC) in za TI PC. Cena CP/M-86 za IBHov PC znaša le 066. A.P.Šeleznikar ************************************ * Vinfiestraki krmilnik za amaterje * ************************************ Z novimi integriranimi vezji si lahko Ogradite krmilnik za uporabo vlnčestrskega di^a tudi sami. Podjetje Western Digital proizvaja vrsto združljivih integriranih vezij za te namene, in sicer; ~ WD1010 vlntestrskl krmilnik, ki oblikuje krmilno vezje za standardne vinSästrske diskovne enote (ST500/SA1Đ00 itd.), je povezljiv z veäino 0- in 16-bitnih mikroprocesorskih vodil in dosega hitrost prenosa podatkov do SHljit/s — WD1011 je ustrezni separator digitalnih podatkov, ki se uporablja pri branju podatkov iz vinSestrskega diska — WD1012 rabi za pisalno prekompenzacijo — WD1014 je krmilnik za popravljanje napak — WD1015 je vmesniSki upràvljalnik ~ WD1510 je LIFO/PIFO, ki se lahko uporabi kot zunanji sektorski vmesnik in — VJD279X je pripađajobi krmilnik za iipogljivl disk (disketa) Naslov proizvajalca: Western Digital, Components Group, 244 5 McCabe Way, Irvine, CA 92714, USA. A.P.Železnikar ******************************** * Ameriškojaponski raikrosistem * ******************************** Ha evropskem trSigču se je pojavil mikroračunalnik Seiko Series 860Ò, ki ima Sest (béri 6) razliSnih operacijskih sistemov in sedem visokih programirnlh jezikov. Ta sistem se proizvaja v skupnem ameriškojaponskem podjetju Sci--Com. Ta ra&unalnlk je veSuporabniäki mali poslovni sistem, ki uporablja procesor Ö»086 (5 MHz), 5l2k RAM, lOM vinfiestrski disk in do dva upogljiva diska (5 in 1/4"). Za komunlkàcijo je predviden dupleksni RS232C port (50 do 19,2k baud), a-bitni paralelni V/I za Centronics' in dodatni CCITT-X.21 standardni HdlC vmesnik ter do štiri prikazovalnopisalne enote s procesorji 8085. Operacijski sistemi za Seikov mikroračunalnik so MS-DOS, CP/M-86, MBOS, OASIS-16, UNIDOL in MP/M-86. MBOS (Science Management Corp) je mul-tioperacljski sistem, ki je podprt z Basic Four poslovnim jezikom. ONlDOt (isti prolzt?ajalec) je eno- in veöuporabniSki primerek sistema UNIX III. Dodatni jeziki so äe Fortran, Cobol, Pascal, C, MBaslc in CBasic. Osrednji procesor ima pri 5HHz taktu 4 DMA kanale, tri intervalne Sasovnike, uro realnega 6asa in B vektorskih prekinitev. Osnovni sistem ima 128k 200ns RAM, razSirljlv do 512k. Inicia-lizacijske rutine so samodiagnostiCne. Cena minimalne ve6uporabnlške konfiguracije z enim 640k pogonom za upogljivi disk in z lOM vlnäe-strskim diskom, z enim terminalom in veCuporab-nišklm operacijskim sistemom znaša v Veliki Britaniji približno 7000 funtov. A.P.Železnikar **************************************** * Unix System 5 naj bi postal standčtrd * **************************************** Kako naj bi dosegli zadovoljivo standarizacijo operacijskega sistema Unix, ki se prodaja v različnih izvedbah? Bell Laboratories, ki je oblikoval sistem Unix, je prodal licence^ štiriia vodilnim proizvajalcem integriranih vezij, in sicer podjetjem Intel, Motorola, National Semiconductors in Zilog, pod pogojem, da zgradijo splošen (generičen) operacijski sistem Unix 5 za njihove sedanje in prihodnje 16-bltne mikroprocesorje. Cilj takega dela naj hi bila skupna aplikativna programska oprema, ki je portabilna (prenosljiva) iz enega računalniškega sistema na ■drugega brez spreminjanja koda ali drugih popravkov, Generični primerek operacijskega sistema bo pripravljen za prodajo v začetku leta 1984, in sicer za procesorje lAPX 286, 68000, 16032 in Z8000. Western Electric bo dobavil tem proizvajalcem' Unix System 5 v izvirnem kodu za VAX 11/750 in proizvajalci bodo na osnovi tega razvili procesorsko odvisne dele sistema. Po izdelavi teh delov bodo ti vrnjeni Western Electric in bodo ocenjeni, ali res izpolnjujejo pogoje sistema S, ■ ■ A.P.Železnikar * Potrditev prevajalnikov jezika Ada * DOD (Department of Defense) je doslej potrdil dve izvedbi prevajalnika-za Ado, in sicer podjetij Rolm Corp (Santa Clara, CA) iii univerzi v New Yorku za Ada/Ed prevajalnik. Tretjo potrditev Je dobilo podjetje Western Digital. Verifikacija je sestavljena 12 1800 poskusov s lOOOOO vrsticami.koda. Ta preizkus je bil npr. opravljen na računalniku Eclipse MV/8000 ral) za prevajalnik"podjetja Rolm; trajal 36 ur. Iz tega je razvidno, in zapleten je tak preizkus. IBM si zelo prizadeva, da bi dobil ta prevajalnik za uporabo na svojih sistemih. . A.P.železhlkar (Data Gehe-preizkus je kako strog ***** 11 *-»********** ************ t **»» J,.1, t ***» ** * Intelov Multibus.za 32-bitne procesorje * ******************************************* Na projektu razvoja 32-bitnega vodila podjetja Intel dela 13 podjetij, med njimi tudi nemäkl Siemens in Nixdorf. Zgradba tega vodila (Multibus 11) bo omogočala podobno delovanje procesorjev, kot je omogočeno pri dosedanjem l6-blt-nem multlbusu (to vodilo je sprejelo 150 najpomembnejših podjetij). Modularna in procesno neodvisna zgradba vodila naj bi povečala sistemsko zmogljivost, zanesljivost in multlpro-cesiranje. Na 32-bitnem vodilu bi lahko obratovali tudi prejšnji 8- lnl6-bitnl moduli, ki upoštevajo standard multibusa. Novo vodilo naj bi imelo poseben protokol, ki omogoča realizacijo večvodilnosti (večkratno vodilo), vläje arhitekturne ravnine; vse to naj bi omogočilo načrtovanje zmogljivih multiprocesorskih sistemov . A.P,Železnlkar ************** * MaglcPrint * ************** MaglcPrint je dodatek k procesorju in urejevalniku besedil z imenom WordStar in je predviden za uporabo tiskalnikov Diablo, Qume In NEC; ti tiskalniki umorejo tkim. proporcionalno tiskanje znakov, ki je po videzu lepše od enakomernega tiskanja (navfidnl tiskalniki). MaglcPrint je samostojen tiskalni program. Besedilne zbirke se pripravijo kot navadno z WordStaroin z vgnezdenimi novimi ukazi v zbirki; pri tem se ne upoštevajo ukazi s piko na začetku vrstic, ki pripadajo WordStaru. Normalno pa delujejo ukazi Wordstara za polkrepko, podčrtano in drugače poudarjeno besedilo'., Magic Print pa uvaja tudi druge lastnosti, kot je avtomatično pisanje opomb (footnoting), večvrstične glave In podnožja besedil in Še druge lastnosti. Ko je zbirka dokončno urejena, se uporabi MaglcPrint za njeno tiskanje in normalne rutine HordStara se pri tem ne uporabljajo. Krmilni znaki MaglcPrlnta so zbrani v tabeli 1. Ti znaki so vgnezdeni (vnešenl) v besedilo in izginejo (se zbrišejo) na koncu odstavka. CTRL-An Spremenljivi razmak med črkami (pitch), kjer je n = O, ... ,9 CTRL-ß Polkrepko tiskanje CTRL-C Ustavitev, ki omogoča zamenjavo tiskalne glave CTRL-D Razprto tiskanje CTRL-E Začetek in konec'opombe /komentarja CTRL-F Natisne znak centa CTRL-G Natisne tkim. "neznak" CTRL-h Akcentiranje CTRL-L Nova stran CTRL-N Ukaz resetlranja CTRL-O Neprekinitveni razmak CTRL-R Poravnava ene same vrstice CTRL-S Podčrtavanje CTRL-T - Tiskanje potence (superscript) CTRL-V Tiskanje indeksa (subscript) CTRL-X Prečrtavanje CTRL-Y Sprememba barve traku CTRL- Mehka delilna črtica Tabela 1. Vgnezdeni ukazi"za HagicPrint MaglcPrint pozna dva načina podčrtavanja: podčrtavanje znakov (in ne presledkov) in strnjeno podčrtavanje. Wordstar dovoljuje le dva načina vnaprej opredeljenega razmikahja'(pitch); Magic Print Ima deset inkrementov, ki se uporabljajo za tkim. lokalno tipografsko nameščanje (kerning) . Popolnoma nov ukaz je CTRL-R, s katerim se poravnavajo posamezne vrstice in CTRL-L, ki se uporablja namesto ukaza s piko '.pa' v Word Staru (brezpogojni konec strani) ter seveda ukaz CTRL-E za pisanje opomb (komentarjev), MaglcPrint uporablja vejične ukaze (ukazi, ki začenjajo z vejico v nasprotju z oniini, ki začenjajo s piko v WordStaru), ki so zbrani v tabeli 2. Podobno kot pri WordStaru se morajo vejlčni u-kazl postaviti,začeti v prvem stolpcu levo. MaglcPrint pozna dva razreda veji.čnih ukazov, In sicer stabilne ukaze, na katere ne vpliva pomik valja (navadni ukazi) In prehodne ukaze, ki se s pomikom valja resetlrajo. Iz tabele 2 je razvidna raznovrstnost ukazov pa tudi, kaj je v bistvu k WordStaru dodanega. MaglcPrint deluje zanesljivo'In natanko tako, kot je opredeljeno. Sporočila o napakah se pojavljajo v zvezi s problemi v zbirkah. Tiskanje tekata je neprimerno bolj kvalitetno kot pri WordStaru, seveda z uporabo ' proporcionalnega tiskalnika. Slabost HagicPrlnta Je v slabosti vsakega tipičnega procesorja besedila, kjer oblikovanega besedila ne vidimo prej na zaslonu; zato je včasih potrebno ponovno tiskanje besedila. Se želimo doseči natanko zamišljeno obliko besedila. Cena MaglcPrlnta znaša f!l9f>. Znakovne glave (marjetice) za proporcionalni tisk so kovinske (ne plastične) in za slovanske jezike še niso na voljo. Kljub tt";ii> pomanjklj.ivostim pa pomeni 78 B C C C+ C- co Cx D E E-E+ FO Fl GG H I J JO JI J2 J3 L M NO N+X N-X O 1' Px PO POx P-P+ R S Ü0 Ü1 v w RETURN T B TO aH BO *T *B *T0 ali *BQ ) Pomik z& vrstico nazaj Centriraj vrstice Centriraj eno vrstico Vključi centriranje Izključi centriranje Enako kot C-Centriraj x vrstic Zaöetne vrednosti ponovno veljajo Pravilna poravnava posamezne vrstice na straneh s sodo Številko na straneh z liho Številko Krmiljenje ustavitve na koncu strani Tiskanje brez ustavitve Ustavitev na koncu strani Nastavitev dolžine strani s številom vrstic Nastavitev trajne dolžine strani s ätevilora vrstic SpreitiBiiiba gostote znakov Umaknitev vrstice na levi strani Poravnava vrstic na desnem robu prava proporcionalna neporavnava prava proporcionalna poravnava stara proporcionalna neporavnava stara proporcionalna poravnava Nastavitev dolžine vrstice Nastavitev levega roba Enako kot CTRt-L Pomaknltšv na novo stran, je v trenutnem odstavku veö kot X vrstic Pomaknitev na novo stran, Se je v trenutnem odstavku manj kot X vrstic Izmaknltev prve vrstice odstavka Nastavitev Števila strani Začetek oštevilčevanja strani z x Prestavitev oŠtevilčevanja .strani na naslednjo stran Začetek oŠtevilčevanja strani na naslednji strani Izključi oštevilčevanje strani Vključi oštevilčevanje strani Pravilna poravnava vrstice Nastavitev vrstičnega razmaka Znak '+' doda polovični razmak Prekinjeno ali neprekinjeno podčrtavanje prekinjeno podčrtavanje (presledki neprekinjeno podčrtavanje Nastavitev razdalje med vrsticami Razdalja pri skrajšani vrstici na desni (desna umaknitev) Ustavitev tiskanja Simbol formata Številke strani Številka strani na vrhu strani Številka strani na dnu strani Odloži oštevllčevanje strani na naslednjo stran Konec formatnega bloka oŠtevilčevanja strani Porroatnl simbol naslova strani Naslov strani na njenem vrhu Naslov strani na njenem dnu üaöetek naslavljanja na naslednji strani Konec formatnega bloka naslavlja-strani Tabela Vejični ukazi MagicPrlnta MagicPirint kvaliteten dodatek na področju tiskanja besedil, Se posebej, če bi ga bilo moč uporabiti z visokotočkovnim mozaičnim propror-cionalnim tiskalnikom, kjer bi odpadel problem kovinskih marjetic. Prodajalec MagicPrlnta je Lifeboat Associates, 1651 Third Avenue, New Vork, NY 100 26, USA, A.P.Žoleznlkar * Kako je z upravljavskim informacijskim * * sistemom danes ? • ****************** v*** Pred nekako desetimi leti se je pojavila streznitev o možnostih upravijanskega Informacijskega sistema (HIS), ko nt bilo več pričajcovati rešitev s praktično vrednostjo. Mikr oe^ktro-nika in razvoj programskih sistemov pa sta V tem razdobju doživela popolnoma nov raznjah in tako se je ponovno pojavilo staro vprašanje: ali je v danaSnjem času ob ponio£l mUtroetoktro-nike, telekomunikacij in programske metoSÖlog.l-je mogoče zgraditi MIS in to še posebej v majhnih in srednjeveLikih podjetjih? Kakäen je tedaj odgovor na to vprašanje danes? Pred desetimi leti je bilo znanih veö zaprek za postavitev MIS, ki jih je mogoče strniti v tele predpostavke : Predpostavka 1, Centralizirana kontrola in integracija vseh informacijskih sistemov podjetja je nesmiselna in učinkuje kvečjemu zaviralno. V tistem času je bilo treba upoStevati težave, ki 30 se pojavile pri velikih računalnikih poznih 60-lh let: vrsta programskih prola^oditev z ročnimi metodami, pomanjkanje prlja^-nejSih programirnlh pripomočkov, pomanjkanje primerne obdelave besedil in obstoj tehnokraclJe, ki je prisegala na velike sisteme in na centralizirane rešitve. Danes je mogoče z uporabo Internih pođal;kovRih mrež, programirnih terminalov In plsasplških računalnikov reSiti določene probleme optimalno z uporabo centralnih In necentralnlh Cementov, kar zagotavlja ustrezno koordinacijo in integracijo vseh informacijskih sisteiiiov, z ohranitvijo njihove gibljivosti In lokaln® samostojnosti. Ti sistemi nudijo računalno moč na delovnem mestu s prednostmi visoko zmogljivih centralnih naprav, ■ Predpostavka 2. Masivna uporaba računalnikov ne prispeva bistveno k Izboljšanju Informacijske kakovosti. Masivna uporaba računalnikov je v tistih časih pomenila masovno obdelavo, slabo strukturiran output brez komentarjev in nezadostno prilagoditev uporabniškim potrebam. Danes se že približujemo integraciji podatkov, besedil In slik v enem sistemu; ta Integracija je podprta z uporabniško prijaznostjo, dlalogi-čnostjo in visokimi programirnlmi jeziki In generatorji. Informacijo je tako mogoča predstaviti v obliki, ki je skladna z uporabniškimi potrebami glede na njeno koncentracijo in obliko, podprto z dialogom na zaslonu ali popolnoma komentirano in optimalno grafično oblikovano. Predpostavka 3. Sposoben in strokovno kompententen izvedenec, ki bi lahko zgradil MIS, se doslej Se ni rodil. Zaradi naraščajoše sistemske združljivosti in povezovalnih zmogljivosti in z obstojem zmogljivih mrež za podatke in besedila je povezava Informacijskih sistemov danes bistveno la£ja in no predstavlja več nerešljivih problemov. Predpostavka 4, 2arađi razumevanja .(znanja) in ekzagtnosti, ki bi bila potrebna za obvladovanje HIS, bi bila večina direktorjev, upravljavcev in njihovih sodelavcev preveč obretnenjenih. Danes je uporabnik voden z dialogom ali z uporabo menujev, tako.dà lahko v celoti obvlada doloCen problem na slstemuf komunikacija s sistemom je lahkotna, prijetna in poučna in njena težavnost dejansko ne presega težavnosti telefonskega razgovora. Predpostavka' 5. Visoko učinkovite znanstvene metode, ki so.potrebne za visoko zmogljivost MIS, kot BO kibernetika, hevristika, odločitveni modeli, izvedenski sistemi itd., v svoji današnji obliki še niso praktično dozoreli za področje podatkovne obdelave. Pripomoöki za vođenje, upravljanje; pofilovanje itd. so danes realizirani v programskih paketih že za namizne in> osebne računalnike, podprti so z grafiko., izvedenskimi sistemi in s kompleksno komunikacijsko povezavo'in z neposrednimi pripomočki za uporabnike, . . ' Predpostavka 6. MIS je mogoče realizirati teo-retiSno, ni pa mogoče predvideti dela,, naporov, stroSkov in. časa za njegovo prektiiSno realizacijo. Izhodišča so (äanes bistveno drugačna - izboljšana. Teoretične osnove MIS, izdelane v začetku 70-ih let, so zaradi novih.tehnoloških možnosti ge vedno uporabne. Medtem se je tudi zmogljiv vost materialne opreme pri padajočih cenah povečala za več kot velikostni razred) tudi programska oprema nudi bistveno nove možnosti. Predpostavka 7. Programima tehnika, standari-zacija. in sistemska tehnika še niso dovolj zrele za premagovanje težav, povezanih z HIS. Na treh omenjenih področjih je bil dosežen znaten napredek tako v njihovi teoretični zgradbi kot v praktični uporabi. Se vedno'pa se razvija in je viden tudi napredek v integraciji podatkov, besedil in slik in v njihovi obdelavi, shranjevanju.in komunikaciji. Predpostavka 8. Hožnosti enostavnih in cenenih delnih informacijskih sistemov in razvoj majhnih in najmanjših računalnikov z veliko zmogljivostjo in možnosti decentralizacije so močno znižali interes za uvedbo MIS. Ta težnja je v vrsti primerov povzročila medsebojno izolirane rešitve in tehnično delitev podatkovnih in besedilnih obdelav. Kot nasprotna usmeritevi,se kaže v poslednjih letih integracija, ki ' kaže v smeri MIS, čeprav je povezana z decentralizirano računalniško zmogljivostjo na delovnem mestu. Predpostavka 9. Tehnične zmogljivosti računalnih in pomnilnih enot današnje računalnlSk«^ generacije so za MIS nezadostne. - V tem času so se računalne in pomnilne ziiioglji-vùsti ob.padajočih stroških povečale za več velikostnih jTa Z IT e do V, 'Dčinea so ufiftiizni račun «i .Ini— ki zmogljivejši od velikih računalnikov 70-ih let. Predpostavka lO. Informacijska baza za smiselno uporabo v.MIS je v večini podjetij prerevna in premalo zaščitena. Predvsem, manjka jo uporabni prognostični podatki,, brez katerih bi bil MIS le draga tehnična igrača. S to predpostavko so težave äal tudi danes. Vendar so se ovire bistveno zmanjšale pri zajemanju operativnih.podatkov z uporabo zmogljivih statističnih programov. Predpostavka II. Praktični problemi totalne reorganizacije, velikega števila strokovnjakov in investicijskih finančnih zahtev bi lahko večino podjetij preveÖ obremenjevali. . Od takratnega prepričanja, da se morata človek in organizacija prilagoditi računalniku, ni ostalo ničesar več. Uporabniška prijaznost naprav in programov je ta problem izničila, cene pa so pri tem skokovito padale. Iz napisanega izhaja, ^ da so danes tehnične in gospodarske predpostavke -za • realizacijo upravljavskega .informacijskega sistema (MIS) neprimerno boljše kot pred desetimi leti in da je tako praktično izničen nekrolog enajstih predpostavk, ki je veljal- za MIS pred desetimi leti. Teorija vodenja.podjetij je doživela v poslednjih desetih letih bistvene spremembe!' metodično usmerjeno mišljenje je bilo nadomeščeno z mišljenjem o nalogahf- pri tem niso več toliko bistvene naprave in sistemi kot je bistvena informacijska potreba upravljavske strukture. Pri tem je bistveno vprašanje, kako je mogoče z uporabo MIS zadostiti tem potrebam. Informacijska potreba na področju poslovanja je izrazito nalogovno usmerjena in jo je glede na njeno podrobno opredelitev, težišče, priročnost in zgradbo le težko predvideti ali jo celo programirati, Z veliko količino števil se tu ne more kaj bistvenega doseči. Direktor uporabi v tem težavnem odločitvenem postopku svoje izkušnje, svoj smisel za bistveno in določeno intuicijo. Seveda pa mora pri tem stati na tleh In potrebni so mu zanesljivi, podatki o likvidnosti, kapitalni strukturi, produktivnosti itd. in o stanju gospodarskih in tržnih perspektiv, o novostih in temu podobno. Razen tega pa se mora direktor kratkoročno ukvarjati tudi s podrobnostmi, kot so gospodarske posledice ustavitve določenega produkta, mej cenovnih popustov, poxnati mora konkretne možnosti financiranja določene racionalizacije ali učinek napredovanja pomembne stranke na likvidnost itd. Pri vsem tem ne gre'za množico podatkov, "potrebna pa je kvalitetna in natančno usmerjena informacija. Praktično'izgleda to takole; . — direktor mora dobiti hitro in neposredno prave in potrebne informacije ~ posredovane informacije morajo ojpisovati najnovejše stanje ' . informacije morajo biti zgoščene, pregledne- in razumljive — v težavnih položajih mora biti dana možnost povratnega vpraševanja in zbiranja podrobnosti Tudi računalniško podprt sistem bo le težko ustregel vsem tem zahtevam. Kahtevam, kot so neposredan dostop, dnevna veljavnost podatkov, nalogovno usmerjeno posredovanje in hiti-o produciranje podrobnosti, bo možno ugoditi le s pomočjo računalnikov na delovnih mestih, tako pri vodilnih delavcih kot v okolici teh, K vse- mu temu pa Je potrebna še tista integracija podatkov, besedil in slik. Ki jo lahko nudi le smotrno organiziran HIS. Seje in zasedanja so največji požiralci fiasa, öe niso vodeni učinkovito. Ta učinkovitost se bistveno zmanjSuje takrat, ko udeleženci sej govoričijo o svojih pridržkih namesto o sklepnih argumentih ali ko je potrebno predlagani sklep odložiti zaradi pomanjkanja informacij. Če je v sejni dvorani nameSčen terminal z barvno grafiko, se lahko razprava seje usmeri na konkretne in veljavne informacije, kot so brutoprođukt, rentabilnost, likvidnost Itd. tako da teh podatkov nI potrebno iskati v aktih in v sejnem materialu. Pogosta se direktor sooča z banalnimi In časovno zahtevnimi informacijskimi problemi. Oglejmo si nekaj primerov! - oblikovanje dokumenta o trenutno ne preveč razjasnjenem problemu - pozaba terminov, povezanih z določenim dnevnim redom - časovno zahtevno iskanje po določenem postpku v arhivu ali v registraturi - zadrega zaradi neznatnih, vendar v. tem trenutku pomembnih takoj&njih informacij - poprava besedila pod hudim časovnim pritiskom - nezadovoljiva informacija kljub goram papirja - nepopolna informacijska učinkovitost zaradi prekomerno centraliziranih naprav, kot so npr. tipkarska storitve in kopiranje Pred desetimi leti bi pri teh problemih odpovedal tudi zaslon MIS, Danaänje naprave pa omogočajo oblikovanje In obdelavo besedil, . podatkov in grafik na delovnem mestu, zaradi njihove lokalne inteligence jih je moč uporabiti za osebne storitve, vključene pa oo tudi v komunikacijske mreSe informacijskih bank, drugih delovnih mest in vlaoko zmogljivih naprav za obdelavo podatkov. Čeprav je Ideja o izgradnji MIS pred desétimi leti zamrla pa obstajajo danes vse možnosti, da se upravljavski informacijski sistem realizira na zadovoljivi ravni - fie zlasti v manjäih podjetjih. Tudi domači mikrosistemi {npr. Partner) lahko v tej smeri prispevajo bistveni delei. A,P.železnlkar * Najmočnejši v obračunskem letu 1982 * Dohodek 100 ameriäkih podjetij računalniške industrije je znaSal v letu 1982 $ 79,4 milijarde. Najbolj so napredovala v primerjavi s prejšnjim letom nekatera manjäa podjetja, kot so npr. Tandon (151%), Commodore (99,4%), Apple (65,5%) in Tandy (57,6%). Vsa ta podjetja proizvajajo za področje mikroračunalnikov. ' Osebni računalniki so se končno tržno uveljavili, kar kaže tudi tabela 1. Podjetje PC dohodek 1982 i» milij.) PC dohodek 1981 (^ milij.) Rast « 1. Apple 664,0 401,1 65,5 2. IBM 500,0 n.p. n.p. 3, Tandy 466,2 293,0 59,1 4. Commodore 367,8 184,4 99,4 5. Hew.-Packard 235,2 195,0 20,6 e. Texas Instr. 233,0 144,3 61,4 7. PEC 200,0 n.p. n.p. (n.p. = nI podatkov) Tabela X. Povprečna rast 61,2% Velika povprečna rast je bila dosežena tudi na področju pisarniških sistemov, kot je razvidno iz tabele 2. Podjetje P. dohodek 1982 milij.) p. dohodek i9ei (S^ milij.) Rast « 1. IBM 1600,0 1600,0 12,5 2. Wang Labs 584,8 456,3 28,1 3. Motorola 274,9 232,0 ie,4 4. Lanier 241,2 228.0 5,7 5. Burroughs 200,0 50,0 300,0 6. Xerox 200,0 132,0 51,5 12 . DEC 100,0 n.p. n.p. (n.p, = ni pcidatkov) Tabela 2. Povprečna rast 52,1» Ha področju proizvodnje velikih sistemov (mainframes) je bil dosežen vrstni red« IBM, Sperry, Burroughs, NCR, CDC, Honeywell, Amdahl ltd. fl povprečno rastjo borih 6,84%. MlniraČunalniško področje kaže določena spremembe v primerjavi s prejänj im letom. läH se je tu pojavil na prvem mestu in odvzel prvenstvo DECu, ki je celo nazadoval, kot Je razvidno iz tabele 3. Podjetje Ml dohodek 1982 ((! milij.) Hi dohodek 1981 milij.) Rast « 1. IBM 3000,0 n.p. 2. DEC 1680,0 2068,1 -18,7 3. Burroughs 800,0 575,0 39,1 4. Data General 603,8 573,2 5,3 5. Hew,-Packard 588,0 429,4 36,9 6. Wang Labs 584,7 456,'4 28,1 7, Prime Compu. 351,0 309,0 13,5 8. Honeywell 330,0 300,0 10,0 Tabela 3. Povprečna rast 14,18% Nazadnje si oglejmo Se vrstni red, ki upoSteva podatke o totalnem dohodku In dohodku na področju informatike in njihovo raat. Tako dobimo tabelo 4. Podjetje To dohodek 19B2 (3 milij.) In dohodek 1982 1$ milij.) Past % 1, IBM 34364,0 31500,0 19,5 2. DEC 4018,8 4018,8 12,0 3. Burroughs 4186,3 3848,0 24,0 4, CDC 4292,0 3301,0 5,8 5. NCR 3526,2 3173,4 3,3 6. Sperry 5242,7 2800,5 0,7 7. Hew.-Packard 4335,0 2164,8 17,8 8. Honeywell 5490,4 1684,7 -5,0 9. Wang Labs 1321,5 1321,5 31,0 0. Xerox 8455,6 1300,0 18,1 Tabela 4. Deset najmočnejših v ZDft A.P.Seleznikar ***************************************** * Evropska mikroračunalniSka industrija * ***************************************** Evropsko mikroračunalniško tržišče ima največjo stopnjo rasti na svetu. V zadnjem letu se je britansko tržišče podvojilo, zapadnonejnSko povečalo za 130», francosko pa kar za 2SÓ%, Prvi mikroračunalnik je nastal v Evropi, in sicer v letu 1973 (Mičral francoskega podjetja R2E:) , danes pa se Evropa bori za svoj delež na samih evropskih tleh. ■Veliki evropski proizvajalci so se relativno pozno vključili v mikroračunalniško. proizvodnjo. Siemens je Sele.letos (1983) na Hannover-skem sejmu najavil mikroraSunalnlSke proizvode. Thomson (Francija) prodaja lastne in cenene mikroračunalnike (Tü7 ±n Fortune 32), ICL (v. Britanija) pa svoj Rair Black Box. (osebni računalnik) . Nizozemski Philips prodaja večtermi-nalski sistem P3S00, oiivetti (Italija) pa svojo družino Linea Uno. Iskra (Jugoslavija) je začela z "masovno" proizvodnjo poslovnega, razvojnega, osebnega in večterminalskega mikroračunalnika Partner šele v letu 19 83. MikroračunalniSko prodajno projekcijo imamo v tabeli 1} ta kaže na možnosti vzpona evropske mikroraSunalniäke''. industrije. Na evropsko tržišče pa pròclìra tudi japonska in ameriäka mikroračunalniš'ka Industrija; obe se zavedata hitrega vzpona evropskega tržišča. Prodajna projekcija mikroračunalnlkpv s ceno pod ?12000 (1982 - 1990) Gospodarstvo Dom Skupaj Vzgoja Francija 1982/B5 1985/90 Skupaj 494 920 1 850 100 2 355 020 359 960 193 690 553 650 Zapadna Nemčija 1982/85 914 320 .1985/90 2 730 300 Skupaj ■ 3 644 620 Italija 1982/85 1985/90 Skupa j 303 950 1 244 500 1 548 450 Združeno kraljestvo 1982/85. 882 685. 1985/90 2 255 200 Skupaj 3 137 885 SFRJ. 1982/85 1985/90 Skupaj 20 000 200 000 220 000 522 980 1 719 900 Z 242 880 205 360 642 390 847 750 1 394 325 948 890 2 343 215 75 000 ISO 000 225 000 854 880 3 053 790 3 908 670 1 437 300 4 450 200 5 887 500 509.310 1 886 890 2 396 200 2 277 010 3 204 090 5 481 ,100 95 000 350.000 445 000 Tabela 1. število'mikroračunalnikov Jugoslovansko tržišče bo pri omejenem uvozu dokaj ugodno za domačo mikroračunalniško industrijo, vendar bo .zaostanek v primerjavi z državami EGS še vedno očiten. A.P.železnlkar * Britanski uspešnež * a osebnim računom prek ^ 18 milijonov je »likro-računalniški inovator Clive Sinclair eden naju-spejšnejSih novih multimilljonarjev, Sinclair spreminja zloge (bytes) dobesedno v milijone dolarjev na množičnem tržišču tiiikroračunalniške revolucije. Sinclair je osebnost nasprotij z izbruSenim poslovnim ukusom, ki uživa v poeziji, klasični glazbi .in v radikalnih novelah. Soli je obrnil hrbet že pri sedemnajstih letih, ogibal se je vsčike a)tademske izobrazbe in je cenil predvsem življenje na svoj način. Vendar je pri svojih 42 letih dosegel akademsko stopnjo na Cambridgu in je predsednik britanske Mense - kluba ljudi z visokim IQ (inteligenčnim količnikom). ■ Njegovo, podjetje Sinclair Research je prodalo več kot milijon cenenih domačih računalnikov. Že pred tem uspehom je izdeloval kalkulatorje In propadel z digitalnimi urami, želi pa proizvajati električne avtomobile In miniaturne televizorje/ Njegov uspeh temelji na tehnološkem realizmu, čeprav je hkrati tudi družbeni sanjač, ki vidi prihodnost brez potrebe po sindikatih, ko bodo ljudje svobodno razpolagali s svojim delovnim časom. Njegovo delovno načelo je, da lahko za lO penijev naredi to, kar zmorejo nesposobni narediti za en funt. Denar mu je le srédstvo za dosega končnega cilja, ne sredstvo moči; denar omogoča izdelavo uporabnih izdelkov, ob katerih ljudje uživajo. Razen svojih ^ 18 milijonov ima Sinclair v svojem po-r djetju Se 85% delež, vrednost podjetja pa je ocenjena na prek jS 200 milijonov. Svoje prvo podjetje Sinclair Radionics je ustanovil že pri 22 letih, pred tem pa je bii novinar časopisa Practical wireless. To podjetje je izdelovalo radijske sprejemnike in sestavljanke, ki so se pošiljale po pošti; tu je spoznaval metodologijo marketinga, ki je bila pomembna za njegov kasnejši poslovni uspeh, V začetku sedemdesetih let je Sinclair Vstopil na tržišče potrošniške elektronike, ko je začel proizvajati nezanesljive kalkulatorje in digitalne ure. Tu se. je naučil, kaj pomeni proizvodnja in pod kakšnimi pogoji jo lahko zaupa drugemu podjetju. Proiolemi dobave in kvalitete, upravljavske pomanjkljivosti in japonska konkurenca.so povzročili krizo njegovega podjetja. Tu mu je pomagala britanska vlada z denarno injekcijo,-tako da je Sinclair lahko prišel na tržiSče z žepnimi televizorji. ■ Vendar je Sinclair leta 1979 izstopil iz podjetja, ki ga je vodil odbor za upravljanje vladne Investicije in ustanovil novo podjetje Sinclair Research, ki je začelo proizvajati prvi domači računalnik ZX80 za ceno pod ^ 160. Ta računalnik je bil za Sinclair ja le vmesni začasni model v razvojnem ciklu, vendar je s hitrostjo prihoda na tržišče prehitel inozemsko konkurenco, V letu 1981 je že prodal lOOOOO računalnikov ZX80', pripravil pa je tudi že močnejšega naslednika ZX81, katerega cena je bila le že ^75. Temu je sledil äe zx spectrum, ki se je lahko uspešno kosal z računalnikom Commodore VIC 20. Sinclair je oddal proizvodnjo svojih računalnikov multlnacionalnemu podjetju Timex, ki je kupilo tudi licenco za prodajo Sinclairo-vih računalnikov na ameriškem tržišču. V Zdru-.ženem kraljestvu se je tako oblikovalo množično tržišče za domače računalnike, ki je močno dvignilo računalniško pismenost .britanske populacije {na prvo mesto na svetu). Ob podjetju Sinclair Research je zrasla še vrsta drugih podjetij, ki So jih s pomočjo Sinclaira ustanavljali njegovi uslužbenci in novinci. Tako je Sinclair sprožil pravo poslovno in tehnološko inovacijsko verigo za proizvodnjo domačih računalnikov v Veliki Britaniji. . . Tudi Sinclair je imel in ima vrsto zavistnih nasprotnikov v Veliki'Britaniji. Ti so npr. poskušali izločiti njegov ZX Spectrum iz tkim. .šolskega programa. Sinclair je takoj reagiral in znižal.ceno za šole na 50%. Tako se je ta njegov daleč najcenejši domači sistem pojavil tfcli na priporočilni listi vlade (za šolske računalnike) , Medtem je Sinclair .že začel investirati svoj zasebni kapital v razvoj električnega avtomobila in v razvoj novega, visokoin-tegriranega mikroračunalniškega sistema, v katerem .naj bi našel uporabo tudi njegov miniaturni televi;;!jski sistem, A.P.železnlkar * Nekatere nove knjige * ************************ L, Hancock, M, Krieger: The C Primer, Osborne/ McGraw-Hill, 1982, 235 strani, 0 14.95. Ta knjiga je namenjena začetnikom v programiranju, ki tudi nič ne vedo o jeziku C. Ta jezik predpostavlja okolje operacijskega sistema Unix, vendar je knjiga bogata na primerih in pojasnilih, tako da je mogoča uporaba reducira-nega jezika C v okolju Unix na računalniku VAX. Posamezna poglavja obravnavajo polja, strukture in kazalce in problematiko, ki je za zaftetnika nova. Pojasnjuje se rekurzlja z uporabo preglednih primerov. Poglavje o vhodu/izhodu in knjiSnlönlh funkcijah pokaže obliovanje nizov in števil. T, Plums Learning to Program in C, Plum Hall, 1 Spruce Ave, Cardiff, NJ 08232} 1983, 372 strani, ft 25. Podjetje Plum Hall Ine, je specializirano za poučevanje in konzultacijo uporabe jezika C in operacijskega sistema Unix, Knjiga je učbenik za tečaje o jeziku C. Nekaj znanja z računalniškega področja je potrebno, vendar ne s področja programlrnih jezikov. Poudarek knjige je na prenosljivosti programov v jeziku C in na primernosti tega jezika za sisteme realnega časa, Knjiga prinaša vrsto primerov in problemov za Studenta in napotke za oblikovanje programske opreme. Odgovori na vprašanja se nahajajo v dodatku. Knjiga temelji na večletnih izkuänjah poučevanja uporabe programlrnih jezikov. J. Purduin: C Programming Guide, Oue Corporation, 7960 Castleway Drive, Indianopolis, IN 46250, 1983, 250 strani, fi 17,95. Ta knjiga je naménjena bralcu, ki ima nekaj znanja iz programlrnih jezikov ' (iz Basica). Funkcije se programirajo za primerjavo v jeziku Basic in v C. Primeri so pisani za ceneni Small C prevajalnik (cena ^ 19,95) in za dražji jezik C (Software Toolworks, ' cena fi 50)> V dodatku je navedenih 13 C prevajalnikov za CP/M in za IBM PC, Ta knjiga obravnava tudi več primerov z operacijami nad diskovnimi zbirkami, Se posebej v CP/M okolju. D. E. Cortesi: Inside CP/M, with CP/M-86 and MP/M2, Rhinehart £ Winston, 1982, 371 strani, 0 25,95. To je eno najboljših del in priročnikov o sistemu' CP/H doslej. Med vrsto storitev sistema CP/m obravanava tudi makrozbirnlk MAC (Digital Research), oblikovanje in uporabo makrojev, njihovo vstavljanje v makrojsko knjlSnioo, Knjiga ima tudi natančno in podrobno informacijo o diskovnih V/I operacijah in onačinu shranjevanja podatkov na diskih. Ima seznam funkcijskih pozivov in njihovo pojasnitev za sistema CP/m in mp/M. M, Walte, R, Lafore: Soul of CP/H, H. W. Sams & Co., Ine,, 4300 West 62nd St., Indianopolis, IN 46268, 1983, 391 strani, $ 18,95. Knjiga je namenjena programerjem v jeziku Basic in v drugih visokih jezikih, ki potrebujejo pozivanje zbirniSkih subrutin. Te subrutine so namenjene obdelavi diskovnih zapisov na način, ki ni dostopen visokim prograrairnim jezikom ; tako se lahko poveča tudi hitrost določenih programov. Primeri so predvidéni za uvrstitev v rutinsko knjiSnico, Knjiga je dobro napisana in privlačna, ima vrsto diagramov, slik Ih programskih shem. K. Barbier; CP/M Assembly Language Programming, Prentice Hall Inc., Englewood Cliffs, NJ 07632, 1983, 226 strani, $ 19,95, Ta knjiga ne zahteva predhodnih izkušenj iz uporabe CP/M in zbirnega jezika. Avtor poučuje osnove programiranja v zbirnem jeziku CP/M okolja z uporabo zbirnika ASM. w. Löwen: Diohtomies of the Mind, John Wiley 6 Sons, 1982, 314 strani. Ta knjiga obravnava avtorjeve zamisli mišljenja , kot jih je mogoče razpoznati s stališča možganov, podobno kot materialna računalniška oprema razpoznava programsko (informacijsko) opremo. Avtor sicer razpravlja o računalnikih in o oblikovanju sistemov, vendar to ni njegova izhodiščna težnja, Avtorjev pristop, v kolikor sploh zadeva računalnike, je namenjen naravi oblikovanja konceptualnih procesov. Avtor uvaja 16-polni osebnostni model miselnih akčijskih procesov, s pomočjo katerih človek misli, ukrepa, sodeluje in inventira (domišlja). Vrsta bralcev bo pri branju knjige ugotovila t "To sem jaz. želim, da bi jaz to izpovedal." Drugi pa bodo ugotavljali: "Sem zelo zapletena osebnost in se ne morem uvrščati v avtorjeve premočrtne modele," Vendar je mogoče v delu najti tudi lastno domišljanje, del osebne resnice skozi avtorjevo gledanje, ogledalo mišljenja samega. Z nadaljevanjem računalniške prispodobe pravi avtor t "Računalnik mora biti vodilo (ključ) do načina delovanja mišljenja, ne zato, ker je računalnik podoben mišljenju, marveč ker mišljenje gleda v svojo lastno strukturo, ko kon-ceptualizira." Knjiga je zapleteno delo o snovi, o kateri smo včasih sposobni razmišljati, ki pa jo tudi večkrat odlagamo, ker je preveč zapletena. Avtor poskuša z vso resnostjo izravnavati skrivnosti nas samih. H. M, Deltel: An Introduction to Operating Systems, Addison-Wesley P,C,, 1983, 673 strani. Knjiga je koristen priročnik in berilo za študenta in praktika s področja operacijskih sistemov. Je dobro organizirana, podrobna in sodobna, tako konceptualno kot Implemetacijsko. Posamezna poglavja obravnavajo procesno upravljanje, pomnilnlSko upravljanje, procesorsko upravljanje, pomožno pomnilnlSko upravljanje In zmogljivost. Avtor ponazarja posamezne koncepte s podrobnimi študijami primerov skozi CP/H, Unix, Vax, MVS in VM. A. R. Miller: Mastering CP/M, Sybex.Inc., 2344 Sixth Street, Berkeley, CA 94710, 1983, 398 strani, fi 16,95. To je še eden, izčrpen programerski priročnik za CP/M. Uporablja se zbirni jezik in makroji pri predstavitvi različnih CP/M operacij in pri . graditvi uporabne makrojske knj.iSnlce. Potrebno pa je določeno znanje iz zbirnega jezika. Miro Germ, dipl. ing. Sektor aplikacij Tehnična informatika ISKRA DELTA LJUg* sistemi delta GLASILO UPORABNIKOV IN PROIZVAJALCEV ŠTEVILKA: 2, LETO: 1 LJUBLJANA, 15. OKTOBER 1982 lAČUNALNIŠKO PROJEKTIRANJE Povzetek: Clanek vsebuje kratek zgodovinski pregled razvoja metode končnih elementov, opis najbolj znan iti programov za analizo modela s končnimi elementi in grafičnih paketov v CAD/CAM ter spisek proizvajalcev in tipov grafične opreme. 1. Metoda končnih elementov V zadnjih letih je metoda končnih elementov postala zelo razširjena pri računalniških obdelavah kompleksnih problemov v inže-nirstvu. Metoda je posplošitev že prej uporabljenih tehnik analize, kjer so konstrukcijo predstavljali diskretni palični in gredni elementi. Uporabljeni so isti postopki za izračun elementov, le da namesto paličnih in grednih elementov uporabimo končne elemente za opis ravninskih stanj napetosti In deformacij, obnašanja plošč, lupin in kontinuuma. V začetku razvoja metode je bil poudarek na razvoju učinkovitih elementov za reševanje konkretnih problemov iz prakse. Z razvojem digitalnih računalnikov se je kmalu pokazala uporabnost metode. Reševali so vedno večje ter kompleksnejše probleme. To je spodbudilo iskanje še uspešnejših numeričnih algoritmov za reševanje ravnotežnih enačb. Rezultat je kompleten sistem algoritmov, ki jih uporabljajo računalniki pri metodi končnih elementov. Numerični proces obsega tvorbo matrik, numerično integracijo za izračun matrik elementov, združitev matrik elementov v matriko konstrukcije in numerično reševanje sistema algebraičnih enačb Raziskave tako na področju mehanike kot v matematiki so mno go prispevale k razvoju in uporabi metode končnih elementov Med leti 1850 in 1860 so bile zaokrožene teorije o torziji in upogi bu gredi. Postavljeni so bili temelji področju strukturne analize Nadaljnjih sto let je bil študij omejen na sisteme enodimenzionalnih paličnih in grednih elementov. Sredi petdesetih let našega stoletja so razvili dvodimenzionalne elemente za uporabo v letalski industriji, da bi tako izboljšali modeliranje tenkih membranskih elementov, ki so povezovali tradicionalne enodimenzionalne elemente. Leta 1960 je Clou g h prvi uvedel terminologijo te metode v članku »The Finite Element Method in Plane Stress Anally-sis«. Posplošil je metodo strukturne analize na reševanje problemov v mehaniki kontinuumov. Že prej, leta 1909, je Ritz razvil zelo močno metodo aproksimacij ■ polj v mehaniki kontinuuma. Aproksimiral jefunkcional potenciala s testnimi funkcijami neznanih velikosti.. Minimum funkcionala glede na vsako neznanko je sistem enačb neznanih velikosti. Velika omejitev metode je, da so funkcije morale zadoščati robnim pogojem problema. Courant je leta 1943 izboljšal Ritzovo metodo tako, da je uvedel ločene linearne funkcije na trikotnih območjih. Metodo je uporabil pri reševanju problema torzije. Neznanke so bile vrednosti funkcij v stičiščih trikotnih območij. Tako je odpravil omejitev Ritzovih globalnih funkcij pri zadošča-nju robnega pogoja, saj je tu potrebno zadostiti pogoju le v končnem številu točk na robu. Ritzova metoda, kot jo je uporabil Courant, je ekvivalentna metodi, ki jo je kasneje neodvisno razvil Clough. Seveda pa je razlog takojšnjega uspeha metode računalnik, saj je lahko opravil velika število operacij, kar pa Courantu leta 1943 ni bilo dano. Metodo so kmalu posplošili na tri dimenzije, na probleme nelinearnosti tako materiala kot geometrije ter na dinamiko. Razvoj je šel tudi preko meja strukturne analize na mehaniko fluidov, prenos toplote in na analizo magnetnih polj. Danes je metoda polno uveljavljena v inženirski praksi. ČLtnalnike IBM. GTSTRUDL (GT pomeni Geogia Tech) je bil predelan v letih 1975-77 iz originalne IBM verzije kot del GTCES (Georgia Tec Integrated Computer Engineering System). Leta 1977 so ga začeli uporabljati na sistemih CDC CYBER, od 1981 pa je dostopen na sistemih VAX. Vsebuje preko 30 elementov, uporabljajo ga predvsem v gradbeništvu. V svetu obstajajo tudi številni drugi programi. V našem prostoru sta najbolj znana SAP 4 in STRESS ter BERSAFE, kot del paketa za računalniško konstruiranje in projektiranje CETES-a (Cen-'ter za tehnični software na Visoki tehnični šoli v Mariboru). 2 programi za analizo modela s končnimi elementi Do nedavnega so le največji računalniki omogočali strukturno analizo, kinematični design, reševanje problemov polj, geometrijsko modeliranje, programiranje NO, mehanično testiranje in ostale obsežne operacije v CAD/CAM (Computer Aided Design/ Computer Aided Manufacturing). Miniračunalniki sredi 70 let so lahko opravljali le določene specializirane inženirske izračune. l6-bitna beseda, omejen spomin in majhna hitrost računanja niso zadoščali množici podatkov v inženirski analizi. Pojava takoimenovanih supermini računalnikov, njihova 32-bitna arhitektura, velik spomin in hitrosti procesorja enake največjim sistemom, je omogočila uporabo te metode tudi na manjših računalnikih. Ti sistemi imajo poleg občutno nižje cene in manjšega števila vzdrževalcev tudi druge prednosti. Omogočajo decentralizacijo računalniških zmogljivosti, tako da ni nevarnosti prekinitve dela zaradi okvare enega samega sistema. Hitrost analize se poveča, ker 10 lahko izvajamo vzporedno na več sistemih; na enem teče priprava ali korekcija podatkov, na drugih pa računanje. Danes uporabljajo za največje probleme mrežo superminijev, ki si delijo isto bazo podatkov. Vsak od njih pa obdeluje del problema iz področja designa, proizvodnje ali testiranja. Zaradi zgornjih razlogov raste število superminijev v CAD/CAM. Oglejmo si nekaj v svetu najbolj uporabljenih programov, ki delajo na sistemih VAX in tudi na Delta 4780. Najobsežnejši program s tega področja je NASTRAN. Razvit je bil pod sponzorstvom NASA za potrebe letalske in vesoljske industrije. Program uporabljajo za reševanje raznih problemov statične in dinamične analize, prenosa toplote, aerodinamike, akustike, elektromagnetizma, hidroelastičnosti ter ostalih polj. Vsebuje poseben macro jezik za nadziranje izvajanja. V komercialni uporabi je od začetka 70-tih let. Leta 1978 ga je firma MacNeat-Schvtfendler Corp. predelala za uporabo na računalnikih VAX. Drugi znani program s tega področja je ANSYS {Sw^anson Analysis Systems). To je splošni program za inženirsko analizo in je komercialno zelo razširjen. Obsega okrog 60 končnih elementov za analizo problemov strukturne analize, za linearne in nelinearne probleme statike in dinamike, prenos toplote, termoelektrič-nost, itd. Dopolnili so ga za reševanje posebnih nalog pri konstruiranju naftnih vrtalnih ploščadi. Izšla bo nova verzija programa na sistemih VAX z upoštevanjem vseh njegovih možnosti; obljubljajo 70 % hitrejše izvajanje. Eden najbolj znanih in razširjenih programov je STRUDL (Structural Design Language). Razvit je bil v letih 1960-70 v MIT za ra- 3. Priprava podatkov in prikaz rezultatov analize modela (CAD - Computer Aided Design) Pri analizi modelov so ugotovili, da največ časa porabimo za pripravo podatkov, včasih tudi do 75 % časa celotne analize, Tu je tudi glavni vir napak. Uporaba grafične opreme in ustrezne programske opreme omogoča enostavno in hitro pripravo podatkov, ban/ni vizualni prikaz rezultatov ter tako zmanjša možnost napak, projektantu pa omogoči usti/arjalnejše delo. Poglejmo si korake in možnosti, ki jih nudijo ti grafični procesorji pri modeliranju: — Programska oprema omogoča enostavno komunikacijo med človekom in računalnikom preko izbirnega prikaza programov (menu). Uporabnik lahko poveča vsak del modela, lahko ga zavrti okoli poljubne osi modela ali zaslona, ki je lahko razdeljen na več samostojnih področij. Vsako področje je neodvisno in lahko prikazuje model Iz različnih smeri, različrio orientiran in različno povečan. — Enostavno oblikovanje geometrije z grafičnimi ukazi ali preko digitalizatorja. Opisati telo je tako enostavno, kot opisati premico. Npr. z rotacijo točke dobimo krivuljo; z rotacijo krivulje definiramo ploskev; z rotacijo ploskve dobimo telo. Enako enostavno dobimo preseke med telesi, definiramo obtežbo in lastnosti materiala ter porazdelitev temperature po telesu. — Poleg standardnih materialov lahko definiramo območja, kjer se lastnosti spreminjajo, podamo lahko sestavljene materiale, itd. — Modele lahko spravimo v bazo podatkov za kasnejšo uporabo ali izboljšavo. — P red procesorji omogočajo avtomatično generiranje enakomernih in neenakomernih mrež z različnimi tipi elementov. Pri spreminjanju gostote mrež ni potrebno ponovno podati lastnosti materiala in obtežbe. — Pred procesorji transformi rajo te podatke v kartične slike raznih programov strukturne analize. — Predprocesorji nudijo možnost raznih optimizacij numeričnih postopkov. — Poprocesorji omogočajo prikaz različnih rezultatov; lahko si pogledamo deformacijo konstrukcije, napetosti, itd. Ce uporabimo dinamične terminale, si lahko pogledamo tudi časovni potek deformacije. Barve uporabimo za prikaz določenih aspektov rezultatov. Programi uporabljajo ban/ni spekter za prikaz vrednosti rezultatov, lahko pa tudi sami izberemo barve za prikaz določenih vrednosti, itd. Dva najbolj znana sistema na računalnikih DEC sta PATRAN-G (Prototype Development Associates, PDA) in GRAPHICS SYSTEM {Structural Dynamics Research Corporation, SDRC). 4. Projektiranje In priprava proizvodnje modela (CAM - Computer Aided Manufacturing) Drugo veliko področje, kjer se uporablja grafika, je projektiranje, dokumentiranje in proizvodnja raznih strojnih in drugih delov. Programska oprema omogoča modeliranje, kotiranje, kreiranje ostale tehnične dokumentacije, arhiviranje, generiranje kode za stroje NC. Model, ki ga kreiramo na grafičnem zaslonu, lahko nu-"merično vodeni stroji takoj začno proizvajati. Paketi nam po potrebi lahko Izračunajo volumne, površine, momente, težišče modelov,itd. Zaenkrat v svetu ne obstaja paket, ki bi enako dobro omogočal oboje, CAD in CAM; to je pripravo podatkov za analizo modela (CAD) in tudi kotiranje, izris presekov, pripravo ostale dokumentacije ter generiranje kode NC (CAM). Na sistemih VAX uporabljajo pakete kot so EUCLID (Matra Datavision), ANVIL-4000 (Manufacturing and Consulting Services), SYSTRID (Baitele Research Centres), PALETTE (McLean Computer Consultants Pty, Ltd),itd. 5. Grafična oprema Najvažnejši del grafične opreme so terminali. Poglejmo si glavne proizvajalce in tipe barvnih terminalov: — RAMTEK serija 6000 (6200 A najbolj razširjen terminal) serija 9000 — MEGATEK serija 7000 serija 7200 — AED 512 — LEXIDATA 3400 — DIGITAL VS 11 — TEKTRONIX 4027 — EVANS & SUTHERLAND PS-2 PS-300 Terminai so vsi izdelani v tehnologiji »raster scan«, ki je znana že vrsto let, saj so jo uporabljali pri televizijskih sprejemnikih. Seie razvoj v tehnologiji chipov je omogočil uporabo te tehnologije tudi v računalniški grafiki. Tovrsten grafični terminal vsebuje precejšen lasten spomin, kjer shrani informacije o sliki v točkasti matrični obliki. Elektronski žarek potem riše to sliko vrstico za vrstico v enakomernih inten/alih 50-krafs. ravno tako kot pri televizijskem sprejemniku. SDRC - »GRAPHICS SYSTEM« (zgoraj) PDA - »PATRAN-G<. (spodaj) Druga tehnologija Je tehnologija »stroke« (črnobeli terminali TEKTRONIX), kjer so grafični ultazi shranjeni v spominu računalnil