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,

Arto Salminen,

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Arto Salminen

7. Ytimet. 7.1 Ytimen roolista

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

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen,

7. Luento: Ytimet. 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

4. Prosessit ja säikeet

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

9. Luento: Ohjelmistotyö. Tommi Mikkonen,

11. Luento: Vikasietoisuus. Tommi Mikkonen,

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Arto Salminen,

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 II

Sulautettu ohjelmointi

Rinnakkaistietokoneet luento S

2 Konekieli, aliohjelmat, keskeytykset

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

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

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

Käyttöjärjestelmät II

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

5. Rinnakkaisuus ja jako prosesseihin

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

Sulautetut järjestelmät

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

Liite EVA Analyysi Jäähyväiset perustulolle

Näkökulmia monimuoto-opetukseen

Arto Salminen,

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

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

Pikaintro käyttöjärjestelmiin

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Käyttöjärjestelmän rakenne

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

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

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

Johdatusta ohjelmistotekniikkaan

Arto Salminen,

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

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

Käyttöjärjestelmät: prosessit

TK Palvelinympäristö

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

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

1. Sulautetut järjestelmät

Hankintariskit haltuun virtualisoinnilla

Graafisen käyttöliittymän ohjelmointi Syksy 2013

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

Lohkoketjuteknologian hyödyntäminen tiedon oikeellisuuden todistamisessa. Joel Kaartinen,

7. Harjoitus Kertaus ja tentti. Tuotantotalous 1

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Osio 2: Luennot 5-8 Muistinhallinta

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

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

Osaamisperustaisuuden arviointia tentillä

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Ohjelmistoarkkitehtuurit. Syksy 2008

Laadullinen tutkimus. KTT Riku Oksman

ICT-ratkaisuja näkemyksellä

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

Tik Ohjelmistoprojektien Hallinta

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Tietotekniikan laitoksen uusi linja

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

SÄHKÖKÄYTÖN EMULOINTI SIMULINK-DSPACE-M1 -YMPÄRISTÖSSÄ

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Arto Salminen,

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Projektien suunnittelu ja ohjaus TU-C3010

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

T Ohjelmistoprojektien hallinta Tehtävän 3 ratkaisu. Maija Kangas, Kimmo Stålnacke ja Outi Syysjoki

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

T Multimediatekniikka

T Käyttäjäkeskeisen tuotekehityksen harjoitustyö kevät 2005

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

Tievalaistuksen palvelusopimuksen tietopalvelu Sähköinen omaisuuden hallinta

Harjoitustyöinfo kevät TU-A1100 Tuotantotalous 1

Yleisen PSCR-menetelmän toteutus ohjelmoitavalla näytönoh

Ohjelmistoarkkitehtuurit. Syksy 2010

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

THEME osaamismatriisi - elektroniikka/sähkötekniikka osakompetenssien/oppimistulosten kanssa

Tik Harjoitustyö

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen

Kaikki suunnittelemaan! Henkilöstön osallistaminen

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

MS-C2103 Koesuunnittelu ja tilastolliset mallit (5 op)

Transkriptio:

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

Läpäisyvaatimukset Hyväksytysti suoritetut: Tentti Harjoitustyöt

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 Työt voimassa vain tähän toteutuskertaan liittyen (kuka arvaa tässä kohtaa että aiomme uudistaa kurssia ensi vuodeksi?)

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 #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? ja kilpailuun!