Visa kunskap om beprövad erfarenhet i utveckling och design av konstruktion av mjukvara för realtidssystem som styrs av externa händelser samt visa brett kunnande inom området.
Visa väsentligt fördjupade kunskaper i konstruktion av jämlöpande mjukvara med avseende på synkronisering och samtidiga skeenden.
Visa förmåga att med helhetssyn kritiskt, självständigt och kreativt identifiera, formulera och hantera komplexa problemställningar med hårda tidskrav samt utifrån problemställning visa förmåga planera och med hjälp av adekvata metoder dimensionera hårdvara samt, i mjukvara, implementera system som löser problemet i problemställningen samt visa förmåga att kritiskt och systematiskt integrera kunskaper om realtidssystem i tekniska system.
Visa förmåga att kritiskt utvärdera och analysera både kravspecifikationer och mjukvara för realtidsystem samt visa förmåga att modellera, förutsäga och utvärdera skeenden i dessa, även med begränsad information om det verkliga systemets egenskaper med avseende på intensitet av externa händelser.
Visa kunskap om matematiska verktyg för, samt den vetenskapliga grunden för schemaläggningsanalys samt problemställningar i samband med processynkronisering och tidsegenskaper i realtidssystem.
Visa förmåga till lagarbete och samverkan genom grupparbete samt visa förmåga att på egen hand identifiera behov av och förmåga till inhämtning av ytterligare kunskap för att stärka sin kompetens.
Kursinnehåll
Språket C och bitnivåprogrammering. Aktiv respektive reaktiv hantering av indata. Kontextbyten och en multitrådad systemkärnas uppbyggnad. Problemet med kritiska sektioner, objekt-orienterad inkapsling och synkroniseringsskydd. Reaktiva objekt som systembyggblock, asynkron kontra synkron kommunikation. Klockbaserade och avbrottstyrda processer, processchemaläggning. Deadlines och prioriteter, prioritetsarv, enkel schemaläggningsanalys. Programmering av drivrutiner för externa enheter. Några klassiska modeller för processabstraktion och synkronisering.
Förutsättningar
Grundläggande behörighet samt kurser om minst 60 hp på grundnivå, varav följande kunskaper/kurser ingår: Kunskaper i imperativ programmering (D0009E Introduktion till programmering) och objektorienterad programmering och design (D0010E Objektorienterad programmering och design) samt Mikrodatorns uppbyggnad, assemblerprogrammering och avbrottshantering (D0013E Mikrodatorteknik).