Emne - Sanntidsprogrammering - TTK4145
Sanntidsprogrammering
Om
Om emnet
Faglig innhold
Programmeringsformalismer for sanntid; POSIX, Ada, Java og Go. Tråder/prosesser, synkronisering og kommunikasjon. Delt variabel-basert synkronisering og ressurskontroll. Feilhåndtering, tilgjengelighet og konsistens. Meldingsbasert synkronisering, CSP og formelle metoder. Praktiske øvinger og prosjekt.
Læringsutbytte
Kunnskap:
- Inngående kjennskap til synkroniseringsmekanismer som semaforer og monitorer.
- Inngående kjennskap til meldingsbasert synkronisering.
- Inngående kjennskap til tråder, prosesser, scheduling og synkronisering i perspektiv av et sanntids operativsystem.
- Inngående kjennskap til vanlige fallgruber ved sanntidsprogrammering.
- Inngående kjennskap til feilhåndtering og feiltoleranse.
- Inngående kjennskap til høytilgjengelighet og konsistens i systemer med flere tråder/prosesser.
- Kjenskap til programmeringsspråkene C, C++, Java, Ada og Go.
- Kjenskap til CSP, Formelle metoder og bruk av analyseverktøy for sanntidssystemer.
Ferdighet:
- Gode ferdigheter i design og utvikling av sanntids programvare herunder både systemer basert på meldingssending og delt variabelsynkronisering.
- Evne til å planlegge og gjennomføre praktisk implementasjon av et programvaresystem av signifikant kompleksitet. (~Noen tusen linjer C-kode).
- Gode ferdigheter i et fritt valgt programmeringsspråk (sannsynligvis C, C++, Java eller ADA).
- Studenten skal kunne forholde seg konstruktivt i sitt design til feilhåndtering og konsistens i systemer med flere deltagere.
Generell kompetanse:
- Gruppesamarbeide.
- IT & Programvareutvikling generelt.
Læringsformer og aktiviteter
Forelesninger og obligatoriske øvinger/prosjekt. Mappevurdering gir grunnlag for sluttkarakter i emnet. I mappen inngår skriftlig avsluttende eksamen 75% og arbeider 25%. Resultatet for delene angis i %-poeng, mens sensur for hele mappen (sluttkarakteren) angis med bokstavkarakter. Ved utsatt eksamen (kontinuasjonseksamen) kan skriftlig eksamen bli endret til muntlig eksamen.
Obligatoriske aktiviteter
- Øvinger
- Prosjekt
Anbefalte forkunnskaper
Studenten må ha god ferdighet i minst ett programmeringsspråk og en god forståelse av datamaskiner og operativsystemers virkemåte.
Kursmateriell
Alan Burns og Andy Wellings: Real-Time Systems and Programming Languages. Annen pensumlitteratur og støttelitteratur oppgis ved semesterstart.
Studiepoengreduksjon
| Emnekode | Reduksjon | Fra |
|---|---|---|
| SIE3050 | 7,5 sp |
Fagområder
- Datamaskiner
- Datateknikk
- Program/system-utvikling
- Teknologiske fag