OHJ-4301 Sulautettu Ohjelmointi

Samankaltaiset tiedostot
OHJ-4301 Sulautettu Ohjelmointi

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

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

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

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Arto Salminen,

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

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen,

Agenda. Johdanto Säätäjiä. Mittaaminen. P-, I-,D-, PI-, PD-, ja PID-säätäjä Säätäjän valinta ja virittäminen

Arto Salminen

9. Luento: Ohjelmistotyö. Tommi Mikkonen,

Arto Salminen,

7. Ytimet. 7.1 Ytimen roolista

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

7. Luento: Ytimet. Tommi Mikkonen,

Näkökulmia monimuoto-opetukseen

Graafisen käyttöliittymän ohjelmointi Syksy 2013

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

11. Luento: Vikasietoisuus. Tommi Mikkonen,

2 Konekieli, aliohjelmat, keskeytykset

ABTEKNILLINEN KORKEAKOULU Tietoverkkolaboratorio

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

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

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Sulautetut järjestelmät

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?


4. Prosessit ja säikeet

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Palautteen kerääminen OSCu-kursseilla

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

Helsinki University of Technology

10. Luento: Kohti suurempia sulautettuja ohjelmistoja. Tommi Mikkonen,

Tervetuloa jatkamaan DIGITAALI- TEKNIIKAN opiskelua! Digitaalitekniikka (piirit) Luku 0 Sivu 1 (8)

Sulautettu ohjelmointi

Ainedidaktiikan yhteinen INFO Edu PEDAp4: Oman aineryhmän INFO PEDAp4: Vuorovaikutuksesta (luento), Edu244

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Ohjelmistoarkkitehtuurit. Syksy 2010

Ohjelmistotekniikan menetelmät, kesä 2008

Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA! Digitaalitekniikan matematiikka Luku 0 Sivu 1 (9)

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Tik Ohjelmistoprojektien Hallinta

30 Opetussuunnitelma OSAAMISEN ARVIOINTI ARVIOINNIN KOHTEET JA AMMATTITAITOVAATIMUKSET OSAAMISEN HANKKIMINEN. järjestelmätyöt: työskentely

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1


Ohjelmistoarkkitehtuurit. Syksy 2008

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

10 Opetussuunnitelma OSAAMISEN ARVIOINTI ARVIOINNIN KOHTEET JA AMMATTITAITOVAATIMUKSET OSAAMISEN HANKKIMINEN

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

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

13. Luento: Esimerkki: Symbianympäristö. Tommi Mikkonen,

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

AB TEKNILLINEN KORKEAKOULU

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Käyttöjärjestelmät II

ABTEKNILLINEN KORKEAKOULU Tietoverkkolaboratorio

AB TEKNILLINEN KORKEAKOULU

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Ohjelmistojen mallintaminen, kesä 2010

MS-C2103 Koesuunnittelu ja tilastolliset mallit (5 op)

Mobiiliohjelmointi,, 5op

Projektien suunnittelu ja ohjaus TU-C3010

Tietokoneen toiminta (Computer Organization I)

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Ohjelmistotekniikan menetelmät, kevät 2008

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

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

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

Ohjelmistojen mallintaminen, kesä 2009

Arto Salminen,

A4.1 Projektityö, 5 ov.

Tähtitieteen käytännön menetelmiä Kevät 2009

Rinnakkaistietokoneet luento S

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

Arto Salminen,

Suoritustavat: Laboratoriotöitä 2.-3.periodi. Luennot 2h, Laboratorityöt 4h, itsenäinen työskentely 124 h. Yhteensä 130 h.

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

S Liikenneteorian perusteet (2 ov) K-98

PLA Mobiiliohjelmointi. Mika Saari

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Tietokoneen toiminta (Computer Organization I)

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

Käyttöjärjestelmät II

Tietokoneen toiminta (Computer Organization I)

T Johdatus tietoliikenteeseen ja multimediatekniikkaan 5 op. Kevät 2013

213a. MS-A0503 Todennäköisyyslaskenna n ja tilastotieteen per; M (vkot 3-7)

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Ohjelmistoarkkitehtuurit. Kevät

Transkriptio:

