• Ei tuloksia

/1/ Mekly, L.J. A Systems Approach to Software Design

Representation. Ph.D. Thesis, Northwestern University, Evanston, Illinois, 1979, 204 s.

/2/ Brauer, W. (ed.) Met Theory and Applications. Lecture Motes in Computer Science, Vol. 84, Springer Verlag, Berlin, 1930.

/3/ Lipovski, G.J. On some parallel programming techniques.

Proc. Compsас 73, IEEE, 1978, s. 781-739.

/4/ Aspelund J., Hartimo I. Multimicrosystem - a low-cost way to fault-tolerant data processing, MIKl'76 Inter­

national Symposium, Zürich 1976, 3 s.

/5/ Pulkkis, G., Pöyhönen, P. Performance modelling of a class of asynchronous TMR processor systems. Second International Conference on Distributed Computer Systems, Paris, 1981.

/6/ Pulkkis, G., Saloriutta, L. A Hierarchical performance model of a fault-tolerant multimicroprocessor. Hyväksyt­

ty esitettäväksi International Conference on Fault-

Tolerant Systems and Diagnostics-konferenssiin Brno :ssa, syyskuussa 1981.

/7/ Junni, P. Computer Numerical Control and Multi­

processors. Julkaistaan teknillisen korkeakoulun digitaalitekniikan laboratorion C-sarjassa.

/8/ Junni, P. Specification of a Numerically Controlled Machine Tool. Julkaistaan teknillisen korkeakoulun digitaalitekniikan laboratorion B-sarjassa

/9/ Flynn, M.J. Some computer organizations and their

effectiveness. IEEE Transactions on Computers, 9 1972, s. 948-960.

/10/ Fuller, S.H., Harbison, S.P. The C.mmp Multiprocessor.

Technical Report CMU-CS-73-146, Carnegie Mellon Univer­

sity, 1978, 28 s.

/11/ Wulf, W., Levin, R., Pierson, C. Overviev of the Hydra operating system development. Operating Systems Reviev vol 9 Nov. 1975. s. 122-140.

/12/ Swan, R.J., Fuller, S.H., Siewiorek, D.P. Cm*— A modular multimicroprocessor. The Seventh Annual International Conference on Fault-Tolerant Computing, Los Angeles IEEE, 1977, s. 637-644.

/13/ Siewiorek, D.P., Сапера, M., Clark, S. C.vmp: The architecture and implementation of a fault tolerant multiprocessor. The Seventh International Conference on Fault-Tolerant Computing, Los Angeles, IEEE, 1977,

s. 37-43.

/14/ Wensley, J.H., et al. SIFT: design and analysis of a fault-tolerant computer for aircraft control. Proc.

IEEE 66, 10 1978, s. 1240-1255.

/15/ Hopkins, A.L., et al. FTMP - a highly reliable fault-tolerant multiprocessor for aircraft. Proc. IEEE 66, 10 1978, s. 1221-1239.

/16/ Mathur, F.P. Reliability modelling and architecture of ultrareliable fault-tolerant digital computers. Ph.D.

Thesis, University of California-Los Angeles, Los Angeles, 1970.

/17/ Huhtanen, T., Nikkilä, S. uC* - A Hybrid Redundant

Fault-Tolerant Multimicroprocessor. Helsinki University of Technology, Digital Systems Laboratory, Report

B6/1979, 21 s.

/18/ Aspelund, J., Lucenius, J., Pulkkis, G. Non standard intermodular interfaces in the fault-tolerant multipro­

cessor uC*. Hyväksytty esitettäväksi 2nd Symposium on Microcomputer and Microprocessor Applications-konferens- sissa, Budapestissa 1981, 19 s.

/19/ Lucenius, J. Planering av bussprioritetslogik, styrprog- ram och rostningskretsanslutning till mangmikroprocesor- systemet uC*, Diplomarbete, Tekniska Hogskulan i Helsing fors, 1980.

/20/ Lehtinen, T., Nikkilä, S. A general-purpose hybrid

redundant output system for multiprocessors. Proc. 5th International Seminar Applied Aspects of the Automata Theory, Varna, 1979, s. 595-604.

/21/ Lehtinen, T., Nikkilä, S. A Petri-net model for a hybrid redundant output system. Helsinki University of Techno­

