Luento 10: Tosiaikakäyttöjärjestelmät

Samankaltaiset tiedostot
Sisältö. Luento 10: Tosiaikakäyttöjärjestelmät. Ominaisuuksia. Arkkitehtuuriratkaisuja. Sulautettu järjestelmä: Useita ohjaavia prosessoreja

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Käyttöjärjestelmät: prosessit

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Prosessi perinteisesti

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Arto Salminen

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

Työasema- ja palvelinarkkitehtuurit IC Tallennusjärjestelmät. Tallennusjärjestelmät. 5 opintopistettä.

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Arto Salminen,

Hans Baumgartner nimi nimi nimi nimi. Reaaliaikakäyttöjärjestelmät

Käyttöjärjestelmät II

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

OHJ-4301 Sulautettu Ohjelmointi

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Tosiaikajärjestelmät: Luento 3 Epäsäännöllisten töiden ajoitus

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Pikaintro käyttöjärjestelmiin

Käyttöjärjestelmät II

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Luento 1 Tietokonejärjestelmän rakenne

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Sisältö. Tosiaikajärjestelmät: Luento 3 Epäsäännöllisten töiden ajoitus. Sporadisten ja jaksottomien ajoitus Kellopohjainen ajoitus jaksollisilla

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Jouko Nielsen. Ubuntu Linux

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

7. Ytimet. 7.1 Ytimen roolista

Sisältöä SÄIKEET, SMP

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen,

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Virtualisoi viisaasti paranna palvelua. Iikka Taanila Systems Architect IBM Systems and Technology Group

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

TeleWell GPRS-modeemin ohjekirja

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Teemu Kerola Orientointi Syksy 2018

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Kurssin rakenne: yleiskuva Tosiaikajärjestelmät (2 ov) Kevät Kurssikirja + artikkelit. Kurssin rakenne. Lisätietoja.

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Integrointi. Ohjelmistotekniikka kevät 2003

Javan asennus ja ohjeita ongelmatilanteisiin

Tietokoneen toiminta (Computer Organization I)

OHJ-4301 Sulautettu Ohjelmointi

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

LUENTO 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Backup Exec 3600 Appliance

Prosessit ja säikeet SMP, Mikroytimet W2K säikeet

Linux omaan kannettavaan. Ilkka Kiistala

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Käyttöjärjestelmät II. SMP, Mikroytimet. Prosessit yleensä. UNIX prosessit. UNIX SVR4 Prosessit. UNIX prosessin kuvaaja

Googlen palvelut synkronoinnin apuna. Kampin palvelukeskus Jukka Hanhinen, Urho Karjalainen, Rene Tigerstedt, Pirjo Salo

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Tosiaikajärjestelmät (2 ov) Kevät 2006

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

2 Konekieli, aliohjelmat, keskeytykset

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Arto Salminen,

Sovellusarkkitehtuurit

Intel Threading Building Blocks

Luento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

Tuotannon laitteiden käyttöasteen seuranta

Tietokoneen toiminta (Computer Organization I)

TK Palvelinympäristö

TK Palvelinympäristö

Arduino ohjelmistokehitys

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Liikkuvien työkoneiden etäseuranta

Stallings, Lukua 2. KJ-I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-2. KJ-I I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-1

9. Muunneltavuuden hallinta

SÄIKEET, SMP. Sisältöä. Stallings, Luku 4. Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä

Jakso 8 Ohjelman toteutus järjestelmässä

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Sisältöä SÄIKEET, SMP

Turvakriittisen projektin menetelmät ja työkalut

Jakso 8 Ohjelman toteutus järjestelmässä

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

POWER analytiikka-alustana

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Hallintatyökaluja Fujitsu-työasemille

Transkriptio:

Luento 10: Tosiaikakäyttöjärjestelmät Lähteet: Liu: Real-Time Systems, luku 12, Stankovic & Rajkumar: Real-Time Operating Systems. Real-Time Systems, 28,237-253,2004. Lisäksi kalvosarjassa on kuvia myös kirjasta: Cooling: Software Engineering for Real-time Systems, luku 6 Sisältö Yleistä Ominaisuuksia Arkkitehtuuriratkaisuja Piirteitä Kehitysympäristö ja -työkaluja POSIX RTOS esimerkkejä 1

Ominaisuuksia Ennustettavuus ja suorituskyky Pieni yleiskuorma Aikapalvelut ja niiden tarkkuus Konfiguroitavuus Työkalut (kääntäjät, GUI) Siirrettävyys (sekä KJ että sovellus) Arkkitehtuuriratkaisuja Ei yhtä standardiratkaisua Tarpeet ja ratkaisut vaihtelevat yksinkertaisesta sulautetusta järjestelmästä hajautettuun yleiskäyttöiseen järjestelmään Käytettävät työkalut vaihtelevat ratkaisujen mukana 2

