Vad händer egentligen före en krasch? Svarta lådor och tidsmaskiner sparar pengar för företag



Relevanta dokument
Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Pressrelease Artes Industriambassadör Mer realistiska skuggor i datorspel och virtual reality-applikationer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Henrik Asp. Allt du behöver veta för att KÖPA DATOR

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Design vid utveckling av inbyggda system

Programmering i C++ Kompilering från kommandoraden

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Digitalt lärande och programmering i klassrummet

Objektorienterad Programkonstruktion. Föreläsning jan 2017

Design av inbyggda system

Kvalitetssäkring av nätverk och iptelefoni för operatörer och tjänsteleverantörer

CAD. Ämnets syfte. Kurser i ämnet

Design av inbyggda system

Värre än så här kan det inte bli! Nytt analysverktyg hjälper datorsystemkonstruktören att lägga ribban

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Introduktion till programmering, hösten 2011

Metoder och verktyg för funktionssäkerhet

SKOLFS. beslutade den -- maj 2015.

Exakt produktivitet börjar här Pro-moduler och mängddosering.

Viktig produktsäkerhetsinformation

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Program & programmering

Tentamen i Realtidsprogrammering

Föreläsning 2. Operativsystem och programmering

Handbok Fjärranslutning till skrivbord. Brad Hards Urs Wolfer Översättare: Stefan Asserhäll

Optimering av olika slag används inom så vitt skilda områden som produktionsplanering,

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Publicera material i Blackboard

CAD. Ämnets syfte. Kurser i ämnet

Projekt uppgift åk: 9 vt 2012

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Frågor och svar om ArcGIS Pro Licensiering

Kunskapsprojektering

Mikael Hedelind. Mikael Hedelind, ABB Corporate Research

M7005 och IBR Användarhandbok

Introduktion till programmering med hjälp av Lego Mindstorm

Föreläsning 5 5DV086 - Programspråk

SELLOUT. Version 2.5. eyescream information ab

LabelLogic. Bruksanvisning. Innehåll. Label Choices. Data Library. Print Centre. Design Centre

Laboration i datateknik

Denna bok uppfyller riktlinjerna i Lgr 11, kursplan i teknik i grundskolan. Den är avsedd för årskurserna 7 till och med 9.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Övning: hitta buggarna

Programmeringspalett. Pr o gr a mvar a

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD

Design av inbyggda system

Människan och självkörande fordon. Mikael Ljung Aust, Volvo Cars

Kommunala Mediacentralen våren Lathund. för beställning av läromedel. via Svenska Läromedel på Internet (SLI) Läromedel Böcker

LEKTION 1: VAD GÖR EN INGENJÖR?

Bruksanvisning Bläckfisken USB

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Tentamen i Robotteknik MPR211, 12 mars 1999

SKOLFS. beslutade den maj 2015.

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Vop handledning. Användarhandledning till Vop applikationen. UPPGJORD: Mattias Gyllsdorff GODKÄND:Mattias Gyllsdorff REV: A DATUM:

El, Automation & Process

web: fax: tel: kontor , Toby Edmundsson mobil: , Jan

Digitalt lärande och programmering i klassrummet

Produktbeskrivning, SmartAss / Procydo Guider

Biopetrolia integrerar utbildning, forskning och innovation

Sekreterare och Plussekreterare Version SP2 via PMO

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

DDR PC SOFTWARE 2 RELEASENOTES VERSION 2.5. Swerob Service AB Global Robot Parts AB

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

DATORER OCH PROGRAM. Datorn är en symbolmaskin

Faltningsreverb i realtidsimplementering

POPULÄRVERSION AV SLUTRAPPORT Främja kvinnors företagande

IT-körkort för språklärare. Modul 3: Ljud, del 1

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

Introduktion till hårdvara, mjukvara och operativsystem

Daniel Akenine, Teknikchef, Microsoft Sverige

Experimentell verifiering av feldetektering och feltolerans

Säkerhetskopiering och återställning Användarhandbok

Uppdrag: Stärk Sveriges konkurrenskraft

Pass 2: Datahantering och datahanteringsplaner

Illustrerad vetenskap. ett temaarbete i Hårkdalen F-5 v

Operativsystem. Hierarkin för hårdvara läses nerifrån

Programmeringsteknik I

Scanner Detektor lärarhandledning Mojäng

Röst och Videobrev Skicka röstbrev och videobrev över Internet

Hi-O. Intelligent teknologi för dörrmiljöer. ASSA ABLOY, the global leader in door opening solutions.

Om NXTprogrammering. Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT?

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

Kodi Lathund UPPGIFT 22 TOBIAS GUSTAFSSON. TOBIAS GUSTAFSSON Tärna folkhögskola

Programmering, dans och loopar

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

EMIT TIDTAGNINGSSYSTEM EN KORT INTRODUKTION

Bisnode LÖSNINGAR OCH INSIKTER FÖR SMARTA BESLUT

Transkript:

PRESSRELEASE 2003-02-07 Vad händer egentligen före en krasch? Res bakåt i tiden och se hur och varför programmet uppförde sig fel! Svarta lådor och tidsmaskiner sparar pengar för företag Svarta lådor och tidsmaskiner från företaget Zealcore Embedded Solutions skall installeras i ABBs alla robotar. En omfattande och mycket lyckad fallstudie har genomförts och en utvärdering av tidsmaskinteknologin i ABB:s riktiga robotstyrsystem är klar. Vi ser en spännande framtid an säger Zealcore:s VD, Dr. Henrik Thane och hoppas på ytterligare framgångar framöver. D r. Henrik Thane beskriver tekniska detaljer kring uppfinningen Zealcore Embedded Solutions AB är ett spin-off företag från en forskargrupp vid Mälardalen Real-Time Research Centre. Företaget kommersialiserar en uppfinning, en avancerad realtidsdebugger för felsökning av programvara i inbyggda realtidssystem. Uppfinningen underlättar diagnos av timingproblem och haverier som visat sig svåra att upprepa. Uppfinningen visar hur och varför en tillämpning betedde sig som den gjorde. Företagets VD, Dr. Henrik Thane: Forskningsprogrammet ARTES, som finansieras av SSF (Stiftelsen för Strategisk Forskning), har med sitt nätverk och finansiering möjliggjort de forskningsresultat som ligger till grund för uppfinningen, i form av bl.a. min doktorsavhandling, men även i form av finansiering av en doktorand som deltagit i utvecklingen av tidsmaskinteknologin.

Tidsmaskiner och svarta lådor för inbyggda system Svarta lådor och virtuella tidsmaskiner gör det möjligt att korrekt återupprepa exekveringen av programvara i inbyggda realtidssystem efter att systemet kraschat. Det är möjligt att hoppa framåt och bakåt i tiden medan man gör felsökning av systemet offline. Resor i tiden Koncepten tidsmaskiner och resor i tiden har fått människors fantasi att flyga fritt i århundraden. Sedan H. G. Wells publicerade The Time Machine år 1895 har hundratals böcker och filmer följt. Till och med har forskning i teoretisk fysik om just detta ämne tagits på fullt allvar. Man har funderat på så ovanliga idéer som att använda svarta hål för resor i tiden (Kip Thorne vid CalTech) eller konsekvenser av Einsteins relativitetsteori men man har aldrig kunnat bevisa att resor i tiden fungerar vare sig i teori eller praktik. Man har spekulerat i att naturlagarna kanske rent av omöjliggör resor i tiden. Trots detta, när det gäller tillverkade föremål som datorer och datorprogram så är det möjligt att konstruera tidsmaskiner som låter oss göra resor i tiden för ett specifikt ändamål: felsökning (debugging). En produktionslinje av robotar med svarta lådor. Genom fjärråtkomst av innehållet i de svarta lådorna kan systemet tillförlitligt felsökas i efterhand med hjälp av tidsmaskiner. Företagen sparar pengar Kostnaden för verifiering och felsökning av inbyggd programvara överstiger vanligen hälften av projektets totala utvecklingsbudget. Felsökning av programvara i inbyggda system är komplicerat och för realtidsprogramvara med multi-tasking (flera parallellt exekverande program) är det ytterligt komplicerat. Inbyggda system har väldigt få gränssnitt för diagnostiska observationer just på grund av att de är inbyggda. Förutom låg observerbarhet så kan även själva observationen av ett inbyggt realtidssystem ändra systemets beteende, speciellt om observationen genomförs genom användning av någon annan programvara än tillämpningskoden och därmed orsakar en probe effect (mätsonds påverkan). Ett annat stort problem hänger ihop med samtidigheten i de parallella realtidsprogram som exekveras; det är mycket svårt att korrekt återupprepa exekveringar och observationer.

Forskningens frammarsch I arbetet med dessa problem har vår forskning vid Mälardalen Real-Time Research Centre (MRTC) lett till spännande problemlösningar baserade på svarta lådor (liknande de som finns i flygplan) och tidsmaskiner. Genom att spela in betydande händelser såsom processbyten (exekveringstransfer från ett program till ett annat) och avbrott när de inträffar samt data från externa processer och interntillstånd, kan vi korrekt återupprepa körningen av den inbyggda programvaran i efterhand, på det sätt som inspelningen dikterar. Från en användares synvinkel beter sig återexekveringen av det multi-taskande realtidssystemet precis som ett vanligt sekventiellt program. Vi kan stega fram i exekveringen, lägga in godtyckligt antal brytpunkter och inspektera data utan att introducera någon probe-effect. Vi kan även hoppa framåt och bakåt i tiden med vår debugger som vi därför kallar tidsmaskinen (The Time Machine). Eftersom vi har eliminerat beroendet av realtid och ersatt tids- och funktionssammanhanget med själva inspelningen, så kan vi nu spela upp systemets historik om och om igen. Tidslinan i tidsmaskinen illustrerar inspelat kontrollflöde för 6 processer, vars prioriteter återfinns på y-axeln. Om man väljer ut en tidpunkt (en viss körning av en process), upprepas körningen av systemet från det senaste viloläget (representeras av de röda fälten för processen med lägsta prioritet) fram till den valda tidpunkten, med möjlighet att hoppa bakåt eller framåt i tiden. Forskningsresultaten nu i ABB:s industrirobotar Vi har tillämpat forskningsgruppens resultat på ett flertal system, och den senaste och mest komplicerade tillämpningen är styrsystemet i industrirobotar från en av världens största robottillverkare ABB. Deras system består av flera datorstyrsystem, signalbehandlingssystem samt in- och utmatningsenheter. Vi introducerade tidsmaskin teknologin i robotens programvara som omfattar ca 2,5 miljoner rader C-kod och som körs på realtidsoperativsystemet VxWorks. Styrsystemet arbetar under hårda realtidskrav, med ca 70 processer (varav den mest frekventa körs varje 4 ms) och flera olika typer av avbrott. Vi instrumenterade utan större ingrepp alla systemanrop som kunde påverka systemets kontrollflöde genom att använda ett redan existerande abstraktionslager i operativsystemet. Den enda manuella instrumentering som behövde införas i källkoden var anrop till övervakare av dataflöde efter varje blockerande systemanrop, för att kunna spela in meddelanden och tillståndsvariabler (representerade av namngivna lokala och globala variabler). Det är värt att notera att endast starttillstånden behövde spelas in eftersom exekveringen ändå upprepas i efterhand. Totalt sett orsakade vår svarta låda endast en extra last på mindre än 2 % av processorutnyttjandet och en bandbredd/lagringsutnyttjande på ca 2MB/s. Några hundratal KB av data räckte dock för att spela in de senaste hundratalet händelser före en större krasch, och som sedan kunde spelas upp i tidsmaskinen.

En kommersiell IDE (Interactive Development Environment) med en instruktionssimulator debugger, i vilken vi har integrerat vår tidsmaskinsteknik (fönstret nere till vänster). Tidsföljden illustrerar inspelat kontrollflöde för 6 processer. Om man väljer ut en tidpunkt upprepas exekveringen av systemet från det senaste viloläget (representeras av de röda fälten) fram till den valda tidpunkten (med möjlighet att hoppa bakåt eller framåt i tiden). Debugger-fönstret visar det aktuella tillståndet. Från denna punkt är det sedan möjligt att stega framåt i programmet, inspektera variabler och sätta nya brytpunkter. Ytterligare information kan ges av: Dr. Henrik Thane, tfn: 070-776 89 97 E-post: henrik.thane@zealcore.com URL: http://www.zealcore.com Länkar: http://www.mrtc.mdh.se/ eller http://www.real-timemachine.com/ Ingemar Reyier, ABB Robotics, E-post: ingemar.reyier@se.abb.com

ZealCore, här representerat av Henrik Thane (till höger) och Daniel Sundmark, är ett groddföretag med rötter i ARTES och genomförde en presentation av sina produkter vid Embedded Computing & Real-Time Computer Show i Stockholm, 17/9 2001.