logy, Digital Systems Laboratory, Report B10/1990, 12 s.

/22/ Manna, J. Mathematical theory of computation. Opetusmate riaalina kurssilla 1.79.46 1980, ss. 1-20.

/23/ Brinch Hansen, P. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering, 2 1975.

/24/ Dennis, J.B. First version of a data-flow procedure language. Lecture Notes in Computer Science, 19 1974, s. 637-643.

/25/ Aspelund, J. On using data-flow in a system of multiple single board computers. Proc. 6th ACM European Regional Conference on Systems Architecture, ICS'81 London, 1981, s. 454-461.

/26/ Aspelund, J. A symmetric operating system for the hybrid redundant multimicroprocessor uC*. in Tiberghien et al.

(eds.) Microprocessors and Their Applications, North Holland, Amsterdam, 1979, s. 147-151.

/27/ Petri, C.A. Kommunikation mit Automaten. Schriften des Rheinisch-Westfalischen Institutes für Instrumentelle Mathematik an der Universität Bonn, lieft 2, Bonn, West Germany, 1962, 89 s.

/28/ Holt, A.W., Commoner, F. Events and Conditions. Report Project MAC Conference on Concurrent Systems and

Parallel Computation 1970.

/29/ Shapiro, R.M., Saint, H. The Representation of

Algorithms. Applied data research Inc., Technical Report RADC—TR—69—313, NTIS, New York, 1969.

/30/ Patil, S.S. Co-ordination of asynchronous events, MIT, Project MAC Technical report 72, Cambridge MA, 1970.

/31/ Genrich, H.J., Lautenbach, K. System modelling with high level Petri-nets. Theoretical Computer Science 13, 1981, s. 109-136.

/32/ Agerwala, T. Putting petri nets to work. IEEE Computer, Dec. 1979, 85-94.

/33/ Azema, P., Berthomieu, В., Decitre, P. The design and validation by Petri nets of a mechanism for the

invocation of remote servers. Proc. IFIP 80 Congress, North Holland, Amsterdam 1980, s. 599-604.

/34/ Agerwala, T., Flynn, M. Comments on capabilities, limitetions and correctness of Petri-nets. Proc. 1st Annual Symposium on Computer Architecture, ACM, New York, 1973.

/35/ Peterson, J.L. A note on colored Petri nets, Information Processing Letters 11, 1 1980, s. 40-43.

/36/ Peterson, J.L. Petri nets. Computing Surveys 9, Sep.

1977, s. 223-252.

/37/ Savolainen, V. Vekkoteorian Perusteet. Gaudeamus 1973, 249 s.

/38/ Linturi, R. Petri-verkot. Julkaistaan Prosessori- lehdessä alkusyksyllä 1981, 15 liuskaa.

/39/ Teschler, L. Computers that won't fail. Machine Design, 11 1978, s. 91-97.

/40/ Pacas-Scewes, E A Design Methodology for Digital

Systems Using Petri Nets. Ph.D. Thesis, The University of Texas at Austin, 1979, 321 s.

/41/ Aspelund, J., Linturi, R. Utilizing Petri net models for multiprocessor synchronization and scheduling.

Helsinki University of Technology, Digital Systems Laboratory, Report ¡312/1981, 21 s.

/42/ Aspelund, J., Linturi, R. A Petri net approach to task scheduling in a fault tolerant multiprocessor. 5th

Symposium in Informatics "Jahorina'81", Sarajevo 1981, 10 s.

/43/ Aspelund, J., Linturi, R. Evaluating a symmetric fault- tolerant operating system with locality Petri nets. Hy­

väksytty esitettäväksi International Conference on Fault-Tolerant Systems and Diagnostics - konferenssiin Brno :ssa, syyskuussa 1981, 7 s.

/44/ Aspelund, J., Linturi, R. A fault-tolerant multi­

processor operating system modeled with locality Petri nets. Hyväksytty esitettäväksi 7th Symposium on Micro­

processing and microprogramming (EUROMICRO'81) - konfe­

renssiin, Pariisissa, syyskuussa 1931, 3 s.

/45/ Pulkkis, G. On the Performance of the Hybrid Redundant Multimicroprocessor uC*. Helsinki University of Techno­

logy, Digital Systems Laboratory, Report Bll/1930, 39 s / 46/ Laine, A. l/0-oh jelmisto ASMOS-käyttb* järjestelmään . Hei

singin teknillinen korkeakoulu, Digitaalitekniikan labo ratorio, erikoistyö, 1981.

/47/ Kinnunen, P. ASMOS-käyttöjärjestelmän synkronointiope- raatiot. Helsingin teknillinen korkeakoulu, Digitaali- niikan laboratorio, erikoistyö, 1981.

/48/ Nuutinen, M. Tehtävä ja virtuaaliajoitin ASMOS-käyttÖ- järjestelmään. Helsingin teknillinen korkeakoulu, Digi­

taalitekniikan laboratorio, erikoistyö, 1981.

LIITE Is KÄYTTÖJÄRJESTELMÄOPERÄÄTIОТ Määrittely ja käyttö tehtävissä

Määrittelyt voidaan halutessa liittää PL/M-moduuliin systeemi-komennolla $ INCLUDE (:Fl: EXTERN.ALS)

Tarkemmat ohjeet proseduurien käytöstä on esitetty viitteissä /46,47,48/

VOTE: PROCEDURE (mode, result) BYTE EXTERNAL;

DECLARE (mode, result) BYTE;

END VOTE;

/*Funktiotyyppinen proseduuri palauttaa vahvistetun tu­

loksen, kun kolme prosessoria on äänestänyt tai aikaval­

vonta merkitsee kolmannen äänestäneeksi. Result-paramet- riin sijoitetaan äänestettävä tavu, mode voi olla joko TRUE tai FALSE sen mukaan, halutaanko tulos ohjata aanes- timen lähtöihin. */

PAUSE: PROCEDURE (delay) EXTERNAL;

DECLARE (delay) BYTE;

END PAUSE;

/♦proseduuri aiheuttaa tehtävän suoritukseen delay-para- metrin mittaisen viiveen, s.e. yksikkö vastaa 100 ms

ja kokonaisheitto on 0-100 ms. Viiveen aikana listan aikasiivut jaetaan muille aktiivisille listoille.*/

TIMESYNC: PROCEDURE (timebase) EXTERNAL;

DECLARE (timebase) ADDRESS;

END TIMESYNC;

/♦Prosessori aiheuttaa ajan synkronoitumisen eri proses­

soreiden reaaliaikakelloissa seka asettaa ajoista las­

ketun keskiarvon BYTE-tyyppisiin muuttujiin hour, min, see alkaen osoitteesta timebase paikallismuistissa.

Virhetapauksissa, kun jokin kellonaika poikkeaa sallittua enemmän keskiarvosta asetetaan yhteismuistiin virhelippu.

Kun useamman prosessorin aika poikkeaa keskiarvosta liikaa, ei ajanlaskuun voida luottaa, vaan kaikki ajat asetetaan nollaan*/

WATCHDOG: PROCEDURE (alarmdelay, id) EXTERNAL;

DECLARE (alarmdelay, id) BYTE;

END WATCHDOG;

/*Proseduurin avulla voidaan asettaa viivelaskuri, joka alarmdelay-parametrissa (yksikkö vastaa 100 ms) asete­

tun viiveen kuluttua aiheuttaa käyttöjärjestelmään vir­

heilmoituksen. Id-parametri identifioi viivelaskurin.

Halyytys estetään asettamalla sama viivelaskuri nollaksi.

*/

MOVEBLOCK: PROCEDURE (to, varlength, from, lock) EXTERNAL;

DECLARE (to, varlength, from, lock) ADDRESS ; END MOVEBLOCK;

/♦Proseduuri suorittaa käyttäjän määrittelemän lukon var­

mentaman jakamattoman siirron muuttujasta toiseen. Para­

metrit to ja from sisaltavatmuuttujien alkuosoitteet, varlength sisältää muuttujan pituuden tavuina ja lock sisältää lukon osoitteen.*/

START : PROCEDURE (listname, share) EXTERNAL;

DECLARE (listname) ADDRESS, (share) BYTE;

END START;

/♦Kussakin reaaliprosessorissa, jossa proseduuri suorite­

taan, käynnistetään proseduurin määräämä tehtavalista.

Share osoittaa, kuinka monta aikasiivua listalle anne­

taan kullakin virtuaaliajoittimen kierroksella.*/

CHANGE: PROCEDURE (listname, share) EXTERNAL;

DECLARE (listname) ADDRESS, (share) BYTE;

END CHANGE;

/♦Kussakin reaaliprosessorissa, jossa proseduuri suorite­

taan, muutetaan määrätyn tehtavalistan aikasiivujen luku­

määrää share-parametrin osoittamaksi. Proseduuri on tar­

koitettu käytettäväksi yksittäisissä muita pidemmissa tehtävissä nopeuttamaan niiden lapimenoa.*/

WAIT: PROCEDURE (lock) EXTERNAL;

DECLARE (lock) ADDRESS;

END WAIT;

/*Kussakin tehtavalistassa, jossa proseduuri suoritetan, keskeytetään tehtavalistan suoritus, kunnes lock on tosi.

Lock asetetaan samalla välittömästi epätodeksi. Muuttujan sijainti paikallis- tai yhteismuistissa vaikuttaa ratkai­

sevasti proseduurin luonteeseen, kuten sekin, minka tyyp­

pisessä tehtävässä proseduuri suoritetaan ja, missa vas­

taava lock-muuttujan asettaminen todeksi suoritetaan.

Lukkiutumisen mahdollisuus väärinkäytön yhteydessä on suuri. Suositeltavin tapa on suorittaa proseduuri ja vastaava muuttujan asetus eri tehtavalistoissa synkro—

nointitehtavissa. Muuttujan tulee talloin sijaita paikal- 1ismuistissa.*/

FASTVOTE: PROCEDURE (data) BYTE EXTERNAL;

DECLARE (data) BYTE EXTERNAL;

END FASTVOTE;

/*Proseduuri puskuroi parhaillan meneillään olevan äänes­

tyksen ja äänestää kiireellisestä data—parametrissä ole­

vasta asiasta. Äänestystulos ohjataan aanestimen lähtöön.

Proseduuria on tarkoituksellista käyttää vain keskeytys- ohjelmissa. Vahvistettu tulos palautetaan funktioprose- duurin arvona.*/

READLINE: PROCEDURE (1ineaddress) EXTERNAL;

DECLARE (lineaddress) ADDRESS;

END READLINE;

/♦Luetaan rivi päätteeltä muistiin alkaen osoitteesta lineaddress. Proseduuri voidaan suorittaa vain i/o- tehtavissa, jolle on varattu se resurssiryhmä, johon pääte kuuluu. Taustaprosessi lukee paattaalta tulevia signaaleja jatkuvasti pyoreaan puskuriin, joten osa tulevasta tekstistä saattaa hävitä, ellei lueta riit­

tävän usein. Talloin sijoitetaan tekstin sekaan tahti virhemerkiksi.*/

'i

READPUNCH: PROCEDURE (lineaddress) EXTERNAL;

DECLARE (lineaddress) ADDRESS;

END READPUNCH;

/♦Luetaan rivi reikanauhalaitteelta muistiin. Muut seikat kuten päätteeltä luettaessa*/

WRITELINE: PROCEDURE (lineaddress) EXTERNAL;

DECLARE (lineaddress) ADDRESS;

END WRITELINE;

/♦Kirjoitetaan osoitteesta lineaddress alkava rivi paate- puskuriin. Puskuri on pyöreä ja voi täyttyä, milloin yritetään kirjoittaa päätteen kapasiteettia nopeammin.

Talloin tulostetaan ylivuotoilmoituksena tahti ja jatke­

taan normaalisti. Huora, proseduuri on välitön eikä odota merkkien siirtymistä päätteelle.*/

WRITEPUNCH: PROCEDURE (lineaddress) EXTERNAL;

DECLARE (lineaddress) ADDRESS;

END WRITEPUNCH;

/♦Kirjoitetaan osoitteesta lineaddress rivi lavistinpus- kuriin. Muut asiat kuten päätteelle kirjoitettaessa.*/

PRINTLINE: PROCEDURE (lineaddress) EXTERNAL;

DECLARE (lineaddress) ADDRESS;

END PRINTLINE;

/♦Kirjoitetaan osoitteesta lineaddress rivi kirjoitinpus- kuriin. Muut asiat kuten päätteelle kirjoitettaessa.*/

слСЛ

\*

PL/M-80COMPILER

STASK4!PROCEDURE? DECLAREА(*)BYTEDATA(/STASK4'?OFH)? DECLAREВBYTE?

ix.

~ СО Г J Ы

*• _i

<*. LU Ш 1Л LU

I— LU >- ш >

>- to

ffl H

<L _i CU

LU h- К-I- C LU

О <П

Z о

ù. LU LU <L

<E CC H- Z iU <r aC

й. CO 3 ù. CO CO

-J СЛ 3 CO

** <c

<1 c

<r _i O LU _i H

aC U -J CO O CJ _i Ci

_J _i _J CO U _i _l

—I CO

CO LU CO LU LU <C II Lu

<r <t <r LU <l <r

CJ O U U Ci U Ci

тч C J T-î CJ CJ CJ CJ CJ CJ

if) "G IX CCI O- O CJ

O O O O O O O 4—5 t-ît—t т-5

X X X XX

LL.

L-l Cl L-l CM И CM rv

<r

X X X

03 tn n L-l o o

■H o o o o o

z

II n n o

l-l

Os LU LU 4—•

z N N1 03 <X

l-l L-l M -4

<c tn en cc L-l

x *♦ LU Ci o LL

z M <C Z <x cc r

Ci o L-l LU U LU CU o

CC z l-l tn en e CC LU u

Ш LU H <L 4—

_l <c <c 03 03 X o

M X LU LU LU C œ

LL CC CU _l X Z CC i

r o <E Ci 3 L-l О X

o Ll <L X _J О X

o z LU L-l L-l LU

H l-l L-l CC X O'- LL LL

o O <r e IÍ3

03 LU O > X CM O Ll

1 —i O

x <r Z3

\ Ki L-l Ci

T-: c z

n_ X Lii

TSIS-IIFL/M-80V3

Л

COMPILATIONOFMODULETEHTÄVÄ OBJECTMODULEPLACEDINÎFltTASKS»OBJ COMPILERINVOKEDBYîPLM80îFltTASKSKED

С-4

XXXXXXXXXXXXX XXX X

xxxxxxxxxxxxxxxxxx

X X X X XXX У-Ч

CC

ù_

Cu

SYNC$TABLE(J)=04? CALLVSEMl? END?

O X \

LU

ü_

<r <r <"

T~» 1-t 1-4 -H

Zо X

г _J û__ IXXXXXCLXCO XXXXXXXXCJXH-O

X Ci <r O <r XXCUXXXLU

CD X Ci CD

SYMMETRISEN MONIPROSESSORlKYYTTÖJÄRJESTELMÄN SUUNNITTELU NEAALIAIKASOVELLUTUKSIIN

Risto Linturi

Johtaja apulaisprofessori Iiro Hartimo

Ohjaaja tekniikan lisensiaatti Jukka Aspelund 1 .3.1931

Teknillinen korkeakoulu Teknillisen fysiikan osasto

Moniprosessorijärjestelmän avulla on saavutettavissa useita etuja yksiprosessorijärjestelmiin verrattuna. Turvallisuuden ja luotettavuuden sekä suorituskyvyn lisääminen ovat pääasi­

alliset rinnakkaisprosessoinnin hyödyt. Laitteistopohjäinen laskennan tuloksia vertaileva äänestin ja hybridivarmennettu rakenne edellyttävät ohjelmistolta suurta joustavuutta.

Ohjelmiston suunnittelu edellyttää tarkkaa synkronoinnin määrittelyä ja systemaattisten menetelmien käyttöä. Petri- verkkoja edelleen kehittämällä saadaan tarkoitukseen hyvin soveltuva graafinen notaatio, joka lisäksi on tarvittaessa formaalisti analysoitavissa. Luonnollisin sovellutusohjel­

mien arkkitehtuuri noudattaisi tehtävätaso11a tieto-ohjauk­

sen periaatetta, mutta reaaliaikaajoitusten vuoksi on tähän asetettava rakenteellisia rajoituksia. Virtuaaliprosessoin­

nista on äänestävässä moniprosessorijärjestelmässä saavutet­

tavissa selviä etuja, lisäksi osa järjestelmän toiminnal­

lisesta valvonnasta voidaan sijoittaa virtuaaliajoittimeen.