• Ei tuloksia

2 TUTKIMUKSEN PUITTEET

2.2 Rinnakkainen tutkimus

Moniprosessoriympäristössä algoritmien rinnakkaisuus on vält­

tämättömyys, muutoin voitaisiin hyödyntää vain yhtä prosesso- Tämä voidaan tulkita koskemaan myös varmennettuja järjes­

telmiä, joissa prosessorit suorittavat samaa tehtävää. Näissä­

kin käsittely on rinnakkaista.

Varsinaiset moniprosessorijärjestelmät voidaan Flynnin mukaan jakaa kahteen osaan sen mukaan, suoritetaanko samaa käskysek-venssiä usealle eri datalle (SIMD) vai suoritetaanko samanai­

kaisesti myös eri käskyjä (MIMD). Edellinen voidaan määritel­

lä selkeästi, mutta jälkimmäinen jakautuu vielä useaan osit­

tain päällekkäiseen alaryhmään /9/.

Yleisin kriteerio luokiteltaessa MIMD-järjestelmiä on proses­

sorien keskinäisen liitännän väljyys. Yhteinen muisti sekä yhteinen syöttö/tulostuslaitteisto viittaisivat tämän mukaan lujaan sidokseen ja kommunikoinnin rajoittaminen vain tiet­

tyyn kommunikointikanavaan viittaa väljään sidokseen. Lipovs- kin /3/ mukaan oleellinen ero on kuitenkin siinä, että väljäs-

liitetyllä systeemillä ei ole keskitettyä systemin tilaa, vaan tila muodostuu kunkin prosessorin tilojen "summana".

Perusteluna väitteelleen Lipovski mainitsee mm. muistinhal- 1intayksiköt. Näiden avulla voidaan kunkin prosessorin tila suojata muilta yhtä tehokkaasti kuin erityistä kommunikoin­

tikanavaakin käyttäen, vaikka muisti olisikin laitteistota­

solla kytketty kaikkiin prosessoreihin tasavertaisesti. Tämä asettaa käyttöjärjestelmille entistä suuremman merkityksen vikojen leviämistä estettäessä.

Aiempien jaotteluiden tilalle ehdotetaan lokaalisuuksiin pe­

rustuvaa jaottelua. Lokaalisuus merkitsee varsinaisesti saan- tioikeuksia. Prosessorilla voi olla saantioikeudet tiettyihin oheislaitteisiin, muistiin tai yhteisiin kommunikointikana—

vün» Nämä kuuluvat tällöin kyseisen prosessorin lokaliteet—

t-i-j-1"1, Samat laitteet voivat kuulua muidenkin prosessorien lo—

kaliteettiin. Lokaalisuus voi olla staattista tai dynaamista.

Esimerkiksi muistiavaruuden hallinnassa dynaaminen lokaali—

suus tarkoittaa, että yhteismuistia voidaan tarpeen mukaan jakaa kullekin prosessorille lokaalimuistiksi. Dynaamisen lokaalisuuden hyötynä on suuri joustavuus erilaisten tehtä­

vien suhteen; staattinen lokaalisuus edellyttää laitteistol­

ta vähemmän, lisäksi operaatiot ovat nopeampia. Kumpaakaan ei

voi asettaa yleisesti toisensa edelle vaan molempia voidaan käyttää saman järjestelmän eri osissa.

Moniprosessoritutkimus on viime aikoina ollut voimakasta sel­

västi nähtävissä olevien tehokkuuden ja luotettavuuden kasvun vuoksi. Suurin alan tutkimuskeskus on ollut Carnegie-Mellon yliopisto Yhdysvalloissa kolmen koelaitteiston turvin. Tut­

kimusta on tehty myös muualla ja sovellutuskohteet ovat hyvin vaihtelevia. Seuraavaksi esitetään lyhyt katsaus muutamiin laitteistoihin, niiden ohjelmistoon ja päämotiiveihin.

2.2.1 C.mmp

C.mmp on Carnegie-Mellon yliopiston suunnittelema laitteisto /10/. Se koostuu kuudestatoista PDP-11 minitietokoneesta, jotka liittyvät yhteismuistiin ristiinkytketysti siten, että muisti jakautuu kuuteentoista lohkoon ja muistista luku voi tapahtua yhtäaikaisesti eri lohkoista. Laitteiston maksimi­

suorituskyky on 6 MIPS.

Projektin varsinaisena ansiona on pidettävä suunniteltua käyt­

töjärjestelmää tai käyttöjärjestelmän ydintä Hydraa, jonka ympärille on jo rakennettu useitakin täydellisiä käyttöjärjes­

telmiä .

Hydra ei tarjoa tavanomaisia käyttöjärjestelmän piirteitä, tiedostoja, komentokieltä tai edes ajoitinta. Hydra tarjoaa olosuhteet, joissa käyttäjän on helppo kirjoittaa ohjelmia, j°tka sisältävät nämä ominaisuudet. Perustyökaluna on käytet­

ty niinkutsuttuja oikeuksia; tietyllä ohjelmalla tai ohjelman osalla on oikeudet vain määrättyihin muistialueisiin ja mää­

rättyihin oheislaitteisiin sekä määrättyihin muihin ohjel­

miin. Näillä kutsutuilla ohjelmilla taasen saattaa olla oikeudet joihinkin eri ohjelmiin tai resursseihin. Ohjelmia kutsutaan oikeuksien avulla, varsinaisia osoitteita ei ole käytössä.

Kun ohjelmoija pyrkii sallimaan kullekin ohjelmalohkolle

mahdollisimman vähän oikeuksia, voidaan vikojen leviäminen eristää. Sovellutusohjelmoijalle suodaan mahdollisuus luoda uusia operaatioita ja tietotyyppejä, jotka ovat täysin

tasavertaisia Hydran valmiiksi toteutettujen operaatioiden kanssa. Sovellutusohjelmoijalle on pyritty jättämään

mahdollisimman useat sovellutusohjelmien suoritustapaan liittyvistä päätöksistä. Tämä on eräs olennaisin menetelmä turvattaessa järjestelmän yleiskäyttöisyys.

Päätavoitteina Hydran suunnittelussa on pidetty symmetrisyyt­

tä sekä yleiskäyttöisyyttä. Näiltä osin voitaneen sanoa, että Hydra on vaikuttanut olemassa olevista käyttöjärjestelmistä eniten esiteltävän käyttöjärjestelmän lähtökohtiin ja työtä edeltävässä kirjallisuustutkimuksesta Hydraa koskevat rapor­

tit ovat muodostaneet suuren osan.

C.mmp-projektin jälkitarkastelusta /11/ voidaan luetella seu- raavat ansiot: Suunniteltu moniprosessori on symmetrinen ja tehokkuuteensa nähden edullinen. Hydra on käyttökelpoinen valine, jonka avulla voidaan ohjelmoida käyttöjärjestelmiä tavallisten sovellutusohjelmien tapaan. Hydra on prosesso­

rien suhteen symmetrinen. Toisin sanoen prosessorit suorit­

tavat tarvitsemansa käyttöjärjestelmäoperaatiot riippumatta muista prosessoreista.

Negatiivisia seikkoja on myös myönnetty: Laitteisto ei ole min luotettava kuin olisi toivottu. PDP-11:n pieni osoite- avaruus on osoittautunut haitalliseksi. Tavoitteessa osittaa C.mmp:tä toiminnallisesti erillisiksi laitteistoiksi ei ole onnistuttu. Käyttäjäystävällisyyteen ei ole kiinnitetty riit­

tävästi huomiota.

2.2.2 Cm*

Toinen Carnegie-Mellon yliopiston moniprosessoriprojekti on Cm* /12/. Laitteisto koostuu LSI-11 prosessoreista, jotka on kytketty toisiinsa siten, että kukin prosessori voi puhutella

toistensa paikallismuistia hierarkisesti järjestetyn kytkin- verkon avulla. Verkkoon kytkettyjen prosessorien määrällä ei ole käytännössä ylärajaa. Verkossa muistiin viittaus saattaa kestää eri pituisia aikoja riippuen siitä, kuinka monen sol­

mupisteen kautta muistiin viitataan. Verkko huolehtii kunkin prosessorin saantioikeuksien täyttymisestä. Kuvassa 1 esite­

tään Cm*: n rakenne kun järjestelmässä on viisi prosessoriryh—

mää. Kukin ryhmä voi sisältää kymmenen prosessoria. Oheislait­

teet liittyvät yksittäisiin prosessoreihin.

SS Hriocu/sTZfi

4-> St и ro MOST

Kuva 1 Cm*: n arkkitehtuuri

Käyttöjärjestelmän suunnittelussa on suurin huomio kiinnitet­

ty osoitusmekanismeihin. Tämä onkin luonnollista, kun lait­

teistoarkkitehtuuri poikkeaa tavanomaisesta. Osoitusmekanis—

mien osalta on tavoitteina pidetty seuraavia seikkoja; Osoi- tusmekanismien on tuettava modulaarista ohjelmankehitystä;

ohjelman osia on voitava kääntää toisistaan erillään. Tietora­

kenteiden tulee olla vaihtelevan pituisia. Muisti on kyettävä

suojaamaan laitteisto- ja ohjelraavirheitä vastaan. Ohjelmia ja muistissa olevaa tietoa on pystyttävä puhuttelemaan eri ohjelmista eri nimillä vaikka fyysiset osoitteet ovat samoja.

Cm*:lie on suunniteltu kaksi käyttöjärjestelmää: StarOS ja Medusa. Osoitustavoiltaan Medusa on näistä kahdesta yksin­

kertaisempi. Siinä on päähuomio kiinnitetty tehtävien väli­

sen rinnakkaisuuden aikaansaamiselle. Samaan kokonaisuuteen liittyvät tehtävät allokoidaan prosessoreille, jotka ovat osoituksellisesti mahdollisimman lähellä suoritettavaa ohjel­

makoodia ja toisiaan.

StarOS:ssa tavoitteita on pyritty saavuttamaan käyttämällä segmentoitua osoitusta ja oikeuksia Hydran tavoin. Proses­

sorit puhuttelevat muistia oikeuksien avulla ja muistikyt- kimillä tarkistetaan kunkin prosessorin oikeudet ja kutakin oikeutta vastaava fyysinen osoite; oikeuksia voi luonnolli­

sesti muuttaa ohjelmallisesti, mutta sallitut muutokset on tarkkaan rajattu.

Käyttöjärjestelmät tukevat prosessorien välistä kommunikoin­

tia ns. postilaatikko—operaatioiden avulla. Semaforioperaa—

tiot on toteutettu muistikytkimissä olevalla mahdollisuudel­

la lukita tietyn muistilohkon osoitukset operaation suori­

tuksen ajaksi. Väylien lukitseminen operaation ajaksi olisi järjestelmän kannalta liian raskasta.

2.2.3 C.vmp

C.vmp on suppeimmin raportoitu Carnegie Mellon yliopiston moniprosessoriprojekteista. Suunnittelun päämäärät voidaan esittää seuraavasti /13/:

-Järjestelmän tulee voida jatkaa toimintaansa huolimatta pysyvästä laitteistoviasta.

-Pysyvistä ja tilapäisistä virheistä huolimatta järjestelmä ei saa tuottaa virheellisiä tuloksia.

-Käyttäjälle ei tule olla tarpeellista tietää, että hän ohjelmoi vikasietoista tietokonetta.

-Virheen tulee olla korjattavissa lyhyen ajanjakson sisällä.

-Tosiaikaisissa sovellutuksissa ei laitteiston toiminta saa pysähtyä liian pitkäksi ajaksi.

-Laitteiston tulee kyetä toimimaan siten, että se voidaan huoltaa aktiivisena. Toisin sanoen on voitava poistaa viallinen moduuli ja korvata se toisella toiminnan aikana.

-Kustannusten minimoimiseksi on järjestelmä voitava koota valmiista moduuleista.

-Järjestelmässä on voitava joustavasti valita luotettavan tai suorituskykyisen vaihtoehdon välillä ohjelmallisesti tai käyttäjän toimesta.

Näitä ominaisuuksia on tavoiteltu kuvan 2 mukaisella arkkiteh­

tuurilla, jossa äänestys on toteutettu väylätasolla. Äänestä­

minen tapahtuu aina, kun prosessori puhuttelee väylää. Proses­

sorit voivat suorittaa tehtäviä itsenäisestikin väylä-äänes­

tyksistä riippumatta. Muutoin prosessorit suorittavat samaa ohjelmaa. Äänestysyksikkö muodostaa luotettavuuden kannalta kriittisen osan.

Kuva 2 C

2.2.4 SRI SIFT

SIFT (Software Implemented Fault Tolerance) on lennonohjaus- soveHutuksiin suunniteltu vikasietoinen moniprosessori /14/.

Ilmailualan vaatimukset ohjausyksiköiden luotettavuudelle ovat erittäin tiukat : sallitaan 10E-9 virhettä tunnissa kun yhtäjaksoinen käyttö ilman huoltoa on enintään kymmenen

tuntia. Laitteessa on prosessorit kytketty toisiinsa usean väylän avulla. Prosessori voi lukea muiden prosessorien muistia mutta voi kirjoittaa vain omaa muistiaan.

Tyypillisesti tehtävä suoritetaan useassa moduulissa ja kukin prosessori kirjoittaa tuloksen omaan paikallismuistiinsa.

Tulosta käyttävä prosessori lukee kunkin muistista ehdotuksen ja valitsee niistä enemmistön kannan. Äänestys toteutetaan siis ohjelmallisesti. Ohjelmien tulee toimia synkroonissa toistensa kanssa (50us), jotta tarvittavat tulokset olisivat valmiit äänestyksiin. Ajoittainen uudelleensynkronointi on tarpeen prosessorikorttien kellotaajuuksien pienten poikkea­

mien vuoksi.

Tulostus tapahtuu erillisten moduulien avulla ja syöttö/tulos- tus~toiminnot ovatkin arkkitehtuurin kriittinen osa. Luotetta­

vuus on suurelta osin riippuvainen näiden moduulien toteutuk­

sesta.

2.2.5 FTMP

FTMP (Fault Tolerant Multiprocessor) on edellisen tavoin suun­

niteltu lentokonesovellutuksiin /15/. Järjestelmässä moduulit liittyvät toisiinsa varmennetuilla väylillä ja ne on ryhmitel­

ty kolmikoiksi. Jokaisessa kolmikossa on äänestin, joka valit­

see enemmistön kannan edelleen toimitettavaksi. Kolmikoita ei ole muodostettu kiinteästi vaan ryhmittelyä voidaan ajonaikai­

sesti muuttaa, jos jokin prosessoreista vikaantuu.

Varsinaisesti järjestelmä toteuttaa seuraavassa luvussa tar­

kemmin esiteltävää hybridivarmennuksen periaatetta. Moduulien välinen kommunikointi on sarjamuotoista. Äänestykset suorite­

taan bitti kerrallaan laitteistollisesti täysin synkronoidus­

ta Välttämättä tarvittava yhteinen kellosignaali on kriitti­

nen järjestelmän toiminnan kannalta. Äänestävien ohjelmien erilaisuus ei ole mahdollista.