Sök i programutbudet

Använd sökfunktionen för att leta efter kurser och program i Chalmers utbildningsutbud. Den programplan och utbildningsplan som avser dina studier är i allmänhet från det läsår du började dina studier.

​​​​​​​​​​​​​

Kursplan för

Läsår
EDA222 - Realtidssystem
 
Kursplanen fastställd 2015-02-11 av programansvarig (eller motsvarande)
Ägare: MPCSN
7,5 Poäng
Betygskala: TH - Fem, Fyra, Tre, Underkänt
Utbildningsnivå: Avancerad nivå
Huvudområde: Datateknik, Elektroteknik, Informationsteknik
Institution: 37 - DATA- OCH INFORMATIONSTEKNIK


Undervisningsspråk: Engelska
Sökbar för utbytesstudenter
Blockschema: B
Max antal deltagare: 90

Modul   Poängfördelning   Tentamensdatum
Lp1 Lp2 Lp3 Lp4 Sommarkurs Ej Lp
0106 Tentamen 4,5 hp Betygskala: TH   4,5 hp   14 Mar 2016 fm M,  08 Apr 2016 em M,  22 Aug 2016 em M
0206 Laboration 3,0 hp Betygskala: UG   3,0 hp    

I program

MPALG DATAVETENSKAP - ALGORITMER, PROGRAMSPRÅK OCH LOGIK, MASTERPROGRAM, Årskurs 1 (valbar)
MPALG DATAVETENSKAP - ALGORITMER, PROGRAMSPRÅK OCH LOGIK, MASTERPROGRAM, Årskurs 2 (valbar)
MPSOF SOFTWARE ENGINEERING - UTVECKLING OCH IMPLEMENTERING AV MJUKVARA, MASTERPROGRAM, Årskurs 2 (valbar)
MPEES INBYGGDA ELEKTRONIKSYSTEM, MASTERPROGRAM, Årskurs 1 (obligatoriskt valbar)
MPCSN DATORER, NÄTVERK OCH SYSTEM, MASTERPROGRAM, Årskurs 1 (obligatoriskt valbar)
TKITE INFORMATIONSTEKNIK, CIVILINGENJÖR, Årskurs 3 (valbar)
TKDAT DATATEKNIK, CIVILINGENJÖR, Årskurs 3 (valbar)

Examinator:

Bitr professor  Jan Jonsson


Ersätter

EDA221   Realtidssystem D


  Gå till kurshemsida

Behörighet:


För kurser på avancerad nivå gäller samma grundläggande och särskilda behörighetskrav som till det kursägande programmet. (När kursen är på avancerad nivå men ägs av ett grundnivåprogram gäller dock tillträdeskrav för avancerad nivå.)
Undantag från tillträdeskraven: Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

Förberedande kurser i parallellprogrammering och operativsystem.

Syfte

Ett inbyggt system är ett datorsystem som är konstruerat för att utföra en eller ett fåtal specifika funktioner. Det är inbyggt i den mening att det är en del av en komplett enhet, ofta omfattande elektrisk hårdvara och mekaniska delar. Av säkerhets- och användbarhetsskäl har vissa inbyggda system strikta krav på icke-funktionella beteenden såsom fördröjning och periodicitet hos datorberäkningarna. Sådana datorsystem kallas realtidssystem.
Exempel på realtidssystem är styrsystem för bilar, flygplan och rymdfarkoster, samt datorspel och multimediatillämpningar. Denna kurs syftar till att ge grundläggande kunskaper om metoder för konstruktion och analys av realtidssystem.

Lärandemål (efter fullgjord kurs ska studenten kunna)

Efter kursen skall studenten kunna:
  • Formulera krav för inbyggda datorsystem med strikta önskemål på fördröjning och periodicitet hos datorberäkningarna.
  • Reflektera och argumentera i skrift över valet av systemimplemering vis-á-vis etiska aspekter på dataintegritet.
  • Kategorisera och beskriva de olika lagren i en systemarkitektur för inbyggda realtidssystem.
  • Konstruera parallellt exekverande processer (programvarumoduler) för realtidstillämpningar med gränssnitt mot hårdvaruenheter (sensorer/ställdon).
  • Beskriva de principer och mekanismer som används för att konstruera run-time system och kommunikationsnätverk för realtidstillämpningar.
  • Tillämpa de grundläggande analysmetoder som används för att verifiera den tidsmässiga korrektheten hos en uppsättning processer.

Innehåll

På grund av de extremt höga kostnader som följer av en sen upptäckt av problem i inbyggda system är det viktigt att god designmetodik används under utvecklingen av mjuk- och hårdvaran. En sådan metod är att använda en systemarkitektur som tillhandahåller bra abstraktioner av mjukvarukomponenter och som understödjer enkel sammankoppling av sådana komponenter. Kursen ger en översikt av några systemarkitekturer som används vid design av inbyggda system, t ex EAST-ADL, AUTOSAR och AADL. Filosofin bakom systemarkitekturer dikterar att mjukvaran i ett inbyggt system organiseras i multipla parallellt exekverande processer, där varje process (eller grupp av processer) implementerar en specifik funktionalitet i systemet. Uppdelningen i processer gör det möjligt att på ett naturligt sätt bryta ner ett komplext system i mindre delar som är enkla att förstå, implementera och underhålla. I kursen används programspråket C, utökat med ett mjukvarubibliotek som tillhandahåller stöd för programmering av parallella processer med tidskrav. Ett viktigt syfte med kursen är att demonstrera hur det utökade programspråket C används för att realisera kommunikation och synkronisering mellan processer, resurshantering och ömsesidig uteslutning. Eftersom andra programspråk använder monitorer och semaforer för att realisera dessa funktioner, innehåller kursen också en genomgång av sådana tekniker. Dessutom demonstreras det i kursen hur man använder lågnivåprogrammering i C för att realisera avbrottsstyrd interaktion med hårdvaruenheter. För att demonstrera de generella principerna bakom programmering av realtidssystem ger kursen också exempel på hur dessa principer realiseras i andra programspråk, som Ada och Java. För att möjliggöra exekvering av ett program som innehåller parallella processer används ett runtime-system (realtidskärna) som fördelar den totala tillgängliga beräkningskapaciteten hos systemets mikroprocessor(er) mellan processerna. Kursen beskriver hur ett enkelt runtime-system är organiserat. Exekveringsordningen mellan processerna bestämmer runtime-systemet med hjälp av en schemaläggningsalgoritm. Kursen presenterar tekniker baserat på såväl cykliska tidtabeller som statiska eller dynamiska processprioriteter. Dessutom presenteras protokoll för hantering av delade hård- och mjukvaruresurser. Eftersom många av dagens realtidstillämpningar är distribuerade över multipla datornoder innehåller kursen också en introduktion till topologier och mediumaccesstekniker för några vanligt använda kommunikationsnätverk. I realtidssystem, där processer har strikta tidskrav, är det nödvändigt att göra a priori analys av systemets schemaläggningsbarhet. Kursen presenterar tre olika analysmetoder för system som schemalägger processer med statiska eller dynamiska prioriteter: utnyttjandegradsbaserad analys, svarstidsanalys och beräkningsbehovsanalys. I samband med detta ges också en insikt i hur det maximala resursbehovet (värsta-fallets exekveringstid) för en process beräknas.

Organisation

Kursen utgörs av en föreläsningsserie samt ett antal salsövningar där programmeringmetoder och teorier från föreläsningarna praktiseras. Kursen examineras medelst en skriftlig tentamen. Dessutom ingår en obligatorisk laborationsuppgift som syftar till att eleverna skall ta fram programvara för en inbyggd realtidstillämpning som exekveras på ett hårdvarusystem bestående av multipla datornoder som kommunicerar via ett bussnätverk. Uppgiften omfattar, förutom programmering av samverkande parallella processer, även maskinnära programmering av hårdvaruenheter som realtidsklockor och nätverkskontrollers.

Litteratur

Föreläsningsanteckningar. Utvalda forskningspublikationer från tidskrifter och konferenser. Exempelsamling.

Examination

Skriftlig tentamen och godkänd laborationsuppgift.


Sidansvarig Publicerad: on 24 jan 2018.