Sulautettu järjestelmä: Yksi ohjaava prosessori Kaikki toiminnallisuus tiedossa ennakkoon Usein ei erillistä käyttöjärjestelmää lainkaan Ohjelmakehitys muualla, esim. simuloidussa ympäristössä Prosessori Ulkoisia laitteita Sulautettu järjestelmä: Useita ohjaavia prosessoreja Kaikki toiminnallisuus tiedossa ennakkoon Usein ei erillistä käyttöjärjestelmää lainkaan Prosessorien välinen kommunikointi Ohjelmakehitys muualla Väylä Prosessori Prosessori Ulkoisia laitteita Ulkoisia laitteita 3

Sulautettu ja hajautettu järjestelmä: Useita prosessoreja, yksi verkko Prosessorien välinen kommunikointi Usein käytössä jokin RTOS (tosiaikakj) Ohjelmakehitys suoraan järjestelmässä tai muualla LAN Prosessori Prosessori Ulkoisia laitteita Prosessori Ulkoisia laitteita Ohjausjärjestelmä: yleiskuva kuvattava halutulle toteutusalustalle Real-Time Clock Algorithms for Digital Control Interface Engineering System Data Logging Remote Monitoring System Database Data Retrieval and Display Display Devices Operator s Console Operator Interface Real-Time Computer Alan Burns and Andy Wellings, 2001 4

Vain ohjain (Controller) - ei kj:tä Esimerkiksi keskeytyskäsittelyn avulla Kaksi vaihetta Käynnistys (initialisation) Toiminta Sovelluksen koodi keskeytyskäsittelijöissä Aktivointi esim. kellokeskeytyksillä Usein tausta-ajona silmukka, joka ei tee mitään tai kerää alhaisella prioriteetilla erilaista tilastotietoa Malli (vain ohjain) Cooling: kuva 6.3 5

Nanoydin (Nanokernel) real-time executive Hyvin minimalistinen käyttöjärjestelmä, vain Tehtävän (task) luonti Skedulointi ja prosessinvaihto Ajoitus ja keskeytykset Kaikkein aikakriittisimmät tehtävät keskeytyskäsittelyllä HAL Hardware Abstraction Layer Malli nanoydin Cooling: kuva 6.4 6

Mikroydin Palveluja Järjestelmän käynnistys ja lataus Prosessin (tehtävän) skedulointi ja valvonta Poissulkeminen ja synkronointi Tiedonsiirto synkronoinnilla ja ilman Muistinhallinta BSP Board Support Package Mikroydin Cooling: kuva 6.7 7

Mikroydin Liu: kuva 12-2 Yleiskäyttöinen sulautettu RTOS Lisänä tavanomaiset kj-palvelut Verkkotuki ja tietoliikenneprotokollia Pysyvää muistia (esim. levy) Graafinen käyttöliittymä Prosessien ja muistin suojaus 8

Yleiskäyttöinen RTOS Cooling: kuva 6.9 Yleiskäyttöinen RTOS Cooling: kuva 6.8 9

Sekakuorma: sekä tosiaikaisia että ei-tosiaikaisia samalla koneella Liu kuva 12-10 Kaksivaiheinen vuorotus Sisältö Yleistä Ominaisuuksia Arkkitehtuuriratkaisuja Piirteitä Kehitysympäristö ja -työkaluja POSIX RTOS esimerkkejä 10

Piirteitä Tietoliikenne Oli aiemmalla luennolla Pysyvä tiedon tallennus (levy) Ei yleensä mitään poikkeavaa tavanomaisesta Prosessien hallinta ja skedulointi Ajoitusmenetelmät oli aiemmalla luennolla Graafinen käyttöliittymä Tosiaikainen (????) Prosessien (?) hallinta Eri järjestelmät käyttävät hiukan eri termejä Tehtävät (task) Prosessit (process) Säikeet (threads) Aktorit (actors) Useimmiten käsitellään säikeitä, joten niin tässäkin 11

Säietyypit Jaksollinen säi (periodic thread) Tuetaan esim. RT-Mach, EPIQ Säiettä ei luoda aina uudelleen, vaan Kunkin jakson alussa säie alustetaan uudelleen ja se 'nukkuu' jaksojen välit Jaksottomat ja sporadiset säikeet Nukkuvat myös toimintavälit, alustetaan uudelleen usein ennen nukahtamista Käynnistyvät usein ulkoisten tapahtumien perusteella Jaksollistuvan palvelimen toteutus Esim. Sporadiset ja Vakio käyttöaste palvelimet (luento 3) Voidaan toteuttaa yhdellä säikeellä Kukin erillinen sporadinen tai jaksoton työ muodostaa oman funktionsa säikeen sisälle Säikeellä on funktiotaulu, jossa on kunkin työn funktion osoite (kts. esim. C-kurssi) Ulkoinen herätä käynnistää tietyn työn, jolloin säi käynnistyy ja valitsee suoritettavaksi ko. funktion Töiden vuorotus palvelimen sisällä tapahtuu yksikertaisesti vaihtamalla suoritettavaa funktiota. 12