OHJ-4301 Sulautettu Ohjelmointi (http://www.cs.tut.fi/~sulo/) /~sulo/) 5op, to 12-14, 14, TB 109 Tommi Mikkonen, tommi.mikkonen@tut.fi Arto Salminen, arto.salminen@tut.fi

Läpäisyvaatimukset Hyväksytysti suoritetut: Tentti Harjoitustyöt Olisi kiva jos joku vaivautuisi luennoillekin, pelkille seinille on tylsä puhua!. mutta pakko ei ole tulla.

Luennot Periodi 3 Loppiainen, ei luentoa (6.1.) 1. Yleisjärjestelyt, johdatus aihepiiriin (13.1.) 2. Laitteistorajapinta (20.1.) 3. Muistinhallinta (27.1.) 4. Prosessit ja säikeet (3.2.) 5. Rinnakkaisuus ja jako prosesseihin (10.2.) 6. Skedulointi (17.2.) 7. Ytimet (24.2.)

Luennot Periodi 4 8. Laitteiston ohjaaminen (10.3.) 9. Ohjelmistotyö (17.3.) 10. Kohti suurempia sulautettuja ohjelmistoja (24.3.) 11. Vikasietoisuus (31.3.) 12. Esimerkki: Mikrohiiri (7.4.) 13. Esimerkki: Symbian-ympäristö (14.4.) 14. Hajautetut sulautetut järjestelmät (28.4.) 15. Kertausta ja vara-aikaa (5.5.)

Kurssimateriaali Järvinen & Mikkonen: Sulautettu Ohjelmointi, esipainos, Tampere 2011 Ilmestyy valitettavasti tipoittain, otaksuttavasti kuitenkin samassa tahdissa luentojen kanssa Pohjautuu viime vuotiseen prujuun, mutta asiaa on lisätty melkoisesti, ja vanhakin asia on osin uudelleen jaoteltu Luentokalvot ladattavissa myös webistä sitä mukaa kun kurssi etenee www.cs.tut.fi/~sulo Tulevat kuitenkin saataville vasta luentojen jälkeen jotta viime hetken korjaukset (luennoilla huomattujen virheiden korjaamiseksi) ovat myös ladattavissa Luentoja ei nauhoiteta tms. (paitsi jos joku ehdottomasti haluaa homman hoitaa!)

Harjoitustyöt 3 harjoitustyötä Jokaisesta mahdollisuus tienata 6p, eli siis max 18p Tehdään pareittain Luonteeltaan tyypillisiä sulautetun ohjelmiston toteuttamiseen liittyviä tehtäviä Jos joku keksii oman aiheen, on mahdollisuuksien rajoissa toteuttaa siihen liittyvä ohjelmisto, mutta asiasta on sovittava etukäteen Arton kanssa Työt voimassa vain tähän toteutuskertaan liittyen (kuka arvaa tässä kohtaa että aiomme uudistaa kurssia ensi vuodeksi?)

Demoharjoitus Sulautettu ohjelmointi on oikeasti vaikeaa, sillä Ohjelmistoteknisesti törmätään rajoitteisiin, joita ei olla etukäteen ajateltu Työkalut ovat tuntemattomia, hankalia käyttää sillä ne on tarkoitettu ammattilaiselle, ja bugisia sillä käyttäjäkunta on usein pieni Ympäristö, jossa ohjelmoidaan, on myös vieras Harjoitustöiden yksinkertaistamiseksi järjestämme demokerran, jossa tehdään esimerkkisovellus Työkaluihin tutustuminen ohjatusti Ympäristöön tutustuminen ohjatusti Demokerta on pakollinen Muista ilmoittautua!

Tentti ja arvostelu Tentti: 5 tehtävää, joista jokaisesta max. 6p Läpipääsyyn vaaditaan 12p Arvostelu: Puolet arvosanasta harjoitustöiden laatuun perustuen (max 18p), toinen puoli tentistä (30p-12p=18p) Tästä syystä harkkatyöt ja tentti voimassa vain tällä samalla toteutuskerralla!

Yhteenveto #1: Johdanto Sulautettu järjestelmä Ohjelmisto ja laitteisto ovat kiinni toisissaan niin saumattomasti ettei kumpikaan ole käyttökelpoinen ilman toista Useita erilaisia insinööritieteitä osana suunnittelua Ohjelmiston toteutuksessa joudutaan usein yhdistämään eri alojen asiantuntijoiden vaatimukset Sulautettu ohjelmointi Ymmärrys mitä taustalla olevan laitteiston oletetaan tekevän Sisäänrakennettu rinnakkaisuus, aikakriittisyys, reaktiivisuus ja vikasietoisuus (sekä yhä useammin myös hajautus!)

Yhteenveto #2: Laitteistorajapinta Sulautettu arkkitehtuuri Keskeytykset Oheislaitteet

Yhteenveto #3: Muistinhallinta Eri muistityypit soveltuvat eri käyttöön Myös saman tyypin sisällä erilaisia toteutuksia, hintoja, kokoja, ominaisuuksia, jne. Muistin käytön suunnitteleminen ohjelmoijan vastuulla Sekä koko muistin kulutuksen osalta pienissä järjestelmissä Että yksittäisen prosessin osalta suuremmissa järjestelmissä MMU tarjoaa suojausmekanismin prosessien välille; ei aina vaihtoehto Välimuisti nopeuttaa tilastollisesti, mutta ei sovi kaikkein reaaliaikaisimpien ohjelmistojen toteuttamiseen

Yhteenveto #4: Prosessit ja säikeet Prosessit sisältävät yhden tai useampia säikeitä saman osoiteavaruuden sisällä Säie pienin skeduloitava yksikkö Run, Ready, Wait (+ lisätiloja tarpeen mukaan?) Keskeytyksissä säikeen (prosessin) ympäristö (rekisterit + tilasana) talletetaan ympäristöpinoon Ajettava säie vaihdetaan vaihtamalla ympäristö toiseksi Keskeytyksessä palattaessa palautetaan ympäristö Keskeytyskäsittely voidaan keskeyttää Käyttöjärjestelmäpyynnöt keskeytysmekanismin avulla

Yhteenveto #5: Rinnakkaisuudesta Rinnakkaisuuden ongelmat Jakoperusteet Reaaliaikajärjestelmät

Yhteenveto #6: Skedulointi Irrottava ja irroittamaton skedulointi Useita skedulointialgoritmeja, joilla erilaisia ominaisuuksia Pikatesti: Tehdään leikkikuorma ja kokeillaan miten käy Monimutkaisempi testi: Matkitaan järjestelmää tarkemmin; kirjoituspöytäkokeilut Analyysi: Järjestelmän ominaisuuksien perusteella voidaan laskea käyttöastetta/skeduloituvuutta Periodisuus ja sporadisuus

Yhteenveto #7: Ytimet Ytimien erot kulminoituvat siihen, miten ytimen ja sovelluksen toiminnot erotetaan Pollava ydin: Ydin ja sovelluslogiikka kietoutuneet toisiinsa; ohjausrakenne ikuinen silmukka Keskeyttävä ydin: Ydin ja sovelluslogiikka kietoutuneet toisiinsa; ohjausrakenne keskeytykset Prosessiydin: Ydin ja sovelluslogiikka erotettu toisistaan; laiteohjaus ytimessä, sovelluslogiikka prosesseissa Monoliittinen vs. mikroydin Useita valmiina saatavia ytimiä; jos tarvitset johonkin todelliseen laitteeseen ytimen, tutki edes saatavilla olevat vaihtoehdot ennen kuin ryntäät oman toteutuksen kimppuun ( oma kiinnostus + omat harrastukset on eri asia ;-)

Yhteenveto #8: Lyhyesti säätämisestä P-, I-, D-, PI-, PD- ja PID-säätimet valitaan käyttötarkoituksensa mukaan ja viritetään toimimaan optimaalisella, mutta turvallisella tavalla. Mitta-anturien kalibrointi on usein tarpeen valmistustoleranssien ja kulumisen vaikutuksen poistamiseksi Järjestelmän turvallisuus on syytä ottaa aina huomioon

Yhteenveto #9: Ohjelmistotyö Kehitys- ja käyttöympäristöt eivät ole samat Suuri joukko erilaisia avustavia työkaluja; eivät kuitenkaan voi kokonaan korvata oikean laitteen käyttöä kehityksen aikana Laitteiston testaus on osa ohjelmiston tehtävää oikeastaan lähes aina Iteratiivinen kehitystyyli lähes välttämätöntä ohjelmistotyössä

Yhteenveto #10: Kohti suurempia sulautettuja Painopiste laitteen hereille saamisesta laitteen pitkäaikaiseen käyttöön Valmiit ohjelmistopinot Vuotavien abstraktioiden hallinta Joustavuutta tuovat suunnitteluratkaisut Määrittelyn oikeellisuus ja täsmällisyys

Yhteenveto #11: Vikasietoisuus Vikasietoinen järjestelmä kykenee jatkamaan toimintaansa itsenäisesti myös silloin kun siinä on vikaa Vikaturvallisen järjestelmän suunnittelussa on huomioitu erikseen ettei vikaantumisesta ettei tule vaaraa Vikasietoisuus voi kohdistua vain vikoihin jotka on otettu huomioon osana suunnittelua Ohjelmistojen sisäisen vikasietoisuuden toteutuskeinoina Ohjelman toiminnan tarkkailu Defensiivinen ohjelmointi

Yhteenveto #13: Symbian Monet vähän erikoisemmalta kuulostavat Symbianin ominaisuudet muuttuvat tarkoituksenmukaisiksi kun ottaa huomioon sulautetun ohjelmoinnin erityispiirteet Toisaalta osasta erityispiirteistä aika on ajanut ohi Taustan ymmärtäminen yksinkertaistaa rajoitteiden huomiointia suunnittelutyössä Toisaalta hyvien ideoiden mukailu voi helpottaa jonkun muun ympäristön käyttöä vastaavalla tavalla Toiset tykkää, toiset ei

Yhteenveto #14: Hajautetut sulautetut Hajautettu skedulointi luo omat haasteensa laadunvarmistukselle Erilaiset väylät voivat yksinkertaistaa järjestelmän rakentamista, mutta ne voivat myös vaatia uudenlaisten suunnitteluongelmien ratkaisua Laitteen sisäisen kapasiteetin hyödyntäminen

Onnea tenttiin! Muuta?