Programming Language Primitives and Tools for Integrated Real-Time Systems Development
Tid: Ti 2021-06-08 kl 15.00
Ämnesområde: Informations- och kommunikationsteknik
Respondent: Saranya Natarajan , Programvaruteknik och datorsystem, SCS
Opponent: Associate Professor Haibo Zeng, Virginia Tech
Handledare: Associate Professor David Broman, Programvaruteknik och datorsystem, SCS
Abstract
Korrektheten för realtidssystem beror på både dess logiska och tidsmässiga kor- rekthet. Normalt utvecklas realtidssystem i flera steg. I det första steget delas applikationen in i ett antal återkommande uppgifter och implementeras med hjälp av ett programmeringsspråk. I det andra steget uppskattas den maximala exekveringstiden (WCET) för varje uppgift för en specifik hårdvaruplattform. Slutligen utförs schemaläggningsanalys för att avgöra om tidskraven uppfylls på den an- givna hårdvaran. Det finns flera utmaningar i vart och ett av dessa komplexa steg, samt i hur de integreras på ett systematiskt sätt. Många småskaliga inbyggda system implementeras med programmeringsspråket C. Programmeringsspråket C har dock inga direkta primitiver för att programmera systemets tidsmässiga krav. På ett liknande sätt kan osäkerheterna i de uppmätta WCET-värdena och frigöringsjitter göra resultatet av schemaläggningsanalysen opålitligt. Vidare gör de praktiska skillnaderna i verktygen som används i vart och ett av dessa steg den integrerade utvecklingen av realtidssystem utmanande.
I denna avhandling föreslår vi en uppsättning programmeringsprimitiver och verktyg för en integrerad utveckling av realtidssystem. Mer specifikt föreslår vi ett litet antal språkprimitiver för att programmera tids-, samtidighets- och schemaläggningskrav för realtidssystem. Vi introducerar Timed C, ett programmeringsspråk för realtidssystem, som utvidgar programmeringsspråket C med de föreslagna språkprimitiverna. Vi föreslår en sömlös och pragmatisk end-to-end-verktygskedja som integrerar programmeringsspråket Timed C, en source-to-source-kompilator, tidsanalys, schemaläggningsanalys och en ny känslighetsanalys. Det nya tillvägagångssättet för känslighetsanalys bestämmer marginalerna för den maximala exekveringstiden för svagt hårda realtidssystem. Vi formaliserar en delmängd av semantiken för Timed C och använder denna i designen av ett nytt testverktyg för tidsmässiga egenskaper med tillhörande metodik. Slutligen utvärderar vi det föreslagna programmeringsspråket och verktygen med hjälp av experiment och fallstudier.