/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-IIF‘L/M-80V3
Л
COMPILATIONOFMODULETEHTÄVÄ OBJECTMODULEPLACEDINÎFltTASKS»OBJ COMPILERINVOKEDBYîPLM80îFltTASKS♦KEDС-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.