Säikeen tilat Nukkuu (sleeping) Valmis (ready) Suorituksessa (executing) Estetty (suspended, blocked) Päättynyt (terminated) Aikapalvelut (perusmalli) Kellokeskeytys (clock interrupt) Joka keskeytyksessä käydään läpi Prosessien ajastintapahtumat (timer events) Suorituskustannusten (execution budget) keruu Valmisjonon päivitys ja kontrollin siirto 10 millisekunnin välein (tyypillinen) 13

Keskeytykset Yleensä kahdessa vaiheessa Välitön käsittely Hyvin lyhyt kesto Ajoitettu käsittely Prioriteetin perusteella Liu kuva 12-3 Graafinen käyttöliittymä Näitä todella on tosiaikajärjestelmissäkin Lentäjien erilaiset valvontanäytöt Valvontahuoneiden näytöt Web-palvelin esim. tietoliikennekytkimessä Tarve laajenee Puhelimet PDA:t Autojen navigointijärjestelmät... 14

Sisältö Yleistä POSIX Portable Operating System Interface RTOS esimerkkejä POSIX - standardi 1003.1.-2001 Säikeet Skedulointirajapinta Kello ja ajastin Prosessien välinen kommunikointi Synkronointi Jaettu muisti ja lukitus Synkroninen ja asynkroninen I/O Tosiaikaiset signaalit 15

Kello ja ajastin Perinteiset kellot time gettimeofday Aika alkoi 1.1.1970 ja päättyy helmik. 2038 Perinteiset aikamuutoksia sleep setitimer getitimer Kello ja ajastin: laajennokset Useita kelloja: ainakin CLOCK_REALTIME clock_settime(clock_id clock_gettime, clock_getres Ajastimet timer_create, timer_delete timer_settime, timer_gettime timer_getoverrun nanosleep 16

Sisältö Yleistä POSIX RTOS esimerkkejä VxWorks + Tornado QNX Linuxin tosiaikamuunnelmat VxWorks 5.5 + Tornado 2.2 www.windriver.com Kehuu asiakkaillaan, mm. Honda: ASIMO humanoid robot JPL: Pathfinder ja Rover 17

Wind River tuotteita Käyttöjärj. Työkalut Laitteistosovitus Verkkoyhteys VxWorks tosiaikakäyttöjärj. wind mikrokernel Verkko- ja IO-tuki Kohdearkkitehtuureja Motorola 68K, ColdFire, IBM PowerPC Intel Pentiums, StrongArm, Xscale MIPS ARM 18

Tornado kehitysympäristö Kuva 5: white paper Wind River in Interactive Digital Television QNX www.qnx.com Vastaavasti 'success stories' Inform@fon, Multiphone Nukutusmonitori 19

QNX Neutrino tosiaikakj Mikrokerneli Verkkotuki Photon microgui Alustoja MIPS, PPC, X86, ARM LynxOS LynuxWorks (www.lynx.com) POSIX conformance tested BlueCat Linux / RT ISO 9001 sertifioitu HP:n kirjoittimissa PhatNoise jukeboxi autoon 20

LynxOS Linux ja tosiaikaisuus Kolme erilaista lähestymistapaa: Yhteensopiva ydin: Täysin erillinen toteutus, josta on tehty binääriyhteensopiva (LynxOS) Ytimen muokkaus: Tehdään erityisiä paikkauspaketteja (patch), joilla muutetaan ytimen rakennetta paremmin tosiaikaisuutta tukemaan (esim. aiempien ytimien low-latency patch) Kaksi ydintä: Laitetaan varsinainen linux-ydin yhdeksi tosiaikaprosessiksi tosiaikaisen mikroytimen päälle (RTLinux) 21

RTLinux Victor Yodaikenin idea, patentti ja nykyisin myös yritys (http://www.fsmlabs.com) tämän ympärillä Perus-Linuxin toiminnasta on vaihdettu vain keskeytyskäsittelijä. Se suorittaa tuon tosiaikaytimen ja vuorottaa tosiaikaiset prosessit. Niiltä vapaaksi jäävät osat annetaan perus-linuxille ja sen prosesseille. RTLinux tosiaikaprosessi 22

Tosiaikakäyttöjärjestelmät Open source Linux modifikaatiot Ei lisenssimaksuja, edullinen hankintahinta Kovien aikarajojen tuki? Kehitysympäristöt? Kaupalliset käyttöjärjestelmät Kallis hankintahinta + lisenssi per myynti Kovien aikarajojen tuki? Tehokkaita kehitysympäristöjä Siirrettävissä (maksua vastaan) uudelle alustalle Yhteenveto Tosiaikaisen käyttöjärjestelmän piirteet Deterministinen käyttäytyminen Lyhyet keskeytysviipeet, nopea kontekstin vaihto Prioriteetteja tukeva ajoitusmekanismi Kellon tarkkuus ja hyvät ajastimet Muunnettavissa parametreja vaihtamalla erilaisiin ympäristöihin 23