Reaaliaikaisuus

Wikipediasta
Siirry navigaatioon Siirry hakuun

Reaaliaikaisuus voi tarkoittaa joko järjestelmän tilan olevan jatkuvasti ajan tasalla (tosiaikajärjestelmä) tai tapahtumiin reagointia oikea-aikaisesti.

Tosiaikainen järjestelmä voi olla esimerkiksi pankin tilijärjestelmä, jossa millä hetkellä tahansa voidaan tietää kunkin tilin sen hetkinen saldo. Myös varastojärjestelmä voi olla tässä mielessä tosiaikainen, eli milloin tahansa on kysyttävissä, miten paljon mitäkin tavaraa on varastossa, miten suuri on minkin tarvaran kysyntä ja milloin sitä pitää tilata lisää. Vaikka näissä järjestelmissä pyritään siihen, että tilanne vastaa koko ajan todellisuutta, pienet heitot tietojen päivittämisessä eivät tee järjestelmää käyttökelvottomaksi.

Teknisesti puhutaan reaaliaikaisuudesta silloin, kun jollekin tehtävälle on asetettu ensimmäinen ja viimeinen sallittu toteutumisaika. Tämä aika lasketaan tyypillisesti jostain tapahtumista, joka voi olla esimerkiksi viesti toiselta ohjelmalta tai tietokoneelta, oheislaitteen aiheuttama keskeytys, signaali, käyttäjän tekemä toimintapyyntö tai saavutettu kellonaika.

Usein reaaliaikaisuus ymmärretään niin, että reaktio tehdään niin pian kuin mahdollista, mutta on huomattava, että on tilanteita, joissa on odotettava, ennen kuin vaste saadaan antaa. Teknisesti tällaiset tilanteet pyritään muuttamaan "mahdollisimman nopeasti" -muotoon esimerkiksi kellon avulla. Aikaa, joka kuluu tapahtumasta vasteen antamiseen kutsutaan vasteajaksi. Reaaliaikajärjestelmille on tyypillistä, että tämä vasteaika tai itse asiassa sen vaihteluväli voidaan laskea etukäteen, sillä mikään järjestelmä ei ole niin tarkka, että vasteaika olisi vakio.

Reaaliaikaisuus voidaan jakaa kovaan ja pehmeään reaaliaikaan. Kova reaaliaika tarkoittaa, että annetut aikarajat (ensimmäinen ja viimeinen sallittu ajanhetki) ovat ehdottomia. Jos vaste tulee nopeammin tai hitaammin, järjestelmän katsotaan toimivan virheellisesti. Kovaa reaaliaikaa voisi kuvata myös niin, että jos vastetta ei saada tuotettua aikarajojen sisällä, sitä ei kannata tuottaa lainkaan. Pehmeissä reaaliaikajärjestelmissä aikarajojen noudattaminen on toivottavaa, mutta niiden rikkominen ei ole toimintavirhe, vaan myöhästynytkin toiminta tulee tehdä loppuun. Esimerkiksi rahan siirto tililtä toiselle on tehtävä, vaikka se tulisikin vastaanottajan tilille vasta eräpäivän jälkeen.

Erona reaaliaikaisuudelle voidaan käyttää termiä "pehmeä aika" (engl. soft-time): rajoittamattomat viiveet aiheuttavat epäjatkuvaa aikaa erona reaaliaikaisuudesta.[1] Reaaliaikaisen järjestelmän tavoitteisiin kuuluu aikarajan deterministinen noudattaminen: järjestelmä käyttää vain tunnetun ja ennakoidun määrän aikaa.[2]

  1. Christoph M. Kirsch: Principles of Real-Time Programming (PDF) cs.uni-salzburg.at. 2002. Viitattu 20.4.2022. (englanniksi)
  2. Real-Time Operating Systems (RTOS) 101 (PDF) NASA. Viitattu 30.11.2017.