RTP Real-Time Programmatuur Programmatuur voor real-time controle Yolande Berbers Departement Computerwetenschappen 200A 03.20 [email protected] Yolande Berbers Programmatuur voor real-time controle slide 1 RTP 2 groepen cursus voor 2 groepen gecombineerd vak, samen met Processoren voor real-time systemen (1.5 su.) Processoren en programmatuur voor real-time systemen: geïntegreerd practicum (3 su.) 2e Burg. W.E.Ir., Mechanica: Mechatronica en productontwikkeling (gewoon en 2ji.i.) voorkennis: Methodiek van de Informatica, Programmatuur: Ontwerp en Ontwikkeling alleenstaand keuzevak 3e burg. elektr. ir.,3e burg. w.e.ir., elektrotechniek, keuze voorkennis: Methodiek van de Informatica, Informatie- en programmastructuren Yolande Berbers Programmatuur voor real-time controle slide 2 RTP 2 groepen verschillen tussen 2 groepen gecombineerd vak er zijn practicasessies en een ander onderdeel alternatief examen (reeds uitgelegd door H. Bruyninckx) alleenstaand keuzevak dit vak voorziet 3 oefenzittingen deze moeten nog gepland worden voorkeur weken 10, 11, 12 klassiek examen (zie verder) Yolande Berbers Programmatuur voor real-time controle slide 3 cursusnota’s RTP boek: Real-Time Systems and Programming Languages Alan Burns, Andy Wellings third edition, 2001 Addison-Wesley slides: Deze zijn te vinden op het web, via mijn home-pagina: http://www.cs.kuleuven.ac.be/~yolande/ huidige versie van slides (op het net) is ± die van vorig jaar bij lesvoorbereidingen pas ik die heel regelmatig aan Yolande Berbers Programmatuur voor real-time controle slide 4 RTP praktische organisatie les dinsdag 8.25-10.25 uur en woensdag 10.35-12.35 uur 8u25 is een erg vroeg uur ! uurrooster week 8 (volgende week) ben ik in het buitenland les loopt dus door tot week 12 ik geef zelf de oefenzittingen Yolande Berbers Programmatuur voor real-time controle slide 5 RTP doelstellingen van de cursus inzicht verwerven in problematiek v. real-time systemen: basisvereisten van real-time systemen moeilijkheden bij de realisering studie van mogelijke aanpakken aangewende software concepten bv samenwerkende processen, atomische acties specifieke mogelijkheden geboden door programmeertalen bv exceptions in Ada specifieke mogelijkheden geboden op systeemniveau bv tijdsbehandeling, scheduling het is niet de bedoeling om van jullie Ada-, C- of Java-programmeurs te maken !! Yolande Berbers Programmatuur voor real-time controle slide 6 RTP waar ik belang aan hecht inzicht hebben begrijpen van de concepten begrijpen waarvoor de concepten dienen (dus de problematiek goed begrijpen) kunnen toepassen van concepten oplossingen kunnen vergelijken Yolande Berbers Programmatuur voor real-time controle slide 7 RTP klassiek examen (alleenstaand keuzevak) deel 1: open boek ex (= boek + kopieën transparanten) mondeling met schriftelijke voorbereiding de tijd is beperkt: 2 uur vraag 1 peilt naar inzicht in de cursus overzichtsvraag combinatie van 2 of meer delen uit de cursus vraag 2 oefening deel 2: gesloten boek examen peilt naar terminologie-kennis 6 kleine vragen waarvan 5 moeten beantwoord worden Yolande Berbers Programmatuur voor real-time controle slide 8 RTP goed om te weten voor het examen ‘vergelijk x en y’ niet: bespreek achter elkaar eerst x en dan y, wel: bespreek x en y zodat ze vergelijkbaar worden (dus volgens hetzelfde stramien) en vergelijk ze dan precieze syntax van een programmeertaal is niet van belang voor het examen, wel de semantiek (=wat is het effect van bepaalde constructies) het examen is geen défilé: jeans & t-shirts zijn welkom ! Yolande Berbers Programmatuur voor real-time controle slide 9 RTP alternatief examen (geïntegreerd pract.) vragen bij de gekozen oplossingen peilen natuurlijk ook naar inzicht in de cursus peilen naar waarom bepaalde keuzes gemaakt werden vragen welke alternatieven overwogen werden kijken of men begrijpt op welk niveau de verschillende problemen en oplossingen zich situeren peilen onrechtstreeks naar terminologie kennis Yolande Berbers Programmatuur voor real-time controle slide 10 RTP vereiste voorkennis basiskennis programmeren (Java ) Methodiek van de informatica (MI) en verder OF: Programmatuur, ontwerp en ontwikkeling (POO) OF: Informatie- en programmastructuren (IPS) Yolande Berbers Programmatuur voor real-time controle slide 11 RTP overzicht van de cursus karakteristieken v. real-time en embedded systemen (H1) kort overzicht van Ada, C, en Java (H3 en H4) met extra slides over hun geschiktheid voor real-time/embedded aspect betrouwbaarheid betrouwbaarheid en fouttolerantie (H5) behandeling uitzonderingstoestanden in programmeertalen (H6) aspect parallellisme programmeren van ‘parallelle’ modules (H7) synchronisatie en communicatie met gedeeld geheugen (H8) synchronisatie en communicatie zonder gedeeld geheugen (H9) Yolande Berbers Programmatuur voor real-time controle slide 12 RTP overzicht van de cursus (vervolg) combinatie betrouwbaarheid en parallellisme atomaire acties (H10) het beheren van hulpmiddelen (H11) aspect tijd tijdsbehandeling in systemen (H12) scheduling (H13) gedistribueerde systemen (H14) laag-niveau programmatie (H15) RTOS: real-time besturingssystemen Yolande Berbers Programmatuur voor real-time controle slide 13 RTP relatie cursus - boek ik probeer zoveel mogelijk het boek te volgen maar natuurlijk leg ik eigen accenten het aspect ‘programming languages’ komt in het boek uitgebreider aan bod dan ik nodig acht voor jullie we zullen vooral de voorbeelden van Ada bekijken, ook die van C en Java, maar niets van occam2 normaal geven de slides goed weer wat er gezien werd huidige versie van slides (op het net) is ± die van vorig jaar bij lesvoorbereidingen pas ik die heel regelmatig aan Yolande Berbers Programmatuur voor real-time controle slide 14 RTP Real-Time Programmatuur hoofdstuk 1: inleiding tot real-time en embedded systemen Yolande Berbers Programmatuur voor real-time controle slide 15 RTP overzicht wat is een real-time systeem ? wat is een embedded systeem ? concrete voorbeelden verschillen types van real-time & embedded systemen kenmerken van real-time & embedded systemen economisch belang Yolande Berbers Programmatuur voor real-time controle slide 16 RTP wat is een real-time systeem? een computersysteem dat moet reageren op externe stimuli binnen een eindige en wel bepaalde tijd de correctheid van het systeem niet alleen afhankelijk van het logische resultaat ook van het tijdstip waarop dat resultaat gegeven werd niet op tijd reageren is even erg als foutief antwoorden in het Nederlands ware-tijd-systemen Yolande Berbers Programmatuur voor real-time controle slide 17 RTP wat is een ingebed systeem? ingebed systeem == embedded systeem een product met processor en software software is onlosmakelijk verbonden met het product software wordt niet apart verkocht software biedt vaak belangrijke toegevoegde waarde product dat een welbepaalde functie vervult zeer veel voorbeelden in de huidige consumentenmarkt vaak is ingebed syst. deel van groter industrieel complex computersysteem bewaakt en/of bestuurt externe apparatuur voorbeelden uit boek komen meestal uit deze hoek Yolande Berbers Programmatuur voor real-time controle slide 18 RTP real-time systeem vs ingebed systeem een ingebed systeem reageert op externe stimuli deze reacties moeten vaak in real-time gebeuren ingebedde systemen en real-time systemen veel gelijkaardige karakteristieken in het boek real-time system == embedded system Yolande Berbers Programmatuur voor real-time controle slide 19 voorbeelden van RT & ES RTP hoofdcomponenten van globale infrastructuur al onze energiebronnen hangen af van embedded systemen (olie, gas, nucleaire energie) vliegtuigen vliegen, schepen varen, allemaal gebaseerd op embedded systemen voedsel, drank, zuiver water komen hoofdzakelijk van processen die afhankelijk zijn van embedded systemen de farmaceutische industrie gebruikt embedded systemen om medicijnen te produceren en te creëren embedded systemen zijn vitaal in autoproductie, nationale en internationale defensie, spoorwegen netwerken, medische uitrusting, telecommunicatie, radio en televisie, ... Yolande Berbers Programmatuur voor real-time controle slide 20 RTP soorten real-time systemen harde real-time - systemen: absolute noodzaak om te reageren binnen een deadline bv een vlucht-controle systeem wanneer de deadlines erg klein zijn en de mogelijke gevolgen catastrofaal, zijn dit zeer kritische systemen (bv het besturen van bomraketten) zachte real-time - systemen: deadline is belangrijk, maar het systeem functioneert correct ook als een deadline ‘af en toe’ gemist wordt bv het verzamelen van gegevens bij procescontrole vaak vermindert de waarde van een reactie wanneer deze te laat komt (maar heeft geen catastrofale gevolgen) Yolande Berbers Programmatuur voor real-time controle slide 21 RTP soorten real-time systemen wat gebeurt er wanneer een deadline gemist wordt systeem faalt: hard real-time waarde van resultaat vermindert: soft real-time resultaat heeft geen waarde meer: firm real-time Yolande Berbers Programmatuur voor real-time controle slide 22 RTP soorten real-time systemen een computer systeem kan zowel harde als zachte real-time subsystemen hebben missen van een deadline vaak: kost-functie geassocieerd met missen van een deadline aangeven (in %) hoe vaak een deadline mag gemist worden Yolande Berbers Programmatuur voor real-time controle slide 23 RTP voorbeelden van RT systemen real-time systemen voor proces-controle real-time systemen in een productieomgeving real-time systemen voor communicatie, bevel en controle veralgemening: industrieel ingebed computersystemen Yolande Berbers Programmatuur voor real-time controle slide 24 RTP voorbeelden: proces-controle real-time systeem voor proces-controle eenvoudig voorbeeld: zorgen voor een gelijke stroming in een pijpleiding, door controle van een klep de hoek van de klep moet aangepast worden aan de veranderingen van de inputstroming dit moet gebeuren binnen een bepaalde tijd, of anders zal de apparatuur aan het einde van de pijp overbelast worden Yolande Berbers dit kan best veel rekenwerk vragen Programmatuur voor real-time controle slide 25 example: simple valve control RTP interface input flow reading flow meter processing output valve angle valve time Yolande Berbers Programmatuur voor real-time controle slide 26 RTP voorbeelden: proces-controle proces-controle: algemene kenmerken interactie met uitrusting gebruik van sensoren en actuatoren gebruik van transducers: genereren een elektrisch signaal evenredig met een fysische gemeten waarde gebruik van analoge - digitaal (en digitaal - analoog) convertoren Yolande Berbers Programmatuur voor real-time controle slide 27 RTP general process control operators console process control computer chemicals and materials valve temperature transducer stirrer finished products a process control system Yolande Berbers Programmatuur voor real-time controle slide 28 RTP voorbeelden: productieomgeving real-time systeem in een productieomgeving gebruik van een variatie van mechanische tuigen (werktuigen, robots, lopende banden), werking moet gecoördineerd en gecontroleerd worden vaak een groot aantal losgekoppelde systemen automatisering van allerhande handelingen verlaagt de productiekost verhoogt de productiviteit integratie van het volledige productieproces, van ontwerp van een product tot fabricatie Yolande Berbers Programmatuur voor real-time controle slide 29 RTP general manufacturing operators console production control computer parts machine tools manipulators conveyor belts finished products a production control system Yolande Berbers Programmatuur voor real-time controle slide 30 RTP voorbeelden: comm., bevel en controle real-time systemen voor communicatie, bevel en controle militaire term, veel toepassingen met zelfde karakteristieken voorbeelden: automatische bediening van medische toestellen, luchtverkeer controle, vliegtuigreservaties, bankoperaties per terminal kenmerken: ingewikkelde beslissingsregels verzamelen van informatie grote hoeveelheden vaak geografisch verspreid administratieve procedures Yolande Berbers Programmatuur voor real-time controle slide 31 RTP communicatie, bevel en controle command post command and control computer terminals temperature, pressure, power and so on sensors/actuators a command and control system Yolande Berbers Programmatuur voor real-time controle slide 32 RTP voorbeelden: veralgemening veralgemening: industrieel ingebed computersystemen directe interface met fysische wereld sensoren die op regelmatige tijdstippen informatie geven meestal ook een console operator krijgt uitgebreide informatie (vaak grafisch) operator kan manueel ingrijpen toestandsveranderingen in het systeem worden in een gegevensbank bijgehouden voor analyse en het nemen van beslissingen Yolande Berbers Programmatuur voor real-time controle slide 33 RTP real time clock industrial embedded system algorithms for digital control interface data logging remote monitoring data retrieval and display display devices engineering system database operator’s console Yolande Berbers operator interface Programmatuur voor real-time controle slide 34 RTP vb van ingebedde systemen wasmachine één specifieke taak, beperkte functionaliteit weinig flexibel goedkoop, massaproductie postsorteermachine één specifieke taak, uitgebreide maar overzienbare functionaliteit geen massaproductie communicatiesysteem in wagen zeer complex goedkoop zware real-time vereisten laag vermogen gebruik moet zeer flexibel zijn, open voor nieuwe toepassingen Yolande Berbers Programmatuur voor real-time controle slide 35 RTP vb van ingebedde systemen ADSL switching center in centraal punt 20 tot 50 ADSL lijnen op een ATM netwerk zware real-time vereisten zeer hoge snelheid nodig laag vermogen gebruik MPEG-4 decoder zeer complex zeer hoge snelheid nodig laag vermogen gebruik (bv in draagbare videospelletjes) Yolande Berbers Programmatuur voor real-time controle slide 36 RTP kenmerken van een RTS groot en complex niet gewoon proportioneel met het aantal lijnen code gerelateerd aan de variëteit die in de code voorkomt verandert continu omdat de omgeving continu verandert situaties veranderen noden veranderen nood aan continu onderhoud kan variëren van enkele honderden lijnen assembler of C tot 20 miljoen lijnen Ada-code (geschat voor het ruimtestation ISS) Yolande Berbers Programmatuur voor real-time controle slide 37 RTP kenmerken van een RTS manipulatie van reële getallen veel RT systemen controleren een industriële activiteit bv.: controller gebaseerd op feedback gecontroleerde entiteit heeft een vector van output variabelen, die veranderen in de tijd outputs worden vergeleken met het gewenste signaal verschil wordt gebruikt om de input variabelen bij te sturen controle gebaseerd op mathematisch model van proces Yolande Berbers complex, vaak gebaseerd op differentiaal vergelijkingen Programmatuur voor real-time controle slide 38 RTP kenmerken van een RTS e.g.: controller (eventueel analoog), gebaseerd op feedback r(t) is gewenst signaal u(t) is input vector e(t) is foutenvector y(t) is output signaal r(t) Yolande Berbers e(t) controller (analog) u(t) plant Programmatuur voor real-time controle y(t) slide 39 RTP kenmerken van een RTS realistischere figuur met een computer, discrete waarden (met *), en D/A en A/D convertoren discipline: controle theorie r(t*) controller u(t*) (computer) y(t*) digital to analog converter u(t) sample and hold plant y(t) vereiste: vermogen om reële getallen te manipuleren Yolande Berbers Programmatuur voor real-time controle slide 40 RTP kenmerken van een RTS extreem betrouwbaar en veilig meer en meer vitale functies in de samenleving worden toevertrouwd aan computer systemen slecht functionerende systemen kunnen catastrofaal zijn vaak zijn mensenlevens gemoeid – bv kerncentrales kan ook extreem kostelijk zijn voorbeeld van zeer kostelijke faling: Ariane 5, zie volgende slides Yolande Berbers Programmatuur voor real-time controle slide 41 RTP voorbeeld: ontploffing Ariane 5 eerste lancering van Ariane 5 op 4 juni 1996: na 37 sec. boordcomputer denkt dat raket zwaar uit koers is boordcomputer geeft sterk bijstuurcommando boordcomputer oordeelt dat dit niet voldoende is, en schakelt zelfs de hoofdmotor in raket kantelt, bovendeel scheurt los, zelfvernietigingsdozen doen het geheel ontploffen Yolande Berbers Programmatuur voor real-time controle slide 42 RTP voorbeeld: ontploffing Ariane 5 wat liep er mis het Inertial Reference System (SRI) berekent de houding en de bewegingen van de raket, op basis van bepaalde metingen deze metingen worden doorgegeven aan de boordcomputer, die in functie hiervan stuurbeslissingen neemt vóór de lancering berekent een zekere module in het SRI die houding tov het lanceerplatform na lancering heeft die bepaalde module geen betekenis meer die module werd gestopt ongeveer 40 sec. na lancering voor Ariane 4, om count-down te kunnen “pauzeren” behouden in Ariane 5: verander geen goedwerkende software in die code staat een conversie van een 64-bit floating point getal naar een 16-bit integer Yolande Berbers Programmatuur voor real-time controle slide 43 RTP voorbeeld: ontploffing Ariane 5 wat liep er mis (vervolg) Ariane 5 stijgt anders op van Ariane 4: traject is verschillend na de lancering gebeurde er een conversiefout: het 64-bit floating point getal had een onverwachte grote waarde de toepassing crashte, een 2de computer werd ingeschakeld deze 2de computer bevatte dezelfde software, dus crashte ook door de crash werd een diagnose bit-patroon naar de boordcomputer gestuurd, die dit als gegevens interpreteerde, en besloot dat er drastisch bijgestuurd moest worden, met alle gevolgen van dien gebruikte programmeertaal: Ada Yolande Berbers Programmatuur voor real-time controle slide 44 RTP voorbeeld: ontploffing Ariane 5 hoe had dit kunnen vermeden worden fouten door conversies, evenals andere fouten zoals delingen door 0, kunnen opgevangen worden in specifieke stukken code (zie H6) dit gebeurde niet voor de instructie die crash veroorzaakte de fout had via simulaties kunnen gevonden worden Yolande Berbers maar in de simulaties draaide die module niet na lancering Programmatuur voor real-time controle slide 45 RTP karakteristieken van een RTS verschillende software componenten zijn gelijktijdig actief de apparaten in de omgeving werken gelijktijdig deze gelijktijdigheid wordt het best gerealiseerd door gelijktijdig uitvoerende software componenten meer en meer real-time systemen zijn gedistribueerde systemen dit vraagt ondersteuning van programmeertalen en/of systemen Yolande Berbers Programmatuur voor real-time controle slide 46 RTP karakteristieken van een RTS omgang met ‘tijd’ responstijd is van groot belang deadlines moeten in alle omstandigheden gehaald worden worst-case moet gekend zijn voorspelbaarheid van responstijd is cruciaal real-time systemen worden altijd over-gedimensioneerd taal en systeem moeten toelaten om tijd te specifiëren, deadlines te specifiëren, om te reageren wanneer een deadline niet gehaald zal worden Yolande Berbers Programmatuur voor real-time controle slide 47 RTP karakteristieken van een RTS interacties met hardware interface aangesloten hardware: vaak niet de klassieke randapparaten randapparaten moeten kunnen gestuurd worden, liefst op een abstracte manier vereiste voor efficiënte implementatie en uitvoeringsomgeving de tijdsvereisten kunnen zo streng zijn dat efficiëntie echt belangrijk wordt (vb DSP) Yolande Berbers Programmatuur voor real-time controle slide 48 RTP karakteristieken van een RTS typische karakteristieken voor consumentenmarkt goedkoop beperkt geheugen goedkopere processor time-to-market is extreem laag laag vermogen gebruik indien draagbaar Yolande Berbers Programmatuur voor real-time controle slide 49 RTP ‘ karakteristieken van een RTS: overzicht groot en complex manipuleren reële getallen extreem betrouwbaar en veilig verschillende software componenten zijn gelijktijdig actief omgang met ‘tijd’ interacties met hardware interface vereist efficiënte implementatie en uitvoeringsomgeving Yolande Berbers Programmatuur voor real-time controle slide 50 RTP economisch belang ingebedde systemen: voor elke PC zijn er ongeveer 50 ingebedde systemen PC-markt heeft een plateau bereikt, markt voor ingebedde systemen kan nog enorm groeien belang voor Vlaanderen groot deel van software dat in Vlaanderen gemaakt wordt is voor ingebedde systemen Vlaanderen is derde ‘super-high-tech region’ in Europa (na Rheinland-Phals en Hessen) volgens Eurostat studie belang voor Europa VS hebben groot deel van ‘packaged software’ markt Europa heeft en kan nog groeien in markt ingebedde systemen Yolande Berbers Programmatuur voor real-time controle slide 51 RTP economisch belang belang voor Europa VS hebben groot deel van ‘packaged software’ markt (zie volgende slide) top 10 software verkopers in de wereld: Microsoft Sybase Oracle Adobe systems Computer Ass. Int. Informix Novell American Management Systems SAP AG Sterling Software Europa kan nog kan nog groeien in markt ingebedde systemen Yolande Berbers Programmatuur voor real-time controle slide 52 RTP economisch belang Packaged Software : Production Share versus Customer Share 1993 Production share 100% = $ 100 bn Customer share 1% Rest of World Pacific Region Europe 4% 5% 16% 14% 42% 79% USA 39% Source : Gartner Group 1994 Yolande Berbers Programmatuur voor real-time controle slide 53