Minneshantering från Lund nu i Suns realtidsjava
Vid konferensen JavaOne i maj lanserades Sun Real-Time Java System version 2.0 av Sun Micro Systems inför 20 000 deltagare. En viktig komponent i Suns realtidsjava är den minneshantering i form av s k garbage collection (GC) som utvecklats vid Lunds Tekniska Högskola (LTH). Lanseringen understöddes av en demonstration från scenen där ABBs parallellrobot FlexPicker – en av världens snabbaste – styrdes av javaprogram som även det utvecklats vid LTH i Lund.
– En av Javas starka sidor i det här sammanhanget är att det, till skillnad från äldre programspråk, som C och C++, är mycket säkert och stabilt att programmera i. Olika program som är skrivna i Java kan t ex inte förstöra varandras minne – något som mycket väl kan hända i andra programspråk om man inte är en ofelbar programmerare, säger Klas Nilsson, en av huvudpersonerna inom realtidsjava och robotik vid institutionen för datavetenskap, LTH. Hittills har säkerheten i Java haft negativa konsekvenser för realtidssystem, det vill säga system som är beroende av snabba, men framförallt förutsägbara, reaktionstider. I traditionell Java har man inte kunnat garantera att en signal från omgivningen kan påverka styrningen av t ex en industrirobot inom de mikrosekunder man har på sig.
Principerna för minneshanteringen presenterades första gången 1998 i Roger Henrikssons doktorsavhandling: Scheduling Garbage Collection in Embedded Systems (PDF) och har senare fördjupast i bl a Sven G Robertz avhandling: Automatic Memory Management for flexible Real-time Systems (2006) (PDF).
– Att Sun väljer att samarbeta med oss i Lund innebär ett stort erkännande av vår forskning. Den lyckade demonstrationen ger dessutom ingångar till flera nya spännande forskningsprojekt, kommenterar Klas Nilsson. Bland annat hoppas vi få en möjlighet att vidareutveckla våra lösningar för Java-baserade styrsystem som även kan kompileras (exempelvis via generad C-kod) till maskinkod för små inbyggda processorer.
Snabb kommunikation
Ytterligare en viktig komponent i den Java-baserade robotstyrningen är kommunikationen mellan programvaran och maskinvaran. Genom att använda protokollet EtherCAT behövs ingen speciell maskinvara för styrdatorn; anslutning sker via en vanlig ethernetkontakt och inga extra drivrutiner behövs. Istället har realtidsexperterna i Lund implementerat hela EtherCAT-protokollet direkt i Java – något som i sig är en unik ansats.
Mer information:
En översiktlig beskrivning av hur minneshanteringen med garbage collection för realtidssystem från Lund fungerar når du på: http://www.lucas.lth.se/rtgc/
Information om SUNs realtidsjava når du på http://www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.4.xml
Filmsekvenser från lanseringen på Java One finns på: http://java.sun.com/javaone/sf/sessions/general/index.jsp#GS2
Välj: Toy Show part 4, 8 minuter in i klippet
Läs mer om EtherCAT-protokollet i ett pressmeddelande från EtherCAT-konsortiet ETG i Tyskland: http://www.ethercat.org/pdf/english/etg_032007.pdf
Kontaktinformation
Docent Klas Nilsson, klas@cs.lth.se, 046-222 43 04
Jonas Wisbrant, jonasw@cs.lth.se 0703-25 33 66