FI108478B - Sulautettu jõrjestelmõ - Google Patents

Sulautettu jõrjestelmõ Download PDF

Info

Publication number
FI108478B
FI108478B FI980135A FI980135A FI108478B FI 108478 B FI108478 B FI 108478B FI 980135 A FI980135 A FI 980135A FI 980135 A FI980135 A FI 980135A FI 108478 B FI108478 B FI 108478B
Authority
FI
Finland
Prior art keywords
operating system
interrupt
mode
processor
threads
Prior art date
Application number
FI980135A
Other languages
English (en)
Swedish (sv)
Other versions
FI980135A (fi
FI980135A0 (fi
Inventor
Vesa Saarinen
Janne Kantola
Kim Lempinen
Jyrki Leskelo
Anu Purhonen
Nkko Risto R
Original Assignee
Nokia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corp filed Critical Nokia Corp
Publication of FI980135A0 publication Critical patent/FI980135A0/fi
Priority to FI980135A priority Critical patent/FI108478B/fi
Priority to US09/234,433 priority patent/US6631394B1/en
Priority to KR1020007007898A priority patent/KR100681875B1/ko
Priority to EP99900898A priority patent/EP1047991A1/en
Priority to PCT/FI1999/000039 priority patent/WO1999038073A1/en
Priority to CN99804263A priority patent/CN1130630C/zh
Priority to AU20564/99A priority patent/AU2056499A/en
Priority to JP2000528913A priority patent/JP2002501248A/ja
Publication of FI980135A publication Critical patent/FI980135A/fi
Priority to HK01105987A priority patent/HK1035416A1/xx
Application granted granted Critical
Publication of FI108478B publication Critical patent/FI108478B/fi
Priority to US10/625,099 priority patent/US7062766B2/en
Priority to JP2007041050A priority patent/JP2007164819A/ja
Priority to JP2011171579A priority patent/JP2011216132A/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

1 108478
Sulautettu järjestelmä
Nyt esillä oleva keksintö kohdistuu oheisen patenttivaatimuksen 1 johdanto-osan mukaiseen sulautettuun järjestelmään. Keksintö kohdistuu 5 lisäksi oheisen patenttivaatimuksen 10 johdanto-osan mukaiseen menetelmään ja oheisen patenttivaatimuksen 18 johdanto-osan mukaiseen kommunikointilaitteeseen.
Elektroniikkateollisuudessa on kehitetty lukuisia laitteita, joiden eräänä 10 keskeisenä toiminnallisena komponenttina käytetään jonkin asteista mikroprosessoria tai vastaavaa suoritinta. Tämä suoritin voi olla sijoitettu esimerkiksi mikrokontrollerin yhteyteen, jolloin siinä on joitakin oheislaitteita sijoitettuna samaan mikrosiruun. Tällaisista laitteista käytetään myös nimitystä sulautettu järjestelmä, joista esimerkkeinä mainit-15 takoon matkaviestimet, kuten solukkoverkon matkaviestimet CMT (Cellular Mobile Telephone), tietokoneet PC (Personal Computer), henkilökohtaiset apulaitteet PDA (Personal Digital Assistant) jne. Tällaisen laitteen toiminnan ohjaamiseksi on kehitetty usein laitekohtainen käyttöjärjestelmä, jonka perustehtävänä on huolehtia systeemin ajoituksista, 20 resurssien hallinnasta, viestien käsittelystä ja välittämisestä eri ohjelma-lohkojen välillä. Tyypillisesti tämäntyyppiset käyttöjärjestelmät ovat ns. reaaliaikaisia käyttöjärjestelmiä (RTOS, Real Time Operating System). Tällaisen reaaliaikaisen käyttöjärjestelmän tyypillisenä piirteenä on mm. se, että sillä on ennustettavissa oleva vasteaika ulkoiseen keskeytyk-25 seen, kuten näppäimen painallukseen tai ajastintapahtumaan, muistire-surssien minimoitu käyttö ja lisäksi reaaliaikaiset käyttöjärjestelmät ovat ..... erittäin tehokkaita tehtävien ohjaamisessa. Lisäksi reaaliaikaisiin käyttö- järjestelmiin on usein muodostettu tehonhallintaominaisuuksia mm. kannettavissa laitteissa akkujen käyttöajan pidentämiseksi. Tällaisten ; 30 reaaliaikaisten käyttöjärjestelmien koko on yleensä luokkaa 10—100 kt ohjelmakoodia ja tietomuistia (RAM, Random Access Memory).
Ei-reaaliaikaiset käyttöjärjestelmät eroavat reaaliaikaisista käyttöjärjes-: *·. telmistä mm. siinä, että vasteajat eri toimenpiteiden suoritukselle ovat ".V 35 pidemmät kuin reaaliaikaisissa käyttöjärjestelmissä ja toisaalta vas-':·* teajat eivät myöskään ole ennustettavissa ei-reaaliaikaisissa käyttöjär- jestelmissä. Moniajoa tukevissa ei-reaaliaikaisissa käyttöjärjestelmissä 2 108478 kukin suorituksessa oleva prosessi hidastaa muiden saman tai alemman prioriteettitason prosessien suoritusta, jolloin myös vasteajat voivat pidentyä. Ei-reaaliaikaisessa käyttöjärjestelmässä ei myöskään ole käyttöjärjestelmän ytimen toimintaan määritetty vasteaikoja, mikä vai-5 keuttaa tällaisen käyttöjärjestelmän suoritusnopeuden ennakoitavuutta.
Matkaviestimissä on rajoitettu määrä muistia ja muita systeemiresursse-ja. Matkaviestimissä ei usein ole myöskään systeemitukea sellaisille oheislaitteille, kuin kirjoitettaville massamuisteille (Hard Disk) tai muisti-10 korteille, kuten FLASH-muisteille. Matkaviestimiin ei tavallisesti ole järjestetty mahdollisuutta ladata ohjelmistoja dynaamisesti järjestelmään, eli matkaviestimen ohjelmisto on valmistusvaiheessa ladattu matkaviestimeen tai joissain tapauksissa ohjelmisto voidaan päivittää esimerkiksi huollon yhteydessä. Monissa matkaviestimissä ei myöskään ole muis-15 tinhallintayksikköä (MMU, Memory Management Unit), koska matkaviestimen ohjelmistot on tyypillisesti valmistettu ja testattu matkaviestimen valmistajan toimesta. Näistä syistä ei laitekohtaisissa reaaliaikaisissa käyttöjärjestelmissä myöskään ole tukea edellä mainituille ominaisuuksille.
20
Henkilökohtaisia tietokoneita ja henkilökohtaisia apulaitteita valmistavat yritykset ovat kehittäneet käyttöjärjestelmiä, joista edellä mainittujen ominaisuuksien tuki löytyy, mutta usein nämä käyttöjärjestelmät eivät ; sinällään ole reaaliaikaisia, jolloin niissä ei ole ennustettavissa tiettyjen 25 toimenpiteiden suorittamiselle maksimivasteaikoja. Tällaisten käyttöjärjestelmien koko on tyypillisesti luokkaa 200 kilotavua—muutama mega-tavu, jolloin niiden sovittaminen kannettavaan laitteeseen, kuten mat- *;*:* kaviestimeen ei välttämättä helposti onnistu.
• # * * · • * ♦ : 30 Reaaliaikaisilla käyttöjärjestelmillä ja erityisesti tietojenkäsittelylaitteisiin kehitetyillä käyttöjärjestelmillä on osittain vastakkaiset vaatimukset, jol-ί.ίί loin on hankala aikaansaada käyttöjärjestelmää, jolla olisi sama ohjel- :T: mointirajapinta käyttöjärjestelmään nähden ja samanaikaisesti niillä olisi : *·, kaikki vaadittavat ominaisuudet, kuten pieni muistitilan tarve ja reaaliai- 35 kaisuus.
'·’J Viime aikoina on myös kehitetty elektroniikkalaitteita, joissa on yhdistet- ty tietojenkäsittelylaite sekä tietoliikennelaite. Tällaisesta laitteesta 3 108478 käytetään tässä selityksessä nimitystä kommunikointilaite. Eräs esimerkki tällaisesta laitteesta on Nokia 9000 Communicator, joka on suhteellisen pienikokoinen, kannettava laite, jossa on tietojenkäsittely-toimintoja sekä matkaviestintoimintoja. Tällaisessa yhdistetyssä lait-5 teessä on kuitenkin eräänä pyrkimyksenä ollut aikaisemmin kehitetyn tuotteen hyödyntäminen mahdollisimman pitkälle, jolloin mm. ohjelmistot näihin eri laitteisiin on pyritty pitämään yhteensopivina tässä uudessa laitteessa. Tämä on aikaansaatu siten, että tietojenkäsittelylait-teen puolella on oma suoritin ja siinä oma käyttöjärjestelmä, kuten myös 10 matkaviestinsovelluksissa on oma suoritin ja oma käyttöjärjestelmä. Tällöin on voitu hyödyntää aikaisemman tuotekehityksen tuloksia mahdollisimman tehokkaasti ja on voitu nopeuttaa laitteen markkinoille tuloa. Erilliset suorittimet kuitenkin kuluttavat tavallisesti enemmän tehoa kuin yhden prosessorin käsittävässä ratkaisussa on mahdollista päästä, 15 jolloin tällainen kannettava laite tarvitsee tehokkaamman akun tai sen käyttöaikaa ei saada niin pitkäksi kuin erillisillä laitteilla on mahdollista saada aikaiseksi.
Kahden käyttöjärjestelmän suorittaminen yhdessä suorittimessa on ny-20 kyisin tunnetun tekniikan mukaisissa ratkaisuissa aikaansaatu siten, että käyttöjärjestelmät on toteutettu jomman kumman käyttöjärjestelmän piirteitä hyödyntäen. Tämän tyyppisessä yhdistämisessä on vaikeutena mm. se, että käyttöjärjestelmien ollessa ominaisuuksiltaan hyvin erilai-siä, ei yhdistämisessä saada kaikkia yhdistettävien käyttöjärjestelmien : 25 ominaisuuksia toteutettua. Tämä aiheuttaa mm sen epäkohdan, että kaikkia näihin käyttöjärjestelmiin kehitettyjä sovellusohjelmia ei voida .···. käyttää, tai käyttäminen edellyttää muutosten tekemistä sovellusohjel- miin. Lisäksi uusia sovelluksia kehitettäessä on ensin yhden käyttöjär-jestelmän pohjalta tehdyt sovellusohjelmat muunnettava toisen käyttö- I i i *·' ‘ 30 järjestelmän mukaisiksi. Tämä lisää työmäärää ja virhemahdollisuuksia.
»Il v : Eurooppalainen patenttijulkaisu EP-0 360 135 käsittää tietojenkäsittely- v"·' laitteen keskeytyskäsittelymenetelmän. Tietojenkäsittelylaitteessa suori- : !·. tetaan kahta eri käyttöjärjestelmää, jolloin keskeytyksen ilmaantuessa ‘ 35 tutkitaan ensin se, kumpaan näistä kahdesta käyttöjärjestelmästä kes keytys liittyy. Julkaisussa on esitetty keskeytystilannetta varten toiminta, :...: jonka mukaan keskeytykset käsitellään keskitetysti, määritellään kes- : ’*· j keytysten liittyminen jompaan kumpaan käyttöjärjestelmään, suoritetaan 4 108478 kyseiseen järjestelmään kuuluva keskeytyspalvelurutiini, palataan takaisin käyttöohjeinaan, ja kyseinen käyttöjärjestelmä voi käynnistää vastaavat ohjelmat. Käyttöjärjestelmistä yksi on reaaliaikainen ja toinen on aikajakoinen käyttöjärjestelmä. Julkaisun mukaisessa menetelmässä 5 keskeytyksen oletetaan siis liittyvän vain jompaan kumpaan käyttöjärjestelmään. Julkaisussa ei kuitenkaan selkeästi ole esitetty sitä, millä perusteella tämä päätelmä tehdään. Tässä EP-julkaisussa esitetty menetelmä soveltuu sellaisissa tietojenkäsittelylaitteissa käytettäväksi, jossa yhdellä tietojenkäsittelylaitteella suoritetaan tavanomaisia tieto-10 jenkäsittelytoimintoja ja lisäksi halutaan ohjata tai seurata reaaliaikaisen prosessin toimintoja.
Patentissa US-5,278,973 on vielä esitetty tietojen käsittelylaite, jossa yhdessä suorittimessa voidaan käyttää useampia käyttöjärjestelmiä. Näis-15 tä käyttöjärjestelmistä voi kerrallaan olla käytössä kuitenkin vain yksi. Käyttöjärjestelmän vaihto edellyttää käytössä olevan käyttöjärjestelmän suorituksen lopettamista ja tietojenkäsittelylaitteen uudelleen käynnistystä.
20 Nyt esillä olevan keksinnön eräänä tarkoituksena on saada aikaan sulautettu järjestelmä, jossa on yhdellä suorittimella tai vastaavalla suoritettavissa ainakin kahden käyttöjärjestelmän toimintoja. Keksintö perustuu siihen ajatukseen, että muodostetaan ainakin yksi, ainakin osittain yhteinen keskeytyskäsittelijä, jossa tutkitaan, minkä käyttöjärjestelmän 25 säikeiden suoritukseen kulloinenkin keskeytys vaikuttaa, jolloin keskey-tystieto välitetään tähän käyttöjärjestelmään. Keksinnön mukaiselle su- .···. lautetulle järjestelmälle on tunnusomaista se, mitä on esitetty oheisen • · “I patenttivaatimuksen 1 tunnusmerkkiosassa. Keksinnön mukaiselle me- netelmälle on tunnusomaista se, mitä on esitetty oheisen patenttivaati- • · · *♦* * 30 muksen 10 tunnusmerkkiosassa. Keksinnön mukaiselle kommunikointi-laitteelle on tunnusomaista se, mitä on esitetty oheisen patenttivaati- * «» v : muksen 18 tunnusmerkkiosassa.
• · · : !·. Nyt esillä olevalla keksinnöllä saavutetaan merkittäviä etuja tunnetun !···' 35 tekniikan mukaisiin ratkaisuihin verrattuna. Yhden prosessorin kulutta-ma teho on tyypillisesti pienempi kuin jos käytettäisiin erillisiä prosesso-reja kullekin käyttöjärjestelmälle. Lisäksi tilantarve pienenee, koska * I · c 108478 5 voidaan käyttää enemmän yhteisiä komponentteja, kuten muistia. Keksinnön mukainen sulautettu järjestelmä mahdollistaa jo kehitettyjen sovellusohjelmien käyttämisen ilman, että niihin olisi tarve tehdä muutoksia, ja molempiin käyttöjärjestelmiin voidaan edelleen kehittää 5 uusia sovelluksia tarvitsematta ensin muuntaa yhden käyttöjärjestelmän pohjalta tehtyä sovellusohjelmaa toisen käyttöjärjestelmän mukaiseksi. Tällä keksinnöllä pienennetään myös työmäärää ja virhemahdollisuuksia verrattuna ratkaisuihin, joissa kaksi käyttöjärjestelmää on yhdistetty jomman kumman käyttöjärjestelmän piirteitä hyödyntäen, 10 ja ratkaisuihin, joissa kullakin käyttöjärjestelmällä on käytettävissään oma suoritin. Keksinnön mukaisessa ratkaisussa ei myöskään menetetä mitään käyttöjärjestelmien piirteitä, jotka voivat vielä olla optimoituja tiettyyn sovellukseen tai sovellusalueeseen, esim. matkaviestintoimintojen toteuttamista varten.
15
Lisäksi kannettavissa laitteissa saavutetaan pienentyneen tehonkulutuksen seurauksena pidempi käyttöaika yhdellä akun latauksella.
Nyt esillä olevaa keksintöä selostetaan seuraavassa tarkemmin viitaten 20 samalla oheisiin piirustuksiin, joissa kuva 1 esittää erään käyttöjärjestelmän kerrosrakennetta, kuva 2 esittää erästä prosessien tilamallia, j\\ 25 !. kuva 3 esittää erästä esimerkkiä prosessielementistä, • · kuva 4a esittää pelkistettynä lohkokaaviona keksinnön edulli- *;*:* sen suoritusmuodon mukaista sulautettua järjestel- *·' * 30 mää, ··· : kuva 4b esittää pelkistettynä lohkokaaviona erästä suoritinta, • · · • · · • · · : !·. kuva 5 esittää pelkistettynä kaaviona keksinnön mukaisen • · « I". ‘ 35 sulautetun järjestelmän yhteydessä käytettävää erästä ‘: käyttöjärjestelmäarkkitehtuuria, 6 108478 kuvat 6a—6i esittävät erilaisia keskeytystenkäsittelytilanteita kek sinnön erään edullisen suoritusmuodon mukaisessa sulautetussa järjestelmässä, 5 kuvat 7a ja 7b esittävät sanomanvälitysmekanismia pelkistettynä kaaviona, ja kuva 8 esittää pelkistettynä nuolikaaviona erästä keskeytys- tenkäsittelytilannetta keksinnön erään edullisen suori-10 tusmuodon mukaisessa sulautetussa järjestelmässä.
Keksinnön ymmärtämiseksi selostetaan aluksi tekniikan tasosta tunnettuja suoritin- ja käyttöjärjestelmäratkaisuja viitaten samalla kuviin 1—3.
15 Suorittimet voidaan käskykannan mukaan jaotella ainakin kahteen luokkaan: Laajan käskykannan suorittimet (CISC, Complete Instruction Set Computer) ja supistetun käskykannan suorittimiin (RISC, Reduced Instruction Set Computer). Supistetun käskykannan suorittimissa on jätetty osa harvinaisemmista käskyistä pois, esimerkiksi osoitusmuotoja 20 saattaa olla vähemmän kuin laajan käskykannan suorittimissa. Kuitenkin tavallisissa sovellusohjelmissa käytetään hyvin pientä käskyjoukkoa sovellusohjelman aikaansaamiseksi, jolloin pääsääntöisesti supistetun käskykannan prosessoreilla on mahdollista toteuttaa tarvittavat sovel-: lusohjelmat. Etuna supistetun käskykannan prosessoreissa verrattuna 25 laajan käskykannan prosessoreihin on mm. se, että suoritusnopeus voidaan nostaa suuremmaksi ja toisaalta ohjelmakoodin vaatima muis-,···, titila on pienempi kuin laajan käskykannan prosessoria käytettäessä.
7! Erityisesti tarvittavan ohjelmamuistimäärän pienentyessä myös tehon- tarve laitteella pienenee ja toisaalta laitteen kokoa voidaan myös pie-·* * 30 nentää.
• · · v : Käytännön sovelluksissa käytetään usein mikrokontrolleria, joka käsitti*: tää varsinaisen suorittimen sekä sen yhteyteen liitettyjä oheiskompo- : !·. nentteja, kuten tietomuistia (RAM, Random Access Memory), ohjelma- 35 muistia (ROM, Read Only Memory), liityntäpiirejä (I/O, Input/Output), ajastimia (timers), analogia-digitaalimuuntimia (A/D-converter), digitaali-analogiamuuntimia (D/A-converter) jne. Tällöin liityntälinjat näiden eri 7 108478 yksiköiden välillä voidaan saada mahdollisimman pieniksi, jolloin laitteen kokoa voidaan edelleen pienentää ja toisaalta signaalien siirtoa nopeuttaa näiden eri yksiköiden välillä. Mikrokontrollerivalmistajat valmistavat useita eri mikrokontrollerityyppejä, joissa voi olla sama suori-5 tin, mutta oheiskomponenttien määrä ja tyyppi voi olla erilainen, jolloin kuhunkin sovellukseen voidaan tarvittaessa valita parhaiten soveltuva mikrokontrolleri.
Kuten jo aikaisemmin tässä selityksessä mainittiin, tällaisiin laitteisiin, 10 joissa käytetään mikroprosessoria tai vastaavaa suoritinta, kehitetään käyttöjärjestelmä ns. perusohjelmistoksi. Tämä käyttöjärjestelmä huolehtii laitteen eri yksiköiden ohjaamisesta, tietojen lukemisesta jne. sekä mahdollistaa sovellusohjelmien käyttämisen tällaisessa laitteessa. Esimerkiksi henkilökohtaisessa tietokoneessa tietokoneen käynnistyessä 15 ladataan käyttöjärjestelmä ohjelmamuistiin, joka suorittaa tietyt alustus- s toimenpiteet. Tämän jälkeen käyttäjä voi käynnistää haluamansa sovellusohjelman, jolloin käyttöjärjestelmä vastaanottaa käyttäjän antaman komennon, etsii sovellusohjelman, lataa sen ohjelmamuistiin ja käynnistää sovellusohjelman. Moniajokäyttöjärjestelmissä on mahdollista käyt-20 tää näennäisen yhtäaikaisesti useita tällaisia sovellusohjelmia, jolloin käyttöjärjestelmä huolehtii suoritusajan antamisesta ja vuorottelusta näiden eri sovellusohjelmien välillä. Lisäksi käyttöjärjestelmän tehtävänä on signaalien välittäminen näiden eri sovellusohjelmien kesken ja : tarvittaessa sovellusohjelman ja oheislaitteen välisen signaloinnin jär- 25 jestäminen.
1 < Käyttöjärjestelmät voivat ohjata prosessien suoritusta myös ns. säikei- • · .**: nä. Yksi säie voi käsittää yhden tai useamman prosessin suoritukseen liittyviä toimintoja ja toisaalta yksi prosessi voi olla jaettu yhteen tai use- • · t *·* ' 30 ampaan säikeeseen. Säikeiden suoritusta ohjaa käyttöjärjestelmän vuo-rontaja. Säie on siis eräänlainen käyttöjärjestelmän antama tuki pro- • tl v : sessille.
• · · • · · • · · : !\ Tunnetuista käyttöjärjestelmistä voidaan yleensä havaita seuraavat • · 4 "V 35 ominaisuudet: komentotulkki (Command Interpreter), joka tulkitsee käyttäjän antaman komennon, esimerkiksi lukee komennosta sovellus-ohjelman nimen ja erottaa mahdolliset käyttäjän antamat parametrit 4 · · 4 · 8 108478 välitettäväksi tälle sovellusohjelmalle, vuorontaja (Scheduler), joka huolehtii resurssien jakamisesta eri prosesseille, keskeytyspalvelut (Interrupt Request Services), joiden tehtävänä on reagoida keskeytyksiin ja suorittaa keskeytysten edellyttämät toimenpiteet, esimerkiksi kes-5 keytyspyynnön välitys käyttöjärjestelmälle. Lisäksi käyttöjärjestelmässä on toiminnallisia lohkoja esimerkiksi näppäimistön lukemista varten, näytölle kirjoittamista varten, mahdollisia ulkoisia liityntöjä ohjaavia toimintoja varten jne. Resursseja ovat mm. keskusmuisti, oheislaitteet ja suoritinajan käyttö. Käyttöjärjestelmä mm. varaa kullekin suoritettavalle 10 prosessille muistialueen, johon prosessi voi kirjoittaa tietoa ja josta prosessi lukee tietoa. Mikäli jokin prosessi yrittää kirjoittaa tämän prosessille varatun muistialueen ulkopuolelle, käyttöjärjestelmän ohjaama muistinhallintayksikkö tavallisesti estää tämän kirjoituksen ja tyypillisesti pysäyttää tällaisen prosessin suorituksen.
15
Monissa suorittimissa on vielä käytössä eri toimintatiloja (moodeja), kuten käyttäjän toimintatila (User Mode) ja etuoikeutettu toimintatila (Privileged Mode, Supervisory Mode, Kernel Mode). Käyttäjän käynnis-tämät sovellusohjelmat ja muut prosessit asetetaan tavallisesti toimi-20 maan käyttäjän toimintatilassa. Sen sijaan käyttöjärjestelmä ja osa sen käynnistämistä prosesseista toimii tyypillisesti etuoikeutetussa toimintatilassa. Käyttäjän toimintatilassa on rajoitetummat toimintamahdollisuudet, esimerkiksi osa suorittimen komennoista toimii vain etuoikeutetussa toimintatilassa, jolloin käyttäjän toimintatilassa niitä ei voi käyttää. ; 25 Joissakin käyttöjärjestelmissä etuoikeutettu toimintatila on monitasoinen, esimerkiksi kolmitasoinen. Käyttöjärjestelmän ydin (Kernel) on to-.···. teutettu ensimmäisessä etuoikeutetun toimintatilan tasossa, jolla myös r: on suurimmat oikeudet. Toisessa tasossa on esimerkiksi tiedostojen hallintarutiinit ja vastaavat (Executive). Kolmannessa tasossa on esi- • · « '·* ‘ 30 merkiksi komentotulkki.
I·· v : Suorittimiin 2 on yleisesti muodostettu mahdollisuus keskeytysten käyt- 0 1 tämiseen. Suorittimen 2 ulkopuolelta keskeytyspyyntö voidaan välittää : !·. yhdellä tai useammalla keskeytyspalvelulinjalla nIRQ, nFIQ (kuva 4b), *··! 35 jonka tilan muutos esim. loogisesta 1-tilasta loogiseen 0-tilaan voi ai-heuttaa keskeytyksen suorittimelle 2. Suorittimelle 2 tullut keskeytys-pyyntö aikaansaa suorittimen 2 siirtymään ao. keskeytyspalveluohjel-man suoritukseen, joko oleellisesti välittömästi tai siinä vaiheessa kun 9 108478 korkeamman prioriteetin keskeytyspyyntöjä ei ole odottamassa. Kes-keytyspalveluohjelmassa suoritetaan ainakin osa keskeytyksen käsittelytoimenpiteistä. Nämä käsittelytoimenpiteet riippuvat mm. kulloisestakin sovelluksesta ja keskeytyksen aiheuttajasta. Koska keskeytyspalve-5 luohjelman suorittaminen hidastaa suorituksessa olevien prosessien ja käyttöjärjestelmän toimintaa, pyritään erityisesti reaaliaikaisissa käyttöjärjestelmissä keskeytyspalveluohjelmat tekemään mahdollisimman lyhyiksi ja nopeiksi. Tällöin keskeytyspalveluohjelmassa voidaan asettaa käyttöjärjestelmää varten esim. tilamuuttuja, joka ilmoittaa keskeytyk-10 sestä ja siitä, että osa keskeytyksen käsittelytoimenpiteistä odottavat suoritusta, jolloin käyttöjärjestelmä ohjaa näiden toimenpiteiden suoritusta esim. vuorontamiskäytäntönsä mukaisesti. Keskeytyspalveluohjel-maan siirtymiseen voidaan vaikuttaa myös erilaisilla keskeytysten estoilla ja maskauksilla. Keskeytysten ollessa estettynä jäävät keskeytys-15 pyynnöt tavallisesti odottamaan keskeytysten eston poistumista, jonka jälkeen keskeytyspyynnöt palvellaan edullisesti prioriteettijärjestyk-sessä. Keskeytykset voidaan useissa suorittimissa 2 estää myös valikoidusta jolloin keskeytysten maskirekisterissä tai vastaavassa asetetaan kullekin keskeytykselle sallinta- tai estotila.
20
Keskeytyspyynnöt aiheutuvat esimerkiksi ulkoisen laitteen antaman signaalin perusteella, esimerkiksi sarjaväylän kautta tulevan informaation aiheuttama sarjaväyläkeskeytyspyyntö, näppäimistön jonkin näppäimen : painalluksesta aiheutuva keskeytyspyyntö, ajastimen aiheuttama kes- : . ; 25 keytyspyyntö tai jossakin suorituksessa olevassa prosessissa muodostettava ns. ohjelmallinen keskeytyspyyntö. Keskeytyksille voidaan mää-rittää tärkeysluokitus (prioriteetti), jolloin alemman tärkeysluokituksen • · keskeytyspalveluohjelman suorittaminen voi keskeytyä tärkeysluokituk- *;*;* sessa ylempänä olevan keskeytyksen seurauksena. Sen sijaan ylem- * ♦ * *·’ ’ 30 män tason keskeytyspalveluohjelmaa ei yleensä voi keskeyttää alemman tason keskeytyspyyntö. Käyttöjärjestelmän perusajatusten aikaan- M» v : saamiseksi käytetään yleensä ajastinta, joka määrävälein aikaansaa 0 ' keskeytyspyynnön suorittimelle, joka tällöin siirtyy suorittamaan ajasti- : ]·, men keskeytyspalveluohjelmaa. Tämän vuoksi ajastimen keskeytyspal- * f « ‘.‘.’4 35 velulle annetaan hyvin korkea prioriteetti. Sen sijaan esimerkiksi näytön *:* päivitykselle määritetään tavallisesti alempi prioriteetti.
f · 4 «< 10 1 08478
Patentissa US-5,515,538 on esitetty eräs menetelmä keskeytysten käsittelemiseksi tietojen käsittelylaitteen moniajokäyttöjärjestelmässä. Menetelmässä keskeytyskäsittelijä on muodostettu omaksi säikeeksi, johon suoritus ohjataan keskeytystilanteessa. Julkaisussa esitetty mene-5 telmä on kuitenkin tarkoitettu vain yhden käyttöjärjestelmän laitteistoihin, joissa voi samanaikaisesti olla useita suorittimia tämän käyttöjärjestelmän prosessien suorittamiseksi.
Selostetaan seuraavassa pelkistettynä erään moniajokäyttöjärjestelmän 10 toimintaa. Käyttöjärjestelmän vuorontaja käy määrävälein tutkimassa, mitä sovellusohjelmia eli prosesseja on sillä hetkellä suoritettavana. Vuorontaja käynnistyy esimerkiksi ajastinkeskeytyksen käynnistämänä. Kukin sovellusohjelma voi lisäksi käsittää yhden tai useamman säikeen, jolloin kutakin säiettä suoritetaan yhden suorittimen järjestelmässä eri-15 aikaisesti. Yksi säie voi olla esimerkiksi tiedon lukeminen oheislaitelii-tännästä, kuten näppäimistöstä, toinen säie voi olla tiedon käsitteleminen ja kolmas säie esimerkiksi käsitellyn tiedon kirjoittaminen oheislaitteelle, kuten näytölle. Tämän sovellusohjelman käynnistyessä on vuorontaja määrittänyt kunkin säikeen suoritusajan kerrallaan ja säikeiden 20 suoritusten toistovälin. Tällöin vuorontaja käynnistää säikeen suorittamisen ja suoritusajan päätyttyä siirtää säikeen odottamaan ja tallentaa tarvittaessa säikeen tiedot muistivälineisiin ja aloittaa seuraavan säikeen, joka voi olla samaa prosessia tai eri prosessia, suorittamisen. : Sen jälkeen kun vuorontaja on käynyt kaikki säikeet läpi, aloittaa vuo- ;v. 25 rontaja suorituskierroksen uudestaan tai, mikäli minkään säikeen suori-...!: tusaikaväli ei ole täyttynyt, suoritetaan ns. tyhjäkäyntisäiettä (Idle .···, Thread). Edellä mainittujen säikeiden suoritusaikana voi kuitenkin tulla ♦ · VI m keskeytyspyyntöjä, jolloin näiden keskeytyspyyntöjen prioriteetin perus- teella käyttöjärjestelmä voi siirtyä suorittamaan keskeytyspalveluohjel- • · · v * 30 maa tai vuorontaja määrittää keskeytyspalvelun suorittamiselle sopivan ajankohdan ja jatkaa kesken olleen säikeen suorittamista. Esimerkiksi • · · v : näppäimistöliitynnän aikaansaamassa keskeytystilanteessa näppäimis- v*: tökeskeytysohjelma lukee painetun näppäimen koodin ja tallentaa sen : !·. väliaikaiseen muistipaikkaan. Keskeytyspalveluohjelman loputtua käyt- 35 töjärjestelmän vuorontaja määrittää näppäinpainalluksen tutkimisohjel-"* malle suoritusajankohdan ja siirtyy takaisin keskeytettyyn ohjelmasäi- :...: keeseen, mikäli näppäimistökeskeytykselle määritetty prioriteetti ei ylit- : tänyt kesken olleen ohjelmasäikeen prioriteettia.
11 1 08478
Oheisessa kuvassa 1 on esitetty esimerkki erään käyttöjärjestelmän kerrosrakenteesta. Alimpana on käyttöjärjestelmän ydin (Kernel), seu-raavalla tasolla on muistin hallintaan liittyvät osuudet ja kolmannella ta-5 solia tiedostojärjestelmäosuudet. Näiden kolmen tason yläpuolelle sijoittuvat mm. komentotulkki, prosessit (ei esitetty), liityntäohjelmistot, vuo-rontajatoiminnot jne.
Seuraavassa kuvataan hieman erästä käyttöjärjestelmän ytimen raken-10 netta. Ytimen toiminnan keskeisimmät osat muodostuvat keskeytysten käsittelystä, prosessien hallinnasta ja oheislaitteiden ohjauksesta. Keskeytysten käsittelyn toimintaa ovat mm. keskeytyneen ohjelman tietojen tallennus ja suorituksen ohjaus oikeaan keskeytyspalveluohjelmaan. Prosessien hallinta huolehtii mm. prosessien luomisesta, suoritusajan 15 määrittämisestä (skeduloinnista), prosessin toiminnan lopettamisesta, ajastamisesta jne. Oheislaitteiden ohjaustoiminnot käsittävät mm. tiedonsiirron käynnistämisen ja kuhunkin oheislaitteeseen liittyvän yhden tai useamman keskeytyksen käsittelyn. Käyttöjärjestelmän kannalta tarkasteltuna prosessi on kulloinkin jossakin kolmesta tilasta: Valmiustila 20 (Ready), suoritustila (Run) tai odotustila (Wait). Tätä tilajakoa esittää oheinen kuva 2. Suoritustilassa ovat parhaillaan suoritettavina olevat prosessit, yhden suorittimen käsittävissä järjestelmissä on kulloinkin korkeintaan yksi prosessi tässä tilassa. Valmiustilassa ovat ne proses-: : ‘: sit, jotka odottavat suoritustilaan pääsyä. Vuorontajan tehtävänä on va- 25 Iita jokin valmiustilan prosesseista suoritustilaan suoritettavaksi. Odo- tustilassa ovat sellaiset prosessit, jotka odottavat jotain tapahtumaa, .···, esimerkiksi näppäinpainallusta, jonkin resurssin vapautumista jne.
·# · • · • · »
Vuorontaja siirtää valmiustilasta suoritustilaan korkeimman prioriteetin * · *·* * 30 omaavan prosessin. Suoritustilassa prosessi siirtyy odotustilaan tyypillisesti omasta pyynnöstään, esimerkiksi pyytäessään jotakin käyttöjärjes-v : telmäpalvelua, jonka toteutukseen liittyy odotusta. Siirtyminen odotusti- 0 ·' lasta valmiustilaan tapahtuu tämän odotuksen päättyessä. Prosessi voi : !\ joutua suoritustilasta takaisin valmiustilaan myös sellaisessa tilantees- '·- >[ 35 sa, kun vuorontaja vaihtaa jonkin toisen prosessin suoritettavaksi esim. • % keskeytyskäsittelyn päätteeksi.
( > 4 1 i · « · 12 1 08478
Tavallisesti ytimen toteutukseen liittyy runsaasti dynaamisia tietorakenteita, tyypillisesti kaksisuuntaisia ketjutettuja listoja, joiden elementit varataan käyttöjärjestelmän alueella olevasta vapaan muistin tilasta. Esimerkiksi kunkin prosessin tietoja ylläpidetään edullisesti prosessiele-5 mentissä (PCB, Process Control Block). Prosessielementit on koottu prosessitauluun, jonka koko asettaa ylärajan järjestelmässä olevien prosessien määrälle. Tässä esimerkissä, jota on kuvattu oheisessa kuvassa 3, on peruselementeissä löydettävissä mm. seuraavia tietoja: 10 - Prosessin tila: Odotus (Wait), valmis suoritukseen (ready) tai suorituksessa (run), prosessin nimi, prosessin prioriteetti, tila keskeytyneiden prosessien tietojen (ympäristöjen) tal-15 lennusta varten (pino), tiedot varatuista resursseista: muisti, laitteet, avoimet tiedostot jne., prosessin ajankäytön seurantaan liittyviä kenttiä, ja oikeuksiin liittyviä kenttiä.
20
Mainittakoon, että tämä on vain eräs esimerkki prosessielementin toteuttamisesta, mutta käytännön sovelluksissa nämä voivat vaihdella hyvinkin suuresti ja prosessielementeissä olevat tiedot voivat olla hy-: ;'; vinkin erilaisia.
: ' 25
« I
Prosessitunnus on prosessin nimi, esimerkiksi järjestysnumero. Tämän .· . prosessin nimen perusteella käyttöjärjestelmä erottelee eri prosessit toi- sistaan. Mikäli prosessi käsittää useampia kuin yhden säikeen, voi pro- • t · sessitunnuksessa tai muualla prosessielementin kentissä olla tieto v ‘ 30 myös tästä säikeen numerosta. Prosessin tilan ilmoittamiseen käytetään Status-kenttää. Tällöin käyttöjärjestelmä muuttaa tämän Status- :·: : kentän arvoa prosessin tilan muuttuessa. Vuorontaja käyttää proses- • · * v : sien suoritusjärjestyksen määrittämiseen Prioriteetti-kentän arvoa, joi- f .·. loin esimerkiksi mitä suurempi tämän kentän sisältämä lukuarvo on, sitä 35 korkeampi on prosessin prioriteetti. Tällöin vertailemalla odotustilassa '·' olevien prosessien Prioriteetti-kentän arvoa vuorontaja valitsee seuraa- : : vaksi suoritettavaksi prosessiksi sen prosessin, jossa prioriteettiarvo on \‘'i suurin.
13 1 08478
Seuraavaksi kuvataan uuden prosessin luomista. Oletetaan, että prosessi on tallennettuna tiedostoon laitteen muistivälineissä, esimerkiksi kirjoitettavassa massamuistissa. Tämä ohjelma tunnistetaan tiedoston 5 nimen perusteella. Käyttöjärjestelmän ytimessä on prosessin käynnistämistä varten palvelurutiini, jolle annetaan parametrinä edullisesti tämän tiedoston nimi. Käynnistyspalvelurutiini muodostaa prosessitau-luun prosessielementin tätä prosessia varten ja varaa prosessille alueen keskusmuistista. Tämän ohjelmatiedoston sisältö luetaan tälle va-10 ratulle muistialueelle, prosessielementin kentät alustetaan sopiviin arvoihin, jonka jälkeen prosessi voidaan asettaa odottamaan suoritusta. Prosessin tunnuksena voidaan käyttää esim. seuraavaa vapaana olevaa prosessitunnusta. Prosessin tilaksi asetetaan edullisesti arvo ready. Käyttöjärjestelmän vuorontaja ohjaa näitä prosesseja suorituk-15 seen vuorontamiskäytäntönsä mukaisesti.
Käyttöjärjestelmissä, joissa prosessit suoritetaan säikeinä, voidaan edellä esitettyä prosessin luomista soveltaa vastaavasti siten, että käynnistyspalvelurutiini muodostaa prosessista yhden tai useamman 20 säikeen ja muodostaa säikeille prosessielementit prosessitauluun.
Käyttöjärjestelmiin liittyy vielä eräs oleellinen seikka oheislaitteiden ohjaamiseksi, ns. laiteajurit (Device Driver). Laiteajuri sisältää oheislait-teen, kuten näytön, näppäimistön, koodekin jne. ohjaamisessa tarvitta-; v 25 via rutiineita ja tietorakenteita. Tarvittavia rutiineita ovat mm. laitteen ·: alustustoimenpiteet, luku/kirjoitus, ohjausrutiini, kuten päätteen ominai- suuksien asetus ja laitteeseen liittyviä keskeytyksiä käsittelevä rutiini.
·· · ;y: Laitteeseen liittyvät muuttujat ja tietorakenteet voidaan koota esimer- kiksi kuhunkin laitteeseen liittyvään ns. laitekuvaajaan (Device • * c 30 Descriptor). Tällaisia tietoja voivat olla mm. seuraavat: • · · • · · ‘y* - Työjono, johon ketjutetaan laitteelle jonottavien siirräntä- : pyyntöjen parametrilohkot. Jos samanaikainen luku ja kirjoi- : :*r tus on mahdollista, työjonoja voi olla kaksi. Parametrilohkot ’ 35 sisältävät siirräntäpyynnön parametreja, mm. tiedon pusku- rin sijainnista, siirrettävän lohkon numeron yms., - laiteajurirutiinien osoitteet, • «· 14 1 08478 siirrännän ohjauksessa tarvittavia muuttujia ja laitteen tilatietoja, ja laitekohtaiset parametrit.
5 Joissakin järjestelmissä laiteajurit ovat käyttöjärjestelmän prosesseja. Prosessit toimivat ikuisessa silmukassa, jossa ne ensin odottavat siir-räntäpyyntösanomaa. Saatuaan tällaisen sanoman laiteajuriprosessi käynnistää siirrännän ja jää odottamaan keskeytyssanomaa. Käyttöjärjestelmän keskeytyskäsittelijä huolehtii tällöin keskeytyssanoman lähe-10 tyksestä laiteajuriprosessille. Käytännön laitteissa laiteajuriprosessilla on tyypillisesti korkea prioriteetti ja käyttöjärjestelmän ydin toimii reaaliaikaisesti.
Kirjoitettavalta massamuistilta luettaessa lukuoperaatio toimii esimerkik-15 si seuraavasti. Laitetaulusta etsitään ensin kyseisen laitekuvaajan osoite. Tämän jälkeen noudetaan laitekuvaajasta lukurutiinin osoite ja kutsutaan sitä. Lukurutiini muodostaa siirräntäpyynnön parametreista para-metrilohkon. Jos siirräntä kyseisellä laitteella on parhaillaan käynnissä, eli laite on jonkin muun prosessin käytössä, ketjutetaan parametrilohko 20 työjonon viimeiseksi ja jäädään odottamaan. Jos laite on vapaa, jolloin työjono on tyhjä, ketjutetaan parametrilohko työjonon ensimmäiseksi. Tämän jälkeen lohkon numero muunnetaan levypinnan, uran ja sektorin numeroiksi ja käynnistetään siirräntä esimerkiksi laiterekisterien muok-: kaamisella. Tämän jälkeen jäädään odottamaan siirron päättymistä, j25 Siirron päätyttyä tapahtuu laitteistokeskeytys. Käyttöjärjestelmän kes-·:·: keytyskäsittely etsii laitenumeron avulla laitetaulusta laitekuvaajan osoitteen ja siitä edelleen keskeytyskäsittelyrutiinin osoitteen ja siirtyy • · · suorittamaan keskeytyskäsittelijän ohjelmakoodia. Keskeytyskäsittelijä edullisesti tarkastaa, että virheitä ei ole tapahtunut. Onnistuneen siir- * · * 30 rännän päätteeksi parametrilohko ketjutetaan pois työjonosta ja siirrän-tää odottanut prosessi herätetään. Jos työjonossa on jonottavia siirrän- * · · täpyyntöjä, käynnistetään seuraava siirräntäoperaatio oleellisesti välit- *·' * tömästi.
* • · ♦ · · « · · ««· « : · · : 35 Oheislaitteen tyypistä riippuen toiminta saattaa jossain määrin poiketa edellä kuvatusta. Merkkejä tulostavilla laitteilla, kuten näyttöpäätteet ja ';··! kirjoittimet, voidaan työjono korvata yksinkertaisesti tulostettavia merk- '· kejä sisältävällä jonolla.
15 108478
Monissa käyttöjärjestelmissä on käytettävissä sanomanvälitysmekanis-meja, jolla prosessit voivat lähettää sanomia toisilleen. Sanomajonoja (Message Queue) käytettäessä prosessiin liittyy yksi tai useampia sa-5 nomajonoja, joihin prosessille lähetettävät sanomat voidaan kirjoittaa. Prosessien väliseen kommunikointiin liittyy tavallisesti puskurointeja, jolloin sanoman lähettäjän ei tarvitse odottaa, että vastaanottaja ottaa sanoman vastaan. Tällöin sanoman kirjoitusvaiheessa asetetaan tieto (tilamuuttuja) siitä, että prosessille on sanoma odottamassa, jolloin pro-10 sessi sopivassa vaiheessa käy lukemassa sanoman.
Keksinnön edullisen suoritusmuodon mukaisessa sulautetussa järjestelmässä, eli kommunikointilaitteessa 1 (kuva 4a) käytetään kahta käyttöjärjestelmää. Ensimmäinen käyttöjärjestelmä, jota tässä selityksessä 15 merkitään viitteellä OS_A, käytetään pääasiassa matkaviestintoiminto-jen toteuttamisessa ja toista käyttöjärjestelmää, jota tässä selityksessä merkitään viitteellä OS_B, käytetään pääasiassa tietojenkäsittelytoimin-tojen toteuttamiseksi. Tietojenkäsittelytoiminnoilla tarkoitetaan lähinnä henkilökohtaisista tietokoneista ja vastaavista tunnettuja toimintoja, 20 esimerkiksi tiedostojen lukeminen ja kirjoittaminen kirjoitettavalta massamuistilta, tietojen tulostaminen, sovellusohjelmien, kuten ns. organi-saatiotoimintojen (päivyri, yhteystietojen ylläpito ym.) suorittaminen jne. Koska kommunikointilaitteessa 1 käytetään edullisesti yhtä suoritinta 2, on nämä eri käyttöjärjestelmien OS_A, OS_B toiminnot kyettävä yhdis-j * *: 25 tämään siten, että samalla säilytetään molempien käyttöjärjestelmien OS_A, OS_B erityispiirteet. Lisäksi eräänä kriteerinä on toimintojen reaaliaikaisuus tarvittaessa. Seuraavassa kuvataan esimerkkien va- • · · lossa sitä, miten nämä eri käyttöjärjestelmät OS_A, OS_B saadaan yh- .·*:·. distettyä saman suorittimen 2 yhteyteen.
* * · 30
Kuvassa 5 on esitetty eräs esimerkki toisen käyttöjärjestelmän OS_B
• » · arkkitehtuurista. Kukin lohko esittää tiettyä prosessia, säiettä, liityntära-:·: : japintaa jne. Lohkot on vielä erotettu sen mukaan, käytetäänkö kysei- : sessä lohkossa käyttäjän toimintatilaa USER vai etuoikeutettua toimin- 35 tatilaa SVC. Omaksi osuudekseen on vielä erotettu keskeytystoimintati- ««· Iät, joita esittää lohko 501 kuvassa 5. Keskeytystoimintatiloissa on käy-';··] tössä nopea keskeytystoimintatila FIQ, normaali keskeytystoimintatila * « 4 16 1 08478 IRQ tai ohjelmallinen keskeytystoimintatila SWI. Toisen käyttöjärjestelmän OS_B ydin (Kernel, lohko 502), asetetaan toimimaan etuoikeutetussa toimintatilassa SVC (Supervisory mode). Sen sijaan toisen käyttöjärjestelmän vuorontaja SCH_B (lohko 503), ytimen liityntärajapinta 5 (lohko 504), käyttäjän prosessien säikeet (lohkot 506, 507 ja 508), kuten tietojenkäsittelylaitteen kalenterisovellus ja vastaavat, sekä laiteoh-jaimien liityntärajapinnat (lohko 505) asetetaan käyttäjän toimintatilassa USER toimiviksi, jolloin niillä ei mm. ole pääsyä käyttöjärjestelmän pinoon (ei esitetty) tai muihin kriittisiin muistilohkoihin. Etuoikeutetussa 10 toimintatilassa ovat vielä laiteohjaimet (lohko 509), tyhjäkäyntisäie (lohko 510) sekä mahdolliset ns. supersäikeet (lohko 511). Tyhjäkäyntisäie 510 on eräänlainen odotusprosessi, jota käyttöjärjestelmä suorittaa silloin, kun muita prosesseja ei ole suorituksessa. Supersäikeellä 511 tässä selityksessä tarkoitetaan sellaisia säikeitä, joiden vasteaika on 15 hyvin pieni verrattuna normaalisäikeiden 506, 507, 508 vasteaikoihin. Esimerkiksi supersäikeiden 511 vasteaika voi olla luokkaa muutamia satoja mikrosekunteja, kun normaalien säikeiden 506, 507, 508 vasteajat ovat esimerkiksi muutamia kymmeniä millisekunteja. Tätä keksintöä voidaan soveltaa myös sellaisten käyttöjärjestelmien yhteydessä, 20 joissa ei ole supersäikeitä 511.
Käyttöjärjestelmän ytimelle 502 on asetettu korkein prioriteetti. Edellä mainitusta vasteaikavaatimuksesta johtuen myös supersäikeille 511 asetetaan korkeampi prioriteetti kuin normaalisäikeille 506, 507, 508. 25 Vasteajalla tässä tarkoitetaan aikaa, joka kuluu tapahtuman aiheutta-' man keskeytyspyynnön tulemisesta siihen, kun säiettä aloitetaan suorit- taa. Tämä vasteaika on odotusarvo, mutta käytännössä vasteet ovat normaalitoiminnassa pienempiä tai korkeintaan yhtä suuria kuin tämä odotusarvo. Erittäin suurissa kuormitustilanteissa voi vasteaika olla 30 joissakin tapauksissa odotusarvoa suurempi. Vasteaika käsittää myös sen ajan, joka kuluu keskeytyspyynnön aiheuttaman keskeytyspalvelu-rutiinin suorittamisessa. Käytännössä keskeytyspalvelurutiinit pyritään muodostamaan mahdollisimman lyhyiksi, jolloin niiden suoritus on no- i.:‘: peaa.
O 35
Erästä keksinnön edullisen suoritusmuodon mukaista sulautettua järjes-telmää esittää oheisen kuvan 4a kommunikointilaite 1. Se käsittää mm.
17 1 08478 suorittimen 2, joka on esimerkiksi mikroprosessori tai osa mikrokontrolleria, jolloin ainakin osa kuvan 4a lohkokaavion lohkoista voi olla muodostettu mikrokontrollerin toiminnallisista lohkoista. Suorittimen 2 lisäksi osa ohjaustoiminnoista on toteutettu tässä edullisessa suoritusmuodos-5 sa ns. sovelluskohtaisen ohjelmoitavan logiikkapiirin 3 (ASIC, Application Specific Integrated Circuit) avulla. Suorittimen 2 ja sovelluskohtaisen logiikkapiirin 3 välillä voi olla oma tiedonsiirtoväylä 4, jolloin tiedonsiirtonopeutta voidaan kasvattaa ja toisaalta ei kuormiteta toista tiedonsiirtoväylää 5. Matkaviestintoimintojen aikaansaamiseksi on 10 kommunikointilaitteeseen järjestetty lähetin/vastaanotinyksikkö 6, lähe-tys/vastaanottoantenni ANT, digitaalinen signaalinkäsittely-yksikkö 7 (DSP, Digital Signal Processing Unit), koodekki 8 äänisignaalin koo-daamiseksi/dekoodaamiseksi, ensimmäinen näppäimistö 9 matkaviestintoimintojen käyttämiseksi sekä ensimmäinen näyttölaite 10 tietojen 15 esittämiseksi käyttäjälle. Lisäksi kommunikointi laite 1 käsittää audioloh-kon 11, jossa suoritetaan tarvittavat analogia/digitaalimuunnokset mikrofonin 12 muodostamalle analogiselle signaalille sekä digitaali/analogi-amuunnokset kaiuttimelle 13 johdettavalle signaalille. Tietojenkäsittely-ominaisuuksien aikaansaamiseksi on kommunikointilaitteeseen 1 muo-20 dostettu toinen näppäimistö 14, toinen näyttölaite 15 sekä liityntälohko 16, jossa on esimerkiksi välineet tulostimen liittämiseksi kommunikointi-laitteen 1 yhteyteen. Näppäimistöstä 9, 14 ja näyttölaitteesta 10, 15 käytetään yleisesti myös yhteistä nimitystä käyttöliittymä (UI, User Inter-: face), jolla käyttäjän ja kommunikointilaitteen 1 välinen kommunikointi 25 voidaan ainakin osittain suorittaa. Joissakin sovelluksissa käyttöliittymään voi vielä kuulua audiovälineet, kuten mikrofoni 12 ja kaiutin 13. ΓΥ Kuvan 1 mukaisessa kommunikointilaitteessa 1 on esitetty kaksi käyt- :Y: töliittymää UI1, UI2, joista ensimmäinen käyttöliittymä UI1 käsittää en- • · simmäisen näppäimistön 9 ja ensimmäisen näyttölaitteen 10, ja toinen 30 käyttöliittymä UI2 käsittää toisen näppäimistön 14 ja toisen näyttölaitteen 15. Ensimmäinen käyttöliittymä UM on tarkoitettu pääasiassa mat-:.Y kaviestintoimintaan ja toinen käyttöliittymä UI2 on tarkoitettu pääasias sa tietojenkäsittelytoimintaan, mutta kumpaakin käyttöliittymää UM, UI2 voidaan tarvittaessa käyttää sekä matkaviestintoimintojen että tietojen-35 käsittelytoimintojen yhteydessä. Käyttöliittymät UI1, UI2 eivät välttämät-:. tä ole erillisiä, vaan ne voidaan toteuttaa myös yhtenä käyttöliittymänä, ;' \ jossa on esim. yksi näyttölaite ja/tai yksi näppäimistö.
18 1 08478 Käyttöliittymien UH, UI2 näppäimistö voidaan toteuttaa myös siten, että käytetään ns. kosketusnäyttöä (Touch Screen), jossa edullisesti näyttölaitteen päälle on sijoitettu kosketusherkkä elin, joka reagoi esim. käyttäjän sormen kosketukseen. Kosketusherkät elimet ovat toimintaperi-5 aatteiltaan sinänsä tunnettuja, esim. kapasitanssimuutoksiin tai resis-tanssimuutoksiin perustuvia.
Kommunikointilaite 1 käsittää vielä muistia 17, joka koostuu edullisesti lukumuistista ROM, mm. käynnistysohjelmakoodin (Boot Strap) tallenta-10 mistä varten, luku/kirjoitusmuistista RAM sovellusohjelmien lataamiseksi suoritettavaksi ja käytön aikaisten tietojen tallennusta varten, mahdollisesti myös kirjoitettavasta massamuistista, FLASH-muistista ja/tai haihtumattomasta luku/kirjoitusmuistista NVRAM (Non-Volatile Random Access Memory). Kommunikointilaitteen 1 toiminnalliset lohkot on yh-15 distetty toisella tiedonsiirtoväylällä 5, joka käsittää mm. osoiteväylän (Address Bus), dataväylän (Data Bus) ja ohjausväylän (Control Bus). Näitä väyliä ei kuitenkaan selvyyden vuoksi ole piirretty erillisinä, mutta tämä on alan asiantuntijan tuntemaa tekniikkaa. Tehonsyöttö on järjestetty akusta 18, joka on kytketty jännitteen muodostuslohkoon 19, joka 20 käsittää jänniteregulaattoreita, jännitekonverttereita tai vastaavia, jolloin voidaan tarvittaessa muodostaa erilaisia käyttöjännitteitä Vcc1, Vcc2. Jännitteen muodostuslohko voi lisäksi muodostaa signaalin akun 18 va-raustilan laskemisesta niin alas, että kommunikointilaitteen 1 toiminta voi pysähtyä. Tällöin akku 18 on ladattava uudelleen tai käyttöjännitteet j 25 on sammutettava. Käytännön sovelluksissa tämä varaustilatieto aiheut-·: taa keskeytyspyynnön suorittimelle 2, jolloin tämän keskeytyspalvelu- : rutiinin suorituksen yhteydessä asetetaan tietojen tallennuspyyntö, joi- • · · loin edullisesti käyttöjärjestelmät OS_A, OS_B muodostavat viestin näyttölaitteille 10, 15 akun 18 tyhjenemisestä ja aloittaa tietojen tallen-30 nuksen muistiin 17. Lisäksi voidaan ohjata käyttöjännitteiden katkaisu automaattisesti.
« * * * · * * · ·
Kommunikointilaitteissa 1 voi olla muitakin suorittimia, esim. joissakin : ?*; oheislaitteissa, mutta niillä ei tämän keksinnön kannalta ole merkitystä, 35 koska ne on tarkoitettu muihin kuin käyttöjärjestelmätoimintojen suorittamiseen.
* · * 19 1 08478
Suorittimena 2 käytetään tässä sovellusesimerkissä Advanced RISC Machines -yhtiön valmistamaa ARM7-sarjan suoritinta, joka on ns. supistetun käskykannan suoritin. Keksintöä ei ole kuitenkaan rajoitettu ainoastaan tähän prosessorityyppiin tai supistetun käskykannan proses-5 soreihin, vaan keksintöä voidaan soveltaa myös muuntyyppisten prosessoreiden yhteydessä. Oheisessa kuvassa 4b on esitetty erään ARM7-sarjan suorittimen lohkokaavio pelkistetysti. Suorittimen 2 toiminnan kannalta keskeisenä lohkona on käskytulkki- ja ohjauslohko 401. Sen tehtävänä on mm. tulkita ohjelmakomennot ja ohjata niiden 10 edellyttämien toimenpiteiden suoritusta, reagoida nopean keskeytyslin-jan nFIQ ja normaalin keskeytyslinjan nIRQ kautta tuleviin keskeytys-pyyntöihin, ohjelmallisiin keskeytyspyyntöihin, muodostaa ulkoisesta kellosignaalista (ei esitetty) suorittimen toiminnan ajoitussignaaleita ja vastaavia, muodostaa ohjaussignaalit mm. tiedon lukemiseksi ja kirjoit-15 tamiseksi muistin 17 ja suorittimen 2 välillä sekä ohjata osoiteväylälle 402 kulloinkin tarvittavan osoitetiedon muodostamista.
Dataväylän lukurekisteri 403 sijoittaa dataväylältä 404 tulevat ohjelma-komennot dataväylän lukurekisterin 403 sisäiseen käskyjonoon (ei esi-20 tetty) ja datan datarekisteriin (ei esitetty). Käskytulkki- ja ohjauslohko 401 lukee sisäisestä käskyjonosta seuraavaksi suoritettavan ohjelma-komennon ja tulkitsee sen. Tarvittaessa käskytulkki- ja ohjauslohko 401 lukee datarekisteristä datan ja siirtää sen toiseen sisäiseen dataväylään 405 (B bus), josta se voidaan siirtää siirtorekisterin 406 (Barrel Shifter) 25 kautta aritmeettis-loogiseen yksikköön 407 (ALU, Arithmetic Logic Unit), johon on johdettu myös ensimmäinen sisäinen dataväylä 409 (A bus).
. Vastaavasti käskytulkki- ja ohjauslohko 401 ohjaa datan kirjoitusta da- taväylän kirjoitusrekisteriin 408, josta data voidaan siirtää dataväylään 404.
• · · 30 ... Aritmeettis-loogisessa yksikössä 407 suoritetaan sinänsä tunnetusti mm. yhteen- ja vähennyslaskutoimituksia sekä loogisia toimenpiteitä.
♦ · ·
Aritmeettis-loogisesta yksiköstä 407 dataa on siirrettävissä kolmatta si-säistä dataväylää 410 (ALU bus) pitkin osoiterekisteriin 411 sekä data-35 rekisterilohkoon 412, jossa on sisäisiä datarekistereitä (rekisteripankki, .:. Register Bank). Datarekisterilohkossa 412 on tietojen tallennukseen tarkoitettuja rekistereitä, statusrekistereitä sekä mm. ohjelmalaskuri 4 · 20 1 08478 (PC, program Counter), jota käytetään ohjelmakomentojen osoittamiseen ohjelmamuistialueelta, esim. kommunikointilaitteen muistista 17. Tätä tarkoitusta varten on datarekisterilohkosta 412 johdettu sisäinen osoiteväylä 413 osoiterekisteriin 411.
5
Osoiterekisteri 411 on yhdistetty osoitelaskurilohkoon 414, jossa tavallisesti kasvatetaan ohjelmalaskurin arvoa yhdellä, osoittamaan ohjelmakoodissa seuraavana olevaa kohtaa, jossa tavallisesti on seuraavaksi suoritettava ohjelmakomento. Joissakin tapauksissa suoritettavana ole-10 va ohjelmakomento, kuten aliohjelmakutsu, tai keskeytyspyyntö aiheuttaa siirtymisen toiseen kohtaan ohjelmakoodia, jolloin käskytulkki- ja ohjauslohko 401 asettaa ohjelmalaskuriin tämän osoitteen ja siirtää sen osoiterekisterin 411 arvoksi. Osoitelaskurilohkosta 414 on johdettu osoitteen muutosväylä 415 osoiterekisteriin 411 sekä datarekisteriloh-15 koon 412.
Suoritin 2 käsittää vielä kertolaskulohkon 416 kerto- ja jakolaskujen suorittamiseksi. Kertolaskulohko 416 on liitetty ensimmäiseen 409 ja toiseen sisäiseen dataväylään 405. Edellä kuvatussa suorittimessa 2 20 on myös muita liityntälinjoja ja väyliä kuin edellä esitetyt, joita ei kuitenkaan tässä yhteydessä ole tarpeen käsitellä tarkemmin.
Suorittimen 2 datarekisterilohkon 412 datarekistereistä osa on käytettävissä kaikissa suorittimen toimintamoodeissa, ja lisäksi eri toiminta-25 moodeille on varattu sellaisia datarekistereitä, joiden käyttäminen on : estetty muissa toimintamoodeissa. Tällä järjestelyllä voidaan vähentää erityisesti keskeytystilanteessa tietojen tallennustarvetta. Lisäksi eri ·· · toimintamoodeja varten on järjestetty oma pino-osoitin, jolloin kullakin toimintamoodilla voi tarvittaessa olla käytettävissään oma, edullisesti 30 muistista 17 varattu muistialue pinoa varten.
# · · • · « \\V Suoritin 2 voidaan asettaa edullisesti ainakin kolmeen toimintatilaan: • · · Käyttäjällään (User Mode), jossa on rajoitettu resurssien käyttöä, etu-f r*r oikeutettuun toimintatilaan (Privileged Mode, Supervisory Mode), jolloin 35 kaikki suorittimen resurssit ovat käytettävissä, tai tunnistamattomien käskyjen käsittelyllään (Undefined Mode), joka on etuoikeutetun tilan 4 4 ‘ 4 « 4 · 21 108478 erikoistoimintatila, jota käytetään tavallisesti sellaisissa tilanteissa, joissa suoritin 2 on havainnut ohjelmakoodissa tunnistamattoman komennon. Tässä edullisessa suoritusmuodossa tätä tunnistamattomien käskyjen käsittelytilaa käytetään tarkoituksellisesti eräänä toimintatilana, 5 jota selostetaan myöhemmin tässä selityksessä. Tässä suorittimessa 2 tunnistamattomien käskyjen käsittelyillä on käytännöllinen tähän tarkoitukseen. Vastaavana toimintatilana voidaan tarvittaessa käyttää jotain muuta etuoikeutettua toimintatilaa. Lisäksi suorittimella 2 on käytettävissä kolmentyyppisiä keskeytyksiä: Nopeita keskeytyksiä (FIQ, Fast 10 Interrupt Request), tavallisia keskeytyksiä (IRQ, Interrupt Request), ja ohjelmallisia keskeytyksiä (SWI, Software Interrupt Request). Nopeat keskeytykset FIQ ovat korkeammalla prioriteettitasolla kuin tavalliset keskeytykset IRQ, jotka vastaavasti ovat korkeammalla prioriteettitasolla kuin ohjelmalliset keskeytykset. Tällöin vasteajan kannalta kriittiset 15 keskeytykset on sopivimmin muodostettu nopeita keskeytyksiä FIQ käyttämällä.
Kommunikointilaitteen 1 käynnistyksessä suoritetaan suorittimen 2 ohjaamana sopivimmin kommunikointilaitteen muistiin 17, sopivimmin kir-20 joitusmuistiin tai haihtumattomaan luku/kirjoitusmuistiin tallennettu käynnistysohjelmakoodi, johon on muodostettu ohjelmakäskyt mm. muistitarkistusten suorittamiseksi. Alkukäynnistyksen yhteydessä ladataan myös tiedostojen hallintarutiinit, jolloin käyttöjärjestelmien OS_A, OS_B ohjelmakoodin lataukset muistiin 17 voidaan tarvittaessa suorit-25 taa tiedostojen hallintarutiinien avulla. Tämä on tavanomaista tekniikkaa useissa tietojenkäsittelylaitteissa ja käyttöjärjestelmissä. Käyttöjär- . jestelmien OS_A, OS_B ohjelmakoodit voivat olla tallennettuina myös ··* * ··.·. esim. lukumuistissa ROM, haihtumattomassa muistissa NVRAM tai .·:·. sähköisesti uudelleen ohjelmoitavissa olevassa lukumuistissa 30 EEPROM (Electrically Erasable Programmable ROM). Tällöin käyttöjär- ... jestelmiä OS_A, OS_B on mahdollista käyttää suoraan tallennuspaikas- *:.*.* ta (XIP-tekniikka, execute in place).
• · · * · ♦ ♦ « :Käyttöjärjestelmien OS_A, OS_B latauksen jälkeen ne käynnistetään.
':***: 35 Tällöin suoritetaan ensin esimerkiksi toisen käyttöjärjestelmän OS_B ai- •«« kutoimenpiteet, jolloin asetetaan mm. käyttöjärjestelmän prosessitaulut, muistialueet, keskeytyspalvelurutiinit, sanomajonot yms. määritykset, ladataan laiteajurit sekä tietotyypit ja sallitaan keskeytykset. Seuraavassa 22 1 0 8 4 78 vaiheessa siirrytään ensimmäisen käyttöjärjestelmän OS_A vastaavien alkutoimenpiteiden suoritukseen. Kun ensin on suoritettu toisen käyttöjärjestelmän OS_B alkutoimenpiteet, ensimmäisen käyttöjärjestelmän OS_A alkutoimenpiteissä mm. liitetään (esim. asetetaan funktioiden al-5 kuosoite muistissa 17) keskeytyskäsitteIijöihin dynaamisesti ensimmäisen käyttöjärjestelmän OS_A keskeytysfunktiot: keskeytyksen alku ja keskeytyksen loppu. Lisäksi keskeytyskäsittelijöihin muodostetaan liityntä ensimmäisen käyttöjärjestelmän OS_A säikeiden vuoronnukseen.
10 Laiteajurit suorittavat mm. oheislaitteiden toimintatilojen alkuasetukset. Käyttöjärjestelmien tietomuistille RAM varataan sopivimmin kiinteä alue (staattinen varaus), jolloin paremmin voidaan varmistua järjestelmän riittävästä suoritusnopeudesta verrattuna siihen vaihtoehtoon, että muistialueita varataan normaalin toiminnan aikana tarpeen mukaan 15 (dynaaminen varaus).
Alkutoimenpiteiden jälkeen aloitetaan mm. tyhjäkäyntisäikeen suoritus ja mahdollisesti jonkin sovellusohjelman lataus ja suoritus. Esimerkiksi voidaan käynnistää matkaviestintoiminnot, jolloin kommunikointilaite 1 20 on valmis vastaanottamaan puheluita, viestejä, telefaxeja yms. ja käyttäjä voi halutessaan muodostaa puhelun, lähettää viestin tai telefaxin, mikäli nämä toiminnot on kommunikointilaitteeseen 1 asetettu.
;.· Keskeytyksen tapahtuessa keksinnön mukaisessa kommunikointilait- i 25 teessä 1 suoritin 2 siirtyy suorittamaan keskeytystulkkia (Dispatcher), ·: joka tallentaa keskeytetyn säikeen tilan. Tämän jälkeen keskeytystulkki ; käynnistää keskeytyspalvelurutiinin. Se, mikä keskeytyspalvelurutiini *· · käynnistetään, riippuu tyypillisesti keskeytyspyynnön aiheuttajasta. Tämä voidaan päätellä esimerkiksi siten, että suorittimessa 2 on kes-30 keytysten tilarekisteri, jonka sisältö ilmoittaa keskeytyksen aiheuttajan. ... Esimerkiksi näppäimistökeskeytyksen seurauksena tilarekisterin vas- taava bitti muutetaan toiseen loogiseen tilaan (esimerkiksi loogisesta 0- • · * tilasta loogiseen 1-tilaan), jolloin suoritin 2 tutkii tämän rekisterin eri bitit : ja käynnistää vastaavan keskeytyspalvelurutiinin. Tilanteessa, jossa 35 useampi keskeytyspyyntö on voimassa, käynnistetään ensin korkeim man prioriteetin keskeytyspalvelurutiini.
• Tunnetaan myös suorittimia 2, joissa on käytettävissä useita keskeytys- 23 '108 478 linjoja nFIQ, nIRQ, jolloin keskeytyslinjan nFIQ, nIRQ tilamuutos aikaansaa keskeytyspyynnön. Eri keskeytyslinjoille nFIQ, nIRQ voi olla määritetty oma keskeytyspalvelurutiini. Näiden keskeytyspalvelurutiinien osoitteet voivat vielä olla taulukkomuodossa, jolloin suoritin 2 käy 5 tästä taulukosta hakemassa keskeytyksen mukaisen keskeytyspalvelu-rutiinin alkuosoitteen ja asettaa sen ohjelmalaskurinsa arvoksi, jolloin seuraavaksi suoritettava käsky on tässä osoitteessa.
Keskeytyspalvelurutiinissa suoritetaan tarvittavat toimenpiteet, esimer-10 kiksi näppäimistöpuskurin lukeminen ja tiedon tallennus muistiin. Lisäksi keskeytyspalvelu voi muodostaa signaalin välitettäväksi jollekin säi-keelle tai käyttöjärjestelmälle. Tarkempi kuvaus tämän keksinnön edullisen suoritusmuodon mukaisen kommunikointilaitteen 1 toiminnasta keskeytystilanteissa on esitetty myöhemmin tässä selityksessä, johon 15 tässä yhteydessä vi itataan.
Keskeytyspalveluiden vasteaika on tyypillisesti vielä pienempi kuin edellä mainittujen supersäikeiden 511 vasteaika, esimerkiksi luokkaa n. 100 mikrosekuntia. Tähän keskeytyspalvelun vasteaikaan vaikuttaa 20 mm. se, kuinka pitkään keskeytykset ovat kiellettyinä jossakin osassa ohjelmakoodia. Keskeytyskiellot voivat kohdistua joko kaikkiin keskeytyksiin, tiettyä prioriteettitasoa alhaisempiin keskeytyksiin tai keskeytysten maskirekisterin tai vastaavan kautta keskeytys voidaan väliaikai-sesti kieltää. Tällöin keskeytyspyyntö jää muistiin ja keskeytyspalvelu-; ' 25 rutiini suoritetaan siinä vaiheessa, kun keskeytys kielto tämän keskey tyspyynnön osalta on poistunut ja muita korkeamman prioriteettitason :" : säikeitä ei ole suorituksessa.
·· · • · • * · • · ·
Ensimmäisestä käyttöjärjestelmästä OS_A toiseen käyttöjärjestelmään * < · 30 OS_B siirtyminen voi tapahtua silloin, kun ensimmäisen käyttöjärjestel- ... män OS_A säikeitä ei ole suoritettavana. Tällöin ensimmäisen käyttö- * · · *;[/ järjestelmän OS_A kannalta suoritus on tyhjäkäyntisäikeessä (Idle :·; : Thread). .
• * • · · • » « V"; 35 Kommunikointilaitteen 1 toiminnan aikana saattaa olla tarpeen välittää informaatiota myös eri käyttöjärjestelmissä OS_A, OS_B toimivien sovellusten välillä. Tämä on tarpeen erityisesti sellaisissa tilanteissa, 24 1 08478 joissa molemmat käyttöjärjestelmät OS_A, OS_B käyttävät ainakin osittain yhteisiä resursseja. Esimerkiksi näppäimistöt 9,14 voivat sisältää yhteisiä näppäimiä tai erillisten näppäimistöjen 9,14 sijasta voidaan käyttää yhtä yhteistä näppäimistöä. Toisaalta tällaisten resurssien ohja-5 us on usein järkevää hoitaa yhden laiteohjaimen avulla, johon on järjestetty omat liityntärajapinnat eri käyttöjärjestelmistä OS_A, OS_B. Tämä helpottaa myös sellaisten tilanteiden hallintaa, jossa useampi kuin yksi käyttöjärjestelmä OS_A, OS_B yrittää käyttää samaa resurssia samanaikaisesti.
10
Tarkastellaan seuraavaksi keksinnön mukaisen kommunikointilaitteen toimintaa eri käyttöjärjestelmien OS_A, OS_B kannalta. Tässä keksinnön edullisessa suoritusmuodossa ensimmäinen käyttöjärjestelmä OS_A on ns. reaaliaikanen käyttöjärjestelmä, jolloin sille on asetettu 15 tiettyjä suoritusaikavaatimuksia. Toinen käyttöjärjestelmä OS_B ei ole aivan yhtä kriittinen suoritusaikojensa suhteen, mutta erityisesti käyttö-mukavuuden kannalta on myös toisen käyttöjärjestelmän OS_B kyettävä suorittamaan sille asetetut toimenpiteet kohtuullisessa ajassa.
20 Ensimmäisen käyttöjärjestelmän OS_A säikeille on määritetty prioriteetti esim. sulautetun järjestelmän suunnitteluvaiheessa. Prioriteetilla voidaan vaikuttaa mm. kriittisten säikeiden suoritusjärjestykseen ja vaste-aikoihin. Ensimmäisen käyttöjärjestelmän vuorontaja SCH_A asettaa :.· I suorituskierroksella ensimmäiseksi suoritukseen sen säikeen, jonka : y 25 prioriteetti on sillä hetkellä korkein. Käytännön järjestelmässä tämä tar-: koittaa sitä, että keksinnön edullisen suoritusmuodon mukaisen kom- ; munikointilaitteen 1 suoritin 2 suorittaa ensimmäisen käyttöjärjestelmän ·« · :Y; OS_A vuorontaja-toimintoa, joka on toteutettu suorittimen 2 ohjelma- komennoilla. Säikeiden suorituksessa järjestelmän suoritin 2 tekee säi-30 keeseen ohjelmoitujen ohjelmakomentojen mukaisia toimenpiteitä.
«•I ♦ ♦ ·
Kaikkien ensimmäisessä käyttöjärjestelmässä OS_A käynnissä olevien • · · prosessien säikeiden THAI, THA2 suorituksen jälkeen suoritin 2 siirtyy ?;*: suorittamaan toisen käyttöjärjestelmän OS_B toimintoja, esim. viivästet- 35 tyjä funktiokutsuja DSR (Delayed Service Routine) tai odottamassa ole- I « « via säikeitä THB1, THB2. Ensimmäisen käyttöjärjestelmän OS_A säi- y keet THAI, THA2 saavat aina toimia, lukuunottamatta lyhyitä katkoksia < · * I · 25 1 0 8 4 7 8 keskeytyskäsittelyn aikana. Tämä on esitetty tarkemmin jäljempänä tässä selityksessä. Tässä keksinnön edullisessa suoritusmuodossa toisen käyttöjärjestelmän OS_B suoritus vastaa ensimmäisen käyttöjärjestelmän OS_A kannalta ensimmäisen käyttöjärjestelmän OS_A säikeen, 5 kuten tyhjäkäyntisäikeen THAJDLE tai supersäikeen suorittamista. Ensimmäiseen käyttöjärjestelmään OS_A on tämän aikaansaamiseksi muodostettu tyhjäkäyntisäiettä THAJDLE kuvaava tietorakenne (ei esitetty), vaikka varsinaista tyhjäkäyntisäiettä ei ensimmäisessä käyttöjärjestelmässä OS_A tämän suoritusmuodon mukaisessa toteutuksessa 10 ole.
Siirryttyään suorittamaan toista käyttöjärjestelmää OS_B, suoritin 2 tekee toisen käyttöjärjestelmän OS_B vuorontajatoiminnot toisen käyttöjärjestelmän OS_B suorituksessa olevien säikeiden THB1, THB2 priori-15 teettien ja vuorontamiskäytännön perusteella. Ensin suoritetaan viiväs- £ tetyt funktiokutsut DSR, mikäli niitä oli odottamassa, ja sen jälkeen siirrytään säikeiden THB1, THB2 suoritukseen sopivimmin prioriteettijär-jestyksessä. Suoritettavana olevien säikeiden THB1, THB2 suorituksen jälkeen, jolloin mikään säie THB1, THB2 ei ole suoritustilassa (RUN), 20 siirtyy suoritin 2 toisen käyttöjärjestelmän OS_B tyhjäkäyntisäikeeseen THBJDLE, kunnes on tarve tehdä uusi suorituskierros.
Toisen käyttöjärjestelmän OS_B suorituksen aikana voi tapahtua siirtyminen ensimmäiseen käyttöjärjestelmään OS_A lähes missä vai-j ' 25 heessa tahansa. Tämä tapahtuu edullisesti siten, että keskeytyspyyn- nön seurauksena suoritin 2 siirtyy suorittamaan keskeytyspalveluohjel-:"· maa, jossa aktivoidaan ensimmäinen käyttöjärjestelmä OS_A jäljem-
pänä esitettävällä tavalla. Paluu toiseen käyttöjärjestelmään OSJ3 ta-pahtuu siinä vaiheessa, kun ensimmäisessä käyttöjärjestelmässä OS_A
• · i 30 suoritus on edennyt tyhjäkäyntisäikeeseen THAJDLE. Ensimmäisen ... käyttöjärjestelmän OS_A suoritus on siis toisen käyttöjärjestelmän ♦ · < OS_B kannalta keskeytyspalveluohjelman suorittamista.
. · · ♦ • ♦ · j r‘r Tässä keksinnössä käyttöjärjestelmien OS_A, OS_B yhdistäminen on 35 pyritty aikaansaamaan siten, että muutokset eri käyttöjärjestelmien OS_A, OS_B ohjelmakoodeihin ovat mahdollisimman vähäiset ja toi- • t saalta siten, että käyttöjärjestelmien OS_A, OSJ3 ominaisuudet eivät ' i merkittävästi muutu sovelluskehittäjän kannalta. Keksinnön edullisen 26 1 08478 suoritusmuodon mukaisessa kommunikointilaitteessa yhdistäminen on tehty keskeytyspalveluohjelmatasolla. Laitteisto- FIQ, IRQ tai ohjelma-keskeytyksen SWI tullessa suoritin 2 siirtyy suorittamaan keskeytyspal-veluohjelmaa. Tämä ohjelma voi olla joko yhteinen kaikille keskeytyksil-5 le, jolloin rekistereistä tai vastaavista tutkimalla suorittimen 2 käsky-tulkki- ja ohjauslohko 401 voi tarvittaessa päätellä keskeytyksen aiheuttajan, tai keskeytyspalveluohjelmia voi olla useita eri laitteisto- FIQ, IRQ ja ohjelmakeskeytyksille SWI. Keskeytyspalveluohjelman alkuun on lisätty ohjelmakutsu (funktiokutsu) keskeytyksen alku -rutiiniin (interrupt 10 begin), jossa muutetaan käyttöjärjestelmien OS_A, OS_B sisäistä statusta, jolloin käyttöjärjestelmissä OS_A, OS_B on tieto keskeytyspalve-lun olevan käynnissä. Siirtymiset keskeytyspalveluohjelmaan, aliohjelmien suorittaminen, tilatietojen tutkiminen yms. toimenpiteet suoritetaan käskytulkki- ja ohjauslohkon 401 ohjaamana, kuten jo aikaisemmin 15 tässä selityksessä on esitetty ja on toisaalta alan asiantuntijan tuntemaa tekniikkaa.
Seuraavaksi suoritetaan keskeytyskäsittelijän toiminnot, jolla tarkoitetaan sitä, että käskytulkki- ja ohjauslohko 401 suorittaa suorittimelle 2 20 tulleelle keskeytykselle määritellyt ohjelmakomennot, jotka on tallennettu sopivimmin muistiin 17. Keskeytyskäsittelijässä mm. tutkitaan keskeytyksen aiheuttaja ja päätellään se, vaatiiko keskeytyskäsittely ensimmäisen OS_A tai toisen käyttöjärjestelmän OS_B säikeiden suori-tusta. Jos kyseinen keskeytyskäsittely vaatii ensimmäisen käyttöjärjes-: '' 25 telmän OS_A säikeiden suoritusta, asettaa keskeytyskäsittelijä tästä tiedon ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A varten. Jos ···' keskeytyskäsittely vaatii toisen käyttöjärjestelmän OS_B säikeiden \v suoritusta, muodostaa keskeytyskäsittelijä viivästetyn funktiokutsun · DSR suoritettavaksi ensimmäisen käyttöjärjestelmän OS_A säikeiden 30 suorituksen jälkeen. Tällainen viivästetty funktiokutsu DSR voidaan muodostaa myös ensimmäisen käyttöjärjestelmän OS_A suorituksessa olevista säikeistä käsin. Tämä viivästetty funktiokutsu DSR voi asettaa toisen käyttöjärjestelmän vuorontajaan SCH_B tiedon siitä, että keskey- • ♦ · : tyskäsittely vaatii toisen käyttöjärjestelmän OS_B tiettyjen säikeiden ' ·..; 35 suoritusta. Joissakin tapauksissa on mahdollista myös se, että keskey- tyskäsittelijä asettaa tämän tiedon toisen käyttöjärjestelmän vuoronta-jalle SCH_A ilman, että käytetään viivästettyjä funktiokutsuja DSR.
27 1 08478
Keskeytyspalveluohjelmassa voidaan suorittaa myös muita toimenpiteitä, kuten tiedon lukeminen puskuriin, josta tieto käydään lukemassa siinä vaiheessa kun sovellusohjelman säie, jolle tieto on osoitettu, on suoritusvaiheessa.
5
Keskeytysohjelman loppuun on lisätty keskeytyksen loppu -funktiokutsu (Interrupt end), jossa mm. asetetaan tieto keskeytyspalveluohjelman suorituksen päättymisestä. Lisäksi funktio palauttaa tiedon siitä, onko keskeytyspalveluohjelmassa suoritettu ensimmäisen käyttöjärjestelmän 10 OS_A rutiineja, jotka vaativat ensimmäisen käyttöjärjestelmän vuoron-tajalta SCH_A suoritusajan antamista säikeille. Keskeytyspalveluohjelman päätyttyä vaihdetaan suorittimen 2 toimintatila ja ensimmäisen käyttöjärjestelmän OS_A status. Mikäli keskeytyskäsittely aiheutti tarpeen suorittaa ensimmäisen käyttöjärjestelmän OS_A säikeitä, suorite-15 taan seuraavaksi ensimmäisen käyttöjärjestelmän OS_A vuorontajaoh-jelma, jossa asetetaan uusi status (READY) sille säikeelle, jolle keskeytys aiheutti toimenpiteitä, esim. tiedon lukeminen puskurista. Ensimmäisen käyttöjärjestelmän vuorontaja SCH_A ohjaa suoritukseen asetetussa prioriteettijärjestyksessä ne ensimmäisen käyttöjärjestelmän OS_A 20 säikeet, jotka ovat suoritusta odottamassa (READY-tilassa).
Ensimmäisen käyttöjärjestelmän OS_A keskeytyspä!veiussa tai suori- . tuksessa olevissa ensimmäisen käyttöjärjestelmän OS_A säikeissä voi- » » « daan joissakin tilanteissa muodostaa viivästettyjä funktiokutsuja DSR, : ·' 25 jolloin muutetaan toisen käyttöjärjestelmän OS_B säikeiden statusta.
Viivästetyt funktiokutsut DSR käsitellään sen jälkeen, kun suoritin 2 on suorittanut kaikki suoritusta odottamassa olleet ensimmäisen käyttöjär- • · :.v jestelmän OS_A säikeet. Viivästettyjen funktiokutsujen DSR käsittelyn jälkeen suoritetaan vielä toisen käyttöjärjestelmän OS_B vuorontajaru-30 tiini toisen käyttöjärjestelmän OS_B suoritusta odottavien säikeiden ;*·*: suorittamiseksi edullisesti prioriteettijärjestyksessä.
• · · • · · • · ·
Edellä mainittujen toimenpiteiden suorittamisen aikana voi tulla uusi • * · "f: keskeytys, jolloin toiminta siirtyy jälleen keskeytyskäsittelyyn, minkä jäl- :: 35 keiset toimenpiteet noudattelevat edellä esitettyjä periaatteita.
; Keskeytyksen jälkeinen toiminta jatkuu siten, että suoritetaan se toi menpide, jonka efektiivinen prioriteetti on sillä hetkellä korkein. Tähän 28 1 08478 vaikuttaa mm. se, mitä vaihetta suoritin 2 oli suorittamassa keskeytys-hetkellä ja se, mikä aiheutti keskeytyksen. Eräitä eri vaihtoehtoisia tilanteita on esitetty oheisissa kuvissa 6a—6i, joita seuraavassa selostetaan tarkemmin. Esimerkkinä sulautetusta järjestelmästä 1 käytetään kom-5 munikointilaitetta, jossa on toteutettu sekä matkaviestintoimintoja että tietojenkäsittelytoimintoja, kuten henkilökohtaisen digitaalisen apulaitteen PDA toimintoja. Kommunikointilaitteen suorittimessa 2 käytetään kahta käyttöjärjestelmää OS_A, OS_B· Ensimmäinen käyttöjärjestelmä OS_A on tarkoitettu lähinnä matkaviestintoimintojen ohjaamiseen ja 10 käyttämiseen. Toinen käyttöjärjestelmä OS_B on tarkoitettu lähinnä tietojenkäsittelytoimintojen ohjaamiseen ja käyttämiseen.
Kuvien 6a—6h esimerkkitilanteissa on kyseessä ns. normaali keskeytys IRQ (Interrupt request). Tässä keksinnön edullisen suoritusmuodon 15 mukaisessa kommunikointilaitteessa 1 on käytettävissä myös ns. nopea keskeytys FIQ (Fast interrupt request), kuten kuvan 6i esimerkissä on esitetty. Nopean keskeytyksen FIQ prioriteetti on edullisesti korkeampi kuin normaalin keskeytyksen IRQ. Lisäksi käytettävissä on vielä ohjelmallinen keskeytys SWI (Software interrupt), jonka prioriteetti on edulli-20 sesti matalampi kuin normaalin keskeytyksen IRQ. Oheisten kuvien 6a —6i mukaiset vaiheet ovat sovellettavissa myös nopeisiin keskeytyksiin FIQ ja ohjelmallisiin keskeytyksiin SWI, joten tässä selityksessä on , . käsitelty pääasiassa vain normaaleja keskeytyksiä IRQ.
25 Viivästetty funktiokutsu DSR on toisen käyttöjärjestelmän OS_B ominaisuus, jota voidaan käyttää mm. sanomien välityksessä eri säikeiden '··· välillä ja tarvittaessa myös eri käyttöjärjestelmien OS_A, OS_B välillä.
Viivästetty funktiokutsu DSR muuttaa toisen käyttöjärjestelmän OS_B
• · * ♦ säikeen statuksen suorituksen odotustilaan (READY-tilaan). Viivästetty- 30 jen funktiokutsujen DSR prioriteetti toisessa käyttöjärjestelmässä OS_B on korkeampi kuin säikeiden, joten ne käsitellään ennen toisen käyttö-järjestelmän OS_B säikeiden suoritusta.
• · • · · ; Suorittimella 2 on tässä esimerkissä seuraavat toimintatilat: 35 - käyttäjätila USER, - etuoikeutettu toimintatila SVC, - tunnistamattomien käskyjen käsittelytila UND, - nopea keskeytyspä FIQ, 29 1 08 4 78 - normaali keskeytystila IRQ, ja - ohjelmallinen keskeytystila SWI,
Tunnistamattomien käskyjen käsittelytilaa UND käytetään tässä keksin-5 nön edullisessa suoritusmuodossa normaalina suoritustilana, vaikka sen oletusarvoinen käyttötarkoitus tässä esimerkissä käytettävällä suorittimella 2 on tunnistamattomien käskyjen käsittelytila.
Kuvassa 6a on esitetty tilanne, jossa normaalin keskeytyksen tullessa 10 suoritin 2 on suorittamassa toisen käyttöjärjestelmän OS_B alaista säi että THB1 (lohko 601), joka käsittää esim. käyttäjän käynnistämään sovellusohjelmaan liittyvän prosessin kommunikointilaitteen 1 tietojenkä-sittelytoiminnoissa. Suoritin 2 on käyttäjän toimintatilassa USER. Normaali keskeytys aiheuttaa toimintatilan vaihtumisen normaaliin keskey-15 tystilaan IRQ, jolloin suoritin 2 siirtyy suorittamaan normaalin keskeytyksen alku -funktiota (lohko 602) ja sen jälkeen normaalin keskeytyksen palveluohjelmaa (lohko 603). Keskeytys ei aiheuttanut ensimmäisen käyttöjärjestelmän OS_A säikeiden suoritustarvetta, jolloin keskeytyksen jälkeen ei kutsuta ensimmäisen käyttöjärjestelmän vuorontajaa 20 SCH_A. Keskeytyksessä ei muodostettu myöskään viivästettyjä funktiokutsuja DSR. Keskeytyskäsittelyn päättyessä kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Normaalin keskeytyksen palveluohjelman jv päätyttyä vaihdetaan suorittimen 2 toimintatila takaisin käyttäjän toimin- 25 tatilaan USER. Suoritus jatkuu keskeytyneestä toisen käyttöjärjestelmän OS_B säikeestä THB1 (lohko 605).
• · :.v Keskeytyksen aiheuttaa esim. kommunikointilaitteen 1 kannen (ei esi- • · · v ; tetty) avaaminen, jolloin kannen asennon ilmaiseva kytkin S1 vaihtaa ti- 30 laansa, esim. aukeaa, jolloin suoritin 2 voi tutkia tämän kytkimen S1 :T: asennon lukemalla kytkimeen liitetyn tunnistuslinjan 20 loogisen tilan (0/1). Tässä tapauksessa kannen avaaminen ei välittömästi aiheuttanut . ·. muita toimenpiteitä.
• · « • · · • · * « • : 35 Kuvassa 6b on esitetty tilanne, jossa normaalin keskeytyksen tullessa suoritin 2 on suorittamassa ensimmäisen käyttöjärjestelmän OS_A tyh-jäkäyntisäiettä THAJDLE (lohko 606). Tällöin toimintatila vaihtuu tunnistamattomien käskyjen käsittelytilasta UND normaaliin keskeytystään 30 1 08478 IRQ ja suoritin 2 siirtyy suorittamaan normaalin keskeytyksen alku -funktiota (lohko 602) ja sen jälkeen normaalin keskeytyksen palveluohjelmaa. Keskeytys ei aiheuttanut ensimmäisen käyttöjärjestelmän OS_A säikeiden suoritustarvetta, jolloin keskeytyksen jälkeen ei kutsuta en-5 simmäisen käyttöjärjestelmän vuorontajaa SCH_A. Keskeytyksessä ei muodostettu myöskään viivästettyjä funktiokutsuja DSR. Keskeytyksen päätyttyä kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Normaalin keskeytyksen palveluohjelman päätyttyä vaihdetaan suorittimen 2 toi-10 mintatila takaisin tunnistamattomien käskyjen käsittelyillään UND. Suoritus jatkuu tyhjäkäyntisäikeestä THAJDLE (lohko 605).
Keskeytyksen IRQ aiheuttaa esim. se, että käyttäjä painaa tietojenkäsit-telytoimintojen näppäimistön 14 jotakin näppäintä kommunikointilaitteen 15 1 kannen ollessa auki. Keskeytyskäsittelijä tutkii, onko tässä tilanteessa kyseisen näppäimen painalluksella vaikutusta matkaviestintoimintaan ja toteaa, ettei ole, jolloin keskeytys ei aiheuttanut toimenpiteitä matka-viestintoimintoihin.
20 Kuvassa 6c on esitetty tilanne, jossa normaalin keskeytyksen tullessa suoritin 2 on suorittamassa toisen käyttöjärjestelmän OS_B alaista säiettä THB1 (lohko 601), joka käsittää esim. käyttäjän käynnistämään sovellusohjelmaan liittyvän prosessin kommunikointilaitteen tietojen-jiY käsittelytoiminnoissa. Tämä tilanne on esitetty vielä nuolikaaviona ku- : 25 vassa 8. Suoritin 2 on käyttäjän toimintatilassa USER. Tällöin toimintati la vaihtuu normaaliin keskeytystään IRQ ja suoritin 2 siirtyy suoritta-'··· maan normaalin keskeytyksen alku -funktiota (lohko 602) ja sen jälkeen :Λ: normaalin keskeytyksen palveluohjelmaa (lohko 603 kuvassa 6c, nuolet ·»» : 801 ja 802 kuvassa 8). Keskeytys aiheutti ensimmäisen käyttöjärjestel- 30 män OS_A ainakin yhden säikeen suoritustarpeen, mutta keskeytyk-:T: sessä ei muodostettu viivästettyjä funktiokutsuja DSR. Keskeytyksen :*··: päätyttyä (nuoli 803) kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Nor- ♦ · · : maalin keskeytyksen palveluohjelman päätyttyä vaihdetaan suorittimen • · -: 35 2 toimintatila tunnistamattomien käskyjen käsittelytilaan UND ja samalla kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, joka asettaa säikeille uudet statukset tarvittaessa (lohko 608 kuvassa 6c, 31 1 08478 nuoli 804 kuvassa 8). Tämän jälkeen suoritetaan ensimmäisen käyttöjärjestelmän OS_A suoritusta odottavat säikeet (READY-tilassa olevat säikeet) (nuolet 805—808). Sen jälkeen kun suorittamista odottavia säikeitä ei ole, suorittimen 2 toimintatila asetetaan takaisin käyttäjän 5 toimintatilaan USER ja suoritus jatkuu toisen käyttöjärjestelmän OS_B keskeytyneestä säikeestä THB1 (lohko 605 kuvassa 6c, nuolet 809, 81 Oja 811 kuvassa 8).
Tätä tilannetta kuvaavassa esimerkissä on kommunikointilaitteeseen 1 10 tullut puhelu, johon ei ole vastattu. Tällöin matkaviestintoimintojen näyttölaitteessa 10 sekä tietojenkäsittelytoimintojen näyttölaitteessa 15 näytetään viesti saapuneista, vastaamattomista puhelusta, esim. teksti Ί missed call". Käyttäjä painaa tietojenkäsittelytoimintojen kuittausnäp-päintä (ei esitetty), jolloin muodostuu normaali keskeytys IRQ. Keskey-15 tyskäsittelyssä asetetaan suoritustilaa odottamaan ensimmäisen käyttö- ' järjestelmän OS_A säie, jolla mainittu teksti on poistettavissa matkaviestintoimintojen näyttölaitteesta 10. Keskeytyksen päätyttyä suoritin 2 siirtyy suorittamaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, jolloin ensimmäisen käyttöjärjestelmän OS_A säie suoritusti-20 laan päästyään poistaa mainitun tekstin matkaviestintoimintojen näyttölaitteesta 10.
, , Kuvassa 6d on esitetty tilanne, jossa normaalin keskeytyksen tullessa ' suoritin 2 on suorittamassa toisen käyttöjärjestelmän OS_B alaista säi- 25 että THB1 (lohko 601) ja on asetettu käyttäjän toimintatilaan USER.
Tällöin toimintatila vaihtuu normaaliin keskeytyskään IRQ ja suoritin 2 siirtyy suorittamaan normaalin keskeytyksen alku -funktiota (lohko 602) v.; ja sen jälkeen normaalin keskeytyksen palveluohjelmaa (lohko 603).
v : Keskeytys aiheutti ensimmäisen käyttöjärjestelmän OS_A ainakin yh- 30 den säikeen suoritustarpeen. Lisäksi keskeytyksessä, ja/tai jossakin :T; keskeytyksen jälkeen suorituksessa olevassa ensimmäisen käyttöjär- jestelmän OS_A säikeessä muodostettiin viivästetty funktiokutsu DSR.
. *. Keskeytyksen päätyttyä kutsutaan normaalin keskeytyksen loppu -funk- • · · : tiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä.
35 Normaalin keskeytyksen palveluohjelman päätyttyä vaihdetaan suorit-timen 2 toimintatila tunnistamattomien käskyjen käsittelyillään UND, ja kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, joka * · 32 1 08478 asettaa säikeille uudet statukset tarvittaessa ja ohjaa suoritukseen ensimmäisen käyttöjärjestelmän OS_A suoritusta odottavat säikeet vuo-rontamiskäytäntönsä mukaisesti (lohko 608). Sen jälkeen kun ensimmäisen käyttöjärjestelmän OS_A suorittamista odottavia säikeitä ei ole, 5 käsitellään toisen käyttöjärjestelmän OS_B viivästetyt funktiokutsut DSR, minkä jälkeen suorittimen 2 toimintatila asetetaan takaisin käyttäjän toimintatilaan USER ja suoritus jatkuu toisen käyttöjärjestelmän OS_B keskeytyneestä säikeestä THB1 (lohko 605), koska toisen käyttöjärjestelmän OS_B sillä säikeellä, jonka statuksen viivästetty funktio-10 kutsu DSR muutti, oli matalampi prioriteetti kuin toisen käyttöjärjestelmän OS_B keskeytyneellä säikeellä THB1.
Esimerkkinä voidaan mainita tilanne, jossa käyttäjä on kirjoittanut lyhytsanomaviestin (SM, Short Message) tietojenkäsittelytoimintojen näp-15 päimistöllä 14. Lähetysnäppäimen (ei esitetty) painallus aiheuttaa normaalin keskeytyksen IRQ. Keskeytyskäsittelyssä asetetaan suoritustilaa odottamaan ensimmäisen käyttöjärjestelmän OS_A säie tai säikeet lähetettävän sanoman lukemiseksi puskurista ja lähettämiseksi ja muodostetaan tietojenkäsittelytoimintojen näyttölaitteelle 15 kuvake, jolla il-20 moitetaan käyttäjälle sanoman olevan lähtemässä. Keskeytyksen päätyttyä suoritin 2 siirtyy suorittamaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, jolloin ensimmäisen käyttöjärjestelmän OS_A säie suoritustilassa ollessaan lähettää sanoman, minkä jälkeen muodostetaan viivästetty funktiokutsu DSR kuvakkeen poistamiseksi. Tämän jäl-25 keen toisen käyttöjärjestelmän vuorontaja SCH_B asettaa suoritustilaan toisen käyttöjärjestelmän OS_B keskeytyneen säikeen THB1, koska sen prioriteetti tässä esimerkkitilanteessa on korkeampi kuin toisen • · käyttöjärjestelmän OS_B kuvakkeen poistavan säikeen prioriteetti.
• · · ί Myöhemmin tämä säie pääsee suoritusvuoroon ja poistaa mainitun 30 tekstin tietojenkäsittelytoimintojen näyttölaitteesta 15.
* · · • · • · <
Kuvassa 6e on esitetty tilanne, jossa normaalin keskeytyksen tullessa • . *. suoritin 2 on suorittamassa ensimmäisen käyttöjärjestelmän OS_A tyh- · jäkäyntisäiettä THAJDLE (lohko 606) ja on asetettu tunnistamattomien :···: 35 käskyjen käsittelyillään UND. Tällöin toimintatila vaihtuu normaaliin keskeytystään IRQ ja suoritin 2 siirtyy suorittamaan normaalin keskey-: tyksen alku -funktiota (lohko 602) ja sen jälkeen normaalin keskeytyk sen palveluohjelmaa (lohko 603). Keskeytys aiheutti ensimmäisen 33 1 08478 käyttöjärjestelmän OS_A ainakin yhden säikeen suoritustarpeen. Lisäksi keskeytyksessä ja/tai ensimmäisen käyttöjärjestelmän OS_A säi-keessä muodostettiin viivästetty funktiokutsu DSR, joka aiheuttaa vielä toisen käyttöjärjestelmän OS_B yhden tai useamman säikeen statuksen 5 muuttamisen suoritusta odottamaan (READY). Keskeytyksen päätyttyä kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Normaalin keskeytyksen palveluohjelman päätyttyä vaihdetaan suorittimen 2 toimintatila ja ensimmäisen käyttöjärjestelmän OS_A status. Suorittimen 2 toimintatila 10 vaihdetaan tunnistamattomien käskyjen käsittelytilaan UND, minkä jälkeen kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A (lohko 608), joka asettaa säikeet vuorollaan suoritustilaan, eli suoritetaan ensimmäisen käyttöjärjestelmän OS_A suoritusta odottavat säikeet (READY-tilassa). Sen jälkeen kun suorittamista odottavia ensim-15 mäisen käyttöjärjestelmän OS_A säikeitä ei ole, käsitellään toisen käyttöjärjestelmän OS_B viivästetyt funktiokutsut DSR (lohko 609), minkä jälkeen kutsutaan toisen käyttöjärjestelmän vuorontajaa SCH_B (lohko 610), joka asettaa toisen käyttöjärjestelmän OS_B suoritusjärjestyksessä, edullisesti prioriteettijärjestyksessä, ensimmäisenä suoritusta 20 odottavan säikeen suoritustilaan. Tämän jälkeen suorittimen 2 toimintatila asetetaan takaisin käyttäjän toimintatilaan USER ja suoritus jatkuu toisen käyttöjärjestelmän OS_B säikeestä THB1 (lohko 605), jonka pri-, , oriteetti sillä hetkellä on korkein. Toisen käyttöjärjestelmän vuorontaja SCH_B ohjaa säikeiden suoritusta vuorontamiskäytäntönsä mukaisesti. 25
Esimerkkitilanteessa on kommunikointilaitteeseen 1 saapunut lyhytsa- nomaviesti, jonka merkiksi on muodostettu matkaviestintoimintojen :.v näyttölaitteelle 10 sekä tietojenkäsittelytoimintojen näyttölaitteelle 15 • · · v : kuvake. Käyttäjä painaa matkaviestintoimintojen näppäimistön 9 lue- 30 näppäintä (ei esitetty), joka aiheuttaa normaalin keskeytyksen IRQ. :T: Keskeytyskäsittelyssä asetetaan suoritustilaa odottamaan ensimmäisen käyttöjärjestelmän OS_A säie tai säikeet kuvakkeen poistamiseksi matkaviestintoimintojen näyttölaitteelta 10 ja saapuneen sanoman näyttä- • · · miseksi matkaviestintoimintojen näyttölaitteella 10. Lisäksi muodoste-: ··: 35 taan viivästetty funktiokutsu DSR kuvakkeen poistamiseksi tietojenkä- sittelytoimintojen näyttölaitteelta 15. Suoritin 2 suorittaa keskeytyksen jälkeen ensimmäisen käyttöjärjestelmän OS_A vuorontajatoiminnot, 34 1 08478 käsittelee viivästetyt funktiokutsut DSR ja siirtyy toisen käyttöjärjestelmän OS_B vuorontajatoimintojen suoritukseen, jolloin toisen käyttöjärjestelmän OS_B säie suoritukseen päästyään poistaa kuvakkeen tieto-jenkäsittelytoimintojen näyttölaitteelta 15.
5
Kuvassa 6f on esitetty tilanne, jossa normaalin keskeytyksen tullessa suoritin 2 on suorittamassa toisen käyttöjärjestelmän OS_B säiettä THB1 (lohko 601) ja on asetettu käyttäjän toimintatilaan USER. Tällöin toimintatila vaihtuu normaaliin keskeytystään IRQ ja suoritin 2 siirtyy 10 suorittamaan normaalin keskeytyksen alku -funktiota (lohko 602) ja sen jälkeen normaalin keskeytyksen palveluohjelmaa (lohko 603). Keskeytys aiheutti ensimmäisen käyttöjärjestelmän OS_A ainakin yhden säikeen suoritustarpeen. Lisäksi keskeytyksessä ja/tai jossakin keskeytyksen jälkeen suorituksessa olevassa ensimmäisen käyttöjärjestelmän 15 OS_A säikeessä muodostettiin viivästetty funktiokutsu DSR, joka aiheuttaa vielä toisen käyttöjärjestelmän OSJ3 säikeiden suoritusaikojen uudelleen asetuksen. Keskeytyksen päätyttyä kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Normaalin keskeytyksen palveluohjelman päätyttyä 20 vaihdetaan suorittimen 2 toimintatila ja ensimmäisen käyttöjärjestelmän OS_A status. Suorittimen 2 toimintatila vaihdetaan tunnistamattomien käskyjen käsittelyillään UND, minkä jälkeen kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, joka asettaa säikeille uudet statukset tarvittaessa (lohko 608). Tämän jälkeen suoritetaan ensim-25 mäisen käyttöjärjestelmän OS_A suoritusta odottavat säikeet (READY-tilassa olevat säikeet). Sen jälkeen kun suorittamista odottavia säikeitä ei ole, käsitellään toisen käyttöjärjestelmän OS_B viivästetyt funktiokut- • · v.: sut DSR (lohko 609), minkä jälkeen kutsutaan toisen käyttöjärjestelmän vuorontajaa SCH_B (lohko 610), joka asettaa toisen käyttöjärjestelmän 30 OS_B suoritusjärjestyksessä ensimmäisenä suoritusta odottavan säi-keen suoritustilaan. Tässä esimerkissä keskeytyskäsittely aiheutti sen, * että suoritustilaan ei vielä siirry keskeytynyt säie THB1, vaan toinen tämän toisen käyttöjärjestelmän OS_B säie THB2, jonka status muuttui ··· · suoritusta odottavaksi. Suorittimen 2 toimintatila asetetaan takaisin
« ) I
:...: 35 käyttäjän toimintatilaan USER, minkä jälkeen suoritin 2 siirtyy suoritta- maan sitä säiettä THB2, joka asetettiin suoritustilaan (lohko 611). Kes- .·. : keytynyt säie THB1 tulee vuorollaan suoritustilaan (lohko 605).
35 1 08478
Esimerkkinä edellä olevasta on tilanne, jossa käyttäjä on kirjoittamassa lyhytsanomaviestiä tietojenkäsittelytoimintojen näppäimistöllä 14 ja liittää kommunikointilaitteeseen 1 latauslaitteen (ei esitetty). Tämä aiheuttaa normaalin keskeytyksen IRQ. Keskeytyskäsittelyssä asetetaan 5 suoritustilaa odottamaan ensimmäisen käyttöjärjestelmän OS_A säie, jolla matkaviestintoimintojen näyttölaitteelle 10 muodostetaan kuvake, jolla ilmoitetaan latauksen olevan käynnissä. Lisäksi viivästetyn funktiokutsun DSR avulla muodostetaan vastaava kuvake tietojenkäsittely-toimintojen näyttölaitteelle 15.
10
Kuvassa 6g on esitetty tilanne, jossa normaalin keskeytyksen tullessa suoritin 2 on suorittamassa ensimmäisen käyttöjärjestelmän OS_A alaista säiettä THA1 (lohko 612), joka on esim. yhteyden muodostusso-vellus kommunikointilaitteen 1 matkaviestintoiminnoissa. Suoritin 2 on 15 tunnistamattomien käskyjen käsittelytilassa UND. Tällöin toimintatila vaihtuu normaaliin keskeytyskään IRQ ja suoritin 2 siirtyy suorittamaan normaalin keskeytyksen alku -funktiota (lohko 602) ja sen jälkeen normaalin keskeytyksen palveluohjelmaa (lohko 603). Keskeytys ei aiheuttanut ensimmäisen käyttöjärjestelmän OS_A säikeiden suoritustarvetta, 20 jolloin keskeytyksen jälkeen ei kutsuta ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A. Keskeytyksen päätyttyä kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Normaalin keskeytyksen palveluohjelman päätyttyä , vaihdetaan suorittimen 2 toimintatila ja ensimmäisen käyttöjärjestelmän 25 OS_A status. Suorittimen 2 toimintatila vaihdetaan takaisin tunnistamattomien käskyjen käsittelytilaan UND ja suoritus jatkuu keskeytyneestä säikeestä THA1 (lohko 613). Vaikka keskeytyksessä olisi muodostettu v.: toisen käyttöjärjestelmän OS_B viivästettyjä funktiokutsuja DSR, eivät :T: ne tulisi käsittelyyn ennen kuin kaikki ensimmäisen käyttöjärjestelmän 30 OS_A suorituksessa olevat säikeet on suoritettu.
• · < • · « Käyttäjä on esim. valitsemassa puhelinnumeroa, jolloin näppäinpainallukset aiheuttavat normaalin keskeytyksen IRQ. Keskeytyskäsittelyssä :·· luetaan näppäinpainallus muistiin 17, tulostetaan matkaviestintoiminto- 35 jen näyttölaitteella 10 ja palataan odottamaan seuraavaa näppäinpai-nallusta.
««< 36 1 08478
Kuvassa 6h on esitetty tilanne, jossa normaalin keskeytyksen tullessa suoritin 2 on suorittamassa ensimmäisen käyttöjärjestelmän OS_A alaista säiettä THA1 (lohko 612), joka on esim. yhteyden muodostusso-vellus kommunikointilaitteen matkaviestintoiminnoissa. Suoritin on tun-5 nistamattomien käskyjen käsittelytilassa. Tällöin toimintatila vaihtuu normaaliin keskeytystään IRQ ja suoritin 2 siirtyy suorittamaan normaalin keskeytyksen alku -funktiota (lohko 602) ja sen jälkeen normaalin keskeytyksen palveluohjelmaa (lohko 603). Keskeytys aiheutti ensimmäisen käyttöjärjestelmän OS_A ainakin yhden säikeen suoritustarpeen. 10 Keskeytyksen päätyttyä kutsutaan normaalin keskeytyksen loppu -funktiota (lohko 604), jossa asetetaan tieto keskeytyksen päättymisestä. Normaalin keskeytyksen palveluohjelman päätyttyä vaihdetaan suorittimen 2 toimintatila ja ensimmäisen käyttöjärjestelmän OS_A status. Suorittimen 2 toimintatila vaihdetaan tunnistamattomien käskyjen käsit-15 telytilaan UND, minkä jälkeen kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, joka asettaa säikeille uudet statukset tarvittaessa (lohko 608). Tämän jälkeen suoritetaan ensimmäisen käyttöjärjestelmän OS_A suoritusta odottavat säikeet (READY-tilassa) prioriteetti-järjestyksessä. Tässä esimerkissä keskeytys aiheutti toisen säikeen 20 THA2 siirtymisen heti suoritukseen (lohko 614), jolloin keskeytynyt säie THA1 mahdollisesti tulee myöhemmin suoritusvuoroon (lohko 613). Vaikka keskeytyksessä olisi muodostettu toisen käyttöjärjestelmän OS_B viivästettyjä funktiokutsuja DSR, eivät ne tulisi käsittelyyn ennen kuin kaikki ensimmäisen käyttöjärjestelmän OS_A suorituksessa olevat : 25 säikeet on suoritettu.
Käyttäjä on esim. näppäillyt puhelinnumeron ja painanut luuri ylös-näp- • · :.v päintä (ei esitetty), joka aiheuttaa normaalin keskeytyksen IRQ.
Keskeytyskäsittelyn jälkeen ensimmäisen käyttöjärjestelmän vuorontaja 30 SCH_A asettaa suoritukseen yhteyden muodostussäikeen.
• · ( ♦ · (
Kuvassa 6i on vielä esitetty tilanne, jossa normaalin keskeytyspalve-luohjelman ollessa suorituksessa (lohko 615) tulee nopea keskeytys FIQ. Suoritin 2 on normaalissa keskeytystilassa IRQ ja siirtyy nopean 35 keskeytyksen tilaan FIQ ja suorittaa nopean keskeytyksen alku -funkti-on (lohko 616) ja sen jälkeen nopean keskeytyksen FIQ palveluohjel-.·. : man (lohko 617). Nopean keskeytyskäsittelyn päätyttyä kutsutaan no pean keskeytyksen loppu -funktiota (lohko 618), jossa asetetaan tieto 37 1 0 8 4 7 8 nopean keskeytyksen FIQ päättymisestä. Nopean keskeytyspalveluoh-jelman päätyttyä vaihdetaan ensimmäisen käyttöjärjestelmän OS_A status ja suorittimen 2 toimintatila takaisin normaaliin keskeytystään IRQ, minkä jälkeen toiminta jatkuu keskeytyneestä kohdasta (lohko 5 619).
Tästä tilanteesta esimerkkinä suoritin 2 on suorittamassa näppäimistön 9, 14 keskeytyskäsittelyä, kun kommunikointilaitteeseen 1, esim. sovelluskohtaiseen logiikkapiiriin 3 järjestetty ajastin (ei esitetty) muodostaa 10 nopean keskeytyksen FIQ. Suoritin 2 lukee ajastimen arvon ja tallentaa sen muistiin 17. Tämän jälkeen suoritin 2 palaa näppäimistön 9, 14 keskeytyskäsittelyyn.
Edellä esitettyjen suorittimen 2 tilanvaihtojen yhteydessä suoritin 2 15 edullisesti ottaa eri rekisterit käyttöön, jolloin ei aina välttämättä tarvita tietojen siirtoa väliaikaiseen tallennuspaikkaan. Joissakin keskeytysti-lanteissa tietojen siirto saattaa kuitenkin olla tarpeen, jolloin tämä hidastaa jonkin verran keskeytyksen käsittelyä. Joillakin suorittimina 2 käytettävillä mikroprosessoreilla ei myöskään ole kaikkia edellä esitettyjä 20 toimintatiloja, jolloin nämä eri toimintatilat voidaan ilmaista tilamuuttujien tai vastaavien avulla.
Joskus saattaa olla tarpeen määrittää myös toiselle käyttöjärjestelmälle OS_B tietty vasteaika. Tällöin ensimmäisen käyttöjärjestelmän vuoron-25 taja SCH_A voi nostaa ensimmäisen käyttöjärjestelmän OS_A tyhjä-käyntisäikeen THAJDLE prioriteettia sellaisessa tilanteessa, jossa toiselle käyttöjärjestelmälle OS_B jäänyttä suoritusaikaa on ollut vähem-\v män kuin vasteaika edellyttäisi. Tällöin ensimmäisen käyttöjärjestelmän :.**:*: OS_A tyhjäkäyntisäie THAJDLE tulee suoritusvuoroon ennen joitakin 30 muita, ei-kriittisiä säikeitä, joka aiheuttaa siirtymisen toisen käyttöjärjes- :T: telmän OS_B suoritukseen. Tämä prioriteettitason nosto voidaan ♦ käynnistää esim. ajastimella, joka asetetaan keskeyttämään tietyn ajan .*·. kuluttua. Mikäli ajastinkeskeytyksen tullessa suoritin 2 ei vielä ole pääs- ·'·; ·* syt ensimmäisen käyttöjärjestelmän OS_A tyhjäkäyntisäikeeseen 35 THAJDLE, kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A, joka nostaa tyhjäkäyntisäikeen THAJDLE prioriteettia. Tässä on kuitenkin huomioitava se, että ensimmäisen käyttöjärjestelmän OS_A tyhjäkäyntisäikeen THAJDLE prioriteettia ei kannata nostaa kuin 38 1 08 4 78 lyhyeksi ajaksi kerrallaan, jotta myös ensimmäisen käyttöjärjestelmän OS_A ei-kriittiset tehtävät saavat säännöllisesti suoritusaikaa. Tyhjä-käyntisäikeen THAJDLE prioriteettia ei saa nostaa liian korkeaksi, koska ensimmäisen käyttöjärjestelmän OS_A kriittiset säikeet on saa-5 tava suoritettua.
Taulukossa 1 on vielä yhteenvetona esitetty siirtymiset toimintatilasta toiseen keskeytysten yhteydessä. Ensimmäisellä pystyrivillä on esitetty se toimintatila, jossa suoritin 2 toimintatilan vaihtuessa oli, ja ensimmäi-10 sellä vaakarivillä on esitetty se toimintatila, johon suoritin 2 siirtyy. Muissa taulukon ruuduissa on esitetty se tilanne, joka aiheuttaa ao. toimintatilojen vaihtumisen. Lyhenteet viittaavat aiemmin tässä selityksessä eri toimintamoodeista ja keskeytyksistä käytettyihin lyhenteisiin.
__USER UND SVC__|RQ__FIQ
USER — OS_B-säie kut- IRQ keskeyttää F Q keskeyttää I
___suu SWI:tä OS B-säikeen QS_B-säikeen UND paluu viimei- — DSR tai tyhjä- IRQ keskeyttää FIQ keskeyttää sestä OS_A- käyntisäie kut- OS_A-säikeen, OS_A-säikeen, säikeestä tai suu SWI:tä DSR:n tai tyhjä- DSR:n tai tyhjä- _ DSR:stä____käyntisäikeen käyntisäikeen
SVC paluu nopeasta hitaan SWI:n ai- — IRQ keskeyttää FIQ keskeyttää I
__SWI:stä__kana___nopean SWI:n nopean SWI:n ; IRQ paluu IRQ:sta, paluu IRQ:sta, — ..... FIQ keskeyttää jos ei ole aktii- jos on aktiivisia IRQ:n , visia OS_A-säi- OS_A-säikeitä » c - keitä tai DSR:tä tai DSR:tä____ • · · ***"“ FIQ I paluu FIQ:sta, paluu FIQ:sta, — paluu FlQista, — • · · jos ei ole aktii- jos on aktiivisia jos IRQ keskey- visia OS_A-säi- OS_A-säikeitä tyi • « * *·* * _ keitä tai DSR:tä tai DSR:tä____ :*ί: 15 TAULUKK01 • · • · ♦ • · · • » · ·
Kuvataan seuraavaksi esimerkkiä sanomien välityksestä eri käyttöjär-.;, jestelmissä OS_A, OS_B suoritettavien säikeiden välillä. Kuvat 7a ja 7b esittävät tätä sanomanvälitysmekanismia pelkistettynä kaaviona. Sa-20 nomanvälitysohjain MD (Message Driver) on käyttöjärjestelmille OS_A, 39 1 08478 OS_B yhteinen, kuten myös sanomajonot MQ1, MQ2 (Message Queue). Toisen käyttöjärjestelmän OS_B suorituksessa oleva säie THB1 kutsuu sanomanvälitysohjainta MD ja välittää parametreinä edullisesti välitettävän sanoman, esim. tekstiviestin, ja kohdesäikeen THA1 5 tunnuksen (nuoli 701, kuva 7a). Sanomanvälitysohjain MD siirtää sanoman ensimmäiseen sanomajonoon MQ1 (nuoli 702) ja muodostaa edullisesti ohjelmallisen keskeytyksen (SWI), jolloin tämä keskeytys aikaansaa aikaisemmin tässä selityksessä oleellisesti kuvan 6c mukaisen keskeytyskäsittelyn, paitsi että keskeytyksen aiheutti ohjelmallinen kes-10 keytys SWI normaalin keskeytyksen IRQ sijasta. Keskeytyskäsittelystä poistuminen aikaansaa ensimmäisen käyttöjärjestelmän vuorontajan SCH_A käynnistymisen, jolloin kohdesäie suoritetaan prioriteetin määrittämässä vaiheessa (nuoli 703). Tämä kohdesäie THA1 käy lukemassa ensimmäisestä sanomajonosta MQ1 viestin (nuoli 704) ja suorit-15 taa esim. viestin lähetyksen radiotielle.
Ensimmäisen käyttöjärjestelmän OS_A sovellusohjelmassa voidaan suorittaa viivästetty funktiokutsu DSR, jolla voidaan mm. välittää sanomia toisen käyttöjärjestelmän OS_B säikeille esim. seuraavasti (kuva 20 7b). Toisessa käyttöjärjestelmässä OS_B suorituksessa oleva säie THB2 on muodostanut sanoman välityspyynnön ja on jäänyt odottamaan sanomaa (nuoli 705). Sanoman välityspyyntö on aikaansaanut ohjelmallisen keskeytyksen SWI, jolloin keskeytyskäsittelijä on tutkinut :: keskeytyksen aiheuttajan ja todennut, että toisen käyttöjärjestelmän 25 OS_B säie THB2 odottaa sanomaa ensimmäisen käyttöjärjestelmän OS_A säikeeltä THA2. Keskeytyskäsittelyn jälkeen kutsutaan ensimmäisen käyttöjärjestelmän vuorontajaa SCH_A (nuoli 706). Halutun säi- • · v.: keen THA2 tultua suoritusvuoroon, muodostaa se sanoman ja lisää sen esim. toiseen sanomajonoon MQ2 (nuoli 707). Lisäksi säie THA2 muo-30 dostaa viivästetyn funktiokutsun DSR (nuoli 708). Ensimmäisen käyttö-järjestelmän OS_A säikeiden suorituksen jälkeen käsitellään tämä vii- • västetty funktiokutsu DSR, jolloin säikeen THA2 lisäämä viivästetty .*·, funktiokutsu DSR muuttaa toisen käyttöjärjestelmän OS_B säikeen ·';· ·: THB2 statuksen suoritusta odottamaan (READY) (nuoli 709). Toisen 35 käyttöjärjestelmän vuorontaja SCH_B ohjaa säikeitä vuorontamisperi-:***; aatteidensa mukaisesti suoritukseen. Välityspyynnön lähettäneen 40 1 08478 säikeen THB2 ollessa suorituksessa (nuoli 710), se lukee sanoman toisesta sanomajonosta MQ2 sanomanvälitysohjaimen MD liityntäraja-pinnan kautta (nuoli 711).
5 Käytännön sovelluksissa sanomajonot MQ1, MQ2 ovat sopivimmin prioriteettien mukaan järjestettäviä. Tämä tarkoittaa sitä, että sellainen sanoma, jonka vastaanottavan säikeen prioriteetti on korkea, ohittaa jonossa jo olevat sellaiset sanomat, joiden vastaanottajan prioriteetti on matalampi. Vaihtoehtoisesti käytetään useampia sanomajonoja, kuin 10 tässä esimerkissä käytetyt ensimmäinen MQ1 ja toinen sanomajono MQ2.
Yhteenvetona voidaan vielä todeta se, että tässä keksinnössä on aikaansaatu kahden tai useamman käyttöjärjestelmän OS_A, OS_B toi-15 minta yhden suorittimen alaisuudessa. Yhteiset osat on pyritty minimoimaan, jolloin jo olemassa olevia sovelluksia voidaan suorittaa myös tässä kommunikointilaitteessa 1. Käyttöjärjestelmien OS_A, OS_B yhteisenä osana ovat lähinnä keskeytyskäsittelijät, joissa muodostetaan liittymät käyttöjärjestelmiin OS_A, OSJ3. Myös sanomanvälitysohjain 20 MD on yhteinen edellä esitetyssä esimerkissä.
Eri käyttöjärjestelmille OS_A, OS_B voi käytännön sulautetuissa järjestelmissä 1 olla järjestetty useita yhteisiä keskeytyskäsitteIijöitä (keskey-tyspalveluohjelmia). Näistä keskeytyskäsittelijöistä voi kulloinkin olla 25 yksi aktiivisena yhtä keskeytystä kohden, eli esim. nopealle keskeytykselle FIQ yksi, normaalille keskeytykselle IRQ yksi ja ohjelmalliselle keskeytykselle SWI yksi. Aktiiviseksi keskeytyskäsittelijäksi voidaan tällöin tarvittaessa vaihtaa jokin toinen kyseiselle keskeytykselle järjes-:T: tetyistä keskeytyskäsittelijöistä.
30
Mainittakoon, että kahden käyttöjärjestelmän OS_A, OS_B toiminta yh-den suorittimen 2 järjestelmässä voidaan toteuttaa myös esim. siten, että toisen käyttöjärjestelmän OS_B säikeistä THB1, THB2, THBJDLE ί muodostetaan yksi ensimmäisen käyttöjärjestelmän OS_A säie, kuten
35 tyhjäkäyntisäie THAJDLE tai supersäie, jolloin kaikki suorituksessa olevat toiseen käyttöjärjestelmään OS_B liittyvät säikeet THB1, THB2, THBJDLE suoritetaan tässä säikeessä. Vastaavasti voidaan ensimmäisen käyttöjärjestelmän OS_A säikeistä THAI, THA2, THAJDLE
41 1 08478 muodostaa yksi toisen käyttöjärjestelmän OS_B säie, kuten tyhjäkäynti-säie THBJDLE tai supersäie 511, jolloin kaikki suorituksessa olevat ensimmäiseen käyttöjärjestelmään OS_A liittyvät säikeet THAI, THA2, THAJDLE suoritetaan tässä säikeessä. Vielä eräänä vaihtoehtona on, 5 että jokainen ensimmäisen käyttöjärjestelmän OS_A säie THAI, THA2, THAJDLE muodostetaan omaksi toisen käyttöjärjestelmän OS_B su-persäikeeksi 511, jolloin toinen käyttöjärjestelmä OS_B käsittelee niitä erillisinä supersäikeinä (ei esitetty). Kuten jo aikaisemmin tässä selityksessä on esitetty, näiden supersäikeiden vasteajat ovat tyypillisesti 10 huomattavasti pienemmät kuin normaalien säikeiden vasteajat. Vasteaikavaatimuksiltaan kaikkein kriittisimmät tehtävät voidaan silti suorittaa muodostamalla niitä varten keskeytyskäsittely esim. ajastimen keskey-tyskäsittelyn yhteyteen, jolloin näiden tehtävien suoritukseen siirtymisessä ei välttämättä käytetä vuorontajatoimintoja.
15 :
Mikäli kukin ensimmäisen käyttöjärjestelmän OS_A säie THAI, THA2, THAJDLE toteutetaan omana supersäikeenä 511 toisessa käyttöjärjestelmässä OSJ3, tarvitaan toisen käyttöjärjestelmän OSJB mukaista signaalien välitystä haluttaessa siirtää tietoa ensimmäisen käyttöjärjes-20 telmän OS_A eri säikeiden THAI, THA2, THAJDLE välillä. Sen sijaan toteutettaessa ensimmäisen käyttöjärjestelmän OS_A säikeet THA1, THA2, THAJDLE yhtenä supersäikeenä 511, on tiedonvälitys toteutettavissa yksinkertaisemmin käyttäen ensimmäisen käyttöjärjestelmän OS_A viestinvälitysmenetelmää.
; 25
Keksintöä ei ole rajoitettu ainoastaan edellä esitettyihin suoritusmuo- töihin, vaan sitä voidaan muunnella oheisten patenttivaatimusten puit- :.v teissä.
··· • · · • · · ·«< « · t * · 1 ··« t · · « I | « • · • · · • · · *·1 ·
I I
< t I s , « 1 · · » • «

Claims (26)

42 1 08478
1. Sulautettu järjestelmä (1), joka käsittää: ainakin yhden suorittimen (2) käyttöjärjestelmän (OS_A, OS_B) 5 suorittamiseksi, välineet (17, 401, 412) ainakin kahden käyttöjärjestelmän (OS_A, OS_B) suorittamiseksi mainitussa suorittimessa (2), ensimmäisen käyttöjärjestelmän (OS_A), joka käsittää ensimmäisen ryhmän säikeitä (THAI, THA2, THAJDLE), 10. toisen käyttöjärjestelmän (OS_B). joka käsittää toisen ryhmän säi keitä (THB1, THB2, THBJDLE), välineet (nFIQ, nIRQ, SWI) keskeytyksen (FIQ, IRQ, SWI) aikaansaamiseksi mainitulle suorittimelle (2), ja tutkimisvälineet (401, 603, 617) sen tutkimiseksi, minkä säikeen 15 (THAI, THA2, THB1, THB2, THAJDLE, THBJDLE) suoritukseen suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa, jossa sulautetussa järjestelmässä (1) mainitut tutkimisvälineet (401, 603, 617) käsittävät ainakin yhden, ainakin osittain yhteisen keskeytys-käsittelijän (603, 617) mainituille ainakin kahdelle käyttöjärjestelmälle 20 (OS_A, OS_B). tunnettu siitä, että sulautettu järjestelmä (1) käsittää lisäksi: välineet (401, 412, 603, 609, 617) keskeytystiedon välittämiseksi kuhunkin mainittuun käyttöjärjestelmään (OS_A, OSJ3), johon liit-tyvään säikeeseen (THAI, THA2, THB1, THB2, THAJDLE,
2. Patenttivaatimuksen 1 mukainen sulautettu järjestelmä (1), tunnettu » · : : : siitä, että se käsittää ainakin yhden käyttöliittymän (UH), joka liittyy ai- 35 nakin osittain matkaviestintoimintoihin, ja ainakin yhden käyttöliittymän . : . (UI2), joka liittyy ainakin osittain tietojenkäsittelytoimintoihin. I 4 1 « 43 1 08 478
3. Patenttivaatimuksen 2 mukainen sulautettu järjestelmä (1), tunnettu siitä, että matkaviestintoimintoihin liittyvä käyttöliittymä (UM) ja tietojen-käsittelytoimintoihin liittyvä käyttöliittymä (UI2) käsittävät ainakin osittain yhteisen näyttölaitteen (10,15). 5
4. Patenttivaatimuksen 2 tai 3 mukainen sulautettu järjestelmä (1), tunnettu siitä, että matkaviestintoimintoihin liittyvä käyttöliittymä (UM) ja tietojenkäsittelytoimintoihin liittyvä käyttöliittymä (UI2) käsittävät ainakin osittain yhteiset välineet (9,14) tietojen syöttämiseksi. 10
5 OS_B) suorittamiseksi mainitussa suorittimessa (2), ensimmäisen käyttöjärjestelmän (OS_A), joka käsittää ensimmäisen ryhmän säikeitä (THAI, THA2, THAJDLE), toisen käyttöjärjestelmän (OS_B), joka käsittää toisen ryhmän säikeitä (THB1, THB2, THBJDLE), 10. välineet (nFIQ, nIRQ, SWI) keskeytyksen (FIQ, IRQ, SWI) aikaan saamiseksi mainitulle suorittimelle (2), ja tutkimisvälineet (401, 603, 617) sen tutkimiseksi, minkä säikeen (THAI, THA2, THB1, THB2, THAJDLE, THBJDLE) suoritukseen suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa, 15 jossa kommunikointilaitteessa (1) mainitut tutkimisvälineet (401, 603, 617) käsittävät ainakin yhden, ainakin osittain yhteisen keskeytyskäsit-telijän (603, 617) mainituille ainakin kahdelle käyttöjärjestelmälle (OS_A, OS_B), tunnettu siitä, että kommunikointilaite (1) käsittää lisäksi: 20. välineet (401, 412, 603, 609, 617) keskeytystiedon välittämiseksi kuhunkin mainittuun käyttöjärjestelmään (OS_A, OS_B), johon liittyvään säikeeseen (THAI, THA2, THB1, THB2, THAJDLE, THBJDLE) suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa, ja 25. matkaviestintoimintoja ja tietojenkäsittelytoimintoja, jolloin maini tuista ainakin kahdesta käyttöjärjestelmästä (OS_A, OS_B) en-simmäinen käyttöjärjestelmä (OS_A) liittyy matkaviestintoimintojen suorittamiseen, ja toinen käyttöjärjestelmä (OS_B) liittyy tietojen-käsittelytoimintojen suorittamiseen 30
5. Jonkin patenttivaatimuksen 1-4 mukainen sulautettu järjestelmä (1), tunnettu siitä, että se käsittää välineet (2, THAJDLE) siirtymiseksi ensimmäisen käyttöjärjestelmän (OS_A) suorituksesta toisen käyttöjärjestelmän (OS_B) suoritukseen, kun mikään ensimmäisen käyttöjärjestel- 15 män (OS_A) säikeistä (THAI, THA2, THAJDLE) ei ole suoritustilassa.
6. Jonkin patenttivaatimuksen 1-5 mukainen sulautettu järjestelmä (1), tunnettu siitä, että se käsittää välineet (2, SCH_A) siirtymiseksi toisen käyttöjärjestelmän (OS_B) suorituksesta ensimmäisen käyttöjärjestel- 20 män (OS_A) suoritukseen, kun suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa ainakin yhden ensimmäisen käyttöjärjestelmän (OS_A) alaisen säikeen (THAI, THA2, THAJDLE) suoritukseen.
7. Jonkin patenttivaatimuksen 1-6 mukainen sulautettu järjestelmä (1), 25 tunnettu siitä, että ainakin ensimmäinen käyttöjärjestelmä (OS_A) on reaaliaikainen käyttöjärjestelmä. • · · :X:
8. Jonkin patenttivaatimuksen 1-7 mukainen sulautettu järjestelmä (1), tunnettu siitä, että suorittimessa (2) on ainakin seuraavat toimintatilat: 30 - käyttäjän toimintatila (USER moodi), - etuoikeutettu toimintatila (SVC moodi), .·:, - tunnistamattomien käskyjen toimintatila (UND moodi), ja yksi tai useampi keskeytystoimintatila (FIQ moodi, IRQ moodi, SWI ? moodi), 35 ja että ensimmäinen käyttöjärjestelmä (OS_A) on järjestetty toimimaan . ··. ainakin osittain tunnistamattomien käskyjen toimintatilassa (UND 44 1 08 478 moodi), toinen käyttöjärjestelmä (OS_B) on järjestetty toimimaan ainakin osittain käyttäjän toimintatilassa (USER moodi), ja keskeytyskäsit-telijä on järjestetty toimimaan jossakin keskeytystoimintatilassa (FIQ moodi, IRQ moodi, SWI moodi). 5
9. Jonkin patenttivaatimuksen 1-8 mukainen sulautettu järjestelmä (1), tunnettu siitä, että mainitun ensimmäisen säieryhmän säikeistä yksi säie (THAI, THA2, THAJDLE) käsittää mainitun toisen käyttöjärjestelmän (OS_B). 10
10. Menetelmä käyttöjärjestelmän (OS_A, OS_B) suorittamiseksi sulautetun järjestelmän (1) suorittimessa (2), jossa menetelmässä: suoritetaan ainakin kahta käyttöjärjestelmää (OS_A, OS_B) mainitussa suorittimessa (2), 15. ensimmäiseen käyttöjärjestelmään (OS_A) liittyen suoritetaan en simmäistä ryhmää säikeitä (THAI, THA2, THAJDLE), toiseen käyttöjärjestelmään (OSJ3) liittyen suoritetaan toista ryhmää säikeitä (THB1, THB2, THBJDLE), aikaansaadaan keskeytys (FIQ, IRQ, SWI) mainitulle suorittimelle 20 (2), tutkitaan, minkä säikeen (THAI, THA2, THB1, THB2, THAJDLE, THBJDLE) suoritukseen suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa, ja suorittimelle (2) tulleen keskeytyksen (FIQ, IRQ, SWI) tutkimisessa 25 käytetään ainakin yhtä, ainakin osittain yhteistä keskeytyskäsitteli- jää mainituille ainakin kahdelle käyttöjärjestelmälle (OS_A, OSJ3), tunnettu siitä, että menetelmässä välitetään tieto suorittimelle (2) tul-leesta keskeytyksestä (FIQ, IRQ, SWI) kuhunkin mainittuun käyttöjär-:T: jestelmään (OS_A, OS_B), johon liittyvään säikeeseen (THAI, THA2,
30 THB1, THB2, THAJDLE, THBJDLE) suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa, ja että sulautetussa järjestelmässä (1) suori-tetaan matkaviestintoimintoja ja tietojenkäsittelytoimintoja, jolloin mainituista ainakin kahdesta käyttöjärjestelmästä (OS_A, OS_B) ensimmäi-? : ? nen käyttöjärjestelmä (OS_A) liittyy matkaviestintoimintojen suorittami- 35 seen, ja toinen käyttöjärjestelmä (OSJ3) liittyy tietojenkäsittelytoiminto-; jen suorittamiseen. 45 1 0 8 4 7 8
11. Patenttivaatimuksen 10 mukainen menetelmä, tunnettu siitä, että matkaviestintoimintoja käytetään ensimmäisellä käyttöliittymällä (UM), tietojenkäsittelytoimintoja käytetään toisella käyttöliittymällä (UI2).
12. Patenttivaatimuksen 11 mukainen menetelmä, tunnettu siitä, että matkaviestintoimintoja ja tietojenkäsittelytoimintoja näytetään ainakin osittain yhteisellä näyttölaitteella (10,15).
13. Patenttivaatimuksen 11 tai 12 mukainen menetelmä, tunnettu siitä, 10 että matkaviestintoimintojen ja tietojenkäsittelytoimintojen käyttämiseksi tietoja syötetään ainakin osittain yhteisillä välineillä (9,14).
14. Jonkin patenttivaatimuksen 10-13 mukainen menetelmä, tunnettu siitä, että ensimmäisen käyttöjärjestelmän (OS_A) suorituksesta siirry- 15 tään toisen käyttöjärjestelmän (OS_B) suoritukseen siinä vaiheessa, kun mikään ensimmäisen käyttöjärjestelmän (OS_A) säikeistä (THA1, THA2, THAJDLE) ei ole suoritustilassa.
15. Jonkin patenttivaatimuksen 10-14 mukainen menetelmä, tunnettu 20 siitä, että toisen käyttöjärjestelmän (OS_B) suorituksesta siirrytään ensimmäisen käyttöjärjestelmän (OS_A) suoritukseen siinä vaiheessa, kun suorittimelle (2) tullut keskeytys vaikuttaa ainakin yhden ensimmäisen käyttöjärjestelmän (OS_A) alaisen säikeen (THAI, THA2, THAJDLE) suoritukseen. : ' 25
16. Jonkin patenttivaatimuksen 10-15 mukainen menetelmä, tunnettu siitä, että ainakin ensimmäinen käyttöjärjestelmä (OS_A) on reaaliaikai- :X: nen käyttöjärjestelmä. • · · • · « • · ♦
17. Jonkin patenttivaatimuksen 10-16 mukainen menetelmä, tunnettu siitä, että mainitun ensimmäisen säieryhmän yhdessä säikeessä (THAI, THA2, THAJDLE) suoritetaan mainittua toista käyttöjärjestelmää (OS_B). • · m • mm 46 1 0 8 4 7 8
18. Kommunikointilaite (1), joka käsittää: ainakin yhden suorittimen (2) käyttöjärjestelmän (OS_A, OS_B) suorittamiseksi, välineet (17, 401, 412) ainakin kahden käyttöjärjestelmän (OS_A,
19. Patenttivaatimuksen 18 mukainen kommunikointilaite (1), tunnettu siitä, että se käsittää ainakin yhden käyttöliittymän (UH), joka liittyy ai- *\ * nakin osittain matkaviestintoimintoihin, ja ainakin yhden käyttöliittymän : (UI2), joka liittyy ainakin osittain tietojenkäsittelytoimintoihin. 35 * f t 47 1 08478
20. Patenttivaatimuksen 19 mukainen kommunikointilaite (1), tunnettu siitä, että matkaviestintoimintoihin liittyvä käyttöliittymä (UM) ja tietojen-käsittelytoimintoihin liittyvä käyttöliittymä (UI2) käsittävät ainakin osittain yhteisen näyttölaitteen (10,15). 5
21. Patenttivaatimuksen 19 tai 20 mukainen kommunikointilaite (1), tunnettu siitä, että matkaviestintoimintoihin liittyvä käyttöliittymä (UH) ja tietojenkäsittelytoimintoihin liittyvä käyttöliittymä (UI2) käsittävät ainakin osittain yhteiset välineet (9,14) tietojen syöttämiseksi. 10
22. Jonkin patenttivaatimuksen 18-21 mukainen kommunikointilaite (1), tunnettu siitä, että se käsittää välineet (2, THAJDLE) siirtymiseksi ensimmäisen käyttöjärjestelmän (OS_A) suorituksesta toisen käyttöjärjestelmän (OS_B) suoritukseen, kun mikään ensimmäisen käyttöjärjesteI- 15 män (OS_A) säikeistä (THAI, THA2, THAJDLE) ei ole suoritustilassa.
23. Jonkin patenttivaatimuksen 18-22 mukainen kommunikointilaite (1), tunnettu siitä, että se käsittää välineet (2, SCH_A) siirtymiseksi toisen käyttöjärjestelmän (OS_B) suorituksesta ensimmäisen käyttöjärjestel- 20 män (OS_A) suoritukseen, kun suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vaikuttaa ainakin yhden ensimmäisen käyttöjärjestelmän (OS_A) alaisen säikeen (THAI, THA2, THAJDLE) suoritukseen.
;; , 24. Jonkin patenttivaatimuksen 18-23 mukainen kommunikointilaite (1), 25 tunnettu siitä, että ainakin ensimmäinen käyttöjärjestelmä (OS_A) on reaaliaikainen käyttöjärjestelmä. »»» 0!: 25. Jonkin patenttivaatimuksen 18-24 mukainen kommunikointilaite (1), :T: tunnettu siitä, että suorittimessa (2) on ainakin seuraavat toimintatilat: 30. käyttäjän toimintatila (USER moodi), .·: .. - etuoikeutettu toimintatila (SVC moodi), - tunnistamattomien käskyjen toimintatila (UND moodi), ja * * * yksi tai useampi keskeytystoimintatila (FIQ moodi, IRQ moodi, SWI ' 1 : moodi), 35 ja että ensimmäinen käyttöjärjestelmä (OS_A) on järjestetty toimimaan ainakin osittain tunnistamattomien käskyjen toimintatilassa (UND , J: moodi), toinen käyttöjärjestelmä (OSJ3) on järjestetty toimimaan aina • * 48 1 08 478 kin osittain käyttäjän toimintatilassa (USER moodi), ja keskeytyskäsit-telijä on järjestetty toimimaan jossakin keskeytystoimintatilassa (FIQ moodi, IRQ moodi, SWI moodi).
25 THBJDLE) suorittimelle (2) tullut keskeytys (FIQ, IRQ, SWI) vai kuttaa, ja - matkaviestintoimintoja ja tietojenkäsittelytoimintoja, jolloin maini-:V: tuista ainakin kahdesta käyttöjärjestelmästä (OS_A, OS_B) en- simmäinen käyttöjärjestelmä (OS_A) liittyy matkaviestintoimintojen 30 suorittamiseen, ja toinen käyttöjärjestelmä (OS_B) liittyy tietojen- käsittelytoimintojen suorittamiseen. • · · • · ·
26. Jonkin patenttivaatimuksen 18-25 mukainen kommunikointilaite (1), tunnettu siitä, että mainitun ensimmäisen säieryhmän säikeistä yksi säie (THAI, THA2, THAJDLE) käsittää mainitun toisen käyttöjärjestelmän (OS_B). • · • · · « · r • · • · · • · · 108478 49
FI980135A 1998-01-21 1998-01-21 Sulautettu jõrjestelmõ FI108478B (fi)

Priority Applications (12)

Application Number Priority Date Filing Date Title
FI980135A FI108478B (fi) 1998-01-21 1998-01-21 Sulautettu jõrjestelmõ
US09/234,433 US6631394B1 (en) 1998-01-21 1999-01-20 Embedded system with interrupt handler for multiple operating systems
AU20564/99A AU2056499A (en) 1998-01-21 1999-01-21 Embedded system
EP99900898A EP1047991A1 (en) 1998-01-21 1999-01-21 Embedded system
PCT/FI1999/000039 WO1999038073A1 (en) 1998-01-21 1999-01-21 Embedded system
CN99804263A CN1130630C (zh) 1998-01-21 1999-01-21 嵌入式***
KR1020007007898A KR100681875B1 (ko) 1998-01-21 1999-01-21 내장형 시스템
JP2000528913A JP2002501248A (ja) 1998-01-21 1999-01-21 埋込みシステム
HK01105987A HK1035416A1 (en) 1998-01-21 2001-08-24 Embedded system
US10/625,099 US7062766B2 (en) 1998-01-21 2003-07-22 Embedded system with interrupt handler for multiple operating systems
JP2007041050A JP2007164819A (ja) 1998-01-21 2007-02-21 埋込みシステム
JP2011171579A JP2011216132A (ja) 1998-01-21 2011-08-05 埋込みシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI980135A FI108478B (fi) 1998-01-21 1998-01-21 Sulautettu jõrjestelmõ
FI980135 1998-01-21

Publications (3)

Publication Number Publication Date
FI980135A0 FI980135A0 (fi) 1998-01-21
FI980135A FI980135A (fi) 1999-07-22
FI108478B true FI108478B (fi) 2002-01-31

Family

ID=8550493

Family Applications (1)

Application Number Title Priority Date Filing Date
FI980135A FI108478B (fi) 1998-01-21 1998-01-21 Sulautettu jõrjestelmõ

Country Status (9)

Country Link
US (2) US6631394B1 (fi)
EP (1) EP1047991A1 (fi)
JP (3) JP2002501248A (fi)
KR (1) KR100681875B1 (fi)
CN (1) CN1130630C (fi)
AU (1) AU2056499A (fi)
FI (1) FI108478B (fi)
HK (1) HK1035416A1 (fi)
WO (1) WO1999038073A1 (fi)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
EP1194842A2 (en) * 1999-12-30 2002-04-10 Koninklijke Philips Electronics N.V. Multi-tasking software architecture
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
WO2001086416A2 (en) * 2000-05-08 2001-11-15 Transilica, Inc. Distributed applications in a portable thread environment
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1162536A1 (en) * 2000-06-09 2001-12-12 Hitachi, Ltd. Multiple operating system control method
US7330877B2 (en) * 2000-09-18 2008-02-12 Sharp Laboratories Of America Devices, softwares and methods for rescheduling multi-party sessions upon premature termination of session
US6694428B2 (en) * 2000-11-29 2004-02-17 Palm One, Inc. System for indentifying a peripheral device by sending an inquiry thereto after receiving an interrupt notification message if the interrupt and communication port meet predetermined conditions
EP1213648A1 (en) * 2000-12-05 2002-06-12 Infineon Technologies AG Method for coordinating tasks in a GSM network
US6813766B2 (en) * 2001-02-05 2004-11-02 Interland, Inc. Method and apparatus for scheduling processes based upon virtual server identifiers
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US7096474B2 (en) * 2001-04-20 2006-08-22 Sun Microsystems, Inc. Mobile multimedia Java framework application program interface
ATE320010T1 (de) * 2001-07-20 2006-03-15 Venkataramasastr Manchanahally Steuereinheit für den energieverbrauch
CN100367238C (zh) * 2001-08-22 2008-02-06 深圳市索普卡软件开发有限公司 一种x86系列兼容机及其操作***的生成方法
FI114663B (fi) * 2001-12-20 2004-11-30 Nokia Corp Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite
KR100408047B1 (ko) * 2001-12-24 2003-12-01 엘지전자 주식회사 이동통신 시스템의 프로세서 보드 이중화 장치 및 방법
DE10206865C1 (de) * 2002-02-18 2003-05-15 Daimler Chrysler Ag Reaktionszeit-Beschränkung eines Software-Prozesses
US7137121B2 (en) * 2002-04-19 2006-11-14 Equator Technologies, Inc. Data-processing circuit and method for switching between application programs without an operating system
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
JP3938343B2 (ja) * 2002-08-09 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク管理システム、プログラム、及び制御方法
US6782424B2 (en) * 2002-08-23 2004-08-24 Finite State Machine Labs, Inc. System, method and computer program product for monitoring and controlling network connections from a supervisory operating system
TWI258701B (en) * 2002-08-26 2006-07-21 Interdigital Tech Corp Wireless device operating system (OS) application programmer's interface
US7805725B2 (en) * 2002-09-26 2010-09-28 Siemens Industry, Inc. System and method for synchronizing system modules
US7383587B2 (en) 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US7231476B2 (en) 2002-11-18 2007-06-12 Arm Limited Function control for a processor
GB2395313B (en) * 2002-11-18 2005-11-23 Advanced Risc Mach Ltd Task following between multiple operating systems
GB2395583B (en) 2002-11-18 2005-11-30 Advanced Risc Mach Ltd Diagnostic data capture control for multi-domain processors
US7117284B2 (en) 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
AU2003278342A1 (en) 2002-11-18 2004-06-15 Arm Limited Security mode switching via an exception vector
DE60304602T2 (de) 2002-11-18 2006-12-28 Arm Ltd., Cherry Hinton Ausnahmearten innerhalb eines sicheren verarbeitungssystems
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
AU2003276399A1 (en) 2002-11-18 2004-06-15 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
GB2411254B (en) 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
US6928502B2 (en) * 2003-01-31 2005-08-09 Via Telecom Co., Ltd. Method and apparatus for processing interrupts at dynamically selectable prioritization levels
US8634993B2 (en) 2003-03-20 2014-01-21 Agjunction Llc GNSS based control for dispensing material from vehicle
US9002565B2 (en) 2003-03-20 2015-04-07 Agjunction Llc GNSS and optical guidance and machine control
US8686900B2 (en) 2003-03-20 2014-04-01 Hemisphere GNSS, Inc. Multi-antenna GNSS positioning method and system
US8190337B2 (en) 2003-03-20 2012-05-29 Hemisphere GPS, LLC Satellite based vehicle guidance control in straight and contour modes
US8271194B2 (en) * 2004-03-19 2012-09-18 Hemisphere Gps Llc Method and system using GNSS phase measurements for relative positioning
US8140223B2 (en) 2003-03-20 2012-03-20 Hemisphere Gps Llc Multiple-antenna GNSS control system and method
DE60323811D1 (de) * 2003-04-09 2008-11-13 Jaluna S A Betriebssysteme
JP2006522971A (ja) * 2003-04-09 2006-10-05 ジャルナ エスアー オペレーティングシステム
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
US20040226016A1 (en) * 2003-05-08 2004-11-11 Samsung Electronics Co., Ltd. Apparatus and method for sharing resources in a real-time processing system
JP3822577B2 (ja) * 2003-05-22 2006-09-20 株式会社エヌ・ティ・ティ・ドコモ コンピュータ及びプログラム
US7543306B2 (en) * 2003-07-02 2009-06-02 Intel Corporation Method, system, and program for handling device interrupts in a multi-processor environment
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
JP3953449B2 (ja) * 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
US8024742B2 (en) * 2003-09-30 2011-09-20 Jaluna S.A. Common program for switching between operation systems is executed in context of the high priority operating system when invoked by the high priority OS
US8028292B2 (en) * 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7614053B2 (en) * 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US7565653B2 (en) * 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
US7584476B2 (en) * 2004-03-04 2009-09-01 International Business Machines Corporation Mechanism for reducing remote memory accesses to shared data in a multi-nodal computer system
US8583315B2 (en) 2004-03-19 2013-11-12 Agjunction Llc Multi-antenna GNSS control system and method
JP4028853B2 (ja) * 2004-03-30 2007-12-26 株式会社日立製作所 情報サービス通信ネットワークシステムおよびセッション管理サーバ
US8707317B2 (en) * 2004-04-30 2014-04-22 Microsoft Corporation Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US7290112B2 (en) * 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US20060070069A1 (en) * 2004-09-30 2006-03-30 International Business Machines Corporation System and method for sharing resources between real-time and virtualizing operating systems
US8255912B2 (en) * 2005-04-13 2012-08-28 Qualcomm Incorporated Techniques for setting events in a multi-threaded system
US20070033596A1 (en) * 2005-04-14 2007-02-08 Kridner Jason D Reconfigurable State Structure Based System Design for Embedded Multimedia System
US7627705B2 (en) * 2005-12-30 2009-12-01 Stmicroelectronics Pvt. Ltd. Method and apparatus for handling interrupts in embedded systems
US20070201270A1 (en) * 2005-12-30 2007-08-30 Stmicroelectronics Pvt. Ltd. Read only memory device with bitline leakage reduction
CN101490658B (zh) * 2006-07-18 2011-01-19 日本电气株式会社 信息通信处理装置、信息通信终端、信息通信***及功能切换方法
US7870372B2 (en) * 2006-08-14 2011-01-11 Marvell World Trade Ltd. Interrupt handling
US8424013B1 (en) * 2006-09-29 2013-04-16 Emc Corporation Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
US7698540B2 (en) * 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
USRE48527E1 (en) 2007-01-05 2021-04-20 Agjunction Llc Optical tracking vehicle control system and method
US8311696B2 (en) 2009-07-17 2012-11-13 Hemisphere Gps Llc Optical tracking vehicle control system and method
US8046570B2 (en) * 2007-02-06 2011-10-25 Microsoft Corporation Supporting multiple operating systems in media devices
US7904703B1 (en) * 2007-04-10 2011-03-08 Marvell International Ltd. Method and apparatus for idling and waking threads by a multithread processor
US7912623B2 (en) * 2007-09-25 2011-03-22 Denso Corporation Engine control system designed to manage schedule of engine control tasks
US7808428B2 (en) 2007-10-08 2010-10-05 Hemisphere Gps Llc GNSS receiver and external storage device system and GNSS data processing method
EP2083525A1 (en) * 2008-01-28 2009-07-29 Merging Technologies S.A. System to process a plurality of audio sources
US7657683B2 (en) * 2008-02-01 2010-02-02 Redpine Signals, Inc. Cross-thread interrupt controller for a multi-thread processor
US9002566B2 (en) 2008-02-10 2015-04-07 AgJunction, LLC Visual, GNSS and gyro autosteering control
US8156320B2 (en) * 2008-08-27 2012-04-10 Wireless Silicon Group, Llc Method and apparatus for fast booting a portable computing device allowing for immediate operation
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8217833B2 (en) 2008-12-11 2012-07-10 Hemisphere Gps Llc GNSS superband ASIC with simultaneous multi-frequency down conversion
US8260876B2 (en) * 2009-04-03 2012-09-04 Google Inc. System and method for reducing startup cost of a software application
US8401704B2 (en) 2009-07-22 2013-03-19 Hemisphere GPS, LLC GNSS control system and method for irrigation and related applications
US8135894B1 (en) 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
US8334804B2 (en) 2009-09-04 2012-12-18 Hemisphere Gps Llc Multi-frequency GNSS receiver baseband DSP
US20110224873A1 (en) * 2009-09-17 2011-09-15 Reeve David R Vehicle assembly controller with automaton framework and control method
CN102043662A (zh) * 2009-10-23 2011-05-04 伟视科技股份有限公司 多操作***的数据修改方法
US8473662B2 (en) * 2009-12-18 2013-06-25 Electronics And Telecommunications Research Institute Interrupt-handling-mode determining method of embedded operating system kernel
CN102667725B (zh) * 2010-01-13 2015-09-16 马维尔以色列(M.I.S.L.)有限公司 用于媒体处理的硬件虚拟化
US8782258B2 (en) * 2011-01-04 2014-07-15 Motorola Mobility Llc Transferring web data between operating system environments
GB2487575B (en) 2011-01-28 2017-04-12 Advanced Risc Mach Ltd Controlling generation of debug exceptions
US8725923B1 (en) * 2011-03-31 2014-05-13 Emc Corporation BMC-based communication system
CN104216777B (zh) * 2014-08-29 2017-09-08 宇龙计算机通信科技(深圳)有限公司 双***电子装置及终端
US9710313B2 (en) * 2014-12-30 2017-07-18 Ge Aviation Systems Llc Method and system for ensuring integrity of critical data
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
FR3048529B1 (fr) * 2016-03-01 2018-03-23 Ingenico Group Procede de modulation d'acces a une ressource, dispositif et programme correspondant
US20200104193A1 (en) * 2018-09-28 2020-04-02 Apple Inc. Port Groups
CN111538580B (zh) * 2020-04-23 2024-01-05 苏州大学 一种嵌入式实时操作***的线程信号操作方法与***

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE360135C (de) * 1915-06-08 1922-09-29 Enrico Feroldi Vergaser fuer Verbrennungskraftmaschinen
GB1457295A (en) 1974-01-28 1976-12-01 Hovermarine Transport Ltd Flexible skirt members for gas-cushion vehicles
DE3802366A1 (de) 1988-01-27 1989-08-10 Boehringer Mannheim Gmbh Traegervlies fuer abloesbar impraegnierte reagenzien
US4993017A (en) 1988-03-15 1991-02-12 Siemens Aktiengesellschaft Modularly structured ISDN communication system
DE3831048A1 (de) 1988-09-12 1990-03-15 Nixdorf Computer Ag Betriebsprogramm fuer eine datenverarbeitungsanlage
US5278973A (en) 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
US5392282A (en) 1989-05-17 1995-02-21 Nokia Mobile Phones, Ltd. Circuit arrangement in a mobile phone for a digital mobile telephone system
FI87033C (fi) 1990-10-05 1992-11-10 Nokia Mobile Phones Ltd Foerfarande foer att arrangera styrningar av kopplingstyp i en radiotelefon
US5301277A (en) * 1991-04-10 1994-04-05 Seiko Epson Corporation Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system
JPH04367037A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 計算機システム
FI89223C (fi) 1991-10-03 1993-08-25 Nokia Mobile Phones Ltd Digitalt audiointerface i gsm-anordning
FI98183C (fi) 1992-02-14 1997-04-25 Nokia Mobile Phones Ltd Järjestely data-adapterin kytkemiseksi GSM-solukkopuhelimeen
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
TW278291B (fi) * 1992-06-30 1996-06-11 Motorola Inc
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5657371A (en) 1993-02-01 1997-08-12 Nokia Mobile Phones Limited Connector assembly for a radio telephone and a computer
US5414848A (en) * 1993-04-01 1995-05-09 Intel Corporation Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
JP2813728B2 (ja) * 1993-11-01 1998-10-22 インターナショナル・ビジネス・マシーンズ・コーポレイション ズーム/パン機能付パーソナル通信機
GB2298109B (en) 1995-02-14 1999-09-01 Nokia Mobile Phones Ltd Data interface
US6260075B1 (en) * 1995-06-19 2001-07-10 International Business Machines Corporation System and method for providing shared global offset table for common shared library in a computer system
US6125411A (en) * 1995-09-13 2000-09-26 Hitachi, Ltd. System storing plural I/O arrangement information wherein each I/O arrangement information corresponding to each operating system is created in response to more than two operating systems
FI111309B (fi) 1996-01-03 2003-06-30 Nokia Corp Tietoliikenneverkkoon radioteitse liitettävä päätelaite
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US5974439A (en) * 1997-11-21 1999-10-26 International Business Machines Corporation Resource sharing between real-time and general purpose programs

Also Published As

Publication number Publication date
JP2002501248A (ja) 2002-01-15
KR20010034232A (ko) 2001-04-25
EP1047991A1 (en) 2000-11-02
AU2056499A (en) 1999-08-09
FI980135A (fi) 1999-07-22
FI980135A0 (fi) 1998-01-21
CN1130630C (zh) 2003-12-10
JP2011216132A (ja) 2011-10-27
US7062766B2 (en) 2006-06-13
US6631394B1 (en) 2003-10-07
WO1999038073A1 (en) 1999-07-29
JP2007164819A (ja) 2007-06-28
HK1035416A1 (en) 2001-11-23
US20040088710A1 (en) 2004-05-06
KR100681875B1 (ko) 2007-02-12
CN1294706A (zh) 2001-05-09

Similar Documents

Publication Publication Date Title
FI108478B (fi) Sulautettu jõrjestelmõ
FI114663B (fi) Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite
US5742825A (en) Operating system for office machines
US7743384B2 (en) Method and system for implementing an interrupt handler
EP2312441B1 (en) Scheduling of instructions groups for cell processors
KR20080066721A (ko) 미디어 재생기들상에서 다중 작업을 위한 방법
KR100791296B1 (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
US20070198997A1 (en) Customer framework for embedded applications
US7076551B2 (en) Using remote procedure calls to manage co-processor resources
KR100954661B1 (ko) Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체
EP1892625B1 (en) Finer grained operating system scheduling
CN113495787A (zh) 资源分配方法、装置、存储介质及电子设备
Serra et al. An architecture for declarative real-time scheduling on Linux
Wang et al. A survey of embedded operating system
KR20050063304A (ko) 이동통신 단말기에서 다중 가상머신 구동용 실행 환경구조 및 그 실행방법
JP2005519393A (ja) 仮想直接メモリ・アクセスのための方法及び装置
KR100676671B1 (ko) 유저 쓰레드 관리 장치 및 그 방법
addin Al-maweri et al. Runtime CPU scheduler customization framework for a flexible mobile operating system
JP2009509214A (ja) スレッドコールテーブルを用いたコンピュータ装置への機能性の付加
Hunt Interrupts
Takeyama et al. Design and implementation of the ITRON specification—an embedded industrial realtime OS
Fusser A man-machine interface for PC-controlled injection moulding
Boschker A Requirements Analysis Method for the Evaluation and Selection of Concurrency Constructs
Takeyama HI8-3X: A μITRON-Specification Realtime Operating System for H8/300 Series Microcontrollers Manabu Kobayakawa, Toshiaki Nagasawa, Tsuyoshi Shimizu

Legal Events

Date Code Title Description
MM Patent lapsed