fi? inforn-iatica 1 YU ISSN 0350-5596 ca časopis izclaki Slovensko društvo INFORMATIKA, 610Ó0 Ljubljana, Parmova 41, Jugoslavija URKDNlàKl ODBOR: Člani: T. Aleksić, Beograd, D. Bitrakov, Skopjo, P. Dr.i-cjojtović, Rijeka, S. Hoclžar, Ljubljana, H. Morviit, Maribor, A. Mandžić, Sarajevo, S. Mihalić, Varaždin, S. Turk, Zagreb. Glavni in oflgovorni urednik; Anton P. Žoleznikiir ^ TFJHNIČNI OOÜOR: Ürfidniki [KXlroflj: V, U;)tiiij('lj, D. VIlas - protjrninirniijo 1. Ui iilku - umotiia intelifjGnca D, f'ci'i^/.-Kf!cm;inović - Informacijski sislomi M. L'a'cI - operacijski sislomi A. Jorrnan-Blažič - novice založništva - D'. Džonova-Jerman-Bla/.ič - litoratura in sroiian.ja L. Lonart - procesna informatika D. Novak - mikro računalniki Nöda Papié - pomočnik glavnega urednika L, Pipan - torminólotiija Ö. Popò vir - novico in zanimivosti V. Rajkovif - vzgoja in izobražovanjn M.. M. Vukobratovié - robotika P, 'lancili - računalništvo v huiiiatiističiiili in družbenih vedah S, Turk - materialna oprema A . Gorup - urednik v,SOZI) Gorenjé ToUnični urednik ; Hu
  • lar(iranje in.informacijski Hislein, Ljubljana U. Kloiiit'nrir, Iskra, Elektromehanika, Kianj S. Saksida,. liistitut za soi:iolo0,l)li din, posanjezne številke 1(10,00 din Žiro račun št-.: ri0l01-67H-r)!H'l I Stališče uredništva se laliko i-azlikuje ihI nnn'nja avloi Ji-v. Pri financiranju revije stxleluje tuili Ha/.i.skovaliia skupinj.st Slovenije. Nn pofllacji nuienja Hc(iul)liškega sekri'tai'iala /.a ino.svelo In kulturo št. z duo 1 .2. I')7'>, je časnpia oproščen temeljnega davka od prernela proizvudnv. Tlskt Ti.skanm KRF.SIJA, Ljulfljad.s Grafična ojirerua: Hasto Kii n ČASOPIS ZA TEHNOLOGIJO RAČUNALNIŠTVA IN PROBLEME INFORMATIKE ČASOPIS ZA RAČUNARSKU TEHNOLOGIJU I PROBLEME INFORMATIKE SPISANIE ZA TEHNOLOGIJA NA SMETANJETO I PROBLEMI OD OBLASTA NA IN FORMATI KATA YU ISSN 0350-5596 LETNIK 6, 1982-,št. 1 VSEBINA A .P. Železni kar I!. Blatnik A . Hadži M. Kovaćević A . Loskuvar l>. Novak I), ftalehar A .l'.Železtiikar Z. Salčić (;. štrkić A .l'.Železnikar 7.. IJnbte ■1. r.rad 1). Vilas E. liajirovš Z. Kirschne>r .1. Pane v ova P. Sgall 1. l.onfar M , Kiipus V . Sniolej 3 ' lutornnit'izai ijii iiiUi elji val Mik( f.ii at-unalniški sisieiti 4 Deit.i :Ì2:I/:M Projektovanje l/,vrš[iili sIh-23 tema mikr oračunala za rad u realnom vremenu koriš-lenjeni jezika visokuij nivoa Zi) sekvenrijalnij prix)ialnl-ranj«! D.vod v CP/M* III AUjoritlmis l'oi-tiie Solution 43 of tlw,' C kn I e ral i zed Eigenvalue Proliletn 55 Geiiei isanje pridevskili oblika u sj pskülirvalskom. Compuler A[)(:>licali()us of Ü9 l.inijuistics in Prague (i7 Bačunanje hdansa UijMitica zrakaplovùlli tiirbitui koristeći al fabelsku metriku. Neke druge lueti ike u firos-torn [M?rinutacija. 71 Pregli?d jezikovnih elemen-• tov za opis sinhronizacije paralelnih procesov HO ICiikriticlja s pomočjo iuiik-cije XC)|( 82 Novico iti zanimiviiHti m Srečanja ta Published by INFORMATIKA , Slovtìno Socu'ly for Informatics, 61000 Ljubljana, Parmova 41, YuijosUivia EDITORIAL UOARD: T, Aleksić, Doogracl, D. Bitrakov, Skopje, P. Dr.i-f|ojlović, Rijfika, S. Iloclžar, Ljubljana, 13. Hoi vj.it, Mnribor, A. Mnticjžić, Sarajevo, S. Mihiilić, y;ii;iž-din, S. Turk, Zagreb. KDITOR-IN-CHIEF: Anton P. Železnikiir TEC H NIC A L DKP A RTMILNTS EOITORS ; V. Batiigelj, D, Vitas - Proqrninming I. Bralko - Artificial Intullitjonce D. Ćećoz-Kecrrianović - Inforniolion Syateina M. Exdl - OjieriitltKj Syfätoms A . Joririiiii-DLižit: - Publishers Mows 1). l)?,ouova-Jörman-Il!ii/.ic - Literature and MoutinijK L, Lenart - Prtx-Dss Infoi'malic s D. Novak - Microcojnjiiitors Neda Haplr - lìditor's Assistant L. Pi[mn - Toritiinolofjy H. Popovih - Nows V. R.'ijkovič - EcUicatioii M. Špecjol, M. Viikubralovit: - Robotics P. Tancig - Con>nutiny in lluinaiiitii>.s atul Social Scioiicos S, Turk - llardwnr« A . (ìorup - Kditor in SOZI) Gorotijö EXECUTIVE KDÌTOR: Hudi Murn PUBLISHING COUNCIL T. ìlanovoc. Zavod SR Slovenije za družlieno planiranj«, Ljubljana A . Jorman-Blažir , Republiški komite /.a družbeno jilaniranje in informai:ij.ski sistctn, I.Juhljana Ü. KInmeiičič, ISKRA, lilbktroinoliaiiika, Kranj 5. Sfiksida, liisitut Ka socluloqiiu pri iliiivnr/.i v Ljuliljani J. Virant, Fakulteta kh elektrotehniko. Univerza v Ljubljani H GAdgua rters : I tifor m ;U ica, rmova 41, 61000 Ljubljana, Thone: (061) Sla-»««, Tele*: 31366 Deltij Annual subscription rat«? fur abro,-«! is US $ 22 roi' coinpcmios, niul US ;i7,r) for inrliviciual.s. Opinions expressrrrt iti thi! contribuìitrns are not nm^casa-rity shared by the editorial Oo;ird. I'rintfxl by: Tiskarna KBKSI.IA, Ljubljana OFSIC.N: H9 67 71 K(l 82 H 3 Informali'/aliuii am! Ihi-iliird Wuv.i The Mif;t'o.:uinpuliii- Sy.sleiii Delta 32;!/M The Desiiju of mirt (jt'oimmlf-T real-titiie executive by tio.Miis of high level setiueiiliiui.d program til i tiij 1 i mg 11 aijr ; An Introduction to L'i'/M Operating System ill Alooritlims fur (lie Solili itiu of tiia Oeneraliirpcl Ei<(< ii-value i'roblein Generation of Aili« liviil Forms in semicroalian Com[)ii(er Applii aliotis uf Linguistici^ in Prague Com[Hjtation of IJalaiice of the Airplane Turbine Shovels by use of the Al|il)alie(i( Metric. Sotne other Melt ics til the S[iace of I'ei iiiutal i<>ii. An Overview of tiie IJeveloii-inetit of Syniironizaiion i'l i-initives ('^ticryption Willi Ilio Help uf XOR huiictiiHi News Meotinij-i INFORMATIZACIJA IN TRETJI VAL ANTON P. 2ELEZNIKAR DO DELTA. SOZDELEKTROTEHNA, LJUBLJANA Tretji val, kot ga raspoznava ameriški futurolog A. Toffler, je za podioiijt; računalništva in informatike zanimiv predvsem z vidika t.i. informatizacij«; družbe (javni informacijski sistemi, telekomunikacije, robotizacija proizvu đnje in druge inovacije, ki so odvisne od računalniSke tehnologije) . Podobfi.i izhodišča so značilna tudi za francoskega publicista J.-J. Servan-Schreibei-ja, katerega knjiga (2) je bila prevedena. Informatiki smo ve&krat pomanjkljivo seznanjeni s futurologi jo, za katero je v prihajajočem razdobju osroLl-nji pol t.i. informatizacija življenja na planetu. Informatization and the Third Wave. The third wave as being recognized by the American futurist Alvln Toffler {1) Is essential from the aspect of tln:! so called society informatization (public information systems, telecommunications, production robotization, and other innovations concerned with computer technology!. Similar aspects are characteristic in the case of the French journalist J,-J. Servan-Schreiber whose book (2) was translated in Yugoslav languages. Workers in the area of informatics are sometimes badly informed on futurist studies in which informatization is treated as a central point of future development on the planet. füturolog Alvin Toffler (1) deli dogajanja v preteklosti, sedanjosti in prihodnosti na tehnološke (civilizacijske, družbene) vale, pri tem pa Se posebej poudarja t.i. udarne vale in prekinitve valov, tj. tiste točke, ki so izvori novih valov. Poudarek ni toliko na zgodovinskosti in njeni zveznosti kot na zgodovinskih ne-zveznostih, to je na inovacijah (tehnoloških) Jn prekinitvah. Publicist J.-J. Servan-Schrelber (2) deli civilizacijo na kmetijsko, industrijsko in informa-tlzacijsko. Meje med temi civilizacijami se nekoliko razlikujejo od onih, ki jih navaja A. Toffler za valove (1), kar pa ni bistveno. Prva obratna točka človekovega razvoja je bil vzpon poljedelstva, druga bistvena prekinitev pa industrijska revolucija. Ta dogodka seveda nista bila diskretna, trenutna in vali sprememb so se širili z določeno hitrostjo'. Oba vala trajata še danes, v nekaterih zaostalih področjih planeta pa se šele začenjata (npr. poljedelstvo v nekaterih predelih Južne Amerike in Papue, industrializacija v Indiji in Kitajski), Dru([i val, ki je v nekaj stoletjih bistveno spremenil življenje v Evropi, Severni Ameriki in drugje na planetu, se še vedno širi in spreminja tipično poljedelske dežele v industrijske. Moč tega vala še- ni potrošena, ko se pojavlja novi, t,i, tretji val: spreminja (transformira) vse, česar se dotakne. Prvi val se začenja nekako SODO let pred našim štetjem in gospodari na planetu do razdobja 1650 - 1750. Po tem razdobju se začne pojavljati industrijska civilizacija kot proizvod drugega vala. V Združenih državah Amerike iaoA) se okoli leta 1955 pojavi desetletje, ko t.i. beli ovratniki in storitveni delavci prvič prerastejo število modrih ovratnikov. To pa je prav desetletje, ko se širi uporaba računalnikov in säe uvaja komercialno potovanje z letali, pojavijo se kontracepcijski vložki in še vrata drnqih inovacij. Tretji val se kmalu razširi tudi niid Evropo, Sovjetsko zvezo. Japonsko in šo kam. Tako se tehnološko visoko razvite drž.ive v poslednjem času že soočajo z nasprotji med tretjim valom in izrabljenimi, zastaroi.imi, nerazvitimi in okorelimi gospodarstvi isi tiisLituci-jami drugega vala. Vrsta politični ti in drugih sporov izvira iz teh navzkrižij. Vsebolj značilni postajajo izjalovljeni, nap.iri nekaterih nerazvitih držav, da se industrializirajo, da vstopijo intenzivneje v obdobje drugega vala, čeprav razvoj civilizacije na pianc!-tu kaže, da je ta val preživet, prctiužen, že poln nasprotij in bi ga bilo najsmotrneje enostavno preskočiti (2). Tu so značilni napori velikih nerazvitih držav (Indija, Kitajska) , podobno usodo pa doživljamo tudi sami v naporih za dohitevanje industrijskega razvoja. Pogled v prihodnost (futurološke napovedi) je seveda bisven, saj vpliva na politiko, industrijo in psihologijo človeka, že ob napovedih se pojavljajo nasprotja, kako oblikovati prihodnost; tu se oblikujejo družbeni pojjni pristašev in nasprotnikov, naprednjakov iti nazad-njakov, prijateljev in sovražnikov, strokovnjakov in vsevednežev, sposobnih in neusposobljenih, razvitih in zaostalih. Pogled v priiiodnost daje več možnosti, omogoča izbiro, ki je za posameznika bistvena, saj mu kaže pot, kako se bti iztrgal, odrešil iz sedanjosti in postal to, kar želi biti v prihodnosti. Obdobja, v katerih se odvija sfiopad med dvema valoma, starim in novim, so spreminjajoča, nestalna, nobeden od valov ni izrazito prevladujoč in slika prihodnosti je zategadelj zlomljena, razcepljena, prekrivajoča in dostikrat nejasna. Tretji val, ki ga lahko lmenujem<5 tudi Informatizacijski, informacijski, računalniški, komunikacijski, robotični ali splošno informacijsko inovativni in informacijsko transEorma-tlvni, je šele na pohodu. Pojem računalnika je njegov bistveni atribut, saj kot orodje, inovacija in nakopičena inteligenca posega praktično v vsak Inovativni in transformatlvnl dosežek novega vala. Računalništvo je tedaj važna, najpomembnejša, bistvena podlaga in dejavnost na pohodu v jutrišnjo iz današnje, neobetavne elvi li zac i jo. Slrjvstvci (1) A.Toffler: The Tliird Wave. Bantam Book (Edition April l'Jöl), New York. (2) J.-J. Servan-Schreiber: Svetovni izziv', cUobus, Zagreb (1981). MIRRORAČUNALNIŠKI DELTA 323/M SISTEM BOŽIDAR BLATNIK, ALEKSANDER HADŽI, MARKO KOVACEVIĆ, ANDREJ LESKOVAR, DRAGO NOVAK, DUŠAN SALEHAR, ANTON P. 2ELEZNIKAR UOK: 681.3.06. Delta 323/M: 181.4 DO DELTA, SOZD ELEKTROTEHNA Članek opiaujö doinui.i mikrorar uiiulniiìki slatem Delta 323/111 je bil v ]etu igOl raavlt doma tuf sc proizvaja v okviru rütinüßa urolzvodriecu profirtiiLa DO Delta. Ilikrorfiruiiiiil n ik 3i'5/ll uporabi ja fl-bitnl proceeor Kf)0 tur drui-.ino poriio;Lnih |jrocusor,inv (280-p:o, KBO-CTC, Z«0-DriA, MO-SlO, WÜ1791, UDIIOO), ki omof.oi'aj'j sjoilobno konl'U^uri ran je ml k roraòunal ni ökofa sistema. lllkroaletetii 32;i/H ira.'i tivoj vldeotastaturni krmilnik rijtrtti (renerucije, aa periferne naprave pa hihko uporuljlja terminalov, Oo ßtlri upof^ljive in «tiri vini-fi^tr-fiki;- disku, lepopiüni ter vratirni ttrtkiiliiik ter po iwtrebi ne tiruci? pei-iTerne eiiott'. Uitri pomnilnik imu otiat;^^ "^^öK k1o;.;ov k rao;;tioytjo bji ru'tifc/^a preklapljanja pODitii ,1 n i f.k J h fiegraentüv ter opernoj jiika üifiteinH Cl'/ll* in lUVU*; ßlednji omof^ora uporabo iiistema aa vel: uporabnikov, "aknen iabiir operaci jakih slatemov 7.a{?òtavJjH uporabo najbolj bo,';8te Kalo,;« pro;;r(iuifike ojireae nii planetu od prevajalnikov in aistumükitj pro(;raiBov do aplikativnih jiaketov uu riajraalirneji'ie poslovjie, pi 3nrni;'ike, laboratorijske, konstrukcijske i Ti d^u#^e u porabniške naluRO. SiHtem j i'our floppy disk driven, and four winchfüter disk units, a quality and line printer, and othsr peripheral unite can be inolndeil into thy corif i j^iira t ion. The fnat memory of '}(iK bytea is devided into three memory l)ankfj wlttiin the CP/ü« and llP/fl* operatiti« aytstemn. latter c.iveH the s.yMtum a aaul tinner performance, "he choice of these operatiri^r uytitifina eiiiäureH the ufie uf tliu ('.reatesit amiaount of world-wide software - from compilers and tvyntem proRrams to uppl ioiition piickac.ef^ for Eievural bi:i;i neijM, office, Ifiborntor.y, computer Bided deaif.n and other uünr taakn. 'Uhn aywtem lui!» been realized oii five Bt&ii.iariked, double-printed hoards (Kuropent! format). 1, Uvod Mikrorai unulni É;kl aiateoL (HKS) £ie uveljavljajo Ha razlli:riih inovativnih področjih, od upravljanja do vođenja proizvodnih procesov. Ti aiKtenii predstavljajo kljni"; k t. i. Informati zaoi j i, ki ne pomeni le uvujarija liiroko razvejanih mrft;; javnih informitcl jiik 1 h BisteiBOV, marvac tudi robotizacijo proizvodnje, avtomati zaci j 1.1 telekomunikacij, EiKratka itvforoaci jfiko poveaanout vmih biiitvenlli Sektorjev ijovekove^;u dela, i zobrFii.evan ja, olivtìéi^an j(t. riafinri i^O Pel la t.O Iii H V Kailnjciii letu u:>j;ie r jeti i v raavoj in proizvodnjo ItKl!, ki bi liibko pokrival poLi-t-bu dovolj iti roke/^a upektra iril'ormatizaoi je , z iiezman j.^ani mi motnostmi uporalifc kur niijvi;.'je kollcrine ruK po 1 o;.l j i ve pru/',ramRke oprepie na planetu. 'Jjikrion priutop nuj bi oiiiof^oi i L dovolj atrokovno onveši-eneinu upòj'iiltiiiku tiwobodim iK.hiro iiHtreatu; Kutfi.ioloci .|e, proffraotov in tfhudIOj'.i ,ie i k bojinte :',i>K liMlnlce iiaj*ii|>i iini'^'.a ananja v razvitih dj-. avail. K terau naj Iii delavci UO Delia dodali itpeci l'inno prof^raiiiHko opveitio Zh zviiianje tiiolivucije in sjl.uri Ifioati afcozi uporabo uütreanili pakül.uv za nafte uprav i jaltäke ? w -i* ^ eo _--—^— § — S é.. rt- Ss 15 li KT 1 I U) ža N12 I" 3 silica 2.1 Bloiinu ahama računalnika U«lta Shema daje vpOéìlea v egradbo ploač, it, nje je rasviilno, katera Integrirana vezja bo bila uporatljetia. Prikazuje tuđi moinostl priključevanja periferij« In podaja kratek in Jedrnat pregled razpoložljive programake opreme. In prolavodne pristope. V prvi fazi razvoja in priprava proiavodnje HKS leite bo bill tako ■ upoštevani tistveni razvojni . vidiki BiilcroračunalnlSice tehnologije in njenega träiä.öa v razvitih državah ss možnostmi transfera tehnološkega, uporabniškega in psihološkega - v naä delovni in upravijalBki prostor. V prvi raBVojno-proiavođni fazi je Delta oblikovala dva HKS, ki imata komercialno ime Delta 325/M1 in Delta 323/M3. Ta Slanek opisuje BhematiCno in večkrat tuđi podrobno agradbo teh dveh sistemov. Sistem HI je praviloma enouporabnlSki {iajemoiiia večuporabniSki ), dofiim je eistein M? veSuporabnièki in iina vgiSje pomnilniške emoglJivoBti (uporaba vinfiestrakih diskov). Oba modela (ni In 113) ata aaäetnika raikroračunalniške družine, ki se iz uporabe S-bittiih mikroprocesorjev nadaljuje v uporabo 16- in 32-bitnih mikroprocesorjev. Ilodela Delta 325/H1 in H3 sta bila razvita a lastnim Knanjem in .iakanjeo optimalnega aietema, torej z lastno ustvarjalnostjo peščice Deltinih delavcev, bres sodelovanja visoke domače "neananosti", ki se je iagubila v preddverje samoaadovoljitve. Produkta 111 in 113 Bta Zft raaliko nastala tudi v čisti atmosferi lastnega znanja in izkušenj in razvoj obeh modelov ni zahteval niti visokih deviznih investicij (kakor drugje) niti zelo dolge raavojne dobe {111 npr, lest aeaecev). Modela III in H2 sta bila skrbno koncipirana na niako proìEvodno ceno, široko uporabnost in dobro triino referenCnost. Prav aaradi tega je ■bil izbran operacijski sietam CP/fl (in kasneje äe riP/il), -ki je aa 8-bitne liKS najbolj razširjen OS na planetu, ima pa tudi daleč največjo aalogo dosegljive aplikativne programske opreme. Zanimanje potencialnih uporabnikov in tudi potencialnih proizvajalcev in soproizvajalcev za sistema Delta 325/11.1 in M5 je izredno. Oba produkta eodita v kategorijo malih sistemov, osebnih računalnikov ter sta uporabljiva pri svojih aiDogljivoBtih ea različne naloge in okuse tudi kot zamenjava ali dopolnilo velikim, slabo • iakoriščanim in obvladani® sistemom Bvenečih imen in zmogljivosti. 2. BloSna shema računalnika Delta 323/M in njegova programska oprema Ilikrosistem 323/M je grajen z najsodobnejSo tehnolof!iJo mikrokonponent druiiine ZSO. Direktni pomnilniški dostop se uporablja za prenos podatkov med periferijo in glavnin hitrim pomnilnikom. Shema na sliki 2.1 prikazuje raznovrstnost, popolnost in smogljivost sistemov Delta 323/M1 in 323/H3. dva sistema sta celoti, ki Jima lahko ilodajasno periferijo v skladu s potrebami. ]i'lzi5ne oziroma materialne enote, ki imajo obliko dvojnega evropskega ' formata (na dvostranskem tiskanem vezju), so tele: ^ ploSüa s centralnim procesorjem (CPE), - ploBČa E glavni'» pomnilnikom (RAIl), - plošča za V/I (VIK), - plošča a krmilnikom za vlnčestrske diske (¥Di;) ,■ - ploäca s tastaturnioi in videokrmj Inikom (TVK), - pložča a preklopnim usmernikom. Teh Èest modulov ae nahaja v glavnem oh i Sju skupaj z diskovnima enotama.. Shema na sliki 2.1 daje vpogled v zr.radbo ploSč, ia nje je razvidno, katera integrirana veaja so bila uporabljena. CPE plošča vaebuje razen procesorja 280-{;l'U če beleüni RAH z 1K zlogov (2x2114), Stiri paralelna vrata za pogon in/ali aaanuvanje periferije {dve vezji tipa Z80-PI0), pomnilnik tipa ROH/BPROI] za 10K zlogov (pet vezij tipa 2716 ali podobno), dvoje dupleksnih serijskih vrat tipa UAHT (vezja AY-5-1013 ali podobno), časovniško/števniSko vezje Z80-CTC in seveda vrsto ločilnih ojačevalnikov za notranje in zunanje vodilo (notranje vodilo ter paralelni in serijski V/l kanali). RAll plošča je proti vodilom in motnjam izolirana a histerezniml ojačevalniki in vsebuje skupno 96K zlogov dinamičnega pomnilnika (46 vezij tipa 4116). Polnilnik na tej plošči je razdeljen v tri banke, in sicer 64K, 16K in IĆK zlogov. VIK plošča jo tiskano vezje, ki vaebuje krmilnik za upogljivi disk (1790, krmilnik za neposreden pomnilnièkl dostop (ZSO-DHA) in dva krmilnika za serijski V/I (vezji ZBO-SIO). Vezje Z80-SIO vaebuje dva dupleksna kanala s programsko nastavljivo hitrostjo (veaje ZaO-Cl'C). Ta plošča vsebuje tudi nadaljna vezja ZaO-CTC, ki opravljajo funkcijo ure realnega časa in dodeljevanja procesorskega časa uporabnikom v večproceaorskenj sistemu. Tudi ta plošča je proti vodilu isolirana s histereznirai ojačevalniki (s tremi stanji). UDE plošča je krmilnik za vlnčestrske diske (univerzalnega tipa) z gostiteljakim vmesnikom (vezje Z80~DMA) za sistem Delta 323/tl. Ta modul omogoča prenos podatkov med glavnim pomnilnikom in vinčestrsko ploščo z maksimalno hitrostjo. Zgradba tega modula je podrobneje opisana v tekstu. TVK ploSča je modul, ki krmili prenose, povezane a tastaturo in video zaslonom (CRT krmilnik). To je krmilnik četrte generacije, ki ima realizirane tudi vse funkcije za sodobno procesiranje tekstov. Plošča e preklopnim usmernikom (za 200 tf) daja vse potrebne napetoati (5, 12, -12, 24 V) za ostale module sistema Delta 323/H. Iz napisanega vidimo, da je sistem Delta 323/H konstrukcijsko in uporabniSko zaokrozen gleda na razpoložljive, module, b katerimi lahko sestavimo zmogljivo mikroračunalniSko konfiguracijo. Slika 2.1 prikazuje tudi možnosti priključevanja periferije, in sicer takoles - do štiri enote z upogljivimi diski, - do štiri enoto z vinčestrakini diski, - tastatura in video monitor, - vrstični tiskalnik (600 vr/min), - kvalitetni tiskalnik (procesiranje teksta), - dodatni serijski in paralelni V/I kanali za periferijo. . SalcSn« ""periferne i možnosti ' bmogpSaJo bogato oprealjenoBt. .flist'emà Iti :na étìrl đuplekane aeri jBké -kanale : lahltò npr^ priključliao še štiri ■ Uporabniške .tormlnale v veöuporabnlfikeai aißtemu, . Be pòveaujoBio a raaličnlmi aiatciiii z üporabd einhronih ISDLC, X.25) in asinhronih . protokolov, IcrBiliiBO razliCne naprave (preko pai^alelnih kanalov) itn. P rograinaka ■ oprema - Biet ena 323/M temelji na operaciiBkem Bifltefflu CP/H .(ali HP/H), Je torej Mporabnišlco -lzi^edno : prilagodljiva . ter ima praktično ■ neomejeno, tržno bazo. Glede na WllJonsko instalirano baao CP/H sistemov v razvitih. 'državah, bò . dobavljivi prevajalniki • praktično ." aa ' vse . :viaoke programirne Jeaike ivkliuSnb za ■■ ADO),'ffločhi slBtemekl storitveni paketi in .seveda raznovrstna . uporabniška . programska oprema. Po tej plati lahko sistem Delia'5237n zadovolji indi najbolj . izbirCnega . uporabnika;-.. od .... direktorja, konstruktorja, '■. rjizvi jal ca, • .do . različnih . ..služb, . kot so fltorltvèn'e dejavnosti, računovodstva, planerski ■oddelki, poslovni-sistemi itd.. CP/M nudi tudi bogato.■iabiro Iger (od vesoljskih do Šaha) ter, pakete ea-.učenje (jeziki, naravoslovni paketi, računalništvo). :-3f> ' Centralni procesorski-modul, -. 3.1. ■ Okvirni-podatki ' • • .Procesorski modul temelji na -. mikroprocesorju ;ZBp ^n Je t.^o ppreoljen,,.da se lanKo uporabl ja Ke. sam zase;"" Seved^ pa ' jè podpira še .'dodatne 1 vhodne/izhodne modula. ^zgrajen tako, ' da^ pomnilnläkQ in Dru Una komponent Z80 Je narejena v TlOS LSI . tehnologiji. Zaradi visoke stopnje integracije ; je.moeno sestaviti :izredno .zmogljiv sistem iz ; majhnega ètevila komjponent. Po drugi strani pa ! se te komponente lahko kombinirajo Vb standardnimi TTI, HSI vesjl. Hafitete lastnosti, družine Z80 anatno . zniäajo materlHlne in programske razvojne stroške, hkrati pa , omogočajo enostavno dodajanje zmogljivosti : sistemu. Glavni razlog nadvlade ' HO S L£5I.. komponent na mikroračunalniSkem traišOu. pa Je . nizka cena ae tako majhnega števila.komponent. Glavne karakteristike modul» ao tele; - avtomatsko reaetlranje ob vključitvi, | - ponoven zagon Je možen na lokacijah OOOOH ali ' EOOOH, po izbiri, - avtomatsko nastavljanje hitrosti aerijskjli ; prenosnih • poti, . odvisno od naEstavitve. . terminala, : ; ■ , - ločena naslovna in podatkovna vodila, - ura realnega Časa, . . • / J - prednostna veri^ prekinitev (daisy Chain)i r 5 X .2K zlogov pomnilnika tipa EPRpr-I, -.. - 1K zlogov statičnega RAlla Cea heleiikb.),- ■iv- '40*: KOM cexiJSKi v/1 KSZiZ ALI SOlnA {2 VHODA, 2 IZHopA) : meomr ) yeii/ßA "-y 32 PeoGRmBRLJIVlH fARAL£LA/m Y/1 Lm J CPE FmHWBRLJiV ia»iü/vx.Vffes. ixWuri-cK , MSL. Y. rotHTK.V. KHMH.M V. KmiLNO VEZ3E {mrHieseT) ia.mLkfo/ TWRHimTOKSKù VEzie: fsuff^fw/ m. SLk tto AK RhH (STArrcM) 311ka 3.1. Bloima shema CPE modula. Nu ploßCi so viaoko Integrirana vezja iz družine Z80, dv« periferni inte^^riranl veaji UART, pomnilni Ska vezju tipa .EPnOH in RAN, taktni generator in -ostala "I^IL krmilna vezja. - toltovnozančnl in RS-232 vtneenlk, - LED indikator aa stanje HALI, - štiri OBenbitna paralelna vrata {handehtüie), - smeri vrat deljene po 4-bltnlh blokih, - vrata ojaöena s TTIi vezji, ki so na podnožjih in Jih lahko konfiguriramo po izbiri. Bločno shemo modula imamo na sliki 5.1 . 3.2, Konfiguracija modula Modul je realiziran na podaljSani ploéSi dvojnega evropskega formata. Vhodni in izhodni signali so speljani prek dveh standardnih konektorjev (2 x 52 priključkov). Glavni elementi CPE loodula eo naslednji: - visoko integrirana vezja iz družine ZBO (CPE,PIO,CTC), - periferni integrirani vezji UAHT, - pomnilniška vezja tipa EPROH in HAM, - krmilna TSL vezja, - taktni generator. Vse komponente družine Z80 lahko nadzirajo vodila in se vkljuSujejò v prednoetno verigo prekinitev brez. dodatne zunanje logike. Napajane ao sazno z énim napetostnim nivojem (+5 V) in so med seboj popolnoma primerljive. 3.2.1,. Mikroprocesor 280 ■ ' '' Z80-CPE. (centralna procesorska enota) je B-bitni Eoikroproceaor tretje generacije z izjemnimi zmogljivostmi in močjo. V množici a-iitnih mikroprocesorjev ima Z80 eno najmočnejših ilkaznih mnoäie (158 ukazov). Ta je primerljiva z vsemi 78 ukazi procesorja Intel 8080A (enak strojni-kod), vkljuCuje pa Še operacije a nizi, biti, zlogi, besedami in bločne prenose, skupaj z učinkovitimi načini naslavljanja, kot sta Indeksno in relativno. Procesor je zelo hiter - sistemska ura 4 MHz in minimalni •Öas Izvajanja instrukcije 1.0 ub »a ZeOA ali 2.5 mz in 1-5 us za Z80. Dvojen nabor uporabniških registrov (skupaj 16) olajša načrtovanje aisteaiakih programov, "background-foreground" programiranje in procesiranje prekinitev na enem nivoju. 16-bitni registri omogočajo učinkovito procesiranje tabel in polj (večja propustnost in boljöa izkoriščenost pomnilnika). Procesor razpolaga s tremi načini procesiranja prekinitev: načinom 8080, prednostno verigo družine Z80 (daisy chain) in ne-Z80 perifernim načinom .(i) prekinitev je že vgrajena v PIO. Druga zanimiva lastnost vezja PIO pa je ta, da lahko PIO prekine CPE ob določenih pogojih na periferiji. Zaradi tega procesor ne potrebuje zamudnega preverjanja stanj periferije. PIO posreduje podatke med CPE in periferijo prek dveh neodvisnih večnamenskih vhodnih in Izhodnih vrat (označenih z A in B). Vrata imajo po osem podatkovnih bitov in dva rokovalna signala, ki nadzirata prenos podatkov (data ready, strobe). Vrata programsko nastavimo na enega izmed štirih načinov delovanja: izhod zlogov, vhod zlogov, dvosmerni zložni (vhod in izhod alot',ov) In dvosmerni po bitih. Izhodi vrat B lahko krmilijo darlingtonske tranzistorje (1,5 mA pri 1.5 V), 5-2.3. àtevniSko in časovniško vezje 280-CTC titirikanalno ätevniSko in časovniSko vezje CTC lahko prograairamo aa Širok spekter števniških in časovnižkih funkcij (na primer dajanje takta perifernim vezjem tipa Z80-3IÜ ali U ART, realizacija ure realnega čaaa). Kanal ima Stevnižko funkcijo, če mu dajemo ätevne impulze od zunaj. Če pa ga krmili sistemska ura, deluje kot časovnik. Programiranje je neposredno; vsak kanal se programira z dvema zlogoma oziroma s tremi, če uporabljamo prekinitve.. titirje kanali so med seboj popolnoma neodvisni, vsak ima vpieljiv In čitljiv dekrementirni števnik in izboremo lahko preddelilnik s faktorjema 16 ali 256. Ko pridejo števniki/časovniki na vredost niČ, se avtomatsko nastavijo na začetno vrednost, trije kanali pa dajejo v teh primerih tudi izhodne signale (za izhodni signal četrtega kanala manjka priključek na integriranem vezju). 3.2.4. Periferno integrirano vezje UART UART je univerzalno vezje glede na mikroračunalnilko naslovno, podatkovno in krmilno vodilo. Vsi njegovi izhodi (podutkovni in statusni) premorejo tri stanja (stanji 0,1 ter stanje visoke impedance), njegovo krmiljenje je enolično čitalno/piaalno in selektivno. Več o vezju UAR? in o vezju z dvema UARTejema in CTCjem, ki jo uporabljeno kot progratnirljiv komunikacijski vmesnik, najdemo v članku (2). 3.2.5. Pomnilnižka vezja Na CPE modulu so uporabljena vezja tipa EPROH 2716 {2K zlogov, nupajanje +5V) in vezja tj.pa RAM 2114 (statični, fK x 4 biti). 3.3. Avtomatsko nastavljanje hitrosti prenosa Oglejoo si podrolinoat, ki jo iaa proceöovöki modul. Ve?,je UAHT je konfigurirano tako, da aprejeaiJi in oddaja AüCIj. ziiuke v formatu na eiiki 3.2. 3.2.2. Programirlj Ivo krmilno vezje Z80-PI0 paralelno periferno Z80-PI0 je TTL kompatibilen • vmesnik med mikroprocesorjem S80 in perifeminil enotami. CPS konfigurira PIO kot vmesno enoto do perifernih enot brez dodatne zunanje logike. ?iplčne takžne periferne enote so: večina tastutur, tiskalniki, PROM programatorji, čitalniki/tiskalniki papirnega traku, itd'. Vsi prenosi podatkov med CPE in periferijo se opravijo pod nadzorom prekinitvenih rutin. Vsa potrebna logika za implementacijo vgnezdenlh t O snur eoMTKomem 2 stop étr B/rA 1 I I I M I I I 1 I I I I I I I I I I Slika 3.2. Format ASCII znaka. Uporabljeni algoritem za avtomatako nastavljanje hitrosti prenoea (izbiro pravilnega takta za vezja UAH? na priključka RCP in TCP je tale: programsko (začetni bit) koneole, detektiramo začetni impula prvega enaka, poslanega s - isnerimo dolžino začetnega iiapulaa, - glede na delibino začetnega impulza vstavimo v register äaeovne konstante kanala CTC vrednost, ki jo dobimo iz tabele, vstavljena Časovna konstanta definira frekvenco ođtipavanja naslednjih impulzov. Z opisanim postopkom dosežemo želen učinek le, Èe je prvi poslan ASCII znak takšen, da ima podatkovni bit O vrednost 1 (npr. znak S). Prvi anak b« seveda tudi narobe interpretira. 5a dejstva pa pri praktični uporabi ne predstavljajo nobene ovire. Startanje sistema poteka na tale način: po priklopu sistema na napetost (avtomatski reset) . pritisnemo še na tipko S (lahko tuđi na kakšno drugo Iz zgoraj omenjene množice), ki predstavlja prvi znak, poslan s konzole, in že se monitor javi z znakom pripravljenosti (prompt). Poglejmo Se, kako je (sliki 3.3 in 3.4). algoritem implementiran Sistem starta na lokaciji EOOOH. Za časovnik je uporabljen CIC kanal O, z naslovom D8H. Inicializiramo programski števnik - registrski par DE ža merjenje dolžine začetnega impulza. Odtipavamo podatkovno vodilo (z instrukcijo IN A,(DE)) vse dokler ni bit? (D7) tega vodila postavljen na ena (to pomeni, da . smo detektirali začetni impulz prvega znaka, poslanega s konzole - signal je namreč invertiran glede na vhod v UART). Ko detektiramo enico (v akumulatorju dobimo negativno vrednost - bit? je znakovni bit), nadaljujemo z odtipavanjem in hkrati povečujemo vrednost registrskega para DE. Ko pade bit? na podatkovnem vodilu zopet na nič, nam predstavlja vsebina DE dolžino začetnega impulza. Ostane nam äe samo skok v tabelo, iz katere dobimo - glede na izmerjeno dolžino impulza - časovno konstanto za CTCjev register časovne konstante. S tem je CTGjev kanal O programiran. Prvi zlog, ki smo ga poslali z ukazom OUT (DS),A , ko je bila v akumulatorju vrednost 51 je konfigurira! CTCjev kanal kot časovnik, v prednastavljivi register pa je dal vrednost 16. Drugi zlog, poslan z enakim ukazom, ko je v akumulatorju vrednost, dobljena iz tabele, pa je časovna konstanta za časovnik. Hitrost prenosa (Baud rate) je definirana e formulo BR=A/i, kjer je A=0*l/l6*1/l6, 0=4-9152*10«*6*1/2Ka, i=1,2,4,8,16 ,32 (Časovna konstanta časovnika). Monostabilni multivibrator ?4LS123 obrne in podaljša impulze, ki jih daje CTC na sponki TO/O [ko pade vrednost časovnika na nič, takt za UART). Pojasnimo še oznake nekaterih signalov: O - sistemska ura D? - podatkovno vodilo bit? P8 4> Slika 3.5- Shema veaja za avtomatsko nastavljanje hitrosti serijskega prenosa. Za časovnik je uporabljen CTCjev kanal O. Ko pade vrednost časovnika na nio, dobimo na sponki TO/O taktni impulz. 10 Da - signal, prožen e inetrukeijo OUT-(DB),A, (CTC chip enable) RUDE - signal, prožen z inatrukcijo. IN A,(DEJ, (S567 chip enable) ; configure CTC ; channel 0 (initialize DE counter (Input from DE port (wait whilu input (value positive LÜ0P2: INC DE (increment DE counter (count until input (Value negative (comparison table (pop value to HL ■ (CY:=1 ìHL:=Hl-DE-CY (if HL>0 then ( pop new value to HL ( else ( pop value to A (set time constant ; register Slika 3.4. Del programa, Kl avtomatako nastavi hitrost prenosa. LD A,05 OUT (D8),A LD DE,0001 IN A,(DE) JP P,L00P1 INC DE IK A,(DE) JP H,L00P2 LD SP,TAB1 INC SP POP HL a CP ■SBC HL,0E JR C,P9 DEC SP POP AF OUT (D8),A 4. Poanllnifiki modul 4.1. Osnovni podatki o modulu Pomnilnièki inodul ohaega 96K alogov dinaraiSne^a pomnilnika tipa IIK 4116-2. Na samt-ta modulu «Je nahaja potrebna elek^tronilta, lei OKOgo^a labiraiije do osens pomnllnlùkLh bank a po 64K zlogov. V osnovni konfiguraciji pu Je na enem modulu ana pomiiilnlSka banka s 64K alogi ter dve 8 16K zlogi. 4.2. Qpis modula 4-2.1. Signali modula Signali, katere moramo upoštevati v krmilniku za dinamiunl pomnilnik', so tile; - MRQ (memory request): signal oe pojavi ob vsaki zahtevi po pomnilniku bođiul v čitulnem ali pisalnem ciklu; - RFSH (refresh): je signal, ki ee pojavi Skupaj s signalom HRQ na ziiietku vCHltefSu pomni Ini èktfga osveaevalnega olkla( - UR (write): je signal, ki določa vpis podatkov iz podatkovnega vodila v pomnilnik, odsotnost le-tega pa lahko pomeni lapis podatkov iz pomnilnika; AD^-f-AOe A0ÌA13 >-^ CAS- m ^OHMlf/A MATRIKA Cx1€K ZL060¥ m-. -O Slika 4.1- Uločim eliema pomnilniske^a modula. V osnovni konfiguraciji je nu ploäci ena pomnilniéka banka a 64K alo<;i in dvö s po 16K alpgl. - RAÜDIS (HAU disable) je vliodni isigtitil, s katerim je iriogoče izključiti poiiiMilnik v intervalu COOO-PPPF, zaraUi potreb pü h^PROtl pomnilniku; - DO.....D7 - podütkovno vodilo; - AO,...,Al 5 - naslovno vadilo; - FD. (read) - signal ko CPE cita; - DIM (data input) je si^jnal, s katerim at odpirajo vrata za signale s podatkovne^-a vodila v CPE modul ; - iorq (i/o request) - signal, •izbiralnik bank; ki krmili - RESK? - signal, ki vzpostavi elektronike. 4.2.2. Bloi;na shemu isatetno atanje Ie sheme 4*1 je razvidno, dtt je pomnilni modul sestavljen Iz pomnilne matrike, izhodno/vliodne^ia krmilnika, multiplekser ja, OAS-MUX generatorja, RAS generatorja, intervalnega izbiralnika in bančnega iabiralnika. - -Pomnilna- matrika -je sestavljena iz 6 vrstic s po 16' K X 8 biti. Posamezne vretice izbirajo signali RAS 1 - do HAS 6 - katere generira RAS generator. Vhodni signali za to matriko pa so Se podatkovni signali DIN (0-7) in DOOT (0-7), adresni signal-V AD O' do AD'-? ter CAS- in RAS-signala. Izhodni .krmilnik o.mogoča ob čitanju pomnilnika prenos podatka iz pomnilne matrike, na podatkovno vodilo. -Vhodni krmilnik pa omogoča nasprotno funkcijo. - Multiplekeer je potreben zaradi uporabe 16 K bitnih pomnilnikov' s 16 nogioami, saj se mora 14 bitni naslov naloiiiti v pomnilno vezje v dveh korakih, katere ■krmilita RAS in CA3 signala. -- CAS-MÌIX generator zagotavlja pravilne časovne razmike med. CAS in HUX signaloma, le-te pa pogojujejo RAS in RFSH signali. - RAS generator omogoča izbiranje prave pomnilne vrstice v pomnilni matriki, hkrati pa je izvor signalov; za CAS-(1UX generator. - Intervalni izbiralnik generira na podlagi vhodnih signalov Al 4, Al 5 , -I1RQ in RAHDIS potrebne signale za krmiljenje RAS generatorja in izhodnega krmilni'ka. - Bančni izbiralriik pomnilnih bank. - pa omogoča preklop 4.2.3- Uporaba dinamičnih pomnilnikov s 16 nožicami ■ Večina sodobnih dinamičnih poinnilnili vezij je zaprtih v . integrirana vezja s 16 nozicami. Zato taka vea ja .e'ahtevajo nmltipleksiranje naalova, da se lahko vseh 14 naslovnih bitov vnese v pomnilnik. V našem primeru Imamo vezje s pomnilno matriko B 128 vrsticami in 128 kolonami. Dinamični pomnilniki shrunjujejo informacijo v obliki naboja v majhnem kondenaatorju. Ta naboj- pa, če hočemo obdržati Informacijo, aoramo občaano osveževati. nalogo nam v veliki meri olajäuje Z80-CPU, saj izya,ja osveževalnl cikel vsakič, ko CPE zahteva dostavo ukaza. Zaradi tega Z80 procesorju ni potrebno rezervirati čas za oGveaevanje v obliki "čakalnih stanj" uli . pa podaljtiuvanje' urinega cikla. Pri teui i)ii ae imamo "nekaj omejitev .pri oaveže-vanju z Z80 jjrocesorjem: - reset signal mora biti < 1 uia - podaljöani "wait' state" mora biti < 1 mu - podaljšani D1!A cikel moru biti < 1 mt; ' - osnovni taktni cikel siora biti < 1.22 HHz.-' 4.2.4. Opis razvojnih izhodiijč Poskušali srao razviti dinamični pomnilnik, ki bi čimbolj e ustrezal sistemu z KBO pi-ocü:aon jii-m. Wa sliki 4-1 je podana bločna shijma pomnilnikü.. Delovanje vezja lahko opiSemo takole: RAS- signal se generira ia IIH.KQ, HFJIH, DANK signalov ter dela naslova. Sumo ana vrsticu-pomnilnikov dobi RAS- signal v čaau doaega ukaza, čitanja/pisanja v pomnilnik. RAS- pa ae generira za vse vrstice v čaau-. os ve iievan ja. HHBQ- se invertira ter se ga zakasni taHo, da dobimo hux in CA3- signal. ■ iiux ae .generira zakaanjen za 55 ns in ae ujjorablju za multipleksiranje naslova. Ta zakasnitev je izbrana tako, da zagotovi pravilni časj dostopa vrstičnega naslova. Po 110 ns se i!;enerlra CAG-aignal, vendar samo takrat, ko ni osveževiilnega cikla. Ko CAS- nastopi, je izbrana 'pravti pomnilna lokacija. Izračunan "worst case" .oas dostopa . znaša 347 ns, kar omogoča (ob zahtevanem-času dostopa od CPE 450 ns) še 105 ns za dodatna vezja na kontrolnih-ter naslovnih linijah. Razviti pomnilnik daje dobre rezultate tam; kjer jè zahteva po večjem obsegu dinamičnega pomnilnika, ter pri aplikacijah, ki zuhtevujo direktni dostop do pomnilnika (DMA). ■5.' V/l IIJ DISKOVNI liODUL' 5.1 . Osnovni podatki o modulu Diskovni modul omogoča priključitev pogonov za gibke' diske nà Bistern. Povečuje, tudi komunikacijske zmožnosti sistema. Ilodul lahko krmili do 8 diskovnih pogonov z enojno ali dvojno gostoto zapisa. Prenos, podatkov poteka po DMA principu. Procesor samo začne čitanje . oz.zapisovanje, DMA krmilnik pa prenaäa podatke naravnost v pomnilnik 02. iz pomnilnika. Na Istem modulu so še štirje serijski kanali za prenos podatkov. ' Vsakemu posebej je inogoče programsko nastaviti način delovanja ; sinhrono ali asinhrono in hitrost prenosa. Takt, ki določa hitrost . prenosa, generirajo časovniki.. Hitrost prenosa je nastavljiva v mejah od 50-3B4QO Baudov.' Bločna shemu modula je prikazana na sliki 5.1• V nadaljevanju si bomo podrobneje ogledali DHA princip, krmiljenje diskovnega pogona in možnosti, ki nam jih nudi posamezni serijski kanal. 5.2. DIIA prenos Za BUA prenos skrbi krmilnik Z80-DI1A. To je 40 pirisko integrirano vezje. Od podobnih krmilnikov drugih druiiin se. razlikuje po tem, da se v njem podatek med prenosom za kratek čas shrani. Krmilnik namreč generira regularne Slika 5.1, Bloüha aheiiići diskovnega modula. Modul vsebude poleg diakovneKti in DIIA krmilnika Èe Stiri vhođno-ieltoduii kttnale, ki jim je raogoue programsko rias1:jivìti hitrout prenosa in vrsto prenosa (ainlironä , asinhroni). sisrifisko VOtiLC m&HaVMI Po&o/y/ ^ KAHAL i kMüAL i kMfAL i ka/val k kontrolne signale in naslov za izvor In aa cilj podatka. Če torej Sitarne blok podatkov iz V/l kanala v pomnilnik, .potem bo krmilnik gencriral v enem DHA ciklu najprej naslov V/l vezja, IORQ in RD signal (V/I uit&lni cikel), nato pa bo poslal podatek . naprej. To stori tako, đa etarta cikel zapisa v pomnilnik (naslov, MR£Q in WR signal). DHA krmilnik deluje torej na popolnoma enak naSin kot procesor. Edina razlika je v tem, da DI^A krmilnik za svoje delo ne potrebuje programa v pomnilniku. Io pomeni, da ne aapravlja časa a čitanjem in dekodiranjem ukazov,, kar bistveno vpliva na hitrost prenosa. Krmilnik omogoča tri vrste prenosa: zlog za zlogom, zvezni prenos in bruhajoü prenoB (burst). Pri prvem naSinu uprosti DMA krmilnik vodilo po prenosu vsakega Elofia. Pri.drugem naulnu pa krmilnik ne sprouti vodila do zaključka prenosa celega bloka. Öe preide med prenosom READY linija v neaktivno stanje, zadrgi krmilnik vodilo in čaka na ponovno aktiviranje. Pri bruhajočem načinu pa krmilnik prenaša podatke nepretreoma. dokler je aktivna READY linija. Ko preide ta v neaktivno stanje, sprosti krmilnik sistemsko vodilo. V našem sistemu uporabljano prvi nui':in prenosa. Ko prejme krmilnik za diskovni pogon PDC (Floppy Disk Controller) en zlog i» dlaka, aktivira READY linijo DnA krmilnika. Ta pošlje zahtevo po vodilu procesorju. Ko prejme potrditev, prebita podatek iz podatkovnega registra v PDCju in ga zapläe v pomnilnik (slika 5.2). Seveda moramo najprej programsko definirati režim delovanja in naslove izvora in ponora. Slika 5.3 prikazuje tak program. Ko procesor Izvede podprogram "Dmainlt" ,jo DMA krmilnik pripravljen, da' prenese 12B zlogov iz naalova 7 C V/1) na naslov 1000-107FH (pomnilnik), ža prenos posameznega zloga je potreben visok nivo na liniji READY. Pronos poteka bres kakrönekoli Intervenolje procesorja. DHA krmilnik generira pri Čitanju in zapisovanju kontrolne signale, ki Imajo enak iiaaovni potek kot procesor jevi Časovni potek kontrolnih signalov je nogoCe programsko spreminjati tako, da čimbolj ustrezajo hitrosti pomnilnika in perifernih vezij. VOD J LO Slika 5.2. DUA prenos podatkov iz diskovnega krmilnika v pomnilnik. DMA prenos vodi DMA ,krmilnik, ki v času prenosa prevzame vlo^o procesorja. diiiaini ; Id Id Id Otir ret. hl,data ;init kaaalec ü.dmaprt • b,12 buff db . 79h dw buif dw lenfjth db . 14h db 28h db db fdcprt db Bah db Ocfh db 87h equ 0 equ 7 equ 7f00h equ 001 Oh end Slika 5 •3- ■' Prograffi za inicializaci jo DMA kriBilnika. Vbì . parametri, ki bo zbrani v vektorju "data" Be e OTIß ukazom vpiäejo v DHA .krntlnik- t.CLK otiff C - ura J Ò - p^claitk Slika 5.4. Zahtevani časovni potek urnega in podatkovnega signala za kontroJer 1791 . Dejansko ločevanje oz. izločanje podatkovnih bitov izvrši sam kontroler. iB —> A ; naslov A idoliäina bloka ;A je pomnilnik, naslov ;3e povečuje za 1 ;B=V/1 port, naBlov ae ne spreminja ; način zlog ea zlogoni J naslov B ;READY: visok nivo aktiven ; shrani naslova obeh ;portov in postavi ; števec zloj^ov na O jomogocl DMA delovanje ;naalov DMA krmilnika ; naslov PDC podat. reg. ;đolzinu bloka je 128 zl. ; naslov buferja 'i-—[ SWMTA cu m Cb 'tmi ■ I e>!> ■ «.ax Slika 5.5. Vezje za ločevanje urnih in podatkovnih signalov. Vezje formira samo "okno", ki ga potrebuje kontroler .1791 aa separaoijo. uporabil'j amo za krmiljenje diskovnega pogona krmilnik 1791, ki je kompatibilen. z omenjenim 1771 , le da omogoča če krmiljenje pogonov z dvojno gostoto zapisa. Krmilnik ima invertirano podatkovno . vodilo. 2a avoje delovanje potrebuje takt a frekvenco 4MKz.' Krmilnik 1791 omogoča programsko pozicioniranje piaalno/čitalne glave ter čitanje oa. zapisovanje enega ali več sektorjev oz. kompletne sledi. Poslednja funkcij-a nam omogoča ' formatiranje gibkih diskov. Edina funkcija, ki je krmilnik ne izvaja, je ločevanje podatkovnih signalov od urnih. V r.aÉem sistemu smo uporabili za ločevanje metodo s Števcem. Krmilnik 1791 potrebuje na svojaia RCLK vhodu signal, ki omogoča izločitev, podatka iz signala, ki pride iz diska (podatki taktni signali) s enostavno IN operacijo. Vezje za ločevanje mora torej generirati "okno", ki definira veljavnost podatka. Dejansko ločevanje pa se ievrfii interno v krmilniku (slika 5.4). Vezje za ločevanje je prikazano na sliki 5.5. 5.5. Kroiljenje diskovnega pogona Pogoni za gibke diske so postali ze kar standardne periferne napravo v mikroraSunalniSklh sistemih. Zato so se po pričakovanjih pojavila na trgu integrirana vezja za krmiljenje takih pogonov. Prva je bila na tem področju firma Vestern Digital s svojim klasičnim 1771 čipom. V naSem modulu 5.4. Vhodno/izhodni kanali Ütirje vhodno/izhodni kanali so realizirani z dvema Z80-SI0 vezjema. Vsi kanali omogočajo popolen duplekani prenos in sinhroni ali asinhroni način prenosa. Vsi krmilniki (Wlft.PDC.SIO in CTC) bo vezani v serijsko prekinitveno verigo. Hitrost prenosa je programsko nastavljiva v mejah od 50 - 384Ö0 Baudov. Definirajo jo čaeovniška vezja Z80-CTC. Ètirje časovniki (timer) so prosti in u title sioini Bioint: Id Id ■ Id otir Id out Id out Id out ret datai !■ db db db db db db üb Biocitr const timer equ equ equ end hi, datai o.elootr b,7 a,5 (timer),u a,45h (timer),a a,const (timer),a 18h Ü3 Oalh Ü4' 4ah 05 6ah Üah 82h. lOh ;init sic; ; re E) et casovniliii jstevcni nacln ; sledi ; časovna konat. ;Ctteovna. konst. {reset kanala ;kćisialao na WR5 atx8 bitov fomo^soci aprejem ;kaaalec na W1Ì4 ;x16, 2 stop bita ;ka2Eilec na V/S5 ;?x8 bitov ; omogoči oddajo ;SIO ctrl/at reg. ikonat, za 300 Bd ;CTC1.caaovnik O Slika 5.6. Program aa inicialiaaciJo BBlnhronega kanala. N&jpreJ ae naptavi perioda Saaovnika na aahtevano hitrost prenosa. Nato pa se določi vrsta in način prenosa. jih lahko uporabnik svobodno uporablja. Pri aeinhronem načinu je mogoče definirati Število bitov v znaku (5 do 8), Število ustavitvenih "bitov in • konstanto ea deljenje takta (1,16,32,64). Slnhronl na5in pa oniogoča pošiljanje in aprejemanj e bitnega ali zlogovnega protokola (IBM Bieyne, 3DLC in HDLC). Vai parametri so programsko nastavljivi. Vsak kanal ima poleg podatkovnih Se množico Scontrolnih in statusnih registrov. Vai kontrolni in statusni registri Baaedajo samo en naslov v V/I - prostoru. V kontrolne registre je mogoGe samo zapisovati, statusne pa Jo mogoče aamo Sitati. Ma aliki 5.6 Je prikaaan program, ki Inlcialiaira en kanal za asinhroni prenos In nastavi hitrost na 300 Baudov. 6. Modul aa uporabo vinSestrskih diskov 6.1 Dosevilci vinčestrake tehnologije Kot posledica zavestnega iskanja novih magnetnih materialov ter vsestranske miniaturizacije in iz potrebe po čim oenejSih množičnih pomnilnikih eo ae v zadnjetu òbou na tržišču pojavile takoimenovane vinceatrake diskovne enote. Zanje je anaćilno, da ao diski kot nosilci aktivne magnetne plasti trdni, ««aaioenljivl in a posebnim Dhišjem hermetično aaprti. Ta ločenost od okolja pa odpira nove oošnosti sm misoge izboljfiave, ker ,Je nevarnost mehanakih poškodb občutljive magnetne površine in zapisne/bralne slave zaradi neSiatoč-praktiSno odpravljena.(3),(4) lipična vinSestrska glava tehta z uvedbo posebne tankoplastne tehnike le šti IN napram 50N pri navadnih diskovnih enotah p Èamenljivimi diski. Tudi plast zraka, na kateri pri vrtenju diska glava takorekot plava, ae je pri vinčeatrskih enotah zmanjšala na cca. 1 UHI, kar omogooa aapiaovanje podatkov na disk a izredno gostoto (do-8000 bit/cola oz. 320 bit/mm). Z izboljšano zanesljivostjo in hitrostjo nastavljanja glave v radialni tJuieri je bilo Eooč povečati tudi število stez na dolžinsko enoto (do 1000 steaa/cola oa. 40 Bteza/mm). Z vaeai tem je vlnčeatralca teimika dosegla znatne izboljčave napram doslej populsTni tehnologiji upogljivih diskov za vsaj en velikostni razred. Tako znaša tuđi hitrost prenosa podatkov na disk äe nad 10 llBaud, povprečni oas dosega podatkov pa je le äe okoli 10 ms (aliki 6.1 in 6.2). debetina zračne blazine med glavo tn diskom dO 160 2U) 320 ADO ^ 720 [bit/mm] zapisovalna gostota Slika 6.1. Digram prikazuje porast podatkovne gostote, ÓQ amanjSamo oddaljenost aapiaovalno/bralne glave od magnetne povräine diska. gostota stoz (stezo/mm 1 2O0-- •^Fujitsu M 2312 1960 1965 1970 1975 1960 1985 teto trtenja Sliku 6.2. Diagram prikazuje dosegljivo gostoto BtcE kot posledico izboljšav pri postavi jati ju zapiaaviiino/faralne glave ii> v tehnologiji gluve same. IS Slika 6.3. Shematski prikaz razporeditve diakov, . zapiaovalno/toralnih glav ter podatkovnih etez na «agne. t rti površini diskov- (bit?) O 12 3 I 5 6 7 (bitO) i ! magnetna ste2a povr ■ glave vrtenje diskov h-diski podatkovni "volj" pomik glav Sanee se proizvajajo vinSestrske diskovne enote z enim do gtirinl diski In premerooi diskov 5, 8 in col-. Ker je magnetna plast nanesena, na diske na obéh straneh, imajo take enote po 2 do 8 bralno-eapiBOValnih glav, dodatno pa Se posebno bralno -glavo, ki v vlo^ji tahometra omogoča-držati vrtenje diskov na konstantni vrednosti 5000 ótrat/minuta (e.lika 6.5). FomnilniSka zmogljivost takih diskovnih enot enaša od nekaj milijonov zlogov pri majhnih in enodiskovnih enotah do več 100 milijonov aloßov pri največjih vinoestrskih enotah. Ker so v vinuestrskih napravah diski trajno nameščeni, imajo take . enote često predvideno možnost prenosa podatkov na druge medije, večinoma kasetnike ali upogljive diske, ki omogočajo fizično aamenjavo' podatkov in arhiviranje.. 6.2. Tehnika zapisa podatkov Aktivna površina diskov . je do 0,3 um tanka magnetna plast, ki jo zapisovalni tok akozl glavo magnetno polarizira. Pri branju pa magnetno modulirana sled na vsakem prehodu iz ene polaritete v drugo inducira v bralni glavi napetost, proporcionalno zapisnenu toku skozi isto, takrat zaplaovalho glavo. Za zapisovanje podatkov na magnetne diske, gibke ali trdne, se uporablja posebno moduliran signal. Zanj je značilno, da mora poleg .serijsko nanizanih podatkov vsebovati tudi časovno merilo za sinhronizacijo, saj ,je le tako možno najrazličnejSe> impulzne niše pravilno brati, tolmačiti. Medtem ko je za sapia na gibke diske z enojno gostoto v uporabi tkzv. PH modulacija, se pri dvojni gostoti . tako kot pri vlnčestraklh diskih zapisuje ' večinoma z flFM signalom (modified-frequancy-modulation}. Fri PM se v enakomernih časovnih prealedkih pojavljajo posebni, sinhronizacijski impulzi, prostor med --njimi pa je namenjen podatkovnim Impulsom. -Če je podatek 1 , se med dvema-taktnina Impulzoma pojavi öe podatkovni impulz;) če p^ vrednost podatka O, ta impulz izostane. Tako je treba ls_sinhrono s te^m časovnim merilom odtipatl 1 1 1 hexÄI -lutji_rijijt_iti_a-ju—ruijti FM-kodiranje: impulz generirati 1-ZO vsak podatek 2-med vsakim podatkovnim poljem (taktni impulz) JI_n_Jl. tìwAI MFM-kodiranje: impulz generirati ' 1 - za vsak podatek »i 2« med dvema "ničlama" (taktni impulz) JL. JL O O i «) II hexA1 >*) pri označevanju identifikacijskega polja ta taktnt impulz odpade Slika 6.4. Primerjava FU- in IlFll- kodiranja podatkov. vmesne prostore, posamezue " "bite" ždruaiti v paralelne "zloge" in ie je serijsko zapisan podatek z diska uporaben za nadaljnjo obdelavo. Pri dlakih s tkzv. dvojno gostoto zaplea ni povečana fizična gostota, aapiua na disku, temveč le vsled racionalnejše modulacije je moi^no obseg podatkov na disku skoraj podvojiti. Tudi pri tej modificirani Pil (MPM) ae namreč za vrednost podatka 1 impulz pojavi, za,vrednost O pa izostane. Novo je le, da sltihronizacljski impulzi nastopajo le, če je podatkovna vrednost dva ali večkrat zapovrstl 0. Pri MPII nastopajo torej taki "nepodatkovni" Impulzi - napram PH mnogo redkeje. Ker so torej skoraj val .impulzi podatkovni, se kapaciteta istih ploič s pomočjo HPH praktično podvoji (slika 6.4). 6.3• Naloge vmesnika Glavna naloga vmesnika je časovno usklajevanje možnosti In zahtev računalnika na eni strani s togo se odvljajočlBi "programom" mehanske enote,-t. j. vinčestrskega diska na drufji strani. Vrtenje dlaka je konstantno, hitrost, prenosa podatkov je konstantna in tako je informacija, kateri podatkovni sektor se prav. v tem trenutku nahaja pod čitalno glavo, časovno nepremakljiva vrednost. Komuniciranje s procesor ;lem računalnika se opravlja preko slatemakega vodila. Ker pa gre tu za včltavanje ali izpisovanje velikih količin podatkov, opravi to delo najgospodarneje in najhitreje specializiran procesor na vmesniku, tkzv. DMA krmilnik. Procesor računalnika mu po nekaj uvodnih operacijah omogoči direktni dostop! do aistemskega pomnilnika, medtem.pa je sam prost za izvajanje drugih ukazov. t 16 Ka drugi atrani pa mora vmesnik pripraviti vae potrebno, da. bo zapisovalna ^jlava, mogla ob pravem časvj na pravo meuto dislca Kapisuti podatke in to na tak način, da bo uiOLno te podatke pozneje zopet brez tittpak bruti, Precejöen đul te riulogü'opravi tee elektrojiika vini'jestrakö enote Baaa. Ta • vaubu.je končno stopnje za generiranje primerrie^5a .zaviaovalneya toka, na njoj so ojaüevaliiiki šibkih uignalov ìb bralnih glav." Tudi krmiljenje ko:'atnih motorijkov za pomik éjlav v radialni ameri (pozioioniranje na posamezna uledi) in zagotavljanje konstantnega vrtenja diskov preko posebnih faznih regulatorjev je stvar elektronike, ki je flel diskovne enote. 2ato obstaja tudi med vmesnikom in diskovno enoto Btičižče, kjer signali niso veìj elementarni, temveü imajo tako tukaj kot na proueaoraki Btrani običajne TTL nivoje. Prenoa krmilnih si^jnalov je aoimtìtriuèn in jih je za pogon večjih bremen (dolge linije) treba äe ojačiti. laki signali so; - izbira bralne/zapiaovaliie ßlave. S traini linijami določamo eno od ositiih gl'iv in s tem Izmenjavo podatkov z eno od osraili strani Štirih diökoy - 4 elfinall za iabiro ene vlnčoatrsklh diskovnih enot od Štirih moiinih - 2 signala za 0!iiot;očanje pisanja oe. bratija - 2 signala za določanje smeri in žtevila korakov pri pomikanju glave In ao - nekaj linij za javljanje pripravljenosti diskovne enote (ready), začetne itiarke (index), pOBicioniranje glave končano (seek complete) in poćobiio. Prenos "visokofrekvenčnih" signalov, kot bo; - bralni podatki (read data), - zapiani podatki (write data) in - izhod oscilatorja . za sinhrono zapisovanje (write clock) je možen le preko impedančno pravilno zaključenih simetričnih linij. Ha oddajni strani je treba predvideti posebne napajalne stopnje (line driver), na sprejemni pa diferencialne sprejemnike, ki ao za motnje in prealuh na istočasno obeh llnijaJi takega simetričnega sistema neobčutljivi. Ć.4. Pormatiranje diaka Podatki so na diskih zapiaani serijsko, hit aa bitom, v koncentrično razporejenih sledeh. Ker eo sledi dolge, so te razdeljetse na posamezne sektorje. ("eprav je tudi sektor razdeljen na veS delov in ima torej sam svoj format, je to najmanjaa enota, ki jo jo motno direktno nasloviti. Prvi del sektorja je tkzv. identifikacijako polje (ID field), ki vsebuje zaporedne ètevilko aledl, glave in sektorja, pa tudi aačetno Blnhronlzacijslio marko in na koncu kontrolo pravilnosti podatkov (2 CRC z.loèja). Kele drugi din u signale kodirane ASClI-kodom, Vojnot elmički glasnik 27, 623 (1979). 25. B. Uratnik, !1. Rokbč, a. Železnlkar: Mikroračunalnik Iskradata 1680: moduli-in. sistemi, Informatica 2, 7 (1979). 26. A- Železnlkar; Procesiranje teksto z mikroračunalniki I, Informatica 3, St. 3 (1979), 48-57. 27. A. Železnikar; Dopolnitev procesorja teksta. Informatica 3, št. 4 C1979), 58-60. 28. D. Novak, A. Železnikar: Mikroračunalniška kriptografija II, Informatica 3, št. 3 (1979), 22-27. 29• A< Železnikar: Razvoj računalniških sistemov, Informatica 4, št. 1 (1980), 4-12. 30. A. Železnlkar: Jezik PL/I in mikroračunalniki I, Informatica 4 (1980), št. 4, 3-10. 31 • A. Železnikar, Đ. Novak: Iložnosti razvoja mikroraČunalniške tehnologije v SFRJ, Informatica 5 (1981), št. 1, 4-11. 32. A. Železnikar! Jezik PL/l in mikroračunalniki II, Informatica 5 (1981), Št. 1 , 16-27. 33. A. Železnikar: Jezik PL/l in mikroračunalniki III, Informatica 5 (1981), Št. 2, 32-43. 34-,A. Železnikar: Tiha revolucija. Informatica 5 (1981), št. 3, 335. A. Železnikar: Jezik PL/I in mikroračunalniki IV, Informatica 5 (1981), št. 3, 15-24. 36. A. Železnikar: Uvod v CP/M I, Informatica 5 (1981), št. 3, 63-76. 37. A. Železnikar: Uvod v CP/H II, Informatica 5 (1981), ät. 4, 9-23. tìC-Bilili: Ljubljana, 10,—14. maja 1982 Preliminarni program Preliminary programme Simpozij Symposium 16. jugoslovansl«' mednarodni simpozij za računalniško tehnoiogijo in probleme informatike 16th Yugoslav International Symposium on Computer Technology and Problems of Informatics Seminarji Semiriars Izbrane terne iz področja raćunafnfStva in mforinallke SeJegted Topics an Computers end Inlormadcs Ljubijana, 10.-11. maja 1982 Organizatorji Organizers E'ekiroKhniska zveja Slower Gospodarska razslaviSće L,:,r :ana trvforma^^ka Siover\e Corrp^jtt^ Sct;etv Slovene Assocratio/i al Eleclrraf Et-^';iree' rg Ljubljana f^air * CP/H in MP/II eta avtorsko zaščitena izdelka podjetja Digital Research, Pacific Grove, California. Programski odbor y Programme Committee Organizacijski odbor Organizing Committee Orago Novak Matita É^el N'an Bralko Cen? Bavec Milan Veknüa Cir-l BezO; Suae Aiegic Duàan S^leha Fatine vjS|a HfT^isi a-TuD And'"e f^r^p'c t* •• «M t t .h-dUi PROJEKTOVANJE IZVRŠNIH SISTEMA MIKRORACLNARA ZA RAD U REALNOM VREMENU KORISTENJEM JEZIKA VISOKOG NIVOA ZA SEKVENCI JALNO PROGRAMIRANJE UDK: 681.3.014:519.682 ZORAN SALČIC, GOJO STRKIC ELEKTROTEHNIČKI FAKULTET SARAJEVO, ELEKTROTEHNIČKI FAKULTET BANJALUKA u ovate radu opisano je projektovanje iavržniti sistema miroračunara aa rad u reainan vreinenu kos iKlt^iijero ■ iezika visokce nivoa za sekvencijaOno prcgraniranje. C'ored kratKog CBVTta na programiranje za r^đ u realjiuu vieiià^u, ddita je funjfcicaialna arsaniaacija izvršnih sistena inikjüiw!unar« za rad u realnem vremenu. Kao i prunjer lei-^-va nog takvog sistema projektcvanog tori^Stenjem jezika viscJcog nivoa za sekvencijalno pTORi-anu-ai^e. paper the desipfi of microconputej' n.'al-l.iiiie executive by raeans of hij^i level sequential ribed. Besides the short insight lo leal-tijiE progi'aiiining, a funzionai organization of micit ^.^iiipui er Linpuafie 5 Äscrdied". Besides the short insight lo leal-tijiE progi'điiining, a functional organization of rsal-tijne executive is given. Kemel ot sudi an exeuitive desiepecl by means of high level sequential J^i- guage is also ptesented. 1, UVOD Kcnvencionalni programi opisuju aktivnosti koje mijenjaju vrijednosti varijabli u diskretnira koracijiki. Ove aktivnosti se izvode poroću proaetiora i one uzi-jiaju kcnačan iznos vreniena. Spcnenuto vrij ene ne zavj-si od prirode protraila. Oho viäe zavisi od samog primijenjenog procesora. Svi program, su obilno napisani tako da izračunati rezultati ne zavise od brzine prillije-n j enih pixcesona. Jedan jednostavan naß in da se đot>ije vtvsnenska nezavisnost je da se prcfjjami pi§u tako da opisuju čiste sekvencijalne lance aktivnosti. Svaka aktivnost se inicijaližira tek kad se njen jedinstveni piedhioctnik završi. Takav program zove se sekvent-;jalni pio^'an. Ih/od jen je pojma vremena u prograiiska razmati'anja je ćisto tehnička potreDa. Glavni i'azlog za njegovo uvodjenje je taj da izračunavanje mofe biti ubrzano ako se koristi nekoliko procesora koji rade kcnJoarenlTio. ITiogi'ani koji koriste viSe procesora sastoje se od nekoliko iwtìna (nazvanih procesima) koje su same po sebi čisto sekvencijalne. Ove i\itine se izvode kcnkuten-Ino a konuniciraju iicmoću zajednlSkih varijabli i sin^ hrnii m:>i>aiu, kadgod je to moguće biti tako napisani da s];t:i.:iFii.ii'aju izračunate rezultate ne zavisio od apsolutnih i ivlati-vnih brzina prijnijenjenili pixcesora. Fri tenie jtì potrebno uzeti u obair necphodrtu predpostavku da su ùizine veće od nule. Pored toga, nezavisncet od brzine priitii-jenjenih procesora dozvoljava joè jednu veliJai preiiost pcfito se valjanost pj-ograma nioze utvjxliti dedul.cijan iz sariüg teksta progrania. Ako se odvojimo od ovog iivavLla i dozvolimo da valjanost našeg pregrama aavissi od bi ai-ne K.orištenih procesora, mi ulazimo u i>olje često ivano prcgraniranje za rad u tealnon vremenu. (Iz gote izlože-nO(3, čini sa da bi cpisniji termin bio "piogiifniiunje zavisno od vreiijena izvodjenja"). , . Koji su razlozi za pis^je prograna zavisnili od vi-eirena izvodjenja? Ozbiljan razlog je taj što se iH0?.e desiti da izvjesni procesi koji nisu progranabilni, pošto su npr. dio okoline, kao takvi ne mogu da čekaju sinhrtnizacitne sifjiale od oetalili procesa sa kojinia kooperii'aju. To ima za r-ezultat da kooperacija sa ovakvim prooesiie moia da zavisi od brzine' procesiM^a, Ftt se ueÄiti da zav3.snost f^roprama za imi u rea- ' Incm vrejienu od vremenskiri ofjwiiienja čini da je veri-fikacicni zadatak takvog ^iroRiiama skoro nemoguó čiko se vretnenska zavisna; t ne opj'dn.i-či na izvjesne izt.li t\ine dijelove u nekon stanclartlnuu ilijelu piogi'ama. Iz prethodncg naneće ss zaključak da bi se trebala da koriste slijedeća pravila aa. programiranje za rad u realnom vremenu; 1. Prvo fcmilisati čitav prograti bez ikakvog oslanjanja na vremena izvoćjenja i eksplicitno obezbije-diti sve patretne siiihrctiizacicne signale. 2. Za svaki signal koji se ne može cbezbijediti ptanoču mažine (procesora) koja treba da bude korištena analitićki napraviti vremenska ograničenja koja dozvoljavaju odsustvo signala. 3. Provjeriti da li su wa ograničenja zadowlje-na u konkrentDoj realizaciji. 2. CENOVNE FIMKCUE IZTOSNOG StSCEMA MIKRORACUNARA U PRIfUEKim REAIHOG VREMENA Sve funkcije izvräncg sistema koje se kceriste za rsd u realnem vremenu inogu se podijeliti u dvije osnovne grupe. To su primame i sekundarne funkcije [2] . 2.1, Prirame funkcije izvrgnog sistema Svaka okolina koja je u stanju da podrži viSe procesa koji rade u realnem vremenu nora imati slijedeće jezgrw funkcija: - iiiicijaliaacija i raspored] ivanje prooesa, - konisiikacija medju pnooesijna i sinhrcnizacija istih, - opsluživanje vremenskih aahtjeva, - opsluživanje prekida, - dinamifkö. upravljanje procesijna. Sl.l. Stanje procesa 2..1.1. Ihicijaliaacija i raspoiredjivanje procesa Lb svaki proces u realnaa vretsenu pridružen je piriorLtet i stanje l«jje je poznato izvrSncm sisteiiM u svatom trenutku. To su slijedeća stanja (vidjeti Sl.l.)! - spreman, - eSeka, - susprendovan. Spreman proces je cnaj prooes koji nema preostalih zahtjeva prem izvränan sistemi. Njenu može biti dodijeljen procesor cnda kad ne bude viSe spremnih prooesa viäeg prioriteta nego Sto je cn. Prooes u stanju Sekanja čeka da se desi odredje-ni đcgad^aj prije ifwgo äto bi cn nastavio. Dogadjaj može biti vanjski (npr. piekid) ili unvttraänji (npr. pcatika od dnjgcg procesa). Suspendwani prooea je cnaj prooes koji nije ni u stanju čekanja, niti je sprenan a niti pak že].i neki sistemski resurs. Izvršni sistem je taj koji vodi raöuna o stanju prooesa i pcnwo rasporedjuje aktivnosti pix»esa kadgod se neSto značajno dasi. Ponovno rasporedjivanje se izvodi u slijedećim slučajevinH; - Prooes u izvodjenju Čeka poruku ili pak niora da odgodi svoje Izvodjenje odrsdjeno vrijeme. - Poslije opsluživanja prekida ili poslije vremenskog iabacivanja (timecut) doäao na red prooes viSeg prioriteta. - Ftoces u izvodjenju äalje poruku procesu višeg prioriteta i na taj ga način aktivira. Za sam proces, tok pcnovnog rasporedjivanja je^ nevidljiv jer se stanje njegove "vlrtuanne inaälne" restaurira svaki put kad cn nastavi lavoektno nego preko sistemskog kanala. Prooes koji čeka poaniku nal^i se na listi Čekanja procesa u dattero kanalu, ftraj kaiunikacicm metod sa ugra-djenim baferisanjera vrlo je moćno oiudje koje se koristi u sistemima za rad u realnem vranenu. , . Itoruke kcjje se izmjenjuju medju procesim mogu se jnqjìsati u dvije klaset - porute kDd tojJh je bitan sadržaj, - pciruke kod kojih je bitno njihcw dsSavanje- Pcinqer prve klase poruka može biti sluSaj poruke koju Šalje cpalužlvač teminala ptxxsesu interpMtervi tomndi. Drijga klasa poruka nalazi primjenu u slučajevima gctìe se zahtijeva sinhroiiaacija iijnedju dva prooesa, i, Sto je j06 važnije, mehaoiizm ineđjusctnog iskljvÄi-vanja. Medjusoino isključivanje je pctrelaio kadgod dva ili više procesa zahtijeva istcvreraeni pristup na neki nedjeljiv resurs. 2,1.3. Vi^aiski z^jevi i E& bi se cdsezbij edile funkcije kažnjen j a u sistemu iia rad u realnem vremenu potreban je neki vretmen-ski generates Csajt realncjg w^mena) izveden u hardveiu. IzvrSni sistenrd zahtijevaju mcgučnost vréuenskcg tenniniranja prekida koji se nogu pcnavljati sa odredje-nlm periodali. Izbor perioda izreedju dva prekida mora. biti pažljivo odabrčin. Kbrisnifiki pirocesi zahtijevaju da taj period: bude Sto kraCi' ka)co bi nogii što preciznije specificiJMti preteklo vrijeme. S druge strane iivrfni sistem n»ra da uame neäto prooesorskog vranaia 2a vrijeme svaJoog perioJa. Afco se sa T^ oznaSi vrijeme potrebno izvrSncm sistemu.a sa T period pcnavljanja prekida ta Prekidi se c^lužuju pcnwÄi izvräncg sistana. Izvršni sistem transformiSe prekid u U/I poruku koja se prosledjuje do procesa koji istu očekuje. Ca bi se povećala propusnost slertema čest je slučaj da ponjku prihvata procies višeg prioriteta i prosledjuje je do procesa nižeg prioriteta a cu se vraća u stanje čekanja. Nedostatak pristupa da izvršni sistem opslužuje prekide . je postigj^uta dužina obrasJe prekida. Izvršni sistem mora (k pohrani stanje prekinutog prooeea te da rasporedi proces za obradu prekida. Vrijeme odziva može biti viie Btotijia mikroBéSamdi za razliku od nekoliko desetijia miktosekundi koliko otprilike traje sam potprogram za opsluživanje preldda. Da bi se prevazišao ovaj nedostatak moguće je da se izbjegne mehanizam opsluživanja prekida ponoću izvršnog sistena na taj način što bi se obe- . zbij edile rutine za opsluživanje prekida van kostura izvrSnog sistema koje zaobilaze potrebu ulaska u izvižni sistem. Od ovih rutina bi se zahtijevalo da prije nego Sto se završe, potvrdu o završetka proslijede ka izvi-šnan sistemu. M^ianizmi za opsluživanje prekida pomoču izvršnog sistem cbično su iaveđeni tako da hardver za upravljanje prekidan datog sistema dctoro odgovara već utvrdjenoj Semi prioriteta. Na taj način je asinhroni vezni modul integriran sa realnim dogadjajina i formira se dosta koherentna stniktura. 2.1.5. Dinamičko upravljanje procesima U kcnpleksnoti sistemu vrlo je važno da prooesi mogu jeooes, obeabjedjuje mehanizam pomoću )4. Povezane liste U našem kemelu,koriste se tri povezane liste. IVije su liste čekanja.spremnih prooesa a treća je lista kaänjenja. Svaka povezana lista čekanja sadrži pokazivač glave liste. . Pokazivač glave liste sadrži broj prvog procesa u listi. , PoO^azivač prvog procesa pokazuj e na drugi prooes u listi, .i.tako redom. Pokazivač zadnjeg procesa na Usti postavljen je na nulu da bi indicirao da je to zadnji prooes u listi. ■ Prooesi se stavljaju na dno tj. rep liste čekanja sprennih prooesa a uzimaju se sa vrha tj. glave iste liste. Lista kaSnjenja ina glavu liste koju ano nazvali Dsl^Head. Lista taSnjenja je povezana lista. Međjutim, cna nije povezana lista čekanja pošto se kaänjenja na istu instaliraju po veličini kašnjenja a ne po redoslje-du aktiviranja. Razlog, za ovo će biti ctojašnjen kasnije. K^ Sto je već rečeno, postoje dvije liste spremnih procesa. Jedna od njih služi za prooese visokog prioriteta a jedna za procese niskog prioriteta. Pokazivači glave pridružen i: uz ove dvije liste su HighPriij-rityifead za listu visckcg prioriteta, a LowPrioirityHead za listu niskog prioriteta. Naravno, struktura kemela može biti proäirena do bilđ kog nivoa prioriteta, s tim da se za svaki nivo uvede po jednà nova povezana lista čekanja i da se vodi računa o procesima prekinutim procesima višeg prioriteta. načina da se to izbjegne je da se problem prmjesti iz rutine DecrejtientDelay u iMtim ActivateEelay. U tcsn slučaju, kašnjenja se smjeste- u povezanu listu i to po rastućim veličinana tako da u vrijednost svakog kašnjenja upada suma svih prethodnih. Eterna tone, dcwoljno je de-kreanentirati samo jedno kaänjenje na svaki takt sata realnog vremena. Ovaj pristup ćemo ilustrwati ponoću slijedećeg primjera. Predpostavićemo da postoje slijedeći uslovi: Prooes 7 ima kaänjenje od 5 msec Proces 3 ima kašnjenja od 8 msec Proces 9 ina kašnjenje od m msec Prema tate struktura kaSnjenja izgleda ovako: Delajitead! =07 . ' ■ Proces C7). pntr: = 03 Prooes (3), pntr: =09 Proces C9). pntr: =00 Proces (7). delay:= 05 (prvo kašnjenje =55 Prwes (3). delay:= 03 (5+3=8) Flooes (9). delay06'(5+3+6=11+) Dakle, povezana lista je aranžirana tako da su kašnjenja u rostučan nizu a svako kašnjenje je jednako sumi svih prethodnih kašnjenja. teme, dekrementiranjem prvog kašnjenja bivaju dekrementirana i sva ostala kaänjenja. Potrebno je n^Jcmenuti da je nedostatak gornjeg pristupa u tane što se dobija složenija rutina Activate-Delay, Medjutim, poäto se rutina Activatel^lay izvodi róedje nego rutina DecretnentDelay to je uSteda u i-eal-ncm vremenu značajnija od složenosti rutine. 3.6. Izbjegavanje mrtve petlje Želeći da naš kernel i dalje cetane jednosrtavan, a da se izbjegne problem mrtve petlje na stiMkturv prooesa se dodaje jedna poseJbna matrica. U toj matrici svaki elanent predstavlja po jedan resurs potrtì^an pri-likcoi izvodjenja datog prooesa. Kad procedura StartPro-oees pozove određjeni proces na saioati početku procesa se utvrdi da li su na raspolaganju pcrtrehni resursi. Ako su resursi na raspolaganju parwEs se izvodi s tim da ee stanje resursa ažurira. Ako pak procesi nisu na raspolaganju prooes se vraća na proceduru StartProoess.koja stavlja istog na listu kč^njenja ili listu spremnih jaxcesa. li. ZAKLJUČAK 3.5. KaSnjenja Ifemel nože u jednom trenutku imati više aktivnih kaSnjenja. Hedjutim, poetoji prcblem ako on mera da dekrtmentira svako kašnjenje na svaki takt gata realnog vremena, poèto to uzima dosta vremena. Jedan od JeziJtu za sekvencijalno prcgcanitonje se može zamjeriti to što ne posjeduje odredjene softverske primitive toje bi omogućavale sinhroiizaciju i kcoiunlkaciju iJme-đju sekvencijalnih prooesa fito je posebno bitno kod sistema koji rade u realnom vranoiu. Naime, primitive za siiVhrcnizaciju i kcniuniScaciju Jtoraju se projektovati svaki put kad se projefctuje sistem i ostavljeno je u udio prcgratnenji <äa ih projektuje po svojoj zamisli Sto u većini slučajeva nije možda optlmaOno i sigurno rješenje. Pored tega tu ne posted i .na raspolaganju nek» po NIL THSJ p; = [ü.^ PriorityHead WHILE p.next <> NIL DO p; = next EKD p.nejct: - newProoess HigfiPriorityHead: = nevS'roo FHD fflD <* While newProoess*) (*Ziia£i da je prooes niskog prioriteta*) IF LowEriorityHead <> NIL THEN p: = LcwPriorityHead WKIIE p.next <> NIL DO p : » next END p.next; = newProoess ELSE LowRüiorityHead; = newProoess END (* If LowPriorityHead*) ELSE (» aiaći da je prooes izlistan pa to treba notirati u statusu*) status.error; = TRUE END ActivateProoess (*ActivateDelay - postavi proces koji treba da buds zakaSnjen za dužinu vremena "delay", na o 0 DO oldDifferenoe :. = difference difference; = difference - prooesäTable (pointerNull) del^ pointerChe: = pointeitlull polnterWull: = processfTable (pointerOie) next (*NewProaess pokazuje na pointerNull*) prccessTable (newProceBS) next: = pointerNull proaes^abJeCpointerOie) next: = newFrooese IF pointerWoll = NIL DO WITH prooessTable (neMRcoaeas) DO del^: = UNSIGN ttiifferenoe) status. rdy=FAl£E status.dly: = TROE IMD ' END C* tf pointerNull*) HID {*While differenoe« ) prooessTäble (podn-tertfull) del^: = IMSIGN tdi fferenae) WITH processTabJe NIL DO myself: = UID C^WiiXe delay! END C With proosetì-abèe») BID (»While delayHead*) QID (^DescremaitDel^) (•StartProoess: - pc«lva se iz procedure DispatdiProcess - starta process "EuntiingProoess" i po njegovem zaui— Setku ažurira status istog kao i resursa sistema. - postavlja vrijeAiost "mnningProoess" na nulu tako da emogufii da neki drvgi proces rooäe biti rasporedjen*) PROCEIUFE .StartProoess CASE rumingProcess OF null; p?ooessNull one: processene » * IND (• Case*) WITH proces^able (rvmningPwxBss) DO status,rdy: = TKUE status.dly: = FALSE resouroeStatus /HD NOT resources IF runningProoess = newProoess THTO IF delay <> 0 THFJ ActivateDelay ELSE ActivateFiPOcesB - END DTD <*If runnlngProoess*) BID ("With prooessTable*) runningProcess: = 0 EMD StartProoess < »PreemptRnooBEs ! - Ako se izvodi proces niskog prica^iteta a u medju-- . vremenu ee pojavi sjac^nni proces visokog prioriteta cnđa se prestaje sa izvođjenjem prooesa niskog prioriteta i raspcredjuje ee proces visokog pricar>iteta*) PROCEDUra; PreemptProcese WHII£ PreeoptedProoes» 0 DO IF HighPriorityHead <> NIL AND (runningProcess >= first IflwPriorityProoesB) THEN preeiqitedProDess: = njnningProcess runningProcess: = 0. UfD WHILE PreemptedProceeso o DO DispatchProcess oro BND (*While preepnptedProoess*) IND PreengjtProcess ( ^DispatcliProcess ; - Da bi ova procedura izvrSlla raspoi»-oeBB).(U našem slufi^u to je proces sa identifikato-ran je KIL DO rumingfrooess; = HighPriorit^ad Hi^hPriorityHead: = HigWriorityHead-tiart: StaitFt>ocesG{ninningProoe B8 ) END IF Pr>eemptedR!>ooeBS <> 0 THEN rurmingProciees: = peeen^ttedProoeas preenptedftooese! = 0 ELSE IF LowRricritj^lead oNIL THEN runningfìTooess: = LowPriorityHead L3wPiiarityHeađ;=Pic>ooee^ablfi CnmitingProoeBS): next StartPtwess Et© IND DispattchProcess FKOCdXIKE process 0 IF ProceEđTable (runningProoess}. resources PODSWJP OD resourceStaitus THEN rssouroeStates: = regourceStatus OR procieG^able Cmnningl^xiaess}, resources Kod prooEsa 00 ELSE END («14>aj procesa 0*) * PROCEDURE process 1 IF ... LUERAdURA 1. Wirth. H., "Toward a Discipline of Beal-Tirae Prcgra-mning", CAOl, August 1977, Vol 20, No 8. 2. Itits van der Linden, Ian Wilsen, "Feal-tijsB executives fcr micTOprocessars", Miercprooessare and Microsystems, Vol t, Ko 6 july/august 1980. 3. "RMX/80 user's guide" No 9M0522B Intel OoitT>.(1979). H, "SEX-BO technical manual". Systems i Software Inc., Đouners Owe, Illinois, USA. 5, "RIM 8 real-time executive user's manual" , Advanaoed Hicro Conpiters (1979). 6."RMX/80 real time multitaekiiig executive" Intel y^pUcation Note 33 (1979). PROCEEUKE StartSystem ee kad se ieli izvržiti inicijaUaacija i treba startati sistem*) BEGBi (* - iniciialijziraj sve liste - Startaj proceduru DlspatchProoesa*) DID IMD StartSystem Ott) temei UVOD V CP/M III ANTON P. ŽELEZNIKAR UDK: 681.3.06 CP/M: 181.4 SOZD ELEKTOTEHNA, DO DELTA Tretji del uvoda v operacijski sistem CP/M obravnava nadaljne prehodno Ukaze, in sicer LOAD, DUMP, SUBMIT, XSÜB, SYSGEN, HOVCPH, ASM ttn okvirno zgradbo CP/M sistema z moduli CCP, BDüS in BIOS. Iz6rpneje jt; obravnavana struktura modula BIOS ter možnosti razvoja novega in tnodifikaclje starega BlOSa. Nazadnje je nakazana še možnost realizacijt; mehaiilzina s t.im. V/I zlogom. An Introduction to CP/M Operating System III. The third part of tlie article dealing with CP/M operating system describes further types ol' transient commands, as LOAD, dUMP, SUBMIT, XSUB, SYSGEN, MOVCPM, ASM and shows the basic structure of CP/M system consisting of CCP, BDOS, and BIOS modules. The structure of BIOS is presented in more detail and slmuntaneously, the possibilities of BIOS development and Bios modification are pointed out. At last, a possible implementation of lOBYTE mechanism is described. 4.10. Oblikovanje IzvrSliiveqa programa z ukazom LOAD 4.11. Prikaa vsebine zbirke z uknaoni UUMP I.OATi ukaz ima eno samo funkcijo, in sicer vzame zbirka s pripono HEX in jo pretvori v Izvršljivo zbirko s pripono COM. HEX zbirka nastane npr. pri uporabi nekega CP/M zbirnika (npr, za procesor 8080A ali Z80). HEX zbirka je napisana v HEX formatu ter jo .je moč preizkusiti (Izvršiti) z uporabo DDT programa. HEX zbirko lahko pretvorimo v COM zbirko z uporabo ukazov DDT in SAVE, ukaz LOAD pa oraogoSa neposredno pretvorbo in postavi začetek Izvršljive zbirke na lokacijo lOOH. Splošna oblika LOAD ukaza je LOAD d!ime_zblrke'cr' Primer uporabe LOAD ukaza je npr.: DUMP ukaz prikaže vsebino heksadecim.ilni obliki in imamo DUMP d:ime_zbirke.tip'cr' Ukaz DUMP d:*.*'er' y.b i rke prikaže heksadecimalno prvo zbirko, ki se ujemn s *.* parametri. DUMP ukaz delu ja podobno kol. vgrajeni TYPE ukaz, le da nimamo ASCII predstavitve marveč heksadecimalno. DUMP ukaz lahko uporabimo za prikaz vsake neASCII zbirke, ki je zapisana binarno (COM zbirka), Imamo tale primer: B>A:DLirtP AtlKE.CüH a>A;LOAD Al IKE.HEX QQDQ 06 OU 3A 40 00 FE OA DS 1 0 01 £1 17 01 4F 09 '16 FIRST ADDRESS DIOQ OOIQ 78 32 41 00 C3 00 00 3F 06 SB 4F 66 6D 7l> 07 7 F LAST ADDRESS 0113 0020 6 F El 42 DO 97 06 08 0£ fF 67 57 7i D6 30 FE US BYTES READ 004ÌI 0030 DE 3Ü 01 82 23 05 CS 29 01 OE 00 £1 40 00 77 33 RECORDS UHITTEN 01 . OIKiO 71 C3 05 00 OU 00 00 00 00 00 00 00 00 00 00 00 00S.0 OU 00 DO 00 00 00 OD 00 00 00 00 00 00 00 00 00 U060 OS 00 0(1 00 00 00 00 00 00 00 00 00 00 00 UO 00 B» OOTO Ott 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Pri tem pomeni: first address začetni naslov programa last address končni naslov programa bytes read število zlogov v programu records written število zapisov v zbirki V levem stolpca so naslovi zaèetnih zlogov v vrsticah, izpln pa je heksadecimalnl, Z zn^ikoin 'CTI, k' ustavimo prikazovanje, z vsakim tiruglin znakom pa se vrnemo v operacijski sistem (Cf/H). * CP/M je avtorsko zaščiten izdelek podjetja Digital Research, Pacific Grove, California. 4.12. Paketna obdelava programov z uporabo ukazov SUBMIT In XSUB CP/M sistem oinogofia popolnejšo obdelavo podatkov kot najveiSjl računalniški sistemi iz šestdesetih let. V tistih Časih je veöina sistemov uporabljala paketni način obdelave uporabniških programov. Paket je skupina predmetov in v raöunalniSkem sistemu razumemo pod pojmom paket zaporedje ukazov (programov) In/ali podatkov. Večina današnjih mikroračunalniSklh sistemov je Interaktivnih, ko Imamo komunikacijo med sistemom in uporabnikom. Ta komunikacija poteka tako, da vstavimo v sistem ukaz, nakar sistem nekaj opravi in se vrne na konzolo z določenim sporočilom. V odvisnosti od tega sporočila nadaljuje uporabnik s pošiljanjem novih ukazov v sistem in .tako naprej. Interaktivna obdelava postaja vsebolj pravilo kot izjema in dialogni sistemi so za uporabnika najbolj ustrezni. Večkrat se izkaže, da je pripravnejSe poslati v sistem več ukazov, ki naj se potem izvajajo zaporedno. Tak način omogoča, da med izvajanjem zaporedja nismo prisotni ob sistemu in se kompleksne obdelave opravijo avtomatifino brez . našega poseganja v delovanje sistema. Take naloge lahko rešujemo z uporabo ukazov SUBMIT in XSUB, j.12.1. Avtomatično,izvajanie ukazne vrstice z ukazom SUBMIT SUBMIT ukaz ureja zaporedno pošiljanje ukazov in nj.ihovo zaporedno izvrševanje brez dodatnega uporabniškega poseganja v postopek. Imamo dve značilni obliki SUBMIT ukaza, in sicer: SUBMIT ime zbirke'cr' iOblikuje se zbirka jSgjS.SUB, ki vsebuje ukaze navedene (zapisane) v zbirki ime_zbirke.SUB. cr/M sistem-izvrši nato ukaze Iz te zbirke tako, kot bi jih izvrSil z uporabo tastature. SUBMIT ime_zbirke parametri'cr' Oblikuje se zbirka g^tJS.SUB, ki vsebuje ukaae iz zbirke irae_zbirk6.SUB. . Nekateri deli ukaznih vrstic v zbirki ime_zblrke.SUE se nadomestijo s parametri med oblikovanjem zbirke ^^Ji.SUB. CP/M sistem vzame ukaze la te zbirke in jih izvrši tako, kot da bi b.ili poslani s tastature. Pri uporabi SUBMIT ukaza je najprej potrebno oblikovati zbirko s pripono .SUB, ko uporabimo urejevalnik ED ali kakšen drug urejevalnik. Ta zbirka, ki jo oblikujemo z urejevalnikom, vsebuje ukaze v zaporedju, kot bodo izvrSenl. V vsaki vrstici se nahaja po en ukaz. Pri razvoju programov večkrat uporabljamo prevajalnike, ki prevajajo uporabniške programe. Temu prevajanju večkrat sledi povezovanje prevedenih modulov in potem izvrSltev povezanih modulov. Za ta postopek lahko uporabimo submit ukaz, saj takšen postopek zaporednih akcij lahko traja tudi uro in več in ni potrebno, da smo med tem prisotni. Kazen tega lahko verižno povežemo tudi SUB zbirke in dobimo še bolj kompleksen paket. Oglejmo si sedaj Se primer. Z urejevalnikom obllkujmo zbirko PO.SOB, in sicer takole: A>TYPE PO.sua Al STAT B»*.PLI ERA Bl*.PLI DIR Bl«.PLI A> Tako oblikovano izvajanje, ko imamo: SUB zbirko pošljimo v A>SUBMIT PO A>AISTAT ÖI'.PLI RECS 8YTLS CXT ACC 4 tK 1 R/W BtIK£I.PLI 36 5K .1 R/W HlIKEa.PLI 7S lOK 1 H/V BlIKE3ERA Bt«-PL1 A»tiIK Bi».PLI NO flLE A> Kot že napisano, se ukazi zbirke tipa SUB nahajajo med izvajanjem te zbirke v posebni Bbirki ?SS^.SUB, ki se oblikuje z ukazom SUBMIT in Iz- te nove zbirke se opravlja zaporedno izvrševanje posameznih ukazov. S posebnimi krmilnimi znaki lahko ustavljamo Izvajanje zbirke ti znaki so 'DEL', 'BS' oziroma 'CTL __ r 'CTL h'. Še zanimivejša je uporaba SUBMIT ukaza s parametri, ko imamo splošno SUBMIT ime_zblrke a b e'er' Tu so a, b in c parametri. Ukazi iz zbirke ime_zbirke.SUB se nahajajo v zbirki ^^Ji.SUB, iz katere se izvajajo. Pri tem SUBMIT ukazu lahko uporabljamo nepopolne (parametrične) CP/M ukazne vrstice. SUBMIT ukaz bo manjkajočo informacijo nadomestil s parametri a, b, c itd. Ti parametri so lahko imena zbirk ali drugi podatki. Simboli 02, jS3, ... se uporabljajo kot neke vrste globalne spremenljivke, ki se. nadomeščajo z dejanskimi parametri. Vzemimo primer, ko urejujemo zbirko na diskovni enoti A; in Selimo Imeti njeno kopijo na enoti Bs, potem pa Selimo preizkus prostega prostora na disketi po vsakem urejevalnem postopku. Brez uporabe SUBMIT ukaza bi morali preko tastature poslati sistemu naslednje zaporedje ukazov (seveda po vsakokratnem končanju posameznih ukaznih vrstic): A> ed ike.doc'cr' A>plp b:=a: ike.đoc£vJ'cr ' A>stat bjlke.* 'cr' Vzemimo, da je ta metoda zaželena po vsakem urejevalnem postopku, ko urejujemo razlifine zbirke. Najprej oblikujemo ustrezno SUB zbirko, ki jo poimenujemo z EDIT.SUB, njena vsebina pa jej ' ed 01,j!2-cr' pip b:=a:01.02rv3'cr' stat b:3x.*'cr za uporabo te SUB zbirke imamo tale enostaven ukaz : A>submit edit ike.doc'cr' SUBMIT ukaz oblikuje najprej ^^SS.SUB iz EDIT.SUH, ko vstavi prvi parameter IKE namesto povsod tam, kjer se pojavlja. Nato vzame drugi parameter DOC in ga vstavi povsod tam, kjer se pojavlja 02. Po tem postopku sproži submit ukaz topli zagon sistema in CP/m sistem poišče zbirko ^$0.svb, ki jo začne izvajati. uporabniškega vhoda z 4.12.2. Avtomatizacija ukazom XSUB V SUB zbirko lahko vstavimo äe kaj vefi kot samo ukaze. Ta zbirka lahko ima npr. tudi odogovre na vpraäanja nekega programa ali še kakSne druge spremenljivke. Takšno delovanje dosežemo z uporabo XSUB ukaza. ■V tem primeru mora biti XSUB prvi ukaz v SUB zbirki. KO pri izvajanju SUB zbirke vstopimo v XSUB ukaz, se naloži posebna ukazna množica skupaj s CP/M v pomnilnik in ko program zahteva podatek s konzole, se ta- podatek pojavi iz submit zbirke. ; Podobno kot v primeru SUBMIT zbirke lahko uporabimo simbole , $2, ... , ki se nadomestijo s parametri. Pri tem je XSUB podmnožica glede na SUBMIT. Nikoli ne vtipkamo XSUB s konzole kot odogovr na pripravljenost CP/M sistema. XSUB se lahko pojavi samo v zbirki tipa SUB. XSUB se najpogosteje' uporablja pri programskem In sistemskem razvoju. imejmo npr. zbirko EDITI.SUB z naslednjimi vrsticami: XSUB izvedi XSUB DIR {51.* prikaži zbirke ED Ill:ß2 uporabi eD za zbirko $1.02 OA to je ED ukaz pridružitve B pojdi na začetek vmesnika i vstavi na začetek Delta 323/Ml tekst, ki se vstavi 'CTL z' zaključi vstavljanje e končaj z urejevanjem S takšnim oblikovanjem zbirke EDITI.SUB lahko sedaj zapiSemo ukaz. In sicer a submit editi ike.doc'er' ko imamo parametra ike In doc za gl in 02. 4.13. Zapis CP/M sistema na disketo z uporabo ukaza 5YSGEN 1., SlfSGEN je okrajšava za generiranje sistema, i Sistem, ki ga generiramo, je CP/M operacijski sistem. Generiranje pomeni zapis kopije sistema na disketo, tako da ae ta disketa lahko uporablja samostojnó pri mrzlem, toplem zagonu in pri Obratovanju, ko se ta sistem prepisuje z diskete v hitri pomnilnik računalnika. Pri tem VP-lja omeniti, da sistem ni shranjen v obliki zbirke, kot bomo spoznali kasneje. Pri sistemskem treh načinov; generiranju uporabimo enega od l. uporabimo samo program SYSGEN sistema na novo disketo. za kopiranje 2, Uporabimo MOVCPM in nato še SYSGEN za kopiranje novega sistema na disketo. 3. Uporabimo lahko DDT in nato Se SYSGEN za kopiranje modificiranega sistema na disketo. Modificiranje sistema bomo opisali še kasneje, sedaj pa prikaìimo nekatere primere. Za uporabo aamo programa SYSGEN imamo tale primer: a>svs(ìen 5ysgem ver s.d source drive name toh ketühjj tu skipja source m a, thej typl retufu^) functiw complete destinati a^ drive name cor retbrij tu reboot )b DESTIIJATltM o.-g b^ them tvpe hetuhim function complete DESTIWATiÜW drive name (or rltuhtj to htbuotj A> Ta primer opisuje samega sebe Cv angleščini), vendar ga še nekoliko pojasnimo. S prvo vrstico se naloži program SYSGEN v hitri pomnilnik in se začne izvajati. Najprej se Izpiše verzija sistema (naslednja vrstica) nato pa zahteva za določitev izvirnega diskovnega pogona (diskete, na kateri je zapisan sistem), če Selimo ta korak preskočiti, ker že imamo sistem prekopiran z diskete, ali ko se kratkomalo že nahaja na ustreznih lokacijah hitrega pomnilnika, vtipkamo le 'cr', nakar preide program v naslednje stanje. Ko je sistem naložen, napredujemo z znakom 'cr', V nadaljnem koraku moramo določiti namenski diskovni pogon (ki se praviloma razlikuje od Prvotnega). Ko vtipkamo ime enote, se pojavi na zaslonu novo sporočilo o namenskem pogonu in kopiranje na novo disketo se sproži z znakom 'cr'. Po kopiranju se program javlja s sporočilom o zaključeni akciji, toda kopiranje na nove diskete lahko nadaljujemo, ČQ to želimo (neomejeno mnogokrat), sicer pa skočimo nazaj v sistem. Novi sistem oblikujemo najprej s programom MOVCPM, s katerim se sistem naloži na ustrezno lokacijo v hitrem pomnilniku, hkrati pa se glede na lokacijske zahteve modificirajo ukazi sistema CP/M (skočnl in subrutinski ukazi), opravi se ustrezna naslovna premestitev programa v hitrem pomnilniku. Ko je to narejeno, uporabimo podobno kot v prejšnjem primeru program SYSGEN, Imamo tale primer: a>mqvcpm 48 • cuhstructiijg ibk cp/m vers 2.2 ready for "sysgew- or "save 2a cpwsysgerj sysgeij ver s.o source drive name (or ret tui^l to skip) destination drive immme <0r returi'j to kebuot)b destinati om on bj thelj type return functioij complete destination drive wame (or returw to reboot) A> Program SYSGEN sprašuje po vsaki kopirni akciji za nadaljno kopirno akcijo, tako da lahko •vstavljamo nove diskete ter kopiramo novi sistem poljubno mnogokrat. Odgovorimo še na vprašanje, zakaj je SYSGEN potreben. Prvi dve srezi diskete (steza O In steza 1) v CP/M sistemu nista zasedeni z zbirkami. Ta prostor, ki obsega 6656 zlogov, je namenjen za shranitev navezovalnega nalagalnlka pri mrzlem zagonu in za CP/m operacijski sistem. Ta dva programa pa se ne shranita v obliki zbirke in se tudi ne pojavita v imeniku, torej nista dostopna na način kot navadne zbirke. Seveda pa je večkrat potrebno, da beremo in zapisujemo tudi na ti dve stezi. Diskovni stezi O in 1 sta vselej izvzeti iz zbirčnega mehanizma, neglede na to, ali sta popisani ali ne. Ni namreč potrebno, da imamo na vsaki disketi zapisan tudi CP/M eistera.. Samo disketa, ki je vstavljena v t.im. sistemski diskovni pogon, potrebuje oba zgoraj opisana programa. Preko tega pogona se namreC izvaja naložitev ob zagonu sistema, tj, mrzli zagon in tudi topli zagon, ki se proži kot izstop iz različnih prehodnih oziroma uporabniških programov, ki so bili generirani s CP/M prevajalniki. S posebnimi diskovnimi kopirnimi programi lahko kopiramo tudi CP/M sistem oziroma stezi O in 1. Imamo pa tudi poseben program SYSGEN, s katerim kopiramo CP/M na nove diskete oziroma ga uporabljamo pri modifikaciji obstoječega CP/K sistema v povezavi z drugimi programi, kot sta npr. DDT In SAVE. Kot bomo spoznali, pomakne program MOVCPM le preslikavo CP/M operacijskega sistema. Pri tem se ne pomaknejo vse t,im. modifikacije tega sistema, npr. podsistem BIOS, ki ga bomo Se opisali. j. 14. Prilagodi-tev CP/M sistema na obseg pomnilnika z ukazom MOVCPM Proizvajalec CP/M sistema {Digital Research) dobavlja sistemsko disketo za sistem, ki ima le 20k zlogov hitrega pomnilnika. Za večino sistemskih, in uporabniških programov pa tak pomnilni prostor ni zadosten in ko dodamo RAM pomnilnik, moramo ustrezno spremeniti tudi CP/M. Program MOVCPM omogoCa, da prilagodimo CP/M sistem v intervalu (20, 64), in sicer z natančnostjo Ik alogov. Tako lahko z njim generiramo sisteme za 20, 21, 22, ... ,63,, 64k-zloinl pomnilnik. Pri tem imamo tele možnosti : MOVCPM 'cr ' Pripravi novo kopijo CP/M sistema, ki uporablja celoten pomnilnik. Krmiljenje se prenese na novi CP/M, vendar se ta ne kopira na disketo. MOVCPM nn 'or ' Pripravi novo" kopijo CP/M sistema za 'nn' tisoč zlogov pomnilnika. Krmiljenje se prenese na novi CP/M, vendar se ta ne kopira na disketo. MOVCPM * *'cij' Pripravi novo kopijo CP/M sistema, ki uporablja' celoten (pomnilnik. Ta kopija bo shranjena^s" SYSGEN ali SAVE. MOVCPM nn *'cr' Pripravi novo kopijo CP/M sistema za 'nn' tisoč zlogov pomnilnika. Ta kopija bo shranjena s SYSGEN ali SAVE, V teh ukazih je 'nn' dvomestno decimalno celo Število, ki ima vrednosti v-intervalu <20, 64). Program MOVCPM pomakne CP/M sistem, in sicer tako, da ga pomakne in takoj nato Izvrši (skofii v izvajanje novega CP/M el'stema) ali pa ga pomakne in shrani na disketo. Prva možnost je tako le začasna, dokler ne izvršimo toplega ali mrzlega zagona sistema. Kadar želimo CP/M shraniti na stezi O in 1, uporabimo ukaz SVSGEN, če pa ga želimo shraniti kot zb>rko za kasnej Bo 'uporabo, imamo ukaz SAVE. V tem primeru se program MOVCPM javi s sporofillom: READY POR "SVSGEN" OR "SAVE 32 CPMnn.COM" To sporočilo pove skorajda vse, tato da nismo v zadregi, kako naj nadaljujemo. Podrobna obravnava uporabe MOVCPM programa pa je vsekakor äe potrebna, ko spreminjamo del sistema CP/M, ki ga imenujemo BIOS. 4.15. Zbirnik (ASM) za procesor 8Q80A Program ASM prevede zbirni program procesorja e080A v objektni kod, ki ga računalnik lahko IzvrSl. Zbirnik proizvede tudi listo vrstic z objektnim kodom In zbirniško mnemoniko- Ko smo npr. z urejevalnikom oblikovali program v zbirnem jeziku In ga shranili v zbirki lme_zblrke,ASM, pokličemo zbirnik za prevod te zbirke, ko imamo ft>asm ime_zblrke.abc'cr' Pripona abc ne pomeni običajne pripone za tip zbirke (v naäem primeru asm), marveč nakazuje možnost vstavitve opcij, s katerimi se prevod opravi. Tri črkovna mesta v priponi pomenijo možnost izbire treh opcij, in sicer takole; 1. Ime diskovne enote, na kateri imamo izvirno zbirko, to je zbirko ijne_zblrke.asm. To je prva črka v priponi. 2. Ime diskovne enote, ki naj sprejme prevedeno zbirko tipa hex, torej zbirko lme_zbirke,hex. To je druga črka v priponi. 3. Ime diskovne enote, ki naj sprejme zbirniško listo tipa prn, torej zbirko ime_zblrke,prn. To je tretja črka v priponi. V priponi tako lahko uporabljamo standardna imena diskovnih enot od črke A do črke P. će torej želimo imeti vse na diskovni enoti C, bomo uporabili pripono CCC. V priponi pa lahko uporabimo äe dve posebni črki (X, Z), ki pa ne označujeta diskovnih enot. Črko Z uporabimo, če zbirke tipa he* ali prn ne želimo. S črko X pa izlistamo zbirniški program tipa prn na konzolo in ne oblikujemo zbirke ime_zbirke.prn na disketi. Če vzamemo A>asra ike.bbz'cr' bo zbirnik asm, ki se bo najprej naložil v hitri pomnilnik, prevedel zbirko Ike.asm, ki jo bo vzel z diskovne enote b> in na isto enoto bo generiral tudi objektno zbirko Ike.hex. Zbirka ike.prn se pri tem ne bo generirala. (niti na disketi, niti na zaslonu). Tu ' smo tako spoznali, da Imamo vsakokrat tri tipe zbirk, eno vhodno in dve izhodni in v prcjänjme primeru smo imeli: ike.asm Izvirna zbirka Ike.hex prevedena (objektna) zbirka ike.prn .zbirniSka lista (zbirka) Zbirka tipa asm je izvirna zbirka In oblikovali smo jo z urejevalnikom ED (all s kakénim drugim urejevalnikom), zbirnik Je prevajalnik, ki je iz izvirne zbirke generiral objektno zbirko tipa he*. Ta zbirka Je zapisana v heksadecimalnem formatu, kjer je vsak zlog izražen z dvema zlogoma v obliki dveh heksadeclmalnlh številk. Format tega heksadecimalnega zapisa je standarden (Intelov heksadecimalni format). Zbirka tipa prn, ki jo generira prav tako zbirnik, je nekakSna združitev zbirk aam in hex,, ko imamo ob prevedeni vrstici zapisano Se izvirno (mnemonično) vrstico. Zbirka tipa hex se uporablja za oblikovanje izvršljivega programa (zbirke) tipa com, zbirka tipa prn pa rabi kot dokumentacija, ki je pomembna pri modifikaciji, vzdrževanju in za razumevanje programa.« Zbirna vrstica Ima lahko zasedenih 1 do 5 polj. Pri pisanju zbirnega programa lahko uporabljamo tabulator, ko imamo za začetke posameznih polj stolpce . 1,9, 17, 25 in 33 SploSni format zbirnega programa je tedaj tale« ät.vr. oanaö. oper. opanđ. ikomentar Tu imamo zapovrstjo številko vrstice, oanaöltov, operator . (mnemonika), operand in komentar. Številko vrstice lahko tudi Izpustimo. Kaj posamezna polja pomenijo, je zapisano v Številnih priroönikih za programiranje procesorja 80 80A. OpiSimo na kratko zgradbo konstant in izrazov. Številska konstanta je fiksno Število v baznem sistemu (ena od Štirih baz). Binarna konstanta Je Število sestavljeno iz številk O In 1 a pripono B, npr. lOiOOOOlB. Oktalna konstanta uporablja številke od O do 7 in Ima pripono O ali Q, npr. 17600 ali 17600Q. Decimalna konstanta je decimalno število brez pripone ali s pripono D, npr. 1239 ali 1239D. Heksadecimalna konstanta je sestavljena iz številk O do 9 in črk A do P ' (velikih ali malih), npr. 0FF4H ali 0ff4h, s pripono H ali h. Torej so pripone lahko, tudi male črke. V konstantah se lahko pojavijo ,tuđi dolarski znaki . zaradi lažjega branja števil, ko imamo npr. OllOStiOOl ali . O101O?1O$O1. Zbirnik dolarskih znakov v konstantah ne upošteva. Naslednja kpnstanta.je nlzna in niz znakov je zaprt v narekovaja '. Nlzna konstanta jè omejena na 64 znakov in dopustni so samo znaki, ki se lahko natisnejo. Male Srke se voböe ne pretvorijo v velike. Tudi sam enojni narekovaj lahko vključimo v niz, tako da vtipkamo ". Vrednost nlia se izračuna kot zaporedje osembitnih kodov, kjer je bila za osmi bit znaka vselej vstavljena ničla. Na mestih operandov se lahko pojavljajo izrazi. Izraz je korobljnaci ja konstant, označitev, arltmetlfinlh in " logičnih operatorjev in oklepajev, • Med prevajanjem se izraz izračuna in na ustrezno mesto se vstavi njegova vrednost. Zbirnik lahko opravlja enostavne aritmetične operacije pri Izračunu izrazov, in sicer: a+b je vsota A in b A-b je razlika med A in B +B pomeni isto kot B -B pomeni razliko 0-B Ä*B je množenje A z'B A/b je kvocient beljenja a z b /i WOU a Je ostariek ,deljenja A z B Zbirnik opravlje^ operacije nad 16-bitnlmi vrednostmi brez predznaka in producira Ifi-bltne resultate brez predznaka po modulu 2 na 16. i Zbirnik zmere tudr"ÌoglCne ojperaclje in imamo; NOT B je bitni kompiement (bit za bitom) za B A.AND B je bitni logični IN operandov A in B A OR B je bitni logični ALI operandov A in B A XOR' B je bitni' logični ekskluzivni ALI Operandov A in B A SHL B je A pomaknjen v levo za B bitnih pozicij» pri tem se zgubijo višji biti, niìjl pa se zamenjajo z O A SHR B je A pomaknjen v desno za B bitnih pozicij} nižji biti se zgubijo, višji pa se zamenjajo z O Logične operacije se opravijo na 16-bitnih vrednostih brez predznaka in rezultati so 16-bltne vrednosti brez predznaka. Operatorska prednost pri izračunu izrazov pa je tale: * / MOD SHL SHR (najvišja) - + NOT AND DR XOR (na jnliS ja) Pri tem se lahko uporabljajo pari oklepajev, ki preprečujejo pravkar opisano operaterko prednost. Zbirnik ima vrsto posebnih ukazov, ki niso elemeti zbirnega jezika za procesor 8080A. Ti ukazi ali zblrniške direktive vplivajo na prevajalni oziroma zbirniški postopek. Oblika uporabe direktiv je podobna obliki zbirne ukazne vrstice, kot bomo opisali v naslednjih primerih, Podatkovne oziroma pomnilnlške direktive so teles DB Določi vsebino zloga na tekočem naslovu DW Določi besedo (sestavljeno iz dveh. zlo- gov) na tekočih dveh naslovih DS Določi pomnilnlčko obmošje od tekočega naslova naprej (z operandomi Izrazi v operandnem polju teh direktiv pa so tiles DB stavek (direktiva) ima lahko poljubno število operandov oziroma izrazov, ki so ločeni z vejicami. Izrazi se tu Izračunajo kot B-bltne vrednosti ter se shranijo na zaporednih, tekočih naslovih. Izrazi v DW stavku se izračunajo kot 16-bltne vrednosti in se shranijo na tekočih naslovih. Tudi DW stavek lahko ima več izrazov. Vrednosti- pa se shranjujejo v obratnem vrstnem redu; nižji naslov pripada vrednosti (zlogu)' z nižjimi številskimi mesti, višji zllg (z višjimi številskimi mesti) pa se shrani na naslednji višji naslov. Vrednost izraza v DS stavku je šestnajstbltna in. ta stavek lahko ima en sam operand oziroma izraz. Imamo tele splošne primere: ozn. DB iz 1,iz 2,iz 3 (komentar ' ozn, DW izl,lz2,iz3 ikomentar ozn. DS Izl {komentar V teh vrsticah je ozn. označitev in jo lahko tudi izpustimo, 'iz' Je okrajšava za izraz, ki je lahko označitev, število, nizna konstanta itd. Komentar seveda ni obvezen in ga dodamo po potrebi. END stavek pove zbirniku, da,Je dosegel konec izvirnega programa. Oblika tega stavka je ozn, END izraz (komentar Ta stavek ni obvezen in če ga imamo, naj bo zadnji v izvirni liati. Izraz v END stavku določa začetek izvajanja programa in če izraz izpustimo, je začetek izvajanja pri naslovu OOOOH, Komentarsko polje ni obvezna. EOU stavek prireedl označitvi vrednost oziroma vrdnoat izraza ter ima obliko ozn. EQU Izras (komentar Izr&z je veljavno ätevllo, naslov, konstanta ali Izraz. OznafiLtev In ieraz morata biti prisotna 1 V Izrazu se lahko uporabljajo le spremenljivke, ki so bile že definirane (vnaprejšnja definicija). IF in EHDIF stavek se uporabljata v zbirnem (prevajalnem) postopku za krmiljenje prevajanja pri določenih pogojih. Splošna oblika teh stavkov je: IF izraz stavki zbirnega jezika END IP Zbirnik izračuna izraz v IP stavku in če je vrednost izraza enaka ničli, zbirnik preskoči stavke med rezerviranima besedama IF in EMDIF (ne prevede tega segmenta). Ta segment pa se prevede, če je vrednost izraza od nič različna. Pri uporabi IF stavka govorimo o pogojnem prevajanju, saj prevajanje zbirnega programa nastopi le pri določenih pogojih. IF stavek je mogoče uporabiti pri programiranju v zbirnem jeziku na več načinov. Imamo npr, tole: IMAMO^TERMINAL EQÜ NIHAHOSSTEHMIMALA EQU IP IMAMO^iTEBMINJUi OFFFH NOT IMAMO^TERMINAL Stavki zbirnega jezika, če imamo terminal ENDIF IF NIMAMO^TERMINALA ki se prevedejo. stavki zbii^nega jezika, ki se prevedejo, če nimamo' terminala ENDIF Ta primer kaŽe, kako lahko spreminjamo program v odvisnosti od tega, ko terminal imamo ali ga nimamo. Pri tem moramo ustrezno spremeniti le vrednost v vrstici IMAM03TERM1WAL (EQU ukaz). NIMAMO^TERMINALA je vselej komplementarno k IMAMO^TEEMINAL, za kar poskrbi operator NOT v drugem EQU stavku, ORG ukaz posreduje zbirniku naslov, pri katerem se bo začelo nalaganje prevedenih stavkov, ki temu ukazu sledijo. Oblika ORG stavka je czn. ORG Izraz »komentar Izraz je pomnilniäki naslov naslednjega programskega ukaza. Označitev in komentar nista obvezna. SET ukaz priredi vrednost označitvi in dovoljuje, da kasneje v istem programu spremenimo vrednost te označitve. EQU ukaz ne dovoljuje naknadne spremembe vrednosti označitve. Oblika SET ukaza je ozn, SET Izraz f komentar Označitev in izraz sta tu obvezna, komentar pa ni. Pred in pó prevajanju posreduje zbirnik kratka sporočila. Začetno sporočilo je CP/M ASSEMBLER - VER 2,x Temu sporočilu sledi sporočilo o napaki, če se je ta pojavila. Na koncu prevajanja se pojavi trlvrstlčno sporočilo, in sicer: XXXX yyyH USE FACTOR END OF ASSEMBLY Tu je xxxx heksadecimalni naslov prve proste lokacije, ki sledi zbirnemu (prevedenemu) programu. Nadakje je yyyH označuje obseg simbolne tabele, ki je bil uporabljen. Zbirnik ima namreč omejen obseg za simbolno tabelo in yyy je heksadeclmalno Število med 000 in OFF. Ce delimo yyy z OPFH, dobimo odstotek uporabljenega prostora za simbolno tabelo. Ce je yyy enako 80, imamo razmerje SOH/FFH oziroma 128/255, kar pomeni, da je bilo uporabljenega 0,502 prostora za simbolno END OF ASSEMBLY pomeni le, prevajanja končan, kar pa ne pomeni, da je končan uspešno. tabelo. Sporoč ilo da je bil postopek bil Na koncu razprave o ASM zbirniku omenimo Se sporočila o napakah, zbirnik daje dve vrsti takih sporočil. Imamo terminalska sporočila o napakah, kjer se navajajo vzroki, zaradi katerih zbirnik ne more končati prevajanja. Druge vrste sporočila se nana&ajo na primere, ko zbirnik sicer ne more ustrezno prevesti stavka, vendar lahko kljub napaki prevajanje nadaljuje, Terminalska sporočila o napakah so talei NO SOURCE FILE PRESENT Zbirnik ni mogel najti zbirke, je bila navedena. Napaka je lahko nastala pri napačnem vnosu imena zbirke ali imena diskovne enote, lahko pa tudi nimamo zbirke s pripono ASM NO DIRECTORY SPACE Imenik na disku je poln (zaseden) in zbrisat'i moramo nekaj zbirk (npr, HEX BÄK ali PRN. zasedenost imenika ne pomeni, da je polna disketa. Imenik lahko shrani največ 64 imen, SOURCE FILE NAME ERROR V zbirki, ki bo prevajana, ni dovoljena uporaba znakov in '?'. Z enim ukazom se lahko prevaja le ena zbirka. SOURCE PILE READ ERROR Prevajana zbirka vsebuje informacijo, ki jo zbirnik ne razuma. Uporabi TVPB ukaz in ugotovi napako. OUTPUT FILE WRITE ERROR Navedena Je bila pisalno zaSčitena disketa za PRN in HEX zbirko, ali pa je disketa polna. CANNOT CLOSE FILE CP/M sistem je zbirko naSel, toda nanjo ne more zapisovati. To se dogodi, če disketa pisalno zaščitena. Druga skupina sporočil o napakah se pojavlja med prevajanjem izvirne zbirke. Zbirnik deluje normalno, dokler se ni pojavila napaka. Pri pojavitvi napake, pa se bo pojavila vrstica tele oblike: a bbbb cccc ozn. op opand (komentar V tej vrstici pomeni 'a' eno od teh napak: D Podatkovna napaka. Vrednost izraza se ne ujema z navedenim podatkovnim območjem; ta vrednost je npr. predolga. E Izrazna napaka. Oblikovan je bil nepra- vilen izraz, vrdnost je predolga. L Oznabitvena napaka. Označitev je bila uporabljena nepravilno, npr. pojavila se je na začetku več kot ene vrstice. N Ta lastnost nI implementirana. Digital Research Ima zbirnik MAC, ki sprejema še druge direktive, tiste, ki jih ASM ne more. O Napaka prestopa. Izraz je preveč zaple- ten in zbirnik ga ne more prevesti. Izraz naj se razdeli na manjše dele ali naj se reducira število operatorjev, P Fazna napaka. OznaSitev je spremenila vrednost med prevajanjem, če je to res potrebno, naj se uporabi SET ukaz. Napaka nastane tudi zaradi dvojne označitve. R Registrska napaka. Navedev je bil.regi- ster izven veljavne mnemonike. Npr. POP B je veljavno, ni pa POP A. U Nedefiniran simbol. V izrazu je bila u- porabljena označitev, ki ji ni bila prirejena vrednost. Imamo npr. U 09FC 0600 MVI B,ENA če ENA ni bilo definirano. V Vrednostna napaka. Pripadajoči operand (v izrazu) ni pravilen. Ta napaka se pojavi zaradi napake pri tipkanju, pri črkovanju oz. Če manjka vejica. N?dalje je 'bbbb' heksadecimalni naslov stavka, v katerem se je napaka pojavila in 'cccc' Je strojni kod (prevod ukaza). Pri napaki je ta kod lahko v celoti ali delno sestavljen iz ničel. 5. Okvirna zgradba CP/M sistema To poglavje je namenjeno tistemu, ki se bo ukvarjal z ' modifikacijo cp/M sistema. Informacija o Cp/m bo dana le okvirno, na viäjem pomenskem nivoju. Seveda pa bo ta informacija koristila tuđi' sistemskemu inženirju, da bo lahko pisal bolj učinkovite programe. 5.1. Osnovna zgradba CP/H sistema Pri mrzlem (začetnem) zagonu računalniškega sistema se CP/M naloži vselej v najbolj zgornji del razpoložljivega pomnilnika in zasede tam 7168 lokacij (zlogov) pomnilnika. Dodatna dva skočna ukaza se naložita na lokaciji OOOOH in 0005H. Prvi. skok je t.im, vektor za topli (ponoven) zagon, drugi pa je t.im. FDOS vstopni vektor. Uporabnik lahko zasede pomnilnik med lokacijo lOOH in dnom CP/M sistema v pomnilniku, ki je določeno prav z FDOS vstopnim vektorjem. Po naložitvi Imamo v računalniškem pomnilniku toiei OlOO: (yyOE3-l) yyOO;zzFF lokacija vsebina (heks) (heks) 0000 0001 0002 0003 0004 0005 0006 0007 0008:005B Ob5C!007C 007DI007F 'OOSOlOOFF C3 03 XX 00 00 C3 oe yy funkcija Vektor toplega zagona V/1 zlog (če'je implement.) Trenutni diskovni pogon FDOS vstopni vektor Preklnitveno, beležno in rezervirano območje Zbirčni krmilni blok Prostor naključnega zapisa Običajni diskovni vmesnik Območje prehodnih programov, kamor se programi nalagajo in izvršujejo CP/M operacijski sistem:, CCP, bdos, bios 'xx', 'yy ' in 'zz' BO deli heksadecimalnih pomnilniških naslovov, ki so odvisni od obsega specifičnega CP/M sistema. Drugi način predstavitve dodelitve pomnilnika za sistem CP/M pa je tale; 0000:00FF sistemski parametri OlOO:(yy00-l) območje prehodnih programov yyO:(yy00+07FF) območje CCP (yyOO+0800):(yyOO+15FF) območje za BDOS (yy00+l600):(yy00+l8PF) območje za BIOS zzFF=yy00+l8FF to je vrh pomnilnika tipa RAM yyODryyOO+lSFF območje CP/M sistema (yyOO+0800)!(yy00+18FF) območje za FDOS Kot smo iz prejänjih tabel že spoznali, je CP/M sistem sestavljen iz treh modulov, in sicer: CCP (konzolni ukazni procesor), CDÓS (osnovni diskovni operacijski sistem) in BIOS (osnovni V/I sistem). Te module bomo na kratko opisali. 5.1.1. Konzolni ukazrii procesor CCP CCP modul interpretira CP/M ukaze, ki jih pošiljamo s konzole (terminala). Ta del CP/M sistema je aktiven le tedaj, ko imamo na zaslonu znak pripravljenosti CP/M sistema za sprejem novega ukaza (A ). CCP.razpoznava vgrajene in prehodne ukaze ter posebne znake. Ti ukazi in znaki so bili äe opisani v prejšnjih poglavjih. Kadar CCP ne razpozna ukaza, pogleda v diskovni Imenik, ali se tam nahaja zbirka tipa COM za ime, ki je bilo vtipkano kot ukaz (ujemanje do 8 znakov). Če to zbirko najde, jo naloži v pomnilnik ter jo začne izvajati kot program. Takšne zbirke imenujemo prehodni programi ali kar prehodni ukazi, saj se z njimi realizira določena izvršitev. 5.1.2. Osnovni diskovni operacijski sistem BDOS Ta del CP/M sistema je odogovren za celotno aktivnost diskovnih pogonov. Seveda pa BDOS ni dostopen z uporabo neposrednih ukazov ■ s konzole. Vstop v BDOS se opravi preko modula CCP ali preko prehodnega programa, ko se v register C vstavi ustrezna funkcija (vsebina zloga) in se izvrSi subrutinski poziv lokacije 0005H. Med drugimi funkcijami vsebuje BDOS funkcije; tele - resetiranje diskovnega sistema - izbira diskovnega pogona - oblikovanje zbirke - odprtje zbirke - zaprtje zbirke - iskanje po Imeniku - brisanje zbirke - preimenovanje zbirke - naključno ali zaporedno branje iz zbirke - naključno ali zaporedno pisanje v zbirko - ugotavljanje razpoložljivih diskov - ugotavljanje izbranega diska - nastavitev DMA naslova - postavitev/brisanje zblrčnlh indikatorjev Nekatere BOOS rutine pa izvajajo tudi funkcije konzole, bralnika, luknjalnlka In listalnega vhoda in izhoda. Kadar funkcija potrebuje parametre, se Ji ti posredujejo z uporabo registrske dvojice DE. Nekatere funkcije vrnejo informacijo kilcajočemu programu in vrnjena informacija se pojavi v registrih mikroprocesorja. Te funkcije s pripadajoöirai parametri in vrnjenimi vrednostmi so opisane v CP/M priročniku za programiranje na staneh 12 do 15. 5.1.3. Osnovni vhodni/izhodni sistem BIOS Većina prihodnjih uporabnikov CP/M sistema ne ve, da je BIOS v izvirni dokumentaciji podjetja Digital Research napisan za določen tip Biikroraöunalnika podjetja Intel in da se ne prilega zahtevam nekega drugega raćunalni&kega sistema. Zato je to podpoglavje namenjeno tistim,. ki obvladajo metodologijo in znanje operacijskih sistemov. Tudi BIOS Je sistem razliftnlh subrutin, ki jih kličejo drugi deli operacijskega sistema. Navadno dobavi BIOS proizvajalec mikroračunalniSkega sistema, ko ga prilagodi svoji konfiguraciji. Okvirno vsebuje BIOS tele funkcije: - beri znak s konzole - izpiši znak na konzolo - beri znak iz bralnika - izpiši znak na luknjalnik - izpiSi znak na tiskalnik - vzemi ali postavi V/I status - izpiši niz'na konzolo - beri niz s konzole - ugotovi status konzole . Seveda bi lahko o BIOS še marsikaj zapisali, vendar bomo njegovo zgradbo in pomen podrobneje opisali kdaj drugič v posebnem sestavku. 5.2. Naiagalni postopek pri vključitvl sistema (mrzli zagon) Pri začetnem zagonu sistema se začne Izvajati poseben nalagalnik za naložitev prvih dveh stez diskete v hitri , pomnilnik. Ta nalagalnik je shranjen v pomnilniku tipa ROM. Po naložitvi se lahko CP/M sistem 5e ustrezno pomakne pod sam vrh pomnilnika, iz pomnilnega prostora pa se izključi tudi pomnilnik tipa ROM z začetnim nalagalnikora in drugimi npr. diagnostičnimi programi. Nato se izvajanje programa prenese na operacijski sistem (CP/M). Izvajanje cp/m sistema se začne v modulu BIOS z iniclalizacijo, kò se ustrezna informacija naloži v hitri pomnilnik in se na zaslonu generira znak pripravljenosti CP/M sistema za sprejem ukaza s konzole. Sistem je s tem Že vstopil v izvajanje modula CCP (konzolni ukazni procesor) in v tem modulu se pričakuje ukaz uporabnika s konzole. CCP zbere znake a konzole v posebnem, ukaznem vmesniku In ko ss pojavi znak 'cr' se zbrani ukaz obdela. Programi, ki so bili prevedeni v COM zbirke, delujejo podobno kot CCPs zbirajo znake s konzole, uporabljajo določene dele BOOS sistema In opravljajo naloge v skladu s svojo semantiko. Programer naj bi pri sestavljanju novih programov upoSteval dane možnosti modulov CCP In BDOS. Te možnosti se navadno upoStevajo Se z uporabo prevajalnikov za visoke programirne jezike, imamo pa tudi izjeme (npr. pri jeziku BASIC podjetja Microsoft), ko se pri napaki vrne krmiljenje sistemu CP/M in se pri tem ne generica sporočilo o napaki (npr. BDOS ERR ON D:). Nekateri programi ne uporabljajo sistema BDOS, uporabijo pa rutine iz modula BIOS. TakSne Izjeme onemogočajo uporabo ukazov XSUB in SUBMIT. 5.3. Uporaba BDOS funkcij v zbirnih programih V okviru modula DBOS lahko uporabimo 36 različnih funkcij,_ kot je razvidno iz CP/M prlročnika"na straneh 13 do 15. Pri uporabi BDOS funkcije naloSl program številko funkcije v register C, naloži ustrezno äe druge registre in pokliče lokacijo BDOS (ukaz CALL BDOS). BDOS tO funkcijo izvrši in vrne krmiljenje klicajočemu programu. Opiiimo primer izpisa niza na konzoli. Naj bo 09H funkcija za izpis niza, kot Je razvidno iz CP/M priročnika, V registru DE se mora nahajati naslov niza in niz mora biti zaključen z znakom Pri izpisu niza imamo potem toleJ 1. se na- 2. 3. Niz, ki je zaključen z znakom ' haja nekje v pomnilniku. Program vstavi 09h v register C, Program vstavi naslov niza v register DE. 4, Program pokliče bdOS. 5. BDOS izpiše niz na konzolo in vrne izvajanje, kilcajočemu programu. Primer teh korakov v zbirnem programu Je tales BDOS EQU 0005H flokacija BDOSa NIZ EQU 09H J štev lika tisk. funkcije OZN DB 'To je naloga;?' ^niz za tiskanje MVI C,NIZ fštevilka v registru C LXI D,OZN (naslov niza v regis. DE CALL BDOS ; izvršitev funkcije 5.4. BIOS (osnovni V/I sistem) BIOS (okrajšava za Basic Input Output System) jO' osnovni vhodni/izhodni sistem, ki ga uporabnik lahko spreminja. Podjetje Digital Research dobavlja le primer takega sistema in na tem primeru se uporabnik oziroma proizvajalec sistemov lahko nauči, kako napisati lasten (za poseben računalniški sistem) vhodni/izhodni sistem. Za reSltev te naloge pa Je< potreben razvojni sistem z zbirnikom. BIOS opravlja nalogo -dostopa do različnih perifernih naprav, ko določa pomikanje diskovnih glav, branje in diskovno zapisovanje itd. Slabo napisani BIOS je lahko povzročitelj ,nezanesljivega delovanja CP/M sistema, njegovih pogostnih napak. BIOS modul začenja^ z zaporedjem Skočnih ukazov. Imamo tole; (tabelo) ORG JMP JMP JHP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP BlOSzacetek mrzllzagon toplizagon konzolnistatus konzolnivhod konzolnilzhod listalnilzhcid luknjanje branje pomlkdomov izbiradlska nastavltevsteze j začetek BlOSa J rutina za mrzli zagon ; rutina za topli zagon jrutina za kon. status )rutina za kon. vhod ;rutina za kon. Izhod {tiskalni izhod ;luknjalni Izhod ;bralniSki vhod ;pomlk disk.glave domov }izbira diskovne enote {nastavitev steze disk. nastavitevsektorja »nastavitev sektorja na f disketi nastavltevnaslova}nastavitev pomnilniške-f ga naslova vmesnika JHP branjesektorja JMP zapissektorja JHP llstalnlstatus JMP prevodsektorja )branje disk, sektorja ; zapis sekt, na dlak. i tiskalniški status (prevod sektorja Pri vsakem od teh ukazov skočimo v rutino, ki se nahaja v samem BlOSu. Rutine so seveda lahko različnih doliln In so.odvisne od periferije, jo uporabljamo In od vmesnlšklh vezij (perifernih krmilnikov), Pri tem pa moramo upoštevati, da je prostor za BIOS v standardnem CP/M sistemu tudi omejen In njegov obseg je le 1900 - 1600 = 300H zlogov ali decimalno le 768 zlogov. Pri taki omejitvi pa smo seveda večkrat prisiljeni, da posežemo v okviru BlOSa Se po drugih pripomočkih, npr. tako, da uvedemo BIOS banko hitrega pomnilnika. iS-"-!-BlOSa Možnost i zgraditve oziroma modlflkacHe Na CP/M disketi dobimo vzorec določenega BlOSa, ki pa je za naSe konkretne zahteve lahko v celoti neuporaben. Iz tega BlOSa sicer razvidimo njegovo zgradbo in dobimo napotke, kako graditi samostojno, vendar moramo celoten modul napisati nanovo, s svojimi specifičnimi subrutinami in njihovimi povezavami. Pri oblikovanju novega ' Bl.OSa ali njegovi modifikaciji imamo veČ korakov in so tile: ***^*** Na sveže formatirano disketo kopiramo priloženi BIOS, urejevalnik, ASM.COM, DDT.COM, SYSGEN In MOVCPM. SYSGEN uporabimo za kopiranje nemodificiranega CP/M na disketo. ***2***. Kopijo BlOSa Iztiskamo in to kopijo skrbno preučimo. Tako se podrobno seznanimo s strukturo BlOSa, s posameznimi rutinami in tudi s komentarji. ***3*** Z urejevalnikom začnemo modificirati prvotni BIOS. Pri tem vstavljamo tudi komentarje, ki pojasnjujejo vzroke sprememb v BIOSu. Ti komentarji nam bodo rabili kasneje pri dopolnjevanju in popravkih BlOSa. ***4*** -Dodatki in spremembe ne bodo težavni, če razumemo rešitev naloge, ki je pred nami ter obvladamo delo z zbirnikom oziroma z zbirnim jezikom. V BIOSu imamo'tri vrste sprememb: - vstavitev novega teksta - brisanje starega tekš"ta sprememba obstoječega teksta Ko vstavimo nov tekst v BIOS, ostane stari tekst nespremenjen. Včasih je priporočljivo, da novovBtavljenl tekst posebej označimo, tako da ga ločimo od ostalega teksta. Priporočljivo je tudi, da ne odstiranju jemo starega teksta predčasno in da iz njega naredimo komentar, ki ga po potrebi zopet lahko ukinemo. Pri vsaki modifikaciji shranimo staro kopijo in kopije opremimo' z datumi, tako da je' razviden vrstni red nastajanja novega modula. ***5*** Preden Izstopimo iz urejevalnika, .pogledamo ORG ukaz na začetku modula in še posebej označitve, ki so poimenovane z BIOS, BIAS itn. Z modifikacijo BlOSa se večkrat sprèmeni tudi njegov začetek, rogram napiäemo tako, da s spremembo ene , sama označitve dosežemo vse druge potrebne spremembe pri premaknitvi modula BIOS. Potreba za premaknitev se pokaže pri povečanju ali pomanjšanju pomnilnega prostora, BIOS v delujočem sistemu lahko lokaliziramo z uporabo DDT ukaza, ko imamo t h > DDT 'cr ' DDT vers 2.2 -L0,2'cr' 0000 JMP FA03 -'CTL c' A> V tem primeru smo naročili DDTju, da prikaže ukaz, shranjen na naslovih OOOOH do 0002H. Na teh naslovih sé nahaja ukaz za skok na topli zagon CP/M sistema. Vsak standardni BIOS začenja s tabelo 17 skokov in topli zagon je v tej tabeli na drugem mestu. Začetek sistema BIOS je tako na lokaciji FAOOH, kjer imamo skok. v rutino za hladni zagon. Prevedi novi BIOS z zbirnikom, pri čemer lahko uporabimo tako zbirnik za procesor 8080A ali za ZÖO. V drugem primeru je naš mikroprocesor v računalniku Z80 in ta procesor bo sprejemal ukaze za Z80, ki so dodani k ukazom za procesor 8080A. Seveda pa je ukazna mnemonika za procesor ZBO različna od one za procesor 8080A. Zbirnik bo sporočil tudi vse napake, ki smo jih pri pisanju novega BlOSa naredili. Ko bomo te napake popravili, bo naš prevedeni BIOS pripravljen za nadaljnl postopek, ko ga moramo združiti z BDOS. ***7*** Naložimo in izvršimo DDT (vtipkamo DDT'cr'). DDT uporabimo za naložitev zbirke BIOS.HEX, ki smo jo dobili z zbirnikom iz izbirke BIOS.ASM. To operacijo izvedemo enostavno v okviru DDT, in sicer takole:, -Ibios.hex'cr' -Rxxxx 'er ' kjer je 'xxxx ' ustrezni naslov pomaknitve. Pri tem velja tole: itiodule celotnega sistema CP/M moramo pravilno stakniti in oblikovati zbirko CPMnn.COM, nad katero bomo po njeni naložitvi uporabili SYSGEN, Ta stik se nanaša na tri module, ki jih ločeno dobimo. Z MOVCPM pridobimo v enem modulu že pravilno premeščena CCP in BDOS. Pred CCP moramo pritakniti inicialni del INITnn, ki vsebuje navadno začetno'sporočilo, kopiranje s prvih dveh stez dobljenega koda (v primeru banke) in skok v izvajanje prekopiranega dela. Za BDOS pa moramo pritakniti BlOSnn. Ko je stikanje gotovo, rešimo tako dobljeno novo zbirko DOSnn.COM na disketo z ukazom SAVE 34 DOSnn.COM'cr ' Tu je 'nn' pri vseh modulih v celoštevilskem intervalu (20,64) in označuje obseg razpoložljivega pomnilnika. Imamo tole tabelo s nn pomn 20k ■ 48k 64k obseg INIT 900 380 A380 E380 00- CCP 980 3400 A400 E400 800 BDOS 1180 3C00 ACOO Enoc EOO BIOS IFSO 4A00 ,.BAOO FAOO 380 END 22FF 4D7F BD7F FD7F - V tej tabeli je pomn absolutna pomnllniška lokacija, na katero mora biti modul neglede na 'nn' premeščen. Da dobimo ustrezen odmik za ukaz Rxxxx, moramo od pomn odštevati ustrezen naslov pri 20k, 4Bk ali 64k, v odvisnosti od primera, ki ga imamo. Tako dobimo za INIT64 odmik XXXX = 6 580, za Br0S64 pa odmik xxxx = 2580, kar pomeni, da izvršimo -Iinit64.hex'cr' -R6580'cr' modula in vse in -lbios64.hex'cr' -R2580 'cr' V zadnjem etolpcu imamo obseg vrednosti so heksadeclmalne, ***B*** Z ukazom A>MOVCPH nn *'cr ' oblikujemo modul CPHnn (natanÖneje CCP In BDOS), ki je s tem ukazom ie pravilno naloien (kot kaäe gornja tabela za stolpec pomn)• S pritaknitvijo je DOSnn.COH v celoti določen. Z ukazom SAVE shranimo novi DOSnn na disketo, kot smo opisali. ***9*** Zbirko DOSnn.COM uporabimo aa generiranje novega CP/M sistema. Najprej jo naloSiino z uporabo DDT ukaza, potem pa uporabimo Se SYSGEN. 5.4.2. Realizacija mehanizma z V/I zlogom Jconzolnemu kanalu CON: naprava TTY: bralnemu kanalu FTRi naprava RDR: luknjalnemu kanalu PTP: naprava UPU listalnemu kanalu LST; naprava TTY; BIOS rutina vzame vrednost V/I zloga in ugotovi relacijo med logičnim kanalom in periferno napravo. Vsak kanal izluSäi prieditev ' perlferne naprave iz V/I zloga in skoSi v izvajanje ustreznega perifernega vmesnika. Če ima npr. kanal lahko prirejene štiri razlišne periferne naprave, potem mora imeti tudi štiri različne periferne programske vmesnike, Xi se aktivirajo skladno z vsakokratno prireditvijo periferije temu kanalu. Rutina posameznega kanala je tedaj sploäno tale: 1. Vzemi V/I zlog 2. Določi periferni, vmesnik 3. Skoči v izvajanje vmesnika Seveda s temi globalnimi napotki nismo izčrpali možnosti modifikacije in dograditve CP/H sistema. Obstajajo številne Izboljšave licenčnega CP/M sistema, ki delujejo do desetkrat in več hitreje, ki imajo dodatne pripomočke in so prijaznejše za uporabnika. CP/M sistem lahko znatno obagatlmo z realizacijo mehanizma, ki upošteva t.im. vhodni/izhodni zlog (IOBYTE). V/I zlog je v pomnilniku rezerviran zlog, ki kaäe trenutno prireditev perifernih napräv logičnim kanalom. CP/M ima Stiri logične kanale: CON; konzolnl kanal LST: listaliii kanal ■ . RDR: bralni kanal PUN: luknjalnl kanal Če imamo npr. dva tiskalnika in dve konzoli, bo y/I zlog določal, kateri od obeh je trenutno prirejen ustreznemu kanalu. Nalov V/I zloga ima navadno naslov 0003H. Ta zlog ima štiri ločene dvobitne indikatorje: Literatura k delom I, II in III (1) R.Zaks: The CP/M Handbook with MP/H, Zal Sybex, Berkeley 1980. (2) J.Fernandez, R.Ashley: Using CP/M, Zal. Jphn Wiley, New York 1980. (3) T.Hogan: Osborne CP/M User Guide, Zal. Osborne/HcGraw-Hill, Berkeley 1981. (4) B.Brigham: CP/M Summary Guide, Zal. Rainbow Ass., Glastonbury 1980. listanje• luknjanje branje ■ konzola bita bita bita bita 7 6 5 4 3 2 1 0 Glede na vrednosti bitnih dvojio, so posamezne periferne naprave prirejene kanalom takole: kanal listanje = LST: •periferne naprave: 00 = TTY: 01 = CRT: kanal luknjanje = PTPj periferne naprave: 00 = TTYi Ol = PUN: .kanal branje = PTR: periferne naprave: 0 0 TTYi Ol = RDR; kanal konzola = CON: per if eirne naprave; 00 = TTY: Ol = CRT: 10 = LPT1 11 = ULI: 10 = UPI; Il = ÜP2; 10 = URI; Il = UR2; 10 = BAti 11 = UCl! Imena naprav so mnemonična (v angleščini). Periferne naprave naslavljata prehodni ukaza PIP in STAT" Vrednost V/I zloga, ki je enaka OOlOOlOO = 24H, pomeni, da se trenutno prirejene kanalom tele naprave ; ALGORITHMS FOR THE SOLUTION OF THE GENERALIZED EIGENVALUE PROBLEM Z. BOHTE, J. GRAD UDK: 521.643.5 INSTITUTE OF MATHEMATICS, PHYSICS AND MECHANICS JADRANSKA 19, LJUBLJANA, YUGOSLAVIA ill this iiaiiür we dciđ.l with general i acid proljlem of matfix ACz) Chü elepitinls ol v;liicli polyriomials in z. Tin; w«ll known iterative iiititliodn of Mullei', IJuuroii and Lagafefre for fiiii.iiiii: tlii.; zeros of furiOtiuii ft;:') = det AC2) ard analystìd. Uucoraponitioni; of matrix A(z) and its dorivativ'i!; ai'K inti'OduoiW in orJtir to siiniplify the coiniJUtatioiiü of the valucis of Itz) ^inil its first and Stäuoiid durivativefj. Coiriparativü analysi:; givaa Eiome iridicators nt)Out tjic I'ata of coiivivi't'fiiOi;, computer timi: and accuracy of tlie computed ei/;envalui;K for tjacij of the iiwUiod unud. Tliu iinfiVyi'.i:a iTtìtliods proved güncrally to bu stable, economical and easily applicalile. FORI'lJAii subroutines .ind ttn exaniple of rnaiii qallinj; prOi;ran\nič; are added for MulJer's and 1 f,uurru'n iiiothods whlcn provu.i Lu tili more efficient than UiiVJton's. ALHüPITnl 7.A UnSLVAtJJL I'OGPLOSLNEXiA PRObL.lliA hAfiTNIil VKHDNOSTI, V članku je obravnavano nnmerićno rcievaiija posploženiiga problema lastnili vrucinosti .',a matriko Ali) z eleiiiünti)>:i i:o pn i inojni Gpreinenljivke a.- Priniorjana so dobro znane iierativmi metode Mallerja, Mewtona in Lapuf^ria za računanje ničel poli noma fCz ) = det ACz). Vrednosti [lolinorna f(z) in njefoviii odvodov j ■■.riiùima" I1Ü na oGiiovi l'azcepa matriki; A(z). Primerjava miitoii daje vpof.led v Iiitrost konverj'encf, [jcu'ab ì j^n računski čas in natanònost iaraćunatiih lastnili vrednosti za vsako metodo posebej. Anal-iaj rajie nittode so vse nuinerično sta1>ilnt-, okonoiinčne ìn enositavno uporabnii. l'odiiro^ranii v I"üR'lKAiJ-n in primer plavnega programa so dodani za rUill(!rjtiv<5 in L.a^ue.rrovo metodo, ki ;.ta L;e i^kü/.ali y.n UoJ'j učinkoviti od hewtonove. " Introduction In this papier three numerical incithods for thi; Bolucion of tljo (faneraliiied al^ehraic eigenvalue problem A{a)x = 0 (1) are described and the progranimeH of two of them are presented. Matrix A(k) is of the form ACi) = AjZ + ... + A^z"' (21 where all A^ a,re real squai'e matrices of order n. The standard source of this problem is the solution of a system of n linear homogeneous ordinary differential equations of order ih. If the matrix A^ is non-sint^ular then tiie problem <1) is equivalent to the classical eigenvalue problem 0 I 0 ., .. (1 0 n I ., 1 . 0 -7. 0 n 0 .. ,. 1 l'i. " .l'uri. Ci) of order ni.n where hj^ = -A^^^'a^.A üiriii laT' tv?ducticjn is passible if A^ is non-sinfMi ! ar. Although we have sevcraJ efficient and fjt.ii.]»; numerical methods for the solution rif t ht clnsnlcal eifcnvaluii j.roblem, for instance, (^R algorithm i.ii], it is not econociical to reduce tlie problem (1) to the standard fonii <3). Moreover, ttiany practical prol.iletin lilu; "flutter" prot-lem in aerodynamics, are iiuuh that botli A^ and A^^ are ainpular and tlie reduction to the standard form causes fui'ther difficulties [.3]. It is tlierefore considered as moi'e advantaj^eoiii; to work directly witJi ths matrix (!') in all cases. Tlie niost natui'al approach is to 44 deternii>ie the zeroes of the i>olyiioirii.al fCa )= det A(z) CM) using some of the jnany well known methods. There are some efficient and stable algorithms for the evaluation of the determinant of the matrix, for instance, Gaussian elimination with pivoting . It has been believed so far that the evaluation of the' derivative of the determinant involves much more work than the evaluation of the determinant does, and therefore the interpolation methods which require only function values had been suggested for the solution of the algebraic equation f(z ) =1 D (5) see [aj, [mJ. The most popular of these methods is Muller's method f^j of successive quadratic interpolation. The prejudice against the methods which require the derivatives of the function is probably based on the fact that the derivative of the determinant is a sura of n determinants. However, there can be found in [l^ a formula for the,loearithmic derivative of the determinant which together with its derivative enable us to solve (5) by using Newton's" or Laguerre's method efficiently. In this paper algorithms for the solution of the generalized^pigenvalue problem (1), based on Muller's; Newton's and Laguerre's methods are described and compared with regard to: (i) the number of operations (multiplications and divisions) involved in iteration step, (ii) the number of iterations, and (iii) the computer time used. The computations were performed on a number of typical examples. Muller's method Muller's method for the solution of the equation (5) as described .in [mJ is the following iterative process. From the three previous consecutive approximations to a root of (5); parabola through the points is formed and its zero which is die closes I: to is accepted as the next approximation, say ^r+1* ^ root. The asymptotic rate of convergence to a simple root iu of oidwr 1.84 and at each iteration step^ only one new function value is required. It is necesaary to use complex arithmetic tliroughout. The algorithm is as follows. For r=2, 3, ... we calculate ^ = 'r - ''r = V^r-1 ' = ^ ^ ^^r Sr = - ' ^r^^ ^ '^r' (tj) r-i r The sign in the denominator of (S) is chosen so as to give the con absolute magnitude. as to give the correction to z^ the smaller The choice of the first three appt'oximations is left to the user. There are no pi'oofs of the global convergence of the iterative process. In this case we have to calculate the value of f = fCz) = det A(2) at each iteration step what can be done most efficiently by triangular decomposition of the matrix A{z) using partial pivotint; as follows. For the given value of z we first calculate the elements of the matrix A = ACz) (7) what requires m.n^ operations. Then we decompose A into the form PA = LU (8) where L is unit lower triangular matrix, U is upper triangular matrix, and P is the corresponding permutation matrix Q»]. This step requires n^/3 - n/3 operations. Finally we compute f = ± det U = ± u,.u,, ,., u 11 22 nn what requires n-1 operations. Together we must perform opj^ = m.n^ t n^/3 + ?n/3-l operations for the calculation of f. Hewton's method The wiill known Newton's method for tlie solution of (S) is tlie iterative process' "r+l - , for At each iteration stop we evaluate Che correction of the current approximation to a root as the reciprocal of the logarithmic derivative of the function. From |l|, |wu have the formula f' = ir X ( 0 ) where A'tz) denotes the derivative of the matrix A(z) with respect to z. An efflcent algorithm for calculating the expression (9) is as follows. First we calculate the matrices A = A(2), B t A'Ca) (10) which requires (2m-l)n operations. Then we decompose A aG in C3) obtaining PA = LU (11) which requires n^/3 - n/3 operations, compute the matrices Y and X which satisfy LY.= PB (12) UX s Y . (13) As we need only the trace of X, we can use .formulae ''ik = were on intervals 1 < m < 2 and 3 < n < 12 respectively. No breakdown of the iterative process occured regardless the algorithm used. All three methods proved to be stable and accurate. It was found that the previous computed eigenvalue and the values round it were the most suitable starting values for computing the next eigenvalue. In the table Muller Newton Laguerre i No T Ko T No T 1 65 .57 41 .59 17 .45 2 0 o" 0 3 11 .13 19 .29 11 . 30 4 D 0 0 5 3 .04 4 .06 2 .06 6 0 0 0 7 IC .17 41 .61 3 .08 e 1 .02 2 .04 2' .06 ALL 66 . 93 107 1.57, 35 .95 the number of iteration steps CWo) and the computer- time used tT in see) are shown for each of the computed eigenvalue z^, i=l,... of the system .a, where A, s I, and 0 -3 2 0 0 2 0 0- -1 0 0.-2 1 0 0 1 The System has a triple eigenvalue at ± i and a double eigenvalue at 0 [s]. Somehow similar results were obtained with other examples. 1) A(z) s A^ + AjZ + AjZ 1 -1 1 -2 1 -1 -15 a 0 > A,. 3 0 1 1 0 1 1 0. 5 0 ' 1 0 0" 2 0.25 0 -1 0 ■ 1 ^2= l.OOOOOOOOOOO 2.08866333896 -0.2S6S55796702 i 0.B96010203022 i -2.91609133059 . 11.3405U258S1 2) A(z) ; A^ + AjZ -1 -3 -3 -3 -3 -3 -3 -4 -3.1 -3.1 -3.1 -3.1 -3 -3.1 2.8 3.8 3. 8 3. B -3 -3.1 3.e 9.8 ■ 10.7 10.7 -3 -3.1 3.8 10.7 12.6 14.6 -3 -3.1 3.8 10.7 14.6 15.6 ~1 1 1 1 ■ 1 1 1 0 0 0 0 0 1 0 -1 -1 -1 -1 1 0 -1 -2 -2 -2 1 0 -1 -2 -3 -3 1 0 -1 -2 -3 -2 0.90a770M04173 ± 1.93967660102 i 0.931536974557 ± 1.97197662562 i 4.16245919165 6.13692605089 3) ACz) = A + A.a + A,z Ol 2 1 0 D 0 0 0 1 -1 ■ 1 0 0 1 0 0 0 -1 3 0 0 0 0 0 0 -4 7 Q 0 0 0 0 0 -1.5 1 0 0 0 0 -6 0 0 10 0 0 Q 0 0 0 -0.4 1 Three more examples are Ü 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 2 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0. a 0 0 0 0 0 —- — 0 q 0 . 0 0 0 0 0 0 0 ' 0 0 . 0 0 0 0 1 0 0 0 0 0 0 0 5 0 0 0 0 0 0 . 0 . 0 0 0 0 0 0. 0 0 0 0 0 0 0 0 0 0 0 Pro Bramine s 1. Coimnents In this chapter two subroutines EIGEHH and EIGENL for computing the eigenvalues of a general matrix (2) are presented. An example of a possible main (calling) programme for both subroutines is also given at the end of the chapter. In EIGENM the eigenvalues are computed by Muller's method while in EIGENL by Laguerre's method. If A(2) in <2> satisfies m < 3 then the subroutines can be used such as they are presented. For m > 3 some changes in the subroutines are necessary as explained at the end of the programmes. -1.095798784.11 -1. 088£50>^9830 t 1.otesatesssQ i -0. 5«4l22788e923 t 1.5171G9U2169 i Zg - z^H » K . io', [Kl »1 The last nine eigenvalues lie in the infinity. Muller's and Laguerre's methods were also tested on DEC 1091 computer with t=27. In one case when some of the elements of A(z) differed up to in their absolute values Muller's method failed to compute correctly some of the, eigenvalues while all the eigenvalues obtained by Laguerre's method were correct. Re ferences 1. BODEWIG, E. Matrix Calculus, North-Holland Publiehlng Company, Amsterdam, 1959. 2. BOHTE, Z. On Algorithms for the Calculation of Derivatives of the Determinant. Proc. ALGORITHMS 7 9 Symposium on Algorithms, Strbske Pleso, Ciechoslovakia, 1979, pp. 3. PETERS, G., AND WILKINSON, J.H. Ax = iBx and the Generalized Eigenprobiem. SIAM J. Numer. Anal. 7, 1(1970), 479-1192. 4. WILKINSON, J.H. The Algebraic Eiigunvalue Problem. Clarendon Prus s, Oxford, 1 965. 5. LANCASTER, P. Lambda-rndtriceü and Vibrating Systems. Pergamon Press, Oxford, London, Edinburgh, New York, Toronto, Paris, Eraunachweig, 19B6. The subroutines ElGOm and EIGEiNL are completely selfcontained (EIGENM is composed of four subroutines EIGCHM, F, ALAUDA, LU and EIGENL is composed of ten subroutines EIGLML, ALAMDA, LU, DERIVI, DERIVZ, L0WER, UPFEK, UPPER2, TRACE, TfiXGCji and communication to them is solely through their argument lists and . C0MM0N statements. The entrace to the subroutine EIGEHM is achieved by CflMM^N /MATRIX/ AO(ND,ND), AKND.ND), A2(ND, IND) CALL EIGF.NM (M, N, ND, T, INDIC, LAM, PEBKUT, lA, L, U) The entrance to the subroutine EIGLNL is achieved by C0HM0N /MATRIX/ AO(ND, ND), A1(ND,ND), A2CND, IMD), A3(r(n,ND) CALL EIGf.ML (M, N, ND, T, iNDIC, LAM, PERMUT, lA, D, L, U) ' ■ ■ ■ The tijeaning of the parameters is described in. the followinf^ lines. The elements of matrices A^^.A^iAj, ..., in (2) are to be stortid in the first N rows and columns of the two dimensional arrays AO, Al, A2, A3,... . H, where M > 1, is the degree of z-matrix A(z) in (2). N, where (J > 1, is; the order of matrices A^, Aj, Aj.....A^. ND, where ND > N, defines the first dimension of the two dimensional arrays AO, Al, A2,.. .., A,D,L,U and the dimension of the one dimensional array PERMUT. Dimension of tlie one dimensional arrays IMDIC and LAM must be equal to or greater than ND*M, T is the number of binary digits in the mantissa of a single precieion floatingpoint number. T is of integer type- The array INDIC indicates the success of the subroutine as:follows value of IHDIC(I) .0 eigenvalue (I) ■ not found after 100 iteration steps found LAM is one dimensional complex array. The computed eigenvalues will be found in the first H*M places. The arrays PERMUT, A, D, L, U is the working storage. The main (calling) progranune should contain the following declaration statements INTEGER, M,N,r,INDIC,PERMUT REAL AO,Al,A2,A3 C0MPLEX LAM,A,L,U C®MK0N /MATRIX/ AO(ND,WD), AKND.ND), lA2{HD,ND),'A3tifD,ND5. DIMENSION INDIC (ND*M> ,l,AM(ND*M) ,PERMUT l(tftl) ,A REAL(ZR) IM s AIHAG(ZR) EPSIOO = 100.0*EPS . IF,A(ND,1), C 1L = DET A(Z) = DET A. MATRIX A IS DECOMPOSED INT0 THE F»RM PA = LU WHERE L IS UNIT L0WER TRIANGULAR MATRIX, , U IS UPPER.TRIANGULAR MATRIX AHD P IS THE CfilRRESPONDING PERMUTATI0H MATRIX (SEE WILKINS0N). 1 CALCULATION 0F A(2.), 2 CALL ALAMDA {Z,M,N,ND,A) CALCULATION 0r TliE SMALL POSITIVE 3 NUMBER EPS. 33 • C = to. ,0. ) . D0 1 J=1,N D0 1 K=1,N C = C + ACJ,K)**2 CONTINUE EPS = CA,BSCCSQRT(C))*2.0''*<-T) . COMPUTATION «F THE MATRICES L AND U, WHERE PA = L*U. CALL LU(EPS, IND,N,ND,PERMUT,A,L.U) IF(IND.EQ.l)Gfl) TO ^ J = -IND K = (-1)**J FK = FLOAT CK) FUNC = CMPLXCFK.O.O) DO 2 K=1,N FUNC = rUNC»UCK.K) CONTINUE MODIFICATION (»F FUNC i FCZ) INTO F(Z)/ (CZ-X(1)KZ-X<2))...(2-X(1-1)) ACCORDING TiJ EQUATION C2 3) OF THIS PAPER. IMI I I-l IF(IM1.EQ.O)GO TO M DO 3 J^l.lMl FUNC = FUNC/CZ-LAM(J)) CONTINUE CONTINUE RETURN ENDSUBROUTINE ALAMDA(Z,M,H,HD,A) INTEGER H,N,ND,I,J,K REAL A0,A1,A2,A3 COMPLEX Z,A,AIJ COMPLEX Z 2 ,Z 3 COHM0N /MATRIX/ AOCND.ND),A1(ND,ND), 1A2(HD,NI)),A3(}JD,ND) DIMENSION ACND,1) THIS SUBROUTINE CALCULATES THE ELIIMENTS 0F MATRIX ACZ), WHICH ARE FUNCTIONS OF Z, FOR A GIVEN VALUE 0F Z. Z2 I Z''*2 Z3 = CONTINUE. DO iHt I = 1,N DO im J^l.N AIJ = AQ(I,J) DO 33 K=1,M . G0 T0 CI,2,3),K 1 AIJ = AIJ+A1CI,J)*Z G0 T0 33■ 2 AIJ = AIJ+A2CI,J)*Z2 GO TO 33 AIJ I AIJ+ASCI.Ji^za CONTINUE ACI.J) = AIJ . so C0NTIHUE RETURN END. SUBRaUTINE LU ttPS.IND.N.ND.PERMUT,A,L, lU) INTEGER IND,M,ND,PERMUT,I,K,NP1,R,RC, IRMl.RPl.T REAL EPS,SRC,STABS CBHPLEX A,L,U,ST,UKR DIMENSI0N PERMUT(l),A(ND,a).l.(ND,] ), 1U(ND,1) C C THIS SUBR0UTINE PERF0RMS THE C DEC®MP0SITION MATRIX CPA) IHT0 L*U, C WHERE L IS UNIT WWER TRIANGULAR MATRIX, C . U IS UPPER TRIANGULAR MATRIX AND P IS C . THE CORRESPONDING PERMUTATION MATRIX. C PARTIAL PIV0TING IS IHTRÖDUCED (SEE J.H. C WILKINSON, PAGE 225). . IND = 0 D0 1 1 = 1.,N PERMUT(I) = I 1 CONTINUE C NPl s N+1 D0 11 R=1,N RMl = R-1 RPl = R+1 RC = R SRC = 0 DŠ( ^ T = R,N ST s A(T,R) IF(RM1.EQ.O)G0 T0 3 C D0 2 K=a,RMl ST ! ST-L(T,K)*U(K,R) 2 C0NTINUE 3 A(T,NP1) = ST STABS = CABStST) IF(SRC.GE.STABS)G0 T0 M SRC = STABS RC = T 4 C0NTINUE IFvSKC.GT.l'.PSJG» T0 (i IND = 1 RETURN C 5 IFCR.E:Q,RC)G0 T0 7 T = PERMUT(K) . PERHUT(R) = PLF-MIJT(RC) PERMUTCRC) = T C THE F0LL0WING STATI.HENTC IND= riJl)-1 ) MAV C BE TAKEN 0UT IN EIGÌiNL. ' IND = IND-1 m 6 K-1,NP1 ST = A(R,K) AtR,K) = A(RC,K) A - (22) C 0F THIS PAPER. ■ C CALCULATI0H 0F A(Ž). ' 3 CALL ALAMDA(ZR,M,N,HD,A). C ' ■ CALCULATION 0F THE- SHALL P0SITIVE NUMBER C EPS. CEPS .s O . . D0 "+ J = 1,N DO M K=1,N CEPS = CEPS+A(J,K)»*2 . ^ C0NTINUE ÈPS = CABS(CSQPTCCEPS>)*2.0**C-T) EPSIOO =.100.*EPS C C0MPUTATI0N ®F THE MATRICES L AND U, C WHERE PA '= L*U.' CALL LU(EPS,rND,N,HD,PERMUT,A,LiU) ir(IND.EQ.l)S0 T0 8 C CfJMPUTATIBN 0F THE TRACE 0F MATRIX X C . AND THE TRACE 0F X«*2. . CALL DERIVICZR,M,N,KD,PERMUT,D) CALL L0WER(N,ND,D,L) CALL UPPER(N,ND,D,U) • CALL TRACE{N,ND,D,TRACEX) CALL TRX9qCN,ND,D,TRACX2) C C0MPUTATI0N ar THE'TRACE 0F MATRIX W. TRACEW I 0,0 tF(M.LT.2)G0T0 S ■ CALL DERIV2(ZR,M,N,ND,PERMUT.D) CALL L0WER(M,ND,D,L) . ■ CALL UPPER2 (N,ND,D,U) CALL'TRACE) DEH0H1- = SI + CEPS ; DEN0K2 = S1-CEP5 IFtCAriSCDEtI0Hl).GT.CAIlS+ABSCIM) IFfRE. LE.EPSIOO.OR..1. /RE. LE. EPSlo'o) 12R=(l.,1.)«FL0AT(I) IF(ABS(IM).LE.EPS1OO)G0 TO 10 LA«(1) = CONJG(ZRPl) INDIC(I) =1 1=1+1' C 10 IF(I.LE.NH)GO TO.2 11 CONTINUE RETURN END SUBROUTINE PERIV1(Z.,M,N,ND,PERMUT,A) INTEGER M.N,ND,PERMUT,I,11,J,K.MHi RF:AL A0,A1,A2,A3 COMPLEX Z,A,AIJ COMPLEX Z2,Z3 COMMON /MATRIX/ AO(HD,ND),A1tND,ND) lA2(ND,ND).,A3(ND,fiD) DIMENSION A(ND,1),PERMUT{1) C C C C THIS SUBROUTINE CALCULATES TUE ELEMENTS OF THE FIRST DERIVATIVE 0F MATRIX A(Z), FOR A GIVEN VALUE OF Z. Z2 = 2.*Z Z3 = 3.*Z**2 CONTINUE MMl = H-1 D0 55 11=1,N I = PCRHUT(II) DO BB J=1,N AIJ = A1CI,J> IFCM.LT.2)G0,T0 4't D0 33 K^l.MHl GO TO C2,3),K t AIJ = AIJ+A2(I,J)*Z2 Ga TO 3 3 3 AIJ = AIJtA3(I,J)*Z3 C C C C C C C C C 33 C0NTINUE »m A(II,J)=AIJ SS CONTINUE RETURN ■ END SUBR0UTINE DERIVI CZ,M,ND.PERHUT,A) INTEGER M,N,MD,PERHUT,I,II,J,K,MH2 - REAL A0,A1,A2,A3 MMPLEX Z,A,AIJ . C0MPLEX Z2,Z3 C0MM0N /MATRIX/ AO(ND,ND)iAl{ND,KD) , 1A2(ND,ND),A3(ND,ND) DIMENSI0N A(ND,l),PERMUr.tl) THIS SUB'ROUTINE CALCULATES THE ELEMENTS 0F THE SEC0ND DERIVATIVE 0F MATRIX A(Z), F0R A GIVEN VALUE 0F Z. . ■ Z3 = 6.*Z CONTINUE MM2 = M-2 D0 S6 II=Ì,N I ! PERMUTCII) D0 55 J=1,N AIJ = 2.*A2(I,J) IF(M.LT.3)G0 T0. UH Dd 33 K=1,HM2 Ga T0 (3,3),K 3 AIJ s AIJ+A3(I,J)*Z3 33 C0NTINUE m A(II,J) 3 AIJ ' SS CONTÌNUE RETURN END SUBR0UTINE L0WER(N,ND,A,L) INTEGER N,ND,I,IMI,J,K . C0MPLEX^A,L,AIJ DIMENSIBN A(ND',1),LCND,1) THIS SUBR0UT^NE CALCULATES THE ELEMENTS 0F MATRIX M WHICH SATISFIES THE RELATI0N L»M=A, WHERE L IS UNIT L0WER TRIANGULAR MATRIX. M IS ST0RED INT®. ARRAY A. 00 2 1=2,N IMI s I-l D0 2 J=1,N AIJ 5 (0. ,0. ) D0 1 Ksl.itMl AIJ = AIJ+LCl',K)*A{K,J) 1 C0NTINUE A■ Statement T0<1,2,3),K in ALAUDA by G0 T0C1,2.,3,M,5) ,K 5) Statement Gfl T0(2,3),K in DLKIVl by Q0 T(S(2,3,it,5),K 6) Statement G0 T0C3,3),K in DLRIV2 by G0 T0C3,H,5),K 7) Statement 33 CflflTIHUE in ALAHDA,DERIVI and DERIV2 by G0 T0 3 3 . U AIJ = AIJ+A4CIjJl*2it G0 T0 3 3 5 AIJ r AIJ+A5CI,J)''Z5 33 C0NTIHUE S, Main - calling programnie M. Modifications For matrix A(a) satisfying (2), wiiere ni>3, some of the statements must be replaced witli other statements as shown below for the case 1) StatementEä REAL AO,Al,A2,A3 C0KM0H /MATRIX/ AO(HD,ND),Al(ND,HD), IA2(ND,MD),A3(ND.HD) in the main programme, EIGENM, ALAMDA, LIGLKL, DERIVI and DERIV2 by REAL A0,A1,A2,A3,A^,A5 C0MH01J /MATRIX/ AO(ND,UD),Al(ND,MD) , • 1A2(ND,ND),A3(ND,ND) ,Ait(IJD,!)D),A5CND,ND) 2) Statement C0nPLEX 712,7.3 in ALAMDA,DERIVI and DERIV2 by C0MPLEX 72,23;?,4,25 3) Statement C0NTINUE (i) in ALAUDA by Zi| = 2**n 2S = Z**!i (ii) in DERIVI by ZH = (iiii in DERIVz by 2M = Z5 : 5. In the following lines an example of a possible calling programme for subroutines EIGEKM and EIGEMLis presented. It finds the eigenvalues of A(2) in (2) with msS and nsl2. The programme stops after reading value zero for n. INTEGER INDIC,PERHUT,M,N,T,I,J,K,MN.MP1-REAL AO,Al,A2,A3 C0HPLEX LAM,A,L,U C0HM0N /MATRIX/ AO (12 ,12 ) , Al C12 ,12.1., 1A2(12,12),A3<12,12) EQUIVALEIICE ,J=l,N), 1K=1,N) IFCM.GT.DPRINT 9, ( (A3(K, J) ,Jsl,N), 1K=1,N) CALL EIGENMCM,N,12,T.INDIC,LAM,PERMUT, 1A,L,U) PRINT 10,\INDICCI),LAMCI),I=1,MN) 1.0 F0RMAT(lHO,tOX,6H INDIC,10X,9HFEAL PART, 112X,10H IMAG..PART,///C1H ,12X,I2,5X, lEl-9,12,iiX,E19.12)) D0 11 Isl,MN LAMtl) = Q.O 11 C0NTINÜE CALL EIGENLCM,N,12,T.INDIC,LAM,PERMUT, 1A,D,L,U) PRINTIO,CINDIC(I),LAM{I),I=1,MN) G0 T0 1 12 C0NTINUE END CENIK OGLASOV Ovitek - notranja stran (za letnik 1982) 2 stran — --- 28.000 din 3 stran--------------------------- 21.000 din Vmesne strani (za letnik J982) 1/1 stran----- 1/2 strani----- 13.000 din 9.000 din Vn^esne strani za posamezno številko l/l stran -1/2 strani S .000 din 3.300 din Oglasi o potrebah po kadriii (za posamezno številko) 2.000 din ADVEBTIZING HATES Cover pagA (for all issues of t9B2) 2nd page------------------------ 1300 ^ 3rd page------------------------ 1000 9 Inside pages (for all issues of 1982) 1/1 page ----------------------- 790 $ 1/2 page ----------------------- 520 ^ inside pages (Individual issues) 1/1 page ----------------------- 260 $ 1/2 page ----------------------- 200 » Rates for classified advertizing; each ad ----------------------- 66 $ Razen oglasov v klasični obliki so zaželjene tudi krajše poslovne, strokovne in propagandne informacije in članki. Cene objave tovrstnega materiala se bodo določale sporazumno. In addition to advertlsment, we welcome short business or product news, notes and articles, The related charges are negotiable. GENERISANJE PRIDEVSKIH U SRPSKOHRVATSKOM OBLIKA DUŠKO VITAS UDK: 681.3.06:808.61 MATEMATIČKI INSTITUT, KNEZ MIHAILOVA 35 11000 BEOGRAD u radu je opisan poatupak autoinul t-Ue men tonuUiäke Ealiitu^ć iirldevaKlh oliiikd u iiuyi thKiuniii ijt |>>;ki<' hrvatekuui jeziku, üvaj [oatuiiak j>: Lj 1 i-eioe ratiiju ojjiuanoij i^atupka luui-funolLifikti üJutezt: i,».: nlcà, zaonovanoy na Eorwalizacij 1 iJravUa al lisi-nacija t identitlkacljl desia rtcl, tia knjl .li.-.jiiju alterndclje. GÜNEltATIÜN Off ADJECTIVAL k'ÜltMS IIJ ÌÌLHlSiX'KOATlAW. In fcliltä l'aiicr, the lirocedui e ut d u t uuia (; iti morptiünulogical ayntiiusia of adjt-'01 tormu In conLinuiJoraty serboceoatltiii in . it lu an extenalan of tlte ay iikttetilu uii noun fu mu tiarller« ui'id it is Latici foriiiaHciiit. Um of alternation rules and identj t icakiuit ot i>drta et tliu wurds, that are llal'lo t(i. a 11 iia t iun, i. UVÜÜ PoatuiJak generlaarija paradlym! j.irtji enlj lvlh i tu erpskotir va takom jeziku Je izluit.ii u (Vltaa/BO/) na jirim^ru ytiijfcrlbatij«s inuiiiLčklli oblika, l'olazedl od nominativa jeilnlnii date lnii^--nice, analidevanoij niorionolüäkoiu tiefiniclJqmj imj-ijuće ja (jenerluat i sve padezne uJillkt: t.e iiiitsni . Morionoloikoiii definicijom su, pri toniti, opiiìaim neka (ne sva) od «lorfološklli 1 foimlašklli sVij) -stava imanlce koja aa cjenć:rlBe. Ukoliko u i>iy puül m.kii. U ovom rađu ae opiauje j>roiä Irenjf. nvtMj ijoneratn, ' noy poatupka na prldevüku parad tymu. l'olaiiedl od nominativa jednlnb ntjodredjtiuc-j vida niuskmj roda (ili odre (jenoj vida, ukolikn neodri^tljt-ni Ila ijostujl) datO(j iiVldeva ijuniitisu bt ubjjcl ava tri roda u odredjBnnni l ntjitilrudlencMii vldu, u poaitlvu, komparativu i uuperiativu. 1-iusiri ■ vanje eiaceji^a na prldevaku paj ^iIìjjiili ji^ prtiduiav-Ijalo prtivei-u Ljtjiieratornoij iui:nanJ^iua prlmunjtuioy na a luca j iiiiùnioa. Ovaj iuehanl tiaiilojl n dtìkoiiipozlt:! ji ZX'ESXCXEI>) OS (žestok) - ìeStìemu (prodüieni nastavak za üS) tMQAft I 3 HCRF »siooiiiiflđoeoooo HFttARK mJfffrfffTfff SRCJ- I PACEZ" 1 KOMP- 2 RfiO« i VIO- I NASTAVAK 112 12 2 SUFIX 1S14 HifiK»p zifi«iiiiecie()«««ooo«oco««e«o«c«oo«c««oeM lOGflOO(IQfl«fl(l€««eOflflOOO«O(lfl«OllO(tO««flO«0O 1 1_ {iiHfHjćHfl k»iBnnn NS (đubar) - bolja (nepravilna osnov« komparativ« ilADAK 1 é 40RF «2i«etiii8iiaaooo tTMARK mTfffffffffff 4R0J- 1 PACE2- 2 KOPP« 3 ROD* 3 VID- t MAS1AVAK 12 3 13 2 SUPIX 1 3 H «Il K- P 2 ICO 111 It 1 lfiQC00QS«6«Sd Ofi«QeO«>G«t3«t«eC« 1 đ««««0«CC€«flC«CCCCCC006QC«ClllOOOfiflfl9CeO MST- 1 1 KfEKJEKO K>NAJGL«CX UMENJtWD K-MJELACJI GS (gl«dak) - na Ud j a Superlativ COMPUTER APPLICATIONS OF LINGUISTICS IN PRAGUE E. HAJICOVA, Z. KIRSCHNER, J. PANEVOVA, P. SGALL UDK: 681.3.06:800 FACULTY OF MATHEMATICS AND PHYSICS, CHARLES UNIVERSITY, PRAGUE Automatic enalyela tuid/or automatic s^ritheaia of naturnl ItuijjuBge is used at vmioua J ti viirlous ways and to various dej^rees in projectB worked out in the group of tilgebi&Lc llrjfjuiatj ca at the Charles Univeraity In Prague. Automatic morphologiical analysis is applied in a luiniuaLi ka tion proceeeor in experiments with autom&tic compilation of tiook indices and in u derivi,l.iouul (reverse lenimatiBation) processor in a full text Horty type ie^i^l infoniitition retrieval ii,y;itfia SIUTi ISOSAIC - a method of fully autoinatic extraction of terininolOi;ical expressionH or ^ii;i.• tea of terms from texts - is based on a partial achematic inorpheinic, lexlco-suiauiitic uljJ iiyniuo-tic analysis i KODAS is a simple aystem of natural languajie accesa to a relational di-tu Ijiisi.-, 'J'iie I'uil-fledged apparatus of the automatic analysis tind/or synthesis of natural lani^uuüfc h; uintlied in experiments with English-Caech machine translation of abstracts in mieroelectrouica, uuil iti tin experiment v/ith automatie natural lani^ua^^e understanding - a queation answering üyateiii ealleii :/'lJJAQ, which extracts inforuiation from texts, enriches it with tlie aid oi" a aet of inference ru-lea, stores it and retrieves it by request, the queries being formulated in natural J üii; Tlie applied projects vjorked out in the group of algebraic linguistics on Charles Univeraity in Prague are based on the theoretical back-{^round /see eap. Sgall, 19Ć7, S^all et al,, 1^)69, PanevovR, 1980/ describing the individual levels of laneuage system, their units and the rtilationa between them, as v;ell rs the relation between the representutions of aenten-•cea on the adjaofjnt levels. The description h«e the character of an effective procedure, {generating - fipst the underlyintj or tectoi^rum-matical representations of sentences (which can be underetood as raeanin^äsof sentences) and then transducing these representationa £3tep by step to the levels of surface syntax, morpliemica, and ernpheiriics (for the purposes concerning practical applications we do not work with a description of phonemios and pho-nfeticQ,since in the given stage of development the input, and mainly also the output of spoken discourse is possible only at a very limited scale). The lintjulstic background of the system of levels is described in Sgall, Jlajicovä and Panevovä (in prep.). I. Some of the projects are relatively simple from the point of view of tlie depth of linguia-. tic investigations, but they are useful for practical applications. This (sonceriis first of all auch projects as automatic compilation of Indexes involving either lemmati£.alion or a derivational processor. Tue system Ü1UT (Ga. selekce informaci uplnć-ho teitu, i.e. selection of data from a full text) aims at an automated system of text Iiiformation retrieval baaed on a Czech variant of Horty'a method of 'full text', or, in otliKr words, at eun ismuediate identification of texts (ajid tlieir parts) containing the words or coliocti-tions given by the user at the input of tlte uya-teni. The algorittrnis for ft system based on this metliod, implemented and checked on an EC 1040 computer in PIi/1 for Czech, and now prepared also for Slovak, deal with such difficult points of mor-pliemiCiB as the productive alternations k/o, ch/3, r/r, the moving vowels (as in Cz. domek - domku, niatka - matek) , etc. 'i'lie ayattm works without a lexicon, aud it includes a derivational processor, which generates all tiie derived forma of a word, if the basic form of this word was given by the user, wiio alao lius to add a denotation of tiie part of speech (with nouns, the (gender): Z - noun, animate (Cs,životne) il - " , innniiiiate (f-z.neživotno) F - " , feminine 3 - " , neutfe ICz. Hti'-edui) A - adjectlva C - numeraKCs. S^slovka) Ihue e.g. with iSlPOKOJOVl (A) BY! (N) - for "an appartment of three rooms" - both words are assigned edl their word forms hy the pro* oeesor. With OPRAVA (P) V BYTE ("a repair in tho appartment") or OPRAVA (P) DVE&l ("a repair of the doors") only the first word is aooompanied by the auxiliary symbol (for part of epeeoh and gender), so that only for this word Jfe other forms will be generated; the other word forms are left as they are, sinoe it is not necessary to loojc e.g. for other forms of the noun BYT ("appartment"). All forms found at the Input or generated by the derivational processor are then looked for in a concordance that was compiled when the texts were entered Into the system (and that is complemented with every new text added to the corpus). Hot only the word form itself, but also the data concerning the places (texts, paragraphs, eto.) of their'occurrences are found in the concordance. It is then checked which of these data meet the condition of common occurrence; regularly the distance ± 3 words la tolerated, e.g. with our first examples also such occurrences as tMpoko.lovych a vžtiloh byt& or bytA dvoupo-ko.loT^oh a tflpokojovyoh will be found and indicated at the output. However, the user has also the possibility to use several operators pointing out that only the exact fonn given at. the input (without any intervening words or'permutations) should be looked for, or that the individual parts of the term may 00our in any distance within a single sentence, or within a paragraph. Also alternative (e.g. synonymous) words can be looked for. The system SIUT Is appropriate e.g. for texts from the domain of law, where it la rather probiable that every ocourrence of the term looked for can be relevant for the user. If the aim of a text retrieval system oonsists In the so-called retrospective search in a po-lytechnlcal domain, i.e. all texts (and their parts) should be found in which the given temu plays an important role (all texts dealing with the aubjeot denoted by this term are relevant, rather than the texts oontaining only casual mentions of the term); another method la more useful. For Slavonic languages with their rloh eyeteitis of inflectional foim the method MOSAIC was developed by Z. Klrschner. UOSAIC is a method of fully automatic extraction of terminological structures from unab- breviated texte in the field of natural science and technology. It is based on the assumption that elements of terminology and their coherent aggregates are automatically detectable In compii ano e with principles and general trends that assert themselves in the construction of terminology. A partial and schematic morphemic analysis drawing upon the rules of derivational and leiico-eemantioally based morphology helps to select potential terminological elements, and the subsequent syntactic analysis in the form of a set of categorial grammar type rules tests the coherence of the contingent sequences of them. All that is needed ia a relatively limited list of four character segments mostly representing the endings or suffixes of words, or, in part, some inner segments representing the stems of words forming the most important families of terms; e.g., the experiment In the field of microelectronics in Czech contained a list of some 750 segments, the corresponding experiment in Slovak some 85O segments etc. The method can' be applied with very good results in languages with sufficiently rich inflection, viz. Czech, Slovak, Polish, Russian, Serbocroatlan, but also German etc. MOSAIC has been applied as a system for automatic indexing; in this application, a system of weighting the terms is operative measuring the elgnlflcance of individual indices according to their position in the text, their length, relations to other terms and frequency. The applicability to such tasks as compilation of book indices has been also tested, and the results were very good. The implementation of MOSAIC on computers EC 1040, IBI- 370 etc. is the work of prof. P. Pognan of the Jean -Pavard Research Centre of the 6th Paris Univer^ elty. The programmea are written in PL/1 of the level P and Pl/l Optimizer languages. The seme programme is used for Czech and Slovak (only the lists of segments being changed), and presently a Russian version Is being prepared. 2. Another relatively simple kind of systems oonoerns automatic contact with simple (e.g. relational) data bases In natural language. If the data bass is not too large (not the number of the data, but that of parameters being deoislve), then the.method K0ĐA3 can be used, which was developed by J. Haji£ on the base of ezperimenta with similar systems carried out earlier in the Computing Centre of the Academy of Sclencea in Bovoaiblrsk. After having implemented (also in PL/1) an experimental system conoemlng a data base with about 15 parameters of personal data, the linguistic group of the Faculty of Mathematics and Physics, Charles University, Prague, itow develops situllar systems for larger data bases with data fron economy. Wq vaat to present here ;|ust a few exastplee from the first experiments, where the analysis of the questions formulated In Czech was lexically baaed, since most words (Identified by their stems, which are included in the lexicon) unamblgouely point to thalr role in the structure of the data base (the word ie either a name of one of the parsmetres, or of & value, of an operator, etc.). Such poxametres as first name, family name, date of birth, function, pay, etc. are Included, and such operators as maximum, minimum, average. Questione of the following types may serve as an Illustration; the answers have the shape of lists (or of numerical data); Kdo z praoovnfkà oddéleni numerlckó ma-tematiky je nejstaräl? (Which from the collaborators of the department of numerical mathematics IB the oldest?) Ktery doktor vid mä nejnižši plat? (Which doctor of sciences has the lowest pay?) Které oddeleni mé nejvetil poSet pra-oovnika?■(Which department has the highest number of collaborators?) Jaky je prÜmSmy plat? (Which Is the average pay?) Kolik jasykii umi Jaromir VoméSka? (How many languages does J.V, speak?) 3. Also experiments with Engllsh-to-Czech machine translation have already reached a phase in which the system is prepared for a practical application, first of all with respect to texts from electroaics. Thanks to a cooperation of Canadian colleagues who belonged to the group of T.A.U.M, (Montreal), it was possible to prepare three experiments, the first of which was accomplished in the years 197S-1979. Although 'with, each of the experiments paT'tlall;- liiftsi-eat aimss have been pursued, almost the same general strategies and similar tactical devices have been adhered to. She main difference between our approach to automatic analysis and that of the Canadian system consists in that we work with dependency grammar instead of that of immediate constituents. We introduce labelling the edges in the graphs, representing tau structures analyzed, Indicating thus the direction of branching on the one hand and assigning the functions to the dependent (dominated) sentence elements on the other. The automa- tic analysis of Cngllsh elaborated in Prague usee Colmerauer's Q-eystems} in several respects the analysis Is brought to the tectogram-matlcal level at which semantic functions are represented to the measure that corresponds to further orientation of the particular experiment. Bspeclally the prepositional phrases are analyzed not only syntactically, but also se-mantlcally, l^e. their function as an adverbial of a given kind (instrument, manner, place, direction, time, purpose etc.) is identified. In the first of the three experiments only relatively simple English Input sentences (over a limited dictionary) were analyzed, yielding a representation of these sentences suitable as an input for the synthesis of the corresponding set of Czech sentences - which will accomplish the process of their translation, The programme of the analysis is divided into twelve steps which can be grouped into three main blocks: (i) morphological analysis, (11) syntactic analysis, and (ili) transfer (the first part of which is Implemented in Q-language, the second part in PL/1). At the output of the first block all elements (if they had been identified) appear as trees in what me.y be called canonical form; in case they underwent morphological treatment, they are followed by standardized forme of the endings that had been separated In the course of this treatment (e, g, S for plural of nouns or third person singular of verbs, ED for past tense, EN for past participle, etc, ). In the subsequent stage, such pairs are interpreted! s. g. the rewriting rule M(Am (Uk)) + + S==H(Aä (Um, »PL)) represents an instruction for the interpi'etation of the plural ending -a. Here, the B and S are constants representing the noun category and the ending ^ respectively, Ak, Us are variables (variables are marked by an asterisk following a letter; letters from the beginning of the alphabet - A to F - denote variables that stand for values (labels, etl- ° quattes), variables represented by letters I to N can stand for trees, and letters U to Z ara used in the representation of variables standing for lists of trees} a list can be empty or contain one tree only; the simplest case of a tree is a value). Here, Aa stands for the lexi-. cal value of the unit in question, Us denotes the list of semantic features assigned to it. The constant bPL denotes plural (semantic features, some grammatical information, etc. lire usually marked by an asterisk preceding a letter or a group of letters, mostly mnemonic symbols, abbreviations and others like that). Tha block of syntaotlo acalyBle ìb divided into several etepsi firat, nominal complexea axa Ijuilt up (by putting together nouns with their attributes and propositions); then verbal complex forms are identified. The verbal oomple-ments are attached to the verb form one by oq»> thla le being done by filling in the "alota" contained In the dictionary entries of verbs (in their frames). Aa a rule, the subtree governed by the numeral "1" indicates the properties a subject of the verb must possess, that dominated by "2" those of its direct objecti etc. The last step attaches free modifications (local, temporal causal, etc.). The following two rules may serve as an example of a saturation of such verbal frames« (1) HCAaCÜH),V«) ,+ AUX(B«{XÄ,!D(C«),Yit),ZM)., V(Bìi(Xk,T(Os) ,Ys) , N(As)(L(SUB) ,Uji)Va) ,Zm). (2) V(Ua) + PP(BY MISAHS 0P,If(A*(X3i) ,lfji) ) ■■ V(UB,N(Aa(R(5ADV,*MHS),X*),Y*)). They are applied to the string (3) N(CHAJIQ£(ilA,«Hi,3lDEP)) + AUXCMOHITOR (TCPRS) ,MDL(CAJi) ,ÌCKEG,HPSV,1(*H,»C ,«A) , 2 ( mA ), *DUfi ) > + PP( BYMEA^JSOP, M (ME ASURE C kA , kINDEP) , AD C 0R( I. C § ATEI ) , aSTO, rSPTO),AD(SINGLE (L(5Q))),AD(SIMPLE (R(§Q), *3T0,aSPT0))))). In this example the rules and the string were almpllfied, A stands for adjective, AUX denotes a verbal complex with "Blots" not yet filled, V a verbal complex in which the •'slots" have already been saturated, PP Is a prepositlonal phrase; T stand for tense, PHS for present tense, MDL for modality, *NEG for negation, ■PSV for paselve; aemantio features «A, «C, sH stand for the features "abstract"."concrete", "human", respectively. The subtrees governed by II and R are labels on the edges t they specify the position (L - left, R - right) and the function of the given port of the sentences i the functions are marked by the elgn "§"• In the above rülea, L(§SUB) and H(jADV.nMNS) denote the subject standing to the left and the adverbial standing to the right of the verb respectively; hMNS stands for the feature "means", the funotlcn {Q denotes members of a coordination series. Informally, the above rules state that (in English) If a noun iB followed by a verbal compiei with unsaturated participants, this noun Is inserted into the "slot" of subject of the verb In questiont If a verbal complex with porticipante saturated Is followed vy a prepositioiifil phrase with the preposition by means of. the head noun of this phrase is inserted into the complex as an adverbial of manner, epeolfled by the feature "means". The tree In (3) la transformed by the application of the rules (1) and (2) into the tree (4), whloh represents the structure resulting from the syntactic processing of the Snglish Input sentence "The changes cannot be monitored bv a single or simple measure"t (4) 3(V(MONITOR{TCPRS), MDL(CAi(),*MBG,«PSV, aDUR) ,B(OHAHGJSCL( §SUB) , «A,«PL,kDEP) ) , N(MEA3UR£(H(§AJ)V,ii153JS), *A,«IKD£P), AD(ORCL(SATH),äSTO,«SPTO),AD(SINGLE (IC 5Q))),AD(SIMPL£(R(5Q),USTO,hSPTO)))))). The root 3 serves only for the formal purpose of Indicating that the analysis Is finished; the representation of the complete structure of the sentence proper starts with the node V (representing the governing verbi. The so-called transfer articulates the resulting tree into particular subtrees governed by such categories as N, V, AD, etc,, changes their order (placing the dependent elements in front of the governed ones), replaces the original syrobole denoting grammatemes by indices used in the synthesis'of Czech and substitutes for the English lexical units the corresponding Czech ones. The last part of the transfer, which adapU the output of the Q-language programme to the notation and orf;anlzatlon of the input for the programme of synthesis^is written in PL/1, Several modifications of the system are incorporated in the second experiment, whloh Is now being prepared, and whloh has In view practical application in an automatic translation system for the INSPliC tape'service (confined in the •xperiment to abstracts from the field of the production and application of integrated clr-ouits). The overall strategy of the procedure le very similar to that used in the first experiment; however, several changes and improve-menta have been introduced, the more important of which concern the following points t (1) the progranune ooHttilns a full system of morphological analyaia of English word forms (taken over, in the main, from the first Canadian project T A U M 1973, with kind approval of the authors of the system); thus, almost all Irregular, anomaloua, or rar« forms can be analysed and the normal (dlctionury) forma reconstructed! (il) to reduo« the aoop« of the main đlotlo-nary, a nfiv oompouent bas been addedt the so-oalled tranalatlonal dlotlonary, th« rules of »hioh translate the moat frequent olaasee of teriDS of International usage dlreotly Into Czeoh, mostly by ohanglng suffixes and ezeou-ting orthographical changoa - e.g. APPLI-CATIOH into APLIKAOE, PHIlOSOPHJf into PIIOZO-riB, AMHilPIER into AMELIPIKÄTOH, OPERATIONAL into OFEHAÖHl, ato, Suoh words, provided that their gractmatioal and semantic properties are not idiosyncrario, need not be included in the main diotlonary, which always has the unfortunate tendency to grow beyond measwej at the seme time, It Is a way how to deal with some word's that could not be identified in the previous etagej (ill) particular attention is paid to the syntactic analysis of nominal complexes in general' and compounds In particular, especially with regard to the problems of conversion} a repertoire of semantic features gradusdly built on what can be called a highly schematic model of the universe of dis-oourse helps to formulate some rules that cover the regular or at least the most frequent phenomena In this doméd.n. The corresponding section of TAÜM grammar as well as that of our first experiment were very limited and simples tlie texts analyzed by the second experiment grammar - abstracts from the field of electronics -^are based on technical terms, abound in them, combine them In various ways, modify them, etc., and that is why they cannot be treated without an adequate apparatus of rules that solve the current problems leaving to the "lexlcallst" solution as little as possible( , , . (iv) since the texts are rich in cooi^natlon structures, more sets of rules analyzing different types of conjunction both on the phrasal and sentential levels: were included to operate at different stages of the prooesst (v) wherever possible, Czeoh equivalents replace the English lexical values already at the initial stages of the analysis; sets of indices required for the synthesis of Czeoh are supplied already In the course of dictionary operationaj the English semantic features as well as the ."slots" in verbal frames are always deleted as soon as they have fulfilled their taskj (vl) the system gives preference to more gene- ral solutions whenever possible; e.g. rules are supplied that reconstruct elements deleted in the surface structure of sentences but necessary for the semantic interpretation of the sentence (and thus alsd for the proper choice of its equivalent construction in Czech); (vii) more general or universal solutions are also preferred to meet another problem connected with the fact that English, owing to its rather poor morphology and to the almost complete lack of the means of determining referential relationships that is oalled grammatical conoord, is a language more vague than Czech; extralingulstlc knowledge playa a more important role in English than in Czech, where the elements bound together by referential relationship must agree In case, gender, number, and, with verbs. In person, A computer for which such an "extralinguistio knowledge" la, under present oonditions, practically unattainable, will face difficulties if, e.g. it is to decide to which nominal complex the verbal attribute "using..." belongs In such a. sentence as "These methods employ a Monte Carlo analysis In the parameter space using a slmpllclal approximation to the region of aoceptablllty..." A layman can exclude the "space" as an agentive with the aid of the same means as the. computer, which can also be endowed with the knowledge that,under nonnal circumstances, "space" cannot; "use" anything, but as for the other two candidates - "methods" and "analysis" - the decision will be difficult without at least some idea of what "Monte Carlo analysis" and "simpliclal approximation" are. An experimental system working in laboratory conditions can afford to register all ambiguities and regard a multiple solution as a success - the more so, as the computer is often able to detect ambiguities where man falls to become aware of them; howeverja practical system must seek a way out and accept such a solution only in case of inevitability, and, in fact, regard it as a failure. The only chance is to make the output as linguistically ambiguous as is the original utterance in the source language and leave the decision concerning the correct interpretation to the reader. In quite a number of cases, such solution is possible» here, e.g., it can be done by translating the tranagreeslve as "with using", in Czeoh "s pouiitlrh"; .(vili) last but not least, a system that aspires to be applied in practice must confront the fact that time from time it can come across a phenomenon that cannot be handled by the means that stand at ita disposal. As has been already pointed out (see the above paragraph (ii)), the slm- pleat and probably the most frequent oese will be a word that cannot he identified by any of the dictionary oporationo. For thie oaae, a "univereal" noun ie prepared, provided with a "universal" set of eemantio features and Indi-oee and retaining Its original lexical value. More difficult problema are to be expected with syntactic and other anomalies; e.g., a noun will be used figuratively go that the intersection of the set of its semaatlo featuree and the eet of the features required in the "slot" of the verbal frame remains emptyt in suoh a case, the noun fails to become integrated in the verbal complex end the construction of the sentence tree cannot be accomplished. Here, a special stage - a special Q-system -ia designed to solve the most frequent fallureai a aort. of "emergency" greraiaar. It goes without saying that the particulars of euch a "reeaue-device" can be drawn only after Buffloient experience with the whole system in experimental operation has been accusmlated. The third expsriment concerns automatio analysis of English sentences serving as the source of information for the system based on the method called TIBAQ (described in Sect i 4, where alao the character of the synthesis, of Czech aentences la mentioned). It is closely connected with the second experiment. The front end of the system ITIBAQ then will be either a Czech text or an English text; the output structures of the analysis of English senten-oes are compleoiented and augmented in order to achieve 'underlying representatione of the English inpùt sentences that might supply the material for compiling the knowledge representation and serve as a base for the operation of inference rules in the same way as the Czech sentences at the Input. 4. Aa for the syatems that can be characterized as modelling the understanding of a text, the Prague group decided not to work with narrative texts or common dialoguesi instead, the understanding of technical texts was chosen, the purpose being to prepare the first prerequisites necessary for a system which may be called an automatic encyclopaedia (this idea and this term were taken over from David Hays). These prerequisites are prepared on the base of a method called fIBAQ (i.e. text-and-inference baaed answering of questions), The method 7IBAQ differs from the natural language front-end data management systems above all in that it is not conneoted with the necessity to compile first a data base "intellectually". She set of data la compiled In a fully automatic way, only texts written In the usual form being present at the input of the system. A:system based on the method TIBAQ belongs to those ayeteras of natural language understanding which are oonneoted with question-answering (factual information retrlevel), a relatively complete automation of which should become feasible after the prerequisites Included in the prepared experiments are checked. Another oha-raoterlstic feature of TIBAQ is its close connection with linguistic research, its linguistic base. TIBAQ is based on the following major procedures (see the scheme in Pig.l): a linguietio analysis of the input text (and also of the user's questions), a set of inference rules operating on the output of the linguistic analysis, a look-up for appropriate answers, and a synthesis of the answers founds during the experiments wa intend to enrich the whole procedure in several respects, one of which consists in checking every new assertion as for its consistency with the stock of information already stored and for its bringing new information, not yet included in the stock. The central position in the whole system is that of the set of statements (meanings of input sentences), which are represented in the form of tectogrammatioal repreaentationa (TR'e) of sentences combined into a semantic network of a certain kind. The syntagmatio relations are treated within the individual TB's of sentences (which are called assertions or statements, if viewed from the standpoint of question-answering) and have the shape of linearised dependency trees,cf.flg.2. The paradigniatic relations are (for the first experiments only in their main parta) accounted for by the register (a list of all concepts and all their occurrences In the texts that have been processed) and by meana of indices and pointers in the lexicon (rendering the relevant semantio aubclasslficatlou of the concepts). It should be noted that in the first experiment we need not be concerned with problems of referential identity because the input texts ohoaen were found to oonsist only in general atatementa (about types of devices, their applications, etc., with no specific referenta). The input sentences are converted to the oor- respondlne IR'a by the first of the major pro-oeduros of the queBtlon-answorlng (see the sohs-m« ia Flg.l), ty the llngulatlo analysis, whlob Is divided (In Its Ceech veraion) In two main stepsi the morphemlo end the syntaotloo-eemantio analysis. The first of these steps traneduoee the input sentences to their morphemlo pepreeentatlone, identifying the morphemlo values of the word forma (with many ambiguities left unresolved, this step of the analysis being reatrloted to individual word forms, with the exception of the oomplex forms of verbs). The second step combines a syntactic and a semantloo-pragmatlo analysis of the given sentence, taking Ita morpbemlo representation aa its input and yielding in the output a disambiguated (preferred) reading, i.e. a single TR. Our syntaotioo-eemantic analysis (the first formulation of which has been oharaoteriaed In Panevovd and Sgall, I960), thus contains not only a parser, but also an assignment of the underlying roles (Actor, Addressee, Objective, Locative, Instrument, etc.) and of the topic-focus articulation to the sentence and its parts. It should be pointed out that our linguistic analysis does not contain a ayntactio analysis "for its own sake". The distinction between well formed sentences and other strings is concerned here only to the degree in which it. is helpful in solving ambiguity, and eemantlc properties of lexical items (denoted by indioes in the lexical entries) are used whenever na-oessary in the syntaotioo-eemantic analysis. We have never adhered to such slogans as "semantica without syntax"^ since our understanding of the structure of natural lant^ua^je is connected with tlie assumption that the meaning of a sentenoe, in whatever language and shape it may be.adequately rendered, is in itself a complex unit with its own syntax, which is accessible to understanding only through surface syntax; in epecifio cases the lexical cast of a sentence allows Just for a single eyntaotlo oorabinatlon, so that syntax may appear as superfluous (e.g. if tbe lexical items father and walk, or father, read £uid news paper constitute the sentenoe), but la the general case syntax la Indispensable(such questions as "Who saw wliom?" have to be answered in the oourae of the interpretation of a sentence Inoluđiag the verb see. etc.). On the other hand, we distinguish between a theoretical deaoription of language, whloh, according to our views, should Include a complete description of the Individual levels, and a procedure of analysis (pur^ suing praotioal aims, or modelling a part of a user's performanoe)I within this procedure it does not appear necessary to keep the handling of syntax and of meaning (or of surface and deep syntax) separate. Also the questions formulated by usere in Ozech or in English undergo the linguistlo analysis, I.e. are translated to their TR's. Every TR of a question is then compared with the concordance (register, list of lexical units included in the texts that have been proceseed). All assertions displaying colnoidenoes with the TS of the question in autoeemantic lexical units are then chosen to form the so-called set of relevant assertions, on the base of which the answers to the question are to be found. The set of relevant assertions Is processed by the inference rules, changing TR's (or pairs of TR'b) into other TR's that are entailed by the former ones. A coordinated sentence is divided here into its parts, embedded clauses with since are changed into independent sentences, In some oases nominal adjuncts are deleted, etc. The TR's yielded by this inference procedure are then added to the set of relevant assertions. Also explicit definitions (including e.g. the verb call) are identified and the inference rules allow for replacements of the definiendum by the de-finiens and vioe versa in other assertions. In this way the set of relevant statements is broadened by means of the rules of inference; the resulting set ia called the enriched set of relevant statements. The procedure of the choice of an .answer compares the TR of the queation with eaoh of the statements belonging to the enriched set. Several kinds of results are possible. The most successful among them consists in a statement having been found to oorrespond to the TR of the question In all respects with the exception that (a) Instead of the wh-word of the queation it includes a specific lexical unit (perhaps with other words dependent on It), and (b) this unit Is placed at the and of the answering assertion. An assertion meeting these conditions Is denoted as the TR of a full answer to the given question. A partial answer is found if an assertion In the enriched set does not meet the above conditions, but ooinoldas with the TR of the queation in its main verb and ^n all lexical items that depend (Immediately or not) on this verb and on whlob (Immediately or not) the wh-v/ord depends, it aleo some other lezloal unit depeadent on one oi these words (Including the main verb) Is identical in the two TR'a. A full answer must contain in its TR the given lexloal Items In the seime underlying rolea as their oounterpartfl in the question occupy. This condition is too strong In some cases, and to some extent, this limitation was removed by means of Inference rules, so that e,pj) slijedi iz slijedećeg izraza: dCPliPjì'Oiax. d(pj^,p2), dCp^.p (1) Iz formule (1) slijedi da 8u svi crokuti u olfabetskoj meti'ici istokračni. i-urniutncij« ptCtkoja lezi u okolini radiusa R s cefjti'oin u Pq gdje je l4flin-i, dobije at- pomoću slijedećeK algoritme. ALGORITAM Pi-vi korak; Na slučajan način i zub k remo cijeli broj r iz seeimenta (1, R^ Drut^ii korak; Na slučajan način u«stojimo pei-ciutaciju p =C j^jp.. • iz rtl eimbola. Treći korak! U permutaciji p^^ pivifi n-(i-ii) simbola ostavimo bea promjene ö ostale üiuibo-le rasporedimo po redoeljedu danom up*. Tako ae dobije tražena permutacija. Na osnovu prednjeg algoritma sastavljen je protrein za elektronski rečunar. Iz okoline s centiom u ptiTu kojoj je dobiven min ;f(p) pomoću metode HGNTt KAHl.U f l] , nadjeno je loo permutacija koristeći alfatiel-sku metriku. Zn te pei-uiutMcije izi'ućuiiate iiu pidpadttfi vrijeüiioijti i'uiikcioiialu (*■) Čije rezultate vidima ne fil. 1. M^CJoe gdje je Dobiveno Je: Minimalni balansa vldino u tabeli 2 a aa maksimum u te* beli 3. NEKE LRUGE METBIKE Becloo da imamo dvije permutacije 5) i P2=(2,1,3,4,5) pa ako p^^ pridružimo broj ^^1525 a p2 broj 2 1 5 4 5 onda se udaljenost može definirati kao d(pj^,p2)- 41325-213'f5- 19980. Budući Je skup permentacija a ovako definiranom metrikom izometriSan skupu nekih cijelih brojeva u euklidskoj metrici to nema potrebe provjeravati aksiome. Udaljenoat izmedju Pj^^dj^ Ì2...ijj)i P2-(Jid2" J^) možemo definirati i na slijedeće načinei -n e) b) c) d) dCPi.P2).[2fVJk/'J Niti za Jedan od navedenih primjera nije potrebno provjeravati aksiome, Jer se radi o podekupovima posnetih metričkih proatora. MEKE USPOKEDBE lUZLIČITIH METRIKA U radovima [^1] f2j [3j uvedene su lan- čana, inverziona, transpoaicione i leksikografska metriko. LekBÌkoe;rafska metrika ima Jedno svojstvo koga'druge metrike nemaju. Naime, ona nije invarijantna u odnosu na početnu numeraciju objekata. Recimo da zadani nbjek-ti A,B,C,I),E,i- i da su izvršene dvije različite numeracije i toi I numeracija! A 1, B 2, C 3, D 4, E 5, F 6 II Humerecijai A 6, ß 5, C 4, Ii J, E 2, F 1 Neka su objekti poredani u dva redotìljeda Ij^. A,B,C,D,E,F Ig- E,A,F,U,C,B . Uzmenio li prvi način numeracije, tada redo-sijedu Ij^ odgovara pei'UutBciJa P2^ = (1,2,3,4,5,6) a redaaljedu Ig odgovaia P2-C5,1,6,4,5,2). Medjutlm ako Je primjenjena druga numeracije objekflta onda redosljedu Ij^ odgovara 5, 2,1 ) a redosljedu od- govara ■ U leksikografekoj metrici d(pj^,p2)= » <1(PhP2)"575« ostalim metrikama Je dCpj^Pg)- Maksimalne udaljenosti iamedju dvije permute-cije od n simbola su različite sa razne metrike i tot Lančana metrika ima maxCp^,pj) = n-1 Leksikogrsfeka metrika ima max(p^,pj)°nl-1 Alfabetaka metrika ima bbxCp^,Pj)- n-1 Inverziona metrike ime m8x(pj^,pj)=^nCn-l)/2 Tranepoziciona metrike ima fflax(pj^,pj)=n-l Iz prednjega se vidi da najbolje odvajanje Jedne permutecije od druge vrži leksikofraf-Bka, zatim inverziona a onda ostale metrike. Vidimo da blizina perautacija u inverzionoj metrici zavisi ne samo od broja prekida u lancu elemenata permutacije, što Je alučaj kod lančane metrike, već i od toge kako se daleko raznesu isprekidani dijelovi, Jedan od drugog, kao i od toga koliko Je elemenata permutacije promjenilo avoje uzajamne položaje. U vezi s prednjim govori ee da razne metrike iaraju različite statističke neprekidnosti. Treba napomenuti da ee kod uvodjenja ove ill one metrike u prostor permutacije polazi od čisto intuitivnih shvatenja, Jer koliko Je autoru poznato do densa ne postoje apriorne metode pomoću kojih bi mogli medjusoiino uspore-djivati dvije različite metrike u smislu njihove efektivnoeti kod traženja lokalnih ekstrema. Naime, tek nakon niza eksperimenata se konstatira da za odredjenu klasu problema bolje rezultate dobivamo u jednoj metrici u odnosu na druge, Jasno eve ovo u vjerojatnoimo-etntiatičkom smislu. VrSeni su opacžni eksperimenti da se dobije uvid u ponašanje parametara distribucije vrijednosti funkclonala kao Sto su matemotičko očekivanje i dispersija, i to u raznim metrikama i zb razne radiuse okoline. Za podatke iz tabele 1 dobiveni rezultati su prikazani u tabeli 4 i tabeli 5. ZAKUUĆAK Alfebetska metrika uvedena u ovom redu u prostor permutacija aejedno s %'anije uvedenim metrikama (lančane, inverziona, tranapozioio-na 1 leksikografska^ izgleda da su dovoljne da se problemi iz raznih područja tno^u na prirodan način formulirati, kad ee radi o računanju vrijednosti funkcionala na skupu permutacija. Kompjutorski programi za ove metrike Čine samo oko 1554 pakete programa koji problem rJeSflva u potpunosti. ■nj lapitte« 1 t } * s : « 7 3 » 1« U 12 « . 1« 15 16 •Utic- MHt 0 W .yrt -31 -•u -»W 420 -JOl 61 ISl 2n •162 -341 175 •m ii^ sUM vt u 1» -S. 11 22 U » 26 !7 2B 29 JO 31 32 -«a MttUk-. B«at 0 -« -M ITfi -SU -«12 ->W »70 79 IJ -1*2 » -1« }} 3» » J7 S« » •0 *1 «2 »J *« *S «6 »7 «e SMum wo» « -6es . 6 a -2» - SS H U -2» 1» n -121 «7J - 9 -191 «1 Anj «9 t* >l » H >• » 56. S7 »6 59 61 6« •tetukl BOU« U J -u » i -U - 5 - 2 17 -113 17 -17 •DB BtoJ lo»«tlw 66 V7 «a « 7» 71 72 73 7» 75 76 77 78 79 «0 •utUki M»* » 2» » » <46 a •11 27 -i» 7S •9 51 -*5 ai •a •3 «4 •S M 67 U « 91 92 93 9» 95 96 autUU M»Bt -9? 0 •U -as - 7 »1 65 >1 44 21 61 21 51 51 »t. t 90 t ioPi 101. t IDI. J lOt.l tci.l )ie. 2 lit C It i. t r. > 111. ! lita 110.: 122. C 12) » I2i. 9 'IT. t 121.e 131. 7 tj J. 7 I3S 7 ZJUJS I « im I i Otti S««7 liru jTššrr lll!>7 I 0.5)0» 3 asioi CSIC* • OUT •.UD» %lOi TUŠU S »ni aitttu 1 2 3 4 5 6 7 a 9 10 U 12 13 14 15 It >TSj Bj«t* 1 2 3 4 S 6 7 B eo 9 le U 66 -25 12 51 3 13 14 67 - 7 15 cm 31 16 85 -u STBJ 52 73 16 37 13 5» 79 so tU 83 86 51 * 87 SU 65 B»j Krpati«« 52 73 37 13 54 79 BI 83 9 -31 BtatietL aswt -U 175 -859 -IM 22 -457 -45 -57 9 -25 3 -31 - 7 31 -u Statuu, luaaat -U W 175 -»9 -162 22 -457 -45 -57 «nO Bj«>ta 17 16 19 20 £1 22 23 2« 25 26 27 2» 29 30 31 32 Sto] Bl*«ta »roj Ispiti» etituu cHuiit 17 69 U 90 19 91 20 92 U 17 22 19 25 23 S4 28 25 U » 53 27 77 28 32 29 U . 30 72 33 59 32 75 Bnj loptU» eS 90 91 92 17 19 ti 28 U 53 77 32 12 72 59 75 65 31 44 21 49 ^9 -5U 13 161 -249 49 -68 231 -u 17 -SS BtatUU moBt 65 »1 M 21 49 -69 -SU 13 181 -249 49 -68 231 -U 17 -5« - i Broj njoatl 33 34 55 36 57 38 39 40 41 42 43 44 45 46 47 48 Bnj ajtcti 53 35 36 37 38 39 40 41 42 »3 44 45 «6 47 4S ' Broj lopatica 78 84 93 S2 56 30 39 60 63 2S 74 . 6 38 94 55 69 trej lopati» 78 8* 93 tl2 56 30 39 60 63 25 74 e ja 9» 55 69 ' StatUkl aouat 31 0 61 -9 -u 35 17 -113 - 39 -317 -23 -145 - 53 21 5 S BtatUkl mu« » 0 M -9 -U 35 17 ■ -U3 -39 -317 -2} -145 -53 21 5 5 Broj ajaota - 49 50 51 52 53 5« 55 56 57 56 59 60 « 62 63 64 Bnj «9 50 51 K 53 54 55 56 57 58 59 60 61 62 63 64 ' B»j lopatico 95 96 47 67 2 35 57 1 15 26 '20 29 33 7 5 1» Sraj lB>«tle* 95 96 •7 67 2 35 57 1 15 26 20 29 35 7 5 14 StatiCU aoaant 51 51 -m 15 109 -6 S 0 -261 470 -31 -142 13 420 -411 -»41 Statuu tmamat » » -191 » W9 -6 5 0 -281 470 -31 -1« 13 420 -411 , ->41 Broj Bjasta. 65 66 67 6B 69 70 71 72 73 74 75 77 76 79 80 teoi BjWt» 65 66' 67 66 69 70 71 72 75 ?4 75 76 77 78 79 80 Sroj lopatle* Statlikl MMttt ■ 54 36 22 41 44 4« SO 49 64 58 27 48 10 21 31 »2 Broj leyttiM •J» 36 a 41 44 46 50 49 64 58 27 46 10 21 31 -625 21 176 -259 -121 - 9 42 15 468 • i 79 61 61 •4b -152 15 •tatiSkl aoHBt •«5 ZL 176 -a}9 -m - 9 42 IS «68 ■ 2 79 61 61 •46 -152 15 Bröl ajtit« .. 81 82 63 84 85 86 87 ea 69 90 91 92 93 94 ■')5 96 Bn4 ajwta BI Vt «5 B* »5 es 87 as e» 90 91 92 93 9» 93 96 Brej li^tloa 61 6 9 » 4s 45 3 is 62 65 43 76 66 71 Ó6 70 tatj Ispstte* 61 6 9 2* «0 45 3 18 62 65 66 70 76 71 68 45 StatlEU BOBBBt 17 -179 -301 -412 U 475 -309 0 -» 5 91 75 41 » 25 -26 Statuu anont 17 -179 -501 .«12 u •75 -309 0 -17 5 25 -26 75 22 41 91 TABELA METRIKA ß . 50 It . 10 a - 5 R - 1 Matematičko očekivanje* za R - 5 Min Max riin Max ma Max Min Max lAMČANA 224,5 5.504,67 lo2,6 5.360,0 59,8 5.100,9 134,? 134,7 1.045,56 LEKSIKOGRAFSKA 96,5 , 135,79 no,7 135,79 lo4,4 122,79 127,86 155,7 115,25 ALFABETSKA lol,4 1.984,84 18,9 362,21 96,49 155,64 134,75 155,7 110,2? INVERŽIONA 115,6 5.547,4 252,4 <+.079,09 148,56 5.979,25 226,45 3487,3 1.696,9? TRANSPOZIOIONA 111,9 3.275,5 198,2 2719,29 56,17 1.824,88 6,78 1430,5 668,58 Metodom Monte-Kerlo dobiveno Jeì Mlaf(p)= IJ^t-,?? J Naxf za pisanje obsetnih progranuvi kakrtfen je operacijski sistem. 1. kffflitfna ofivižajagi poraUlf m p.raaMttv FunUcionalistiäna opredelitev procesa je najbolj naravna« saj je proces deklariran kot logietni objekl-nosilec aktivnosti. Zaradi takega na01na dela pa procesi niso vet! nujno neodvisni. Dva procesa sta nedseticjno logiCrio odvisna« tt uporabljata skupne ratfunalniSke virei ki so lahko pasivni ali aktivni predmeti« tako da se norata tecta zavedati. Ker Je vse dogajanje v raffunalniku v bistvu branje in spreminjanje podatkov« so procesi soodvisni natanko takrat« kadar izvajajo operacije na istih podatkovnih prednetih. Podatkovne predmete« ki jih obravnava procesi delino v tri skupine! vhodne spremenljivke! izhodne sprenenlJivke in spremenljivke stanja. Kot pri vsaken sistenu smemo neje procesa prenikatii pri tfener za.iameno med spremenljivke stanja vetf ali mtinj njegovih opersndov. Ker pa belino obravnavati proces kot logitfni stroj« uvrstino med spremenljivke stanja le tiste spremenljivke« do katerih nima neposrednega dostopa noben drug proces. Vhodne in izhodne sprenenlJivke procesa so v sploCnea tudi vhodne ali/in izhodne sprenenljivke drugih procesov. 2. Sinhrogjje^FUft RC.gp.Pfift.V Za pravilno delovanje sistema velja naslednje prav iloi Ko eden od procesov nastavi vrednost neke spremeni j ivkeI ki na) bi jo brala skupina procesov-Citalcev (lahko tudi proces« ki je vrednost vpisal)« snejo vsi procesi to vrednost poljubno spreninjati pod pogojem« da bo inela sprenenljivka pravilno vrednost v vseh tistih trenutkih« ko jo bo bral kak proces iz skupine ttitalcev. Vidimo« da inajo procesi skoraj popolno svobodo. Ne spremenljivkah smejo izvajati poljubne operacije« ki niso prepovedane s statilfnim zejffiitniie nehanizno* podatkovnih predmetov« to Je s pravili« kateri aktivni predmeti imajo p^avion doslopa do nekega pasivnega prednèta in kakUen sme bili ta dostop. Od procesa zahtevano le to« . da spremenljivke po potrebi vrüüa na stare vrednosti. Onenimo Èfa* da zgodovine spremenljivk ne ' predstavlja v vsaken primeru ena saaa vrednost. Spremenljivka iaa navidezno loliko vrednosti« kolikor je procesov« ki so vanjo vpisali neko vrednost z nanenom« da ostane konstantna. Lahko bi ugovarjali» da je tako razmišljanje nepotrebnoi saj bi lahko dali vsakemu procesu svojo spreAenl j i vko. Vendar vseh spreoient j Wk: ne moremo enostavno raznnoüiti. ..To velja predvsem za aktivne spominske ceUcei kakrj^ne 50 registri. Organizacija sisteaat v katerem obstajajo spremenljivke z vetf navidetnlmi vrednostmil je _ izredno teilka« posebnoi kadar imamo enakopravne procese. Problem sinhronizacije procesov zapletajo t^asovni pogoji. v preprostih sistemih zadoSÜai da .uskladimo liitrosti -posameznih procesov kar z vstavljanjem ukazovt ki porabijo dolot^eno število urinih oiklov. Taka sinhronizacija procesov je statična in se ne zna prilagajati nepredvidenim motnjaa v sistemu. BploSna reSitev je s I nliron i z ac i j a procesov z tnedprocesno ' komùn i'kać I joi ki je lahko, neposredna preko skupnih spremenljivk ali pa posredna preko posioSnega procesa. Pri sinhronizaciji preko skupnih spremenljivk procesi ki prvi dosei!e s i nhron i zac i j sko toBko. v zanki testira sinhroni zacijsko spremeni j ivkoi dokler mu drug proces ne pošlje statičnega signaVa. Komunikacija preko pomoifiega procesa je Lahko takai da partnerja pa£ izvajata operacije nad s inhroni zacijsko spremenljivko - s posredovanjem pomoinsga procesa. Najpogosteje pa je 'posrednik sistemski procesi ki mo hitrejifi proces narotfii naj ga poJfenei k'0 bo par t ner . pr i £e I ,da sinhroni zao ijske totike. Proces Baka pasivnoi kar je zelougodnoi ker tudi golo testiranje troüi ralfunaln i^k i BasV Sporočilo počasnega procesa posrednikui da' je dosegel sinhronizaci jsko. totfko) predstavl ja kratkotrajen signali ki poüene fiakajoCi procesi de seveda obstaja. tie je ttakanje s imetr i0r)Oi torej Be ffaka vedno tisti proces» ki je prvi priSel na sinhronizacijako toCkoi partner pa vedno pofilje signali se bosta procesa vedno uspešno šreCala (princip rendez-vous-a)- tie pà vnaprej predpišeno» kdo po^iilja signale in «dò jih. üakai je nevarnot da se kak signal i zgubi i kar je usodnoi ee procesi ki je postal- signali kar nadaljuje izvajanje, V ' tem prjoteru se procesa ne sretfata. Isto veljai Še proces dinaoifino signalizira poljuben dogodek i na katerega Bäks partner. Pogoji sa delo so lahko popolnoma izpolnjeni,» pa proces tega ne opazi. 2.1. Problem vzajemnega izkl ^ufievania Osnovni problem sinhronizacije je dostop veS procesov do skupnega podatkovnega predmeta. Dovoljeno je paralelno branje» ni pa dovoljeno paralelno pisanje ali paralelno branje in pisanje. Dele programske kode» k) naslavljajo obravnavani predmetu imenujeno z ozirom na ta predmet kritiBne dele prograna. Recioot da j^elimo zagotoviti» da bo v vsakem trenutku izvajal svoj kritilini del najveB en proces. Nalogo imenujemo problem vzajemnega izk I jutfevan j a. Od rešitve' zahtevamo še naslednje lastnosti: -simetrijo (procesi ne smejo imeti, statitfne prioritete)i , -neodvisnost-od relativnih hitrosti proceaovi -neobčutljivost na pojavi da se kak proces ustavi izven kritiCnega delat -kadar vetf procesov hkrati zahteva vstop v krltlBni deti se mora algoritem odloOitl i» enega od njih v konBnea (jasu. Problem vzajemnega .izključevanja ni direktna posplošitev vsakega sinhroni zac ijskega problema. V nekaterih pogledili so zahteva prestroge (npr. ne. dovolimo paralelnega branja)» v nekaterih preblage (npr. nt predpisujemot da moramo vrednost podatka najprej vpisati» preden jo lahko beremo). Algoritem vzajemnega izključevanja je samo orodjei s katerim lahko rešimo katerikoli sinhronizacijski protolem. I vpeljavo dodatnih spremenljivk za «edprocesno s Inhroni zac i j o brez teÜav omèj'«o vzajemno izkljuBevanJe na tiste dele programdvi kjer je res potrebno. Problem vzajemnega izključevanja je prvi rešil danski matematik J.Dekker. Zapišimo algoritem za vzajemno iskIjufievanj a poljubnega ätevila procesovi ki ga je predstavil Dijkstra v C33 v Algolu 6Qi beg i ft integer array b.o CG:N3i i nteger turn» far turn ì= O step 1 unt i I M beg in bCturn] s= 1! cCturn] i= 1 lad' turn i= Di .Esnksflln. ■ ' . ' -process It bèain.......end! ■probéss 2« beai n.......end » process N» beai.n---- aacbeaia end. process is beai n Inteaer j t Ai: bCi3 != 0! Liì .end ii turn <> i then beai n.et i 3 s= It ^. , ü bCturnü = 1 then turn i = H . , floto Li endi cCiD ä= Q! .ioti != 1 Step 1 until N do begin iL j O i and cCjl = ü lina a°i-o Li ejiLà' kritično področje4 turn. s= Di cCi3 ?= 1» hCi3 t= ti , ostanek cikla iì goto Ai and.- Namesto dokaza» da algoritem zadošBa vse» zahtevami 'opi Si,mo njegovo delovanje v naravnem jeziku. Zanimivo jei da v algoritmu» ki omogoča medsebojno izključevanje procesov» vsi procesi prosto . uporabljajo .skupne spremeni jivke. . pomisliti pa moramo» da je digitalni računalnik sekvenčn.i stroj» v katerem se ukazi za pisanje in čitanje po naravi Izvajajo zaporedno. če zahtevamo vpis dveh "različnih, vrednost a in b v isto spremenljivko» bo vrednost spremenljivke V vsakem trenutku ali a ali b» nikakor pa ne mešanica obeh vrednosti. Konkurenčni procesi sklepajo na naslednji način) Oznafiimi da ?ellm vstopiti v kritično področje. Preverim, če sem navrsti. če nisem» pogl.edam» alf je tisti» ki j* navrsti» končal delo. če ne dela več» označim» da sem navrsti jaz. Preverim» ali nt morda kak drug proces tud-l ugotovil» da prejšnji proces n« dela več in se je poskusil postaviti na začetjBk vrste. če me je izrinil» začnem postopek za ppebo}. na čelo vrste od začetka z vi judnim. Saltan jem. da proces na čelu konča delo. Ko sem na čelu vrste» označim, da vstopam v kritiBno področje. Spet preverim» ali morda kdo ne dela. To je Čisto mogoče, ned trenutkom» ko sem ugotovil» da se iman pravico postaviti na čelo vrste» in med mojim vpisom ha čelo vrste je minilo nehaj časa. Hedtem je lahko kak posebno hiter proces» ki se prej če ni zanimal za kritično področji» prišel in začel z delom, če je to rta» le mu umaknem in ponovim postopek za preboj n« začetek vrste» sicer p« vstopim v kritično področje. Po izstopu označim» da me ktirično podrotfje ne zanina ve£ tn ustvar.to aofnosti.za .enakopraven konkurenffni boj vsah procesov. 2.2. Wet^ffU WflPt XÄCSJia Ssmalorii- in PPffUt^tPfli Iz tega algoritma smo se nauCilt. da je vtr tetay naslednia preprosto dejstvoi Proces dobt .Informacijo o stanju drugih procesov In se odloČil kako bo ukrepal. Toda ko zaCne ukrep Mzvajatii nima zagotovilar da «tara ^informacija sploh Se velja. Morda je dobil Isignal J?b , novo vrednost. Problem je v jpreveiiki dinamiki pr.ocesovi ki poSitjajo [signalen :V5ak Signal i zahtevo i nora izpolnjevati naslednjo Signal naj traja dovolj dolgoi da ga procesli ki }in je namenjen) opazijo in preberejo« koli.korkrat . ifelijo« stanjei . ki ga opisuje signal) pa nora trajatii dokler niso uresničeni vsi ukrepi« ki so posledice tega stanja in ne bi vetf ustrezali« tfe bi se stanje spremenilo. To pravilo nedeljivosti vzroka in posledice 'upošteva Dijkstrova definicija binarnega |aemaforja. Ker pravilo v celoti zajema bistvo sinhronizacije) lahko remino z binarnimi semaforji katerikoli s 1nhrohi zaci jsk1 problem. Binarni semafor je poseben priner splošnega semaforja« k( je nenegativna cela spremeni jIvkai binarni' semafor pa Lahko zavzame vrednosti O in 1. Semafor je statični IsignaL« ki . dr«i vrednost« dokler je ! ekspl i C 1'tno ne ' spremenimo. Zato ni. :nevarnoštli da procesi ne bi opazili signala. Princip spl^nega semaforja je redundanten« tier se da rsaCizirati z binarnim semaforjem iT navadna celo spremen t j 1vko. Uvedli so ga :zatoi ker na eleganten naffin rèSuje problem 'dodeljevanja enakih virov skupini procesov.' Nad semafohjain sta definirani operaciji P in iV. Procese«' ki Čakajo« mehanizem semaforja lUvrfiÖa v implicitno vrsto. Čakanje je po ,definiciji pasivno. Semafor mora zagotoviti lenakopravnost procesov In izkljuCIti Aoünost« da bi kak proces (po semaforjevi krivdi) Čakal .neskontfno . dolgo. Iz zadnje zahteve sledi« da nima prednosti proces na iatfetku vrste« ampak i I ist i prvi proces v vrsti« pri katere« so Izpoljnjeni pogoji za izvedbo operacije. Pri ';openacij1 V navidezno ni Čakanja« dejansko pa se tudi na njej odrata sekvenCna narava računalnika.. ZapICitto definicijo sploJfnega semaforja v jeziku Alphardi SI semapliore (zaCetne vrednost)! comment semafor je nenegativna cela spremeni j 1vka za posebne namene« ki ji je pridrutena implicitna procesna vrstal procedure V (si semaphore) " feiaiiL Esi= s+U Ce je v vrsti proces« ki Izpolnjuje potrebne pogojsi ga ibudiD end« procedur p P (si semaphore) = beam CiL s>ü . then s I= a +1 glsft beala vkljutfi proses v vrstoal wait« P(s) and Operacije v oklepajih so nedeljive. Definicij« semaforja ne. pove niB o njegovi izvedbi. Tudi na podroCju sinhronizacije procesov telTieio k.loCitivI deklarativnega In proceduralnega obravnavanja problema. Ce lapiSeno obsedno proceduro za sinhronizacijo« sicer lahko pravilno deluje« vendar njej namen hi jasno viden In preverjanje pravilnosti je teJfko. Zato vkljuCujemo ukaze za sinhronizacijo v visoke programske jezike« V: katerih opisujemo« kakifen naj bo odnos med' procesi in podatkovnimi predmeti« gradnja potrebnih procedur pa prepustino prevajalniku. 2.3. Pazvo.l ■sinhronizaeiio jezikovnih elementov Pred definicijo semaforjev je moral, programer vedno znova pisati procedure« kakršen je Dekkerjev algoritem. Ukazi« ki bi združevali testiranje in spreminjanje podatkov« praktiCno niso obstajal i.Semafor pomeni prvi podatkovni predmeti ki ni navadna spreme'n I j i vka in je namenjena izkljuCno sinhronizaciji. Po uvedbi pri zadeval i Operacije raziitfnost i vrednost 1. semaforjev so si avtorji najprej izbolijfati Koncept y,em.atQ.C.ig..v.- na semaforjih so testiranje^ od O« zmanjšanje in paveCanje Uodon je leta 1972 namesto P in V operacij uvedel operaciji ujg in down. Dovolil je kombiniranje pogojev in operacij na veC semaforjih npr. Sa.Sb.Sc pomeni« da naj se operacije izvršijo« Ce so semaforji aib«c veCji od --1 ( druga varianta pogoja >0)! doun SaiSu pomeni zmanjéfanjei uja. Sa«Sq pa poveCanje semaforjev a in Na ta naCin lahl : sledi poljubno Število ponovitev operacije g ali ena operacija hi xakljutfi se i eno operacijo 1. Vse operacije se vzajemno izključujejo. To lahko prepretilno x operatorjem paralelnosti ali z definicijo vefi poti na Istem podatkovnem predmetu. Zanimiv element poti je tudi numeritfnt elementi ki ima obiiko path_(_fl-f2-...-fmin effd Hotfi) naj pomeni Število ponovitev operacije fi. Z numerii^nim elementom doseremo« da vel j al No(11)>=No(f2>>=---->=Ho(ffti>»Notft)-n 0=lJal pravilno« da bo pravilnost brez leüav dokazal in da ga bo sistem sam opozarjal na morebitne napake. Opis sinhroni zac ijskih zahtev« ki je del opisa podatkovnega predmeta« predstavlja dinamiUno komponento zajfäilnega mehanizma lega predmetai zato smemo zdrufitl opis sinhroni zac tjsk)h zahtev z opisom statitfnega zajftfitnega mehanizma! ki odgovarja na vprafianje« kateri procesi imajo pravico do neke stalne mnolfiof operacij nad danim podatkovnim predmetom. Poskusimo definirati splošni mehanizem podatkovnega predmeta! zatftfitnl ?agtfHnj. meliagjzeg podfltkgvn^ig^ nrsanitll funkcijski blok« ki deluje ravno obratno kot funkcijski tiloki uporabniških procesov« ki Jil>\ zaSeitni mehanizem nadzorujt. l.Zajfffitni mehanizem je prooes« ki j« aktiven« dokler obstaja podatkovni predmet» katerega Š0iti. Uporabniški prooesi so navadno vtianl samo na obstoj predmet«« ki vsebuje njihovo programsko kodo« in na kontrolne Informacije. iftlen« aktIvnost --------> I I v ««««««•e»e*» » kontr.ola *- •»«•«•••••ee* • za^efltnl • • mehanizem »<-•»•te*ete««*4 -> — > » uporabniški • • prooesi *--tee I dejanska — aktivnost 2.Uporabni«ki procesi so blokii pr( katerih kontrolne informacije sprožijo aktivnost» ki Jo predpise uporabnik. Zaiftiitni mehanizmi so blokii pri katerih doloifena aktivnost uporabniifkih procesov sprati generiranje kontrolnih informacij. Torej ima raCunalniSki sistem povratno zanko. ' 3.Uporabnijfki proces posredno ali neposredno izvaja tiste ahtivnostii v katerih (s staliSSs uporabnikov) nastopa kot subjekt. ZaSfiltnl nehanizen nadzoruje oz., Izvaja tiste aktivnosti« v katerih njegov podatkovni predmet nastopa kot objekt. Za^Itiltni mehanizem mora predvidevati na svojem vhodu poljubno kombinacijo zahtev za izvedbo operacij nad podatki. V vsakea trenutku se lahko odlofil In sproJi Izvajanje - skupine zahtevi odlogi skupino zahtev za določen fias .ali skupina zahtev zavrnei s tem da generira kontrolne informacije. To pomeni» da smemo v 'zaifCilnem mehan 1 zmu def in irat i poljubno stopno paralelnosti izvajanja operacij nad podatkovnim predmetom. ŽaSfiltni mehanizem Ima tudi svoje spremeni j 1vke stanjat v katerih hrani zgodovino operacij. Ker se vsaka aktivnost rafiunatniSkega sistema odraüa na vrednosti spremen I j ivki za opis odlotìitvene verige splošnega mehanizma za zaSeito podatkov zado^f^ai da reüemoi da se mehanizem odloCa na podlagi vrednosti vseh spremenljivk v sistemu. Pri tem pa moramo vedetli da upoSteva razen vrednosti spremenljivki ki jih obravnavajo uporabniški procesii tudi spremenljivke! ki povedo) kateri procesi obstajajo v s1stemu< v kakSnem stanju soi kako leCe realni fias in predvsemi kdo je sprožil zahtevo za izvajanje neke operacije. Identiteto procesa predstavlja njegovo lastno ime skupaj z imeni vseh prednikov. Ves Cas zanemarjamo vaifno dejstvo» da pomeni klicanje procedure za operacijo nad podatki komunikacijo med uporabniifkim procesom In za^fitnim . mehanizmom. Komunikacija poteka seveda preko skupne spremeni j ivket ki jo tudi nadzoruje zaSfiltnl mehanizem itd.. Vedno pridemo do komunikacije na nekem niljem nivojui za katero smemo retfii da je £e zadovoljivo reallrlrana. Morda se komu zdi trditev, da je zaSBItni mehanizem procesi preozka. Vendar pri tem ne misUmoi da ima zajft! i tni ' mehanizem v sistemu nujno enak poLoj^aj kot uporabniški procesi. ,Proces nam pomeni le ime za spreminjanje skupine spremenljivk v odvisnosti od stopenjske spremenljivke ~ realnega oz. raifunaln 1 äkega «asa. . Od teh spremenljivk so le nekatere iz uporabn 1 j^kega podroSjat torej deklarirane s progr^amom. Zato sei kot smo üe reklli zaifttHnI mehanizem (vsaj v nekaterih jezikih) ne pojavlja v programu kot deklaracija procesa> temvet! - kot del deklaracije pripadajoče podatkovne strukture. Ku pa prevajalnik jezikovni konstrukt realiziral dejstvai da Je zaäöltnl mehanizem proces ali ( v prieierui da definiramo paralelne operacije) celo druüina procesovi ne moremo zanikati. Delovanje zaiflfltnega mehanizma se kate v dveh t azah: 1.Med prevajanjem programa kot za$C!1tai da ne zahtevamo operact j> ki nad zaiäiteno podatkovno strukturo niso def inIranei' al i da eksplicitno ne zahtevama nedefiniranih paralelnosti. 2.Ked izvajanjem programa kot zakasnitev ali zavrnitev operaciji ki niso takoj izvedljive zaradi dinamike celotnega sistemai ki Iz sameg« programa ni razvidnai ker prevajalnik normalno ne izvaja kompletnega vrednotenja ffasovBih razmer (kar bi bilo skoraj nemogoäe ali neekonomično). He sme zaStìitni mehanizem uporabljati le svoje lokalne In globalne spremen IJ ivkei smo prt definiciji bolj kompleksnih operaci], prisiljeni zdrujevat1 veC podatkovnih predmetov v enega. Opis dovoljenih zaporedij operacij postane zelo napregledeni ker. zaSeitni mehanizem nadzoruje veB kot eno funkcijo sistema ali pa se na vmesniku zaSBitnI mehanizem - uporabniBhi procesi pojavljajo operacije z razliSno slopn)o kompleksnosti. To ne pomenil da proslor podatkovnih predmetov hierarhltfno Slrimoi ker predmetii ki jih idruiimoi izginejo, Boljife rezultate dobimo, ffe zaSBitnemu mehanizmu dovolimo uporabo tudi tistih spremenljivki ki jih Sfiitijo drugi zaSBitni mehanizmi. Pridemo do tegai da se zaSOtni mehanizem pojavlja kot enakovreden partner uporabniifkih procesov na vhodu podatkovnih predmetov. Edina razlika med zaSBItnisI mehanizmi in uporabniškimi procesi je tai da so zaSSitnl mehanizmi deklarirani kot pasivni procesit ki tefiejo samo takrati kadar skuSajo uporabniški procesi i zvest^ jneko operacijo nad njihovim podatkovnim predmetom. V sistemu je dovoljeno dInamiSno generiranje procesov. Dovolimo Se dinamiöno generiranje novih podatkovnih predmetovi pa nI veC nobene ovlrei da ne bi pasivnih In uporabniških procesov obravnavali kot enotno vrsto procesov v sistemui le da imajo pasivni procesi posebna nalogo. Dovoljeno naj bo tudi spreminjanje In ukinjanje podatkovnih predmetov In njihovih zaSöitnIh mehanizmov. Spreminjanje lastnosti prostora podatkovnih predmetov sme zahtevati vsak proces v sistemui ne glede na lot ali je pasiven ali aktiven-(uporabniški). Sistemski program sme Izvesti zahtevo po spremembi le v primerui da so izpolnjeni pogoju zaStiite prostora podatkovnih predmetov. Procesi ki zahteva generiranje novega predmetai mora navesti naslednje podatke: -katere spremen L j ivke bo vkljuöil novi .podatkovni predmet. Vse spremenljivke morajo biti globalnei torej Izven vseh obstoječih od uporabnika definiranih podatkovnih predmetov. Smisel ima tudi toi da predmet ne vsebuje nobenih lokalnih spremenljivk. V tem primeru ga generiramo samo zaradi Implementacije bolj kompleksnih operacij nad spremenljivkami v drugih podatkovnih predmetih. -katere globalne spremenljivke bo naslavljal zaSfiitfli mehanizem novega predmeta« -katere tuje podatkovne predmete bo naslavljajl zaSBitni mehanizem In kakSne operacije bo izvajal na njlhi -katere operacije nad novim podatkovnim predmetom naj sestavljajo vmesnik podatkovni predmet - okoljei .-kakSna so legalna zaporedja operacij nad ,podatkovnim predmetom in pod kakSnlmi pogoji. 2aS0itni mehanizem je procesi ki sme posegati v luje podatkovne predmete med odloSanjem in med izvajanjem definiranih operacij. Tako se zgodil da procedure enega zaStfitnega mehanizma kličejo procedure drugih zaSBItnih »ehanizmov in operacije na vmesniku z okoljem posredna posegajo ludi v druge podatkovne predmete. Zato niti nI većf nujnoi da je legalno zaporedje operacij nad enim podatkovnim predmetom popolna v tem smislui da bi zaSBitni sistem reSeval vse probleme s 1 nhron 1 zac i j e procesov - uporabnikov na predmetui ki ga nadzoruje. Be na tistih odsekih zaporedlji ki Se niso popolnli ne dovolimo direktnega dostopa uporabnikov In vkljuBimo pred vhod predmeta d'rug podatkovni predmet oz. njegov x;ii?t!Hnf nahaniz«A* st uporabnikov« zaht*vt vsfikrat filtrirajo. Tako do««f««oi da jahteve* ki so na nek«a vhodu prep«v«dant tn Jih vhod nc zna lzlo01tf> filtrira filter prad len vhadon In prepovadan« lahtave (npr. Interferirajoffi paralelrte operacija) se nikoli ne pojavijo. Programerju ni veif treba direktno graditi koapleksnih podatkovnih jttruktur In zafleitnih nehanlzoovi gradi jih hlerarhitino od «podaj navzgor ali oalo rekurzlvno bolj enostavnih gradnikov. Za£Citni mehanizem mora s i nhron 1 z irat i procese tako« da ne dovoli spreminjanja tistih konstruktov« ki jih fe bere kak proces« in branja tistih konstruktov« ki jih kak proces ta spreminja. Imamo klasičen primer piscev in tfitaicev. Ukrepi procesov« ki uporabljajo znanje iz baze« so posledice prebranega znanja. Zato zahtevamo tudi tu ' dolotfeno stopnjo nedeljivosti vzroka in posledica. Baza znanja naj bi bila slika nekega sveta. Ne glede na tot ali Je ta svet realen ali abstrakten« smemo reči« da se celotno znanje spreminja v odvisnosti od stopenjske spremen i IJ 1vke in logika sveta predpisuje« da se marajo nekateri elementi znanja spremeniti sočasno« to pomeni« da mora staro znanje v trenutku preiti v nova. Zaradi vsej delno àekventfnega delovanja računalnika pa to ni res tn obstaja nevarnost* da tao uporabnik bral kombinacije elementov znànjai k< se v avstu» ki ga opisuje baza manja« ne bi pojavile. Zato je vajena sinhron i zaci jska naloga zaiftfitnega mehanlzna bazei da simulira realno sprentnjòBje sveta in preprefii dostop uporabnikov baze do podatkov> ki se sprealnjajo« med trajanjem prehodnega pojava. Pri tem se naloga ne ujema popolnoma z blokiranjem fiitalcev, enega sintaktičnega konstrukta med njegovim sprem in]an j en. Obstajati mora ukaz za blokado poljubne skupine si nt akt i(!nih konstruktovi dokler vsi :ne dobi jo .nove vrednost 1.Procesi - uporabniki baze znanja morajo za smiselno upoütevanje blokade loSiti med primeronai da je neka izjava v bazi' zanikana ali da v bazi ne obstaja niti trdilna niti nikalna oblika izjave, (fe izjave nI v bazit mora proces avtomatično ponovno preiskovati bazo do preteka, dovoljenega (fasa iskanja In Sele nato podati uporabniku konffno poroCilo. ^Označevanje sintaktlfinih konstruktov» ki naj se navidezno spremenijo Istočasno) in njihovo vklučevanje v bazo po spremembi je nedeljiva operacijai ned katero procesi lahko spreminjajo konstruktei ki so jih ife prej rezervirali kot piscii nI pa dovoljeno branje He označenih konstruktov. 5 inhron1 zac 1jske potrebe v sistemu st narastejot . Ce en ukaz uporabnika sproti izvajanje vefiih procesov. Kol vidlmoi se kaj!e Vpostopkovnost nepostopkovn1h programskih jezikov kot komunikacija sistema in ufiorabnikai implicitno pa tudi med Izvajanjem programov. Postopkovni in nepostopkovni jeziki se po sintaksi bistveno razlikujejo. S postopkovnimi eksplicitno opisujemo procese v r aliuna I n i kui z nepostopkovnimi samo deklariramo relacije med podatki in prepustino gradnjo procedur In organizacijo procesov za iskanje odgovorov na naj^a vpraSanJa sistemu. Med samiia Izvajanjem so problemi komunikacije in sinhronizacije v obeh prime-rih enako pomembni in se rešujejo z ^enakimi pr.l stopi ■ le da se pri nepostophovnem iprogramiranju ne odraKaj.o na jeziku in ker iprocese organizira sistem» so procesni sklopi preprostej F.PrIjatelj Programiranje sprotnih sistemov: Procesi v AOI. IntormatIca 198t/2 and the In vgnezden1h, NAVODILO ČLANKA ZA PRIPRAVO Avtorje [irosimo, da [Kišljejo uredništvu naslov in l(ratel< pov:ii4lek članka ter nav^ejo približen obseg članka (število strani A 4 formata). Uredništvo bo nato poslalo avtorjem ustrezno število formularjev z navodilom, (članek tipkajte na priložene dvokolnnske formulane. Ce potrebujete dodatne formularje, taiiko uporabite bel papir ietili dinieiizij, 1'ri tem pa se morate držati predpisaneija formata, vtmdar pa (ja ne vrišite na papir. Hodite natančni pri tipkanju in temeljiti pri korioitanju. Vas članek bo s foto postopkom f>omanjšan in pi ipj'avijoii M tisk brez kakistiilikoli dodatnih korektur. UporatJljajtfi kvaliteten pisaini stroj. Če le tekst doiiusča (ipornbijajte enojni presledek. Črni trak je obvezen. Članek tipkajte v pj ostor ol)robljeti /, modrimi črtacni. Tipkajte do črt - no preko njili. Odstavek ločite z dvojnim presledkom In lirez Kamikaiija prve vrstice iTOvticja odstavka. 1'rva Siran članka ; a) v sredino zrjoriijega okvir« na prvi strani napišite naslov članka z velikimi cr>.a-ni; t>) v sredino pod naslov članka na(>išite imena avtorJ«v, ime iJi«JjetJu, mesto, državo; c), tia oi-.načenem mestu nba stol|jca napišite |>ov/etek članka v jeziku, v kateiem Je iiri[iisan članek, l'ovüetek naj ne bo daljši od 10 vrst, d) če članek ni v anrjleščitii, ampak v katerem od jugoslo-vanskili Jezikov i/.pustite 2 cm in Jiapi-šite povzetek tndi v.anrjieSčini. 1'rtMl pnvzetkoni napiäilu amjleškj naslov članka velikimi črkami. rov/.elek naj ne bo dalj.si «d 1(1 vrst. Ču je članek v tujem Jeziku napišite povzetek tudi v enem od jugoslovanskih jezikov; ■ e) izpustite 2 cm Iti pričnite v levo kuliMio pisati članek. Druga in naslecJnje strani članka: Kol je označeno na formularju začnite tijikati tekst druge In naialednjili strani v zgornjem leveni kotu, Naslovi (HMjIavij: naslove ločuje od ostalega teksta dvojni pr<>aledek, Če nekaterili znakov ne morete v|iisati s strojem jih čitljivo vpišite s črnim črnilom ali aviiičiiikmn, Ne il|j jireslikali. ilustracije morajo bili ostie, Jasne in črno iiitie. Če Jili vključite v t<-!kst, Me umrajd skladati & pietlpisauiiii tor-matom. I,alik(t |ia jili vstavite tuili na konec članku, vi:ii-dar inoriijo v teui priuieru ostati v niejali dvii' koiotisknga formata. Vse ilusliarije morate.' { nalej>itl) vataviti sami na ustrezno tneslo. Najiake pri tipKauJii sti lahko [lupravljajo s korekcijsko folijo ali iieiim ttilem. Nn|j£(čne liesede, si sivk«! ali ulijta-vke pa laltko ponovno natipkate na nept uzui en papir in ga pazljivo nalepile na mesto napake. V zgornjem desnem kotu izven tnodro označeiieiia rnba oštevilčite strani članka s svinčnikom, tako dà jili Je mogoče zbrisali. ("asopis INI'OIIMATICA LIredniStvo, l'ariiiovu 41, (illMKl i^jiibljan,! Nfu-očam .se na časopis 1NK( )iiMA IK-A . frcdplai" il.i bom ii«vr.šil ))o iirejeniii vaši> poluZDico, ( «nili: letna naročtvina za delovne ortjanizai ije r>(M),l)(l din, za pii.sameziiikH 21111,ÜU/IÜ(1 ,U,t)() din Časopis ntl pošiljajte na naslov Q stanovanja "j delovne organizar i je, 1'ri i mek........................................... I me........................................... Naslov slanovaiija ............................................. l'o-stna številka_Kraj,..................... Naslov delovne organizacije Delovna organi icarlju............................... mir«,............................................ 1'ošina številka_Krai....................... ............................. I'mlpl^j; INSTRUCTIONS FOR PREPARATION OF A MANUSCRIPT Authors üre inviU;|n oxuii;tt(i aiy.e of tinnir cuiilriliutions { ili terms ol' A 4 |«f)f?i- ) . Süljseqütfiitly tluìy will roceive t!i«> oiitoi 's kHs. I'VIm: yoiii- iiiiinuscri|it on tlie unclosed two-cotuiiin-fiiimal iniiimscripl jiajier. If you reiiuirn adflitioiial m.iiiusc:ri|)t pifpnr you nan uso simil.ir-siue wtiite paper anE! paix;r . Ho accurate in your ty|iiii(i aiifl tlirojijli in your in nol road-iiKj. Tliis iiiaiiuscri|)t will l)e pliotograpliically roiiucod iiir rt!prtxlu(;(i martiin liuos un tlu- pai^i-r, typiiui to tile lilies, but not lieyoiid tlieni. I iimlil«; SjKn. !■ botwocri paraiji aplis , Kirst inaiuiscj ipt: a) nl the liirjlish title of the papf:r . Ilse blurk letloi R for Iht; title. The leiKjht of the ab.sliMi t .sliouhl not Im' ijrealer Ih.in 10 lines. e) Drop 2 nin and be(|in the lext of the paper in llii' leli coluniii. SecoiKi and siict-eerlMii) pafic^s of the nianu.sci ipt : As it is marked on the jjapoi; beijin tlie lexl nl ilii- sri nnd and .siic ceediiKj iiai|es in the left n[ipt!r corner. Foi mat of tlie s ut J jix-1 lieadiiujs: ik?a(litK|s are separati^d tnirii text hy double .sparÌLi<|. If some ch.iiacteis are not available on yotn lypwi iter wrile llieni letjibly in bl.ick ink or with a pencil. I)" noi use blue ink, l.ieranse it shows poorly. 1 llnst ral i and i leal . If yon incorporale yotii i!lu.slr.'itions iole the lexl the proposal iorniat. Illustration can also be pl.n (rd al the i»nd of all text material provided, however, llmt they are kept williin tin; nianjiii lines of the hill siy.i-two-cobiniii format. All il lust ral iuns nui.si bi- pi.iced into approju iale positons in llie text hy the author, ''yphiu ei ror.s may he ciu recleil i>y iisinij whih? cori ertinn paint 0|- hy ri'lypiiit) (he wm d, senteni:e ni pal aijr.M|ili 'Ui a ])iece of fitiaijiie , white paper and pa.stiiiij it iirarly ovei errors Use pencil to nilniher eat h paije on the ilpfxil-H iijiil-h.ind coi ner of the manuscript , oiUside the blue mai'i|in lim-s so thai tlie niimbers niay be erased. ENKRIPCIJA S POMOČJO FUNKCIJE XOR SMOLEJ VITOMIR UDK: 681.3,06:003.6 VISOKA ŠOLA ZA ORGANIZACIJO DELA, KRANJ UNIVERZA V MARIBORU POVZETEK: logifina funkcija nor se vse EeSCe uporablja kot jedro (enostavne j j! ih> algoritmov za en-kripcijo. V Članku se pojasni lastnosti te funkcijei zaradi katerih je primerna ra te nanenei in pokaže nekaj naBinov vgradnje v enostavne programe za enkripcijo in déhripcijo i nformae i j e, ENCRYPTION WITH THE HELP OF XOR FUNCTION: logical function lor (eiclufive or) is being more and more frequently used for encryption. Its basic properties are discussedi particularly in conneetiort with its use for encryption purposesi and several uays of incorporating it in simple data encrypt t ion and decryption programs are shown. UVOD 7ssebnost podatkov v raCunalniku si lahko taied drugim) zagotovimo tudi i enkripcijoi to jei da predstavimo podatke na naSint ki ga ni niogoEe raiumet i bres inverznega procesa) to je dekripcije. Res da nan veSìna raSunalniäkih sistemov na en ali drug naSin omogoGai da se zavarujemo pred moinostjo nepoobla^Genega dostopa do podatkov ~ recimo s sistemom gesel za dostopi Sitanjei pisanje in popravljanje vsebine -i Vsak sistem pa ima v svojih okopih luknje ! za katere prviS niti ne vemoi drugie pa jih tudi ne bi mogli zapolniti (tipičen primer bi bil sistemski pro-Brameri ki smo se mu zamerili). S pomoSjo enkripcije se lahko Se dodatno zavarujemo pred nepokl i car; ifl)i oEmit ki jih zanimajo bodisi naŽi programii bodisi naäi podatki. PROGRAM ZA ENKRIPCIJO 5i lahkn zaffliäl jasio kot filteri ki sesa vase ni? vhodnih znakov» jih pretvori in daje od sebe spremenjeni zahodiran niz znakov. Kako se bo znak na vhodui spremenil v izhodni znaki nam doloCs niz znakovi ki ga bomo (seveda) imenovali klju6. Ob pomoči funkcije gete i ki v argumentu vrafia preSitani znak > in subrutine putct ! i = iiiodCi >10) + 1 go to lOD end Funkcija gete nam vrne v primeru konca podatkov vrednost -li drugaCe pa (recimo) vrednost 0. Beseda CHARACTER nam deklarira spremenljivke in funkcije znakovnega tipa! v primeru fortrana na sistemu DELTA piäemo namesto CHARACTER LOGICAL»!. Mod je standardna fortranska funkcija celega tipa: vrne nam ostanek pri celem deljenju Števila i z j.V kolikor ni vgrajena« si lahko pomagamo z enovrstično funkcijo fflodd.j) = V b) /i/ Kot smo dejal i I predstavlja lor samo eno od ffioSnosti za doloiiitev izhodnega znaka na osnovi znaka na vhodu in znaka v kljuEu. Kaj je tako s ioipat i finega na tej oper a C i j i ? Oglejmo si najprej nekaj prepro'stih resnic v^ zvezi 2 lor. Iz tabele lor in (z /i/ lahko preverimoi da veljajo naslednje enaCbe i 9 v. b = b ^ a ava = <» a -v = a /23/ /2b/ /2c/ Zamislimo si sedai, da saio znak b zakodi-rali z snakom a in izpisali kot rnak c na vhod : a b —-> e Kako bomo ii znaka c dobili nazaj prvotni znaV b? Odgovor je zelo preprost in eleganten: s ponovno enkripcijo z znakom a. Dokaz sledi: a-V-c = a-V-a-y-b ■b (zarad i 2b3 ----> b (zaradi 2c in 2a) Za dekripciio teksta, ki smo zakodirali s pomofijo ekskluzivne or funkcije, uporabimo ^sti program in isti kljuli. Filter za en-in dekripcijo sta torej identitna. To tudi pomeni, da lahko zlahka dvakrat zakodiramo eno in isto informacijo. Naj bo prvi kljuS HEJ. drugi pa BRIGADE, informacijo si lahko povrnemo z uporabo obeh klj^jSsv Cv poljubnem vrstnem redu za radi simetrije funkcije nor). Konftni rez iiltat snkripcije je. kot da bi zakodirali in'flrmacij;% iliuftem, kat erega dol Ä i na J e najmanjži skupni de H t e IJ dol Sin obeh kljubev, v naäem primeru 3 » 7- 21 ^na kov. Teh 21 znakov pa Pr«'^®*®''^^®..'' ki je dales od besed Hej m brigade m ga praktično (Se nismo profesionalen kripto-log) ne moremo razbiti. IMP1.EMENTACIJE FUNKCIJE XOR Tu predlagam dve možnosti implenentaoi je Kor funkcije. in sicer najprej za DELTA sistem (to smo uporabljali na VSOD) < potem pa Se predlog za CDC cyber Republiškega računskega centra. DELTA: namesto funkcije XOR smo definirali subrutino XOR, ki je imela tri parametre (tretji parameter predstavlja ekskluzivni or prvih dveh, vsi trije so znaki). Subrutina XOR je napisana s pomoEjo zbirnika MACRO! XOR: ; .TITLE XOR INC R5 INC RS CLR R1 BISB e(H5)+,Rl CLR R2 BISB Č(f!5) + ,R2 XOR R1,R2 MÖVB R2,E(R5) RETURN ,END Ker pozna Fortran na CDC Cyber ekskluzivni or kot lastno (intrinsic) funkcijoi lahko program za enkripcijo prepiSemo takega kot je brez sprememb. Da pa ne bi zapravljali prostora in Gasa, lahko pospeSimo proces tako, da hkrati obdela *or funkcija deset znakov, kolikor jih gre v eno besedo računalnika. Ce si program Se poenostavimo in namesto primitivov gete in putc uporabimo enostavno čitanje in pisanje datotek dolžine 80 znakov, dobimo naslednji program za enkripcijo: PROGRAM CRYPT DIMENSION VH0D(8)tlZH0D(8) PATA KLJUC/lOHBEZAMZAPRl/ 1 = 1 IDD READ l.MHOD 1 FORMAT (SAIO) IF (E0F(3)) 50 TO 999 DO 2 I=li8 IZHOD(I) = XOR(KLJUC.VHOD(I)) 2 CONTINUE PRINT 1,IZHOD GO TO 100 <»99 CONTINUE STOP EMD JAKLJUftTK Pouriariti ffioramo, da obstajajo daleko moSneiže in efektnejSe metode enkripoijet kot je predstavljena, ki je tpoleg cezarjEvega algoritma) ena najstarejäih in najbolj znanih. Ne glede na to, da se v vsakem centru najde kaka bistra glava, ki se bo z veseljem lotila razbijanja kljuöa, bw v veSini primerov zakodirana informaci-13 na varnem, v kolikor paC slučajno ne nakracamo kljufia s svinčnikom na terfliinaU da ga ne b t pozabi I i. nasvet osovraženemu sistemskemu pro-■gramerju: v kolikor vam vaSi sovražniki v centru skrivajo informacijo na predlagani način, uporabite naslednji pristop: S. p&iSSite program za enkripcijo 2. poiščite zakodirano informacijo 3. ;;đkodirdjte podatke s pomočjo programa in ključa, ki ga seveda poznate le vi N O V ZANIMIVOSTI BaćunalniSkl model simulira obnaSanje inoìganekih celic pri epileptičnih napadih tint******* t ******** Simulacij ska tehnika je učinkovit pripomoöek pri analizi izmenjevalnih odnosov (relacij, presnove) med stotinami živCnih celic v možganih. Takšne raziskave ni mogoöe opraviti neposredno v možganskem tkivu, ker zahtevajo prave (realne) meritve vaakifi pO en par (dvojico) celic. RaCunalniäka simulacija pa omogoča, da sé raziskujejo dogodki, ki zajamejo stotine aH tisoče določenih živčnih celic. lüpileptiSni napadi sé sprožajo zaradi nenadnih, nenormalnih procesov električnega praznenja v živčnih celicah. Pri tem razlikujemo dve vrsti napadov: fokalne, ki so lokalizirani v enem delu (središču) moiganov in generalizirane, ki zajamejo celotne možgane in sprožijo t.im. "grand mal" napad. S simulacijo so bile raziskane spremembe, živčnih celic, ki se pojavljajo pred fokalnlm (žariščnim) tipom napada. V normalnem stanju izkazujejo vse živčne celice določeno električno dejavnost, ki je posledica različnih ionskih porazdelitev {npr, kalijevih In natrijevih ionov) v notranjem in zunanjem okolju celic. Nastajajoče potencialne razlike se lahko merijo z namestitvijo tankih elektrod v tkivo. Ioni so izvir zapletenih elektrokemičnih Iztnenjevalnih odnosov v mreži (povezani množici> živčnih celic. Znanstveniki so preučevali en del možganov, kjer se v živčnih celicah navadno v vsaki sekundi sproži praznitev, toda ne po nekem vnaprej določenem vzorcu. Tipičen dogodek pred mogočim začetkom epileptičnega napada fokalnega tipa je, da se stotine celic začnejo prazniti skorajda sinhróno in da postane ta dogodek v zapisu možganskih valov (EEG) viden kot nenadna "interiktalna" konica. V možganih se tako pojavi neke vrste fiziološka nevihta. Iz takih slnhronlh praznenj je moč sklepati, da je določen del možganov nenormalen in da se lahko pri ustreznih pogojih sproži epileptlčni napad. Doslej še ni znano, kaköni so pri tem robni pogoji oziroma kaj pogojuje praznitev v živčni celici, da ta steče nenadoma po sinhronem vzorcu. Za odgovor na to vprašanje so potrebne nove laboratorijske raziskave in simulacija. Za simulacijo sinhrone praznitve je bil razvit računalniški model, k.i ponazarja samostojno praznenje v živčni celici in model za praznenje v mreži celic. Pri tem se je pokazalo, da je bilo teSavneje oblikovati osnovni model (za eno celico) z mehanizmom praznenja in lažje celični mrežni model. Vzrok za to težavnost je v tem, ker vrsta procesov v možganski celici, hi so povezani z praznenjem, ni dovolj znanih in raziskanih. Računalniška simulacija električno poti skozi celico zahteva takšno ekstrapolacijo prvotno razvite teorije, da je moč pojasniti električno aktivnost aksonov, tj. povezovalnih vlaken med živčnimi celicami. Dodatno k aksonski teoriji so bile izvedene nadaljne predpostavko o notranjem obnašanju celice. Ta predpostavke so privzete iz znanja o živčnih celicah v možganih névretenčarjev, kot so npr. polži. Razvite enačbe, ki so bile vstavljene v veliki računalnik raziskovalnega centra podjtitja iUM, imajo 44 primarnih spremenljivk, ki so v medsebojnih odnosih (odvisnostih), Rezultati računalniške simulacije kiiKfjo, da praznenje ene celice lahko povzroči [jfaznenjc druge celice in pri tem nastane sinhrnnl vzorei; verižne reakcije. Nadalje je z uporabo modela mogoče oblikovati sklepe o drugsičnJ.h potekih verižnih reakcij in o tem, kaj pdjjelje k reakciji, podobni epileptičnemu napčulu. Navadno se vsaka celica sama izklopi in tako prekine; verižno reakcijo. Vendar obstajajo tiejodvisni eksperimentalni dokazi, na osnovi katerih sklepamo, da je mogoče zavirati Lzklopni mehanizem živčnih celic, ki ostajajo tako v stanju vzburjenja in s tem povzročijo napad. Računalniška simulacija pokaže, d.i sci s povečanjem števila kalijevih ionov v mr-žijanski tekočini lahko doseže stanje stalne vzburjenosti celic. Znanstvenika Roger Taub in K.S.Wijiig sta poročala o svojih raziskavah v okviru "il.-th Annual Meeting of the Society for Neurosolcnct;" V Los Angelosu oktobra 198J. A.P.železnikar TEORIJA KORPUSA Od 16. do 19, decembra 1981. godine održan je u Beogradu seminar "Teorija korpusa", u organizaciji Matematičkog instituta i Filološkog fakulteta. Na seminaru su govorili prof, li. Ci merman (Univ.Sarland), dr. V.Tojbert (pom.dir.IDS u Manhajmu) i G.Frakenpol (IDS,H3nhajm). Seminar je organizovan uz pomod KIC SPN^ Dr Tojbert je izložio probleme u stvaranju korpusa (reprezentativnog uzorka) jednog prirodnog jezika, kao i različite pristupe u njihovom re-lavanju. Tako su razmotreni kriterijumi pri izboru tekstova za korpus, pitanje reprezentativnosti korpusa, kao i načini obeležavanja i kodiranja tekstova u korpusu. S druge strane, izloženi su i različiti aspekti upotrebe korpusa, kako u lingvističkim istraživanjima (npr, leksikografsko-graniatlčke banke podataka, konstrulsanje rečnika), tako i u računarskim (npr, prirodno-jezički Interfejui 'za komunikaciju sa informacionlm sistemom, itd,) Posebno je prikazan sistem M0LEX/PLID1S, koji prevodi ulazni tekst na prirodnom jeziku u Internu reprezentaciju zasnovanu na predikatskom računu na osnovu koje se vrSe dalja pretraživanja u informaclonom sistemu. Komponenta MOLEX je generator inorfološkog leksikona a deo sistema PMDIS (PASSI) se može koristiti za morfo-sintak-sičku analizu specijallzovanih korpusa. Prof. Cimerman je obradio, pre svega, problem konstruisanja 1 upotrebe korpusa strukovnih jezika, iluBtrujudi ga primerom sistema JoDO za automatsko indeksiranje i pronalaženje pravnih dokumenata prema sadržaju. Obradjeni su posebno problemi morfološke analize, automatske lemati-zacije i Blntakslčke i semantičke vlšeznačnosti. D.Vitas UNIVERSITY COMPUTING CENTRE, ZAGREB SVEUCILISNI RAČUNSKI CENTAR, ZAGREB Gdje: Where: Cavtat (Dubrovnik), hotel CROATIA Prva obavijest First notice IV MEĐUNARODNI SIMPOZIJ »KOMPJUTER NA SVEUČILIŠTU« Kada: When: Rokovi Deadlines Preliminarne prljave: Preliminary registration: Kompletni radovi: Manuscripts: 24—28. 5. 1982, 15. 11. 1981. 1. 02. 1982. IV INTERNATIONAL SYMPOSIUM »COMPUTER AT THE UNIVERSITY« Cavtat, 24—28. svibnja t982. Cavtat, 24th — 28th May, 1982. TEME 1. Problematika razvoja I rada sveučilišnih računskih cehtara 2. Izobrazba kadrova iz područja računarskih znanosti J tehnologije 3. Izobrazba nastavnika i studenata sveučilišta u primjeni informatičkih sredstava i metoda u znanstvenom, nastavnom i stručnom radu 4. Planiranje, projektiranje i izgradnja informacijskih sistema • 5. Informacijski sistemi u izobrazbi 6. Informacijski sistemi za praćenje znanstvenoistraživačkog i nastavnog rada, informaci ski sistemi za bibliotečno-dokumentacijsku djeatnost i poslovni informacijski sistemi Konačna prijava (poštom): Final registration: 30. 04. 1982. Za sve dodatne For all additional Informacije obratite se information please na: contact: SVEUCILISNI RAČUNSKI UNVERSITY COMPUTING CENTAR (za simpozij] Engelsova b.b. 41000 Zagreb Telex: 21871 yu srce Telefoni: 04 - - Ispitivanje osobina simetričnosti,Booieovih funkcija,u spektrainom domenu , ' V, I, Varshavsky, V B, Ivlarakhovsky. V I. Timofthiin - Asynchronous Process Control and Self-Timed Circuits . E Milev ; The Capacity ol a.Class ot Broadcast Cliannefs ' . L. Barsanti. G Remorini ',-'-■ " . ..i' ■ ' , ' . ■ Visible'Cun/es Belonging to a Surface'Made Up,Patches of Quadrii Surfaces , . , ' , , V'' ' Sistemi za upravljahje in administracijo Systems for Management and Administration I Cop. N Milas. P, D|ukan ■ .' ' ■ ,' ' ■ Model intormaciiskog sistema u Organizacijama'udruženog rada Qradievinarstva ' , ' , and Business Gami Planiranje u bankama u svijetlu'automatske obrade podataka D, Krstit;, D Ferjanćić-Šfigfic Pristopjk planiranju baze podatkov za informacijski sistem v S N Wilas f Čop, P bjukan ■ • Uvjeti za realizaciju modela informacijskog sistema u RO gratjjevihslva u praksi ' ' J. Novak, fvl A Vouk ■ , , ■ ' SIMPAD: Sistem za vodjenje adresara simpozija V J Rybaiskij - ,■■',■■ Big Construction Project'Sysferns and Business Games , A Szymborski MACO Package ■ Upravljanje procesov Process Control M. Atanasijević, F. Bremšak, R Karba. M Milandvic Razstavljanje multivariabilnih sistemov z uporabo povratnozan regulatorjev ' ' ' " . N. Bogunovir; L Cucančic. D. Gambager- . ' i On the Software Trapping o( the Spurious Program Interrupt Requests, Z. Bugannović. S, Slankovič ■ ■ Programski paket STREG za 6imulaci|u adaptivnih sistema L, Gorjup, S, Marčetič. B. Mitrić Računalniški piogramski paket za poljuhne —'specialne klinkr oz cemente Dj. JuričiC. F J Essomba Primerjava nekaterih večnivojskih opfimazicijskih metod E.Kocuvan Modeliranje m napovedovanje stobastičnih procesov ; L. Kos. N. Pavešič Računalniki v sistemih vodenja železniškega prometa . L. Lenari, N. Panič ; Distribuirana podatkovna, baza v sistemih daljinskega vodenja Z. Mahič Softverski prislup rješenju akviziciie analognih.signala I A/D konverzije ' M. Naumovič. ■ ■ , Mikroprocesorska realizacija algoritma vremenski oplimàlrog upravljanja u digitalnom servosistemu N. Milenkovič, S Nikniić Mikroračunarska realizacija G-lunkcija numerički upravljanih alatnih mašina B. Nemec, M Miianovic. R Kaiba, F. Bremšak Hibridna realizacija algoritma ia sprolno vodenje rmullivariabilnega sistema po metodi inverznih Nyc|uisloviti diagramov N, Panic P PotGrlin Mikroračunalniški krmilnih sinopličnih plošč A. Rupnik Prispevek k reševanju problemov okrnienega nabora insirukcij zbirnikov procesnih računalnikov ob primeru pretvorbe BCD kode V. Rupnik O nekem razredu zvezno paramelnziranlh zveznih Irnearnih problemov neterminf^lnega upravljania F Žlahtič Zahtevam parsmetri pror;ram&ke in slrojne opreme pri obdelavi informaci) za vodenie elektroenergetskih sistemov S Srećković, B llic Osobenošli orojektovania dijaloga radmk-rnčunar (CNC) A, Giebenc Sprotno vodenje S. Divjak, P. Oblak, A Ružič Principi Ličen|a in krmiljenja nekaterih |ugos]ovanskih robotov Razne aplikacije v znanosti in tehniki Miscellaneous Scientific and Engineering Applications T Damij, F, Gran Uporaba (inearnega prograntiranja pri planiranju dietne prehrane S. Oembit/ Automatsko otknvanie grešaka u tekstu V. Dolećek, N, Kovačina Mehanički odziv pumpno-turbinskog agregata na periodične I aperiodične pobude M, Grnitrovič Aproksimativno određjivanie odziva u linearnim mrežama sa jednin nestacionarnim eiementom M Ginitrovič Rešavanje nelinearnih in neslacionarnih mreža metodom Integralni jeđnačina D Goljanin X — Ray Spectra Fitting Prog G, Guida, C, Tasso Dialog v/ilh Data Bases: An Etiective Natural Language Interlace D Hrisoho. K, Zatirovska, N Atanasov Intofmacioni sistem za kontrolu i programiranu individualizaciju lečenja putem nemodialize B Jenko, A Paulin, N Bezič Parametrična obdelava trajektonie naelektrenega deica V osnosimctričnem elektrostatskem prostoru G. Jovanović-Dolećek Računarski postupci za nalaženie zadanih podskupova stabala A. Jurrtian Primiena AOP-a u ispitivanju smiera i veličina oscilacija sezonskih pojava A. Jurman Primjena AOP-a u statističkim ispitivanjima hipoteze ovisnosti nekoliko varijabli J. Lončar Izračunavanje debalansa lopatica zrakoplovnih i drugih turbina u različitim metrikama M, J, Lončar Proračun optimalnog balanga kod zrakoplovniči i drugih turhina 15, B, tVlarangelli Predicative Encoding in Progressive Transmission of Screened Photos 16. M, Marinkovtć, I Hajzler Praktično koriščenje računata u pripremi procesa proizvodnic pnmenom simulacije na odabiranju modela linearnog programiranj, 17, I, Meško, S. Meglič Računalniški program za modei penalov pn normalno porazdrljenil slučajniti spremenljivkah 18, ty. Oblak, R, Pušenjak Računanje lupin po leoriji loma 19. D, B. Popovski Two Methods tor Solving * tlx) 20 H Pušenjak Snovanje elektronskih optičnih sistemov s pomočjo digitalnih računalnikov (II del) 21 S. Sekulic Opšta metodologija za odredjivanje režima obrade metodom modeliranja 22. M. S Stankovič, R. S. Stankovič Analiza procesa odabiranja u Walsh Founerovom domenu 23 M. M Stankovič, R S Stankovič Ispitivanje uslova simetnčnosti prekidačkib funkcija u spektralnom domenu 24. A. Takač, A. Markovič Mikroprocesorska podrška alestuanja SDR 25. I. Tvrdy, G, Kandus Implemenlacija naročniških (unkcij v mikroračunalniško krmiljenih telefonskih contralah 26. M Lesjak fvlikroračunalniško vodeno adaptivno merjenje koncentracije HF v ozračju 27 M. Mete. B Grm Studij procesa lermantacije s pomočjo on-lme simuliranja procesa in dograjevanja matematičnega modela 20. T. Siebe Metodologija strukturirane izdeiave funkcijske arhitektuie sistema 29, A Jezernik, S Bader. J Cop. M Pelernel, Z Žtvee Zamisel menujskega sistema SfCAD za računalniško konstruiranje na domači računalnižkl opremi 30. M. Kac, J Cop. 8. Golob. M. Tetičkovič Realizacija računalniške grafike z domačo računalniško opremo VII Vzgoja in aplikacije v humanistiki Education and Applications in Humanities 1 F. Ružić Microcomputers Impact on Educational Process Uvodni seminar o uporabi on-line informacijskega sistema DIALOG Introductory seminar of DIALOG on-line information system usage Ljubljana, 17. in 18, 5. 1982 Organizator: Informacijski center v sodelovanju z dialog Infornnation Systems Inc. DELTA-KOPA 2000 video terminal della compulEr systems The DELTA-KOPA 2000 is a video dispiay terminal, based on the microprocessor technology and can be easily improved and qualified for more complete action execution. The terminal is simple to use, but with many features that facilitate work and improve communications. The DELTA-KOPA 2000 is a result of our own research and development. FEATURES — up to 132 characters per line — double-size characters; double-width and double-height — split screen capability — easily upgraded to an {dependent system — selectable clear or dark screen — 7x9 dot matrix characters — blinking, underline, and dual intensity characters, combination of all attributes on one character without the screen position loss — settabletabs — video display stops at full screen — separated keyboard — standard numeric/function keypad — special graphic characters — ertremely easy maintenance — built-in self-test diagnostics — special video output port — special line printer output port — monitor inclination adaptation — table, hanging or wall mounting — KOPA 700, KOPA 1000, VT 100, VT 52 compatibility mode — LED indicators for programme control — uncontacted feature settings — chosen feature setting are held also after the power off — Duplex, asynchronous communication lines SPECIFICATIONS Dimensions: Monitor/ without support with support Keyboard Weight: Working conditions: Power supply: Wideo screen: cathod tube Format Cliaracters Active screen surface Character set Keyboard: l(eys Additional l