Realtidssystem HT03 Vad är realtidssystem? Föreläsare: Wang Yi Rum: 1235, yi@it.uu.se, Tel: 471 3110 Assistent: Tobias Amnell Rum: 1216, tobiasa@it.uu.se, Tel: 4717122 Webbsida: www.it.uu.se/edu/course/homepage/realtid/h03 Tidskritiska datorsystem Resultat måste levereras vid rätt tid Förekommer i: reglersystem, multimedia, flygledningsystem m.m. Snabbhet inte nödvändigtvis viktigast Förutsägbarhet ofta viktigare 1 2 Inbyggda system Att programmera, Datorer som inte ser ut som datorer Mobiltelefoner, bilar, medicinsk utrustning m.m. Begränsad: beräkningskraft minne(ram och disk) batteri kostnad per enhet inbyggda system Hårdvarunära ev. assembler Utveckling på annan maskin Emulering av verklig hårdvara realtidssystem Debugkod påverkar tidsbeteendet Svårt att debugga i realtid 3 4 Realtidssystem kräver analys Tasks (Uppgifter) Ofta säkerhetskritiska tillämpningar Testkörning räcker sällan för att ta reda på tidsbeteendet Försöker istället på förhand analysera om systemet fyller specifikationerna För design och analys av realtidssystem används vanligen tasks En task är en upppgift som programmet skall utföra I praktiken motsvaras en task ofta av en tråd eller process En task har parametrar tex: exekveringstid, prioritet, deadline... 5 6
Schemaläggning Schemaläggningsanalys Vill undersöka om ett realtidssystem kan klara sina uppgifter i tid Scheman visas ofta i Gantt-diagram: Task 2 Task 2 Task 3 Task 1 Task 1 Task 1 Tid Vill avgöra om en uppsättning tasks med givna parametarar klarar sina deadlines Olika typer: Rate monotone Earliest deadline first med flera Ibland tillåts en task avbryta en annan, ibland inte 7 8 Körtidsanalys Resursdelningsprotokoll Förutsättning för schemaläggning Körtid beror bland annat på: hårdvara (cachar, pipelines i CPU, etc) indata ( storlek och komplexitet ) programspråk/körmiljö ( garbage collection et.c.) Programkonstruktioner ( loopgränser ) Flera task kan dela en resurs (t.ex. en kommunikationsport) Tasken måste exekvera i kritisk sektion när resursen används Skyddas med exempelvis semaforer Gör schemaläggning mer komplex risk för: deadlock prioritetsinversion Mars Pathfinder 9 10 Utvecklingsverktyg Analys och verifiering Modeller av program som beskrivningar av systemet T.ex. Unified modelling language (UML): generellt för mjukvara, tillägg för realtid, många verktyg med simulering och kodgenerering Matlab/Simulink för modellering av kontrollsystem Olika typer för olika aspekter: Formella metoder, t.ex. model checking, för säkerhet och logisk korrekthet (svårt) Schemaläggningsanalys, för realtids egenskaper (utvecklad teori) Körtidsanalys, förutsättning för schemaläggning (svårt) 11 12
Laborationer Filmtajm LEGO robot miniprojekt C-programmering av inbyggt system Modellering och analys med Times laborationer Verifiering och schemläggningsanalys Schemaläggningsanalys hemuppgift och labbtillfälle Övningar i schemaläggningsteori 13 14 LEGO Mindstorms brickos/legos Operativsystem LEGO Mindstorms RCX Programerbar mikrokontroller (Hitachi H8/3932) Sensorer 2 tryck 1 ljus Ställdon 2 motorer Batteridriven IR-sändtagare Öppen källkods OS för RCX-kloss Utveckla program i C/C++ på Windows eller Linux Ladda ned till kloss med IR OS använder 10-15 kb, resten för program Ej hård real-time, dock tådar, semaforer m.m. 15 16 Uppgift Uppgift, forts Del 1, Ljusmätare Gör en geigermätare för ljus Del 2, Statiskt cykliskt schema Bygg ett fordon. Använd en enda tråd som anropar procedurer motsvarande tasks i systemet. Procedurerna skall anropas vid regelbundna tidsinterval. Använd dess task: motorkontroll, kör_framåt, byt_riktning och hantera_hinder Del 3, Övervakare Lägg till en task till det statisk schemat som kontrollerar att alla procedurer håller sig inom tidsbudgeten. Del 4, Multitrådning - Gör om systemet så att tasken körs i samtidiga trådar som schemaläggs av operativsystemet. Lägg till task: linjehantering 17 18
Uppgift, forts Gruppindelning Del 5, Robottävling - Kortast tid för tre vändor Start/vänd Grupper om två (2) personer Varje grupp lånar en LEGO-låda Introduktion 10 sep 13-17 i 1312/1313 Instruktioner på webben Cygwin/legOS-miljö i 1312 och 1313 Tävlingsbana kommer att finnas i 1312 Tävling (redovisning): 16 oktober Uppsamling veckan efter tentan 19 20 Times Times editor Program för modellering, simulering och verifiering av realtidssystem. Systemet beskrivs med tidsautomater med tasks Verifieringsmotor kan kontrollera om ett schema är möjligt och andra egenskaper Utvecklat av forskare vid insutitionen 21 22 Times simulator Uppgift i Times Grupper om två(2) personer Introduktion 22 sep 13-15 i 1211 Lab 23 sep 15-17 i 1515 Lab 25 sep 15-17 i 1515 Inlämnas senast 10 oktober 23 24
Schemaläggning Hemuppgift med FpsCalc Övningar i schemaläggningsanalys för taskar med fixa prioriteter Löses enskilt Genomgång/lab 7 oktober Inlämnas senast 17 oktober 25