Kursplan för Realtidssystem

Kursplan fastställd 2020-02-11 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnReal time systems
  • KurskodEDA223
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPCSN
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Elektroteknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 12118
  • Max antal deltagare56
  • Blockschema
  • Sökbar för utbytesstudenterNej

Poängfördelning

0117 Tentamen 4,5 hp
Betygsskala: TH
4,5 hp
  • 15 Mar 2021 fm J
  • 10 Jun 2021 em J
  • 17 Aug 2021 em L
0217 Laboration 3 hp
Betygsskala: TH
3 hp

    I program

    Examinator

    Gå till kurshemsidan (Öppnas i ny flik)

    Behörighet

    Grundläggande behörighet för avancerad nivå
    Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

    Särskild behörighet

    Engelska 6
    Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

    Kursspecifika förkunskaper

    Kunskaper motsvarande en kurs i maskinorienterad programmering i högnivåspråket C. Kurser i parallellprogrammering och operativsystem rekommenderas.

    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.
    • 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. 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 texter från tidskrifter, konferenser och böcker. Exempelsamling.

    Examination inklusive obligatoriska moment

    En skriftlig tentamen och en laborationsuppgift. Slutbetyg, enligt skalan underkänd (U) eller godkänd (3, 4, 5), ges baserat på betygen på den skriftliga tentamen och laborationsuppgiften.