ebook img

Distributed, Embedded and Real-time Java Systems PDF

389 Pages·2012·5.56 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Distributed, Embedded and Real-time Java Systems

Distributed, Embedded and Real-time Java Systems M. Teresa Higuera-Toledano • Andy J. Wellings Editors Distributed, Embedded and Real-time Java Systems 123 Editors M.TeresaHiguera-Toledano AndyJ.Wellings UniversidadComplutensedeMadrid DepartmentofComputerScience FacultaddeInforma´tica,DACYA UniversityofYork CalledelProfesorGaec´ıa Heslington Santesmas York 28040Madrid UnitedKingdom Spain ISBN978-1-4419-8157-8 e-ISBN978-1-4419-8158-5 DOI10.1007/978-1-4419-8158-5 SpringerNewYorkDordrechtHeidelbergLondon LibraryofCongressControlNumber:2011945437 ©SpringerScience+BusinessMedia,LLC2012 Allrightsreserved.Thisworkmaynotbetranslatedorcopiedinwholeorinpartwithoutthewritten permission of the publisher (Springer Science+Business Media, LLC, 233 Spring Street, New York, NY10013, USA),except forbrief excerpts inconnection with reviews orscholarly analysis. Usein connectionwithanyformofinformationstorageandretrieval,electronicadaptation,computersoftware, orbysimilarordissimilarmethodologynowknownorhereafterdevelopedisforbidden. Theuseinthispublicationoftradenames,trademarks,servicemarks,andsimilarterms,eveniftheyare notidentifiedassuch,isnottobetakenasanexpressionofopinionastowhetherornottheyaresubject toproprietaryrights. Printedonacid-freepaper SpringerispartofSpringerScience+BusinessMedia(www.springer.com) Preface The Java language has had an enormous impact since its introduction in the last decadeofthetwentiethcentury.Itssuccesshasbeenparticularlystronginenterprise applications, where Java is one of the preeminent technology in use. A domain where Java is still trying to gain a foothold is that of real-time and embedded systems,betheymulticoreordistributed.Overthelast5years,thesupportingJava- relatedtechnologies,inthisincreasinglyimportantarea,havematured.Somehave maturedmorethanothers.Theoverallgoalofthisbookistoprovideinsightsinto someofthesetechnologies. Audience Thisbookisaimedatresearchersinreal-timeembeddedsystems,particularlythose who wish to understand the current state of the art in using Java in this domain. Mastersstudentswillalsofindusefulmaterialthatfoundsbackgroundreadingfor higherdegreesinembeddedandreal-timesystems. Structure andContent Muchoftheworkinreal-timedistributed,embeddedandreal-timeJavahasfocused onthe Real-time Specificationfor Java (RTSJ) as the underlyingbase technology, and consequentlymany of the Chapters in this book address issues with, or solve problemsusing,thisframework. Real-time embedded system are also themselves evolving. Distribution has always been an important consideration, but single processor nodes are rapidly being replaced by multicore platforms. This has increased the emphasis on par- allel programming and has had a major impact on embedded and real-time software development. The next three chapters, therefore, explore aspects of this v vi Preface issue. In Chap.1, Wellings, Dibble and Holmes discuss the impact of multi- core on the RTSJ itself and motivate why Version 1.1 of the specification will have more support for multiprocessors. Central to this support is the notion of processoraffinity. RTSJ has always remainedsilent on issues of distributedsystem as other work intheJavaCommunityhasbeenaddressingthisproblem.Unfortunately,thiswork hasbeenmoribundforseveralyearsandisnowconsideredinactive.Itis,therefore, anappropriatetimetore-evaluatetheprogressinthisarea.InChap.2,Basanta-Val and Anderson reviews the state of the art in distributed real-time Java technology consideringboththeproblemsandthesolutions. As embedded real-time system grow in size, they will become more complex and have to cope with a mixture of hard and soft real-time systems. Scheduling these systems, within the imposed time constraints, is a challenging problem. Of particularconcernishowtointegrateaperiodiceventsintothesystem.Theaccepted theoreticalworkinthisarearevolvesaroundtheusageofexecution-timeservers.In Chap.3, Massonand Midonnetconsiderhow these serverscan be programmedin theRTSJattheapplicationlevel. Irrespectiveofsize,embeddedsystemshaveimposedconstraints,betheypower consumption,heatdissipationorweight.Thisresultsintheresourcesintheplatform beingkepttoaminimum.Consequently,theseresourcesmustbecarefullymanaged. Processors and networks are the two of the main resource types, and have been consideredin Chaps.1–3.Memoryis theothermainresource,anditis thisthatis thetopicofChap.4throughChap.6.Real-timegarbagecollectioniscrucialtothe success of real-time Java and the advent of multicore has added new impetus to thattechnologytoproduceparallelcollectors.InChap.4,Siebertexplainsthebasic conceptsbehindparallelcollectorsandreviewstheapproachestakenbythemajor RTSJimplementations. RTSJintroducedaformofregion-basedmemorymanagementasanalternative totheuseoftheheapmemory.Thishasbeenoneofthemostcontroversialfeatures of the specification. For this reason, Higuera-Toledano,Yovine,and Garbervetsky (inChap.5)evaluatetheroleofregion-basedmemorymanagementintheRTSJand lookatthestrengthsandweaknessesoftheassociatedRTSJscopedmemorymodel. The third aspect of memory managementfor embeddedsystems is how to access the underlying platform’s physical memory – in order to maximize performance andinteractwithexternaldevices.Thishasalwaysbeenadifficultareaandonethat has been substantially revised in RTSJ Version 1.1. In Chap.6, Dibble, Hunt and Wellingsconsiderstheselow-levelprogrammingactivities. Partandparcelofdevelopingembeddedsystemsisdecidingonthedemarcation betweenwhatisinsoftwareandwhatisinhardware.FromaJavaperspective,there aretwoimportanttopics:hardwaresupportfortheJVMandhowapplicationscall code that has been implemented in hardware. These two issues are addressed in Chaps.7and8.InChap.7,Schoeberlreviewstheapproachesthathavebeentakento supporttheexecutionforJavaprograms.Thisincludesimportantareaslikesupport fortheexecutionofJavabytecodeandgarbagecollection.Incontrast,Whithamand Preface vii AudsleyinChap.8,focusontheinteractionbetweenJavaprogramsandfunctional acceleratorsimplementedascoprocessorsorinFPGAs. Embedded systems are ubiquitous and increasingly control vital operations. Failure of these systems have an immediate, and sometimes catastrophic, impact onsociety’sabilitytofunction.ProponentsofJavatechnologyenvisageagrowing role for Java in the development of these high-integrity (often safety-critical) systems. A subset of Java augmented with the RTSJ, called Safety Critical Java (SCJ) is currently being developed by the Java Community Process. This work is approaching fruition and two of the most important aspects are discussed in Chaps.9 and 10. Most embedded and real-time system directly or indirectly supportthe notion of a mission. In the RTSJ, this notion can be implemented but there is not direct representation. SCJ provides direct support for this concept. In Chap.9, Nielsen and Hunt discuss the mission concept and show how it can be used. Paramount to high-integrity applications is reliability. Although Java is a strongly typed language run-time exceptions can still be generated. Recent versions of the language have added support for annotations, which essentially allow added information to be passed to the compiler, development tools sup- porting static analysis, and the JVM itself. In Chap.10, Tang, Plsek and Jan Vitek explore the SCJ use of annotations to support memory safety, that is the absence of run-time exceptions resulting from violations of the SCJ mem- orymodel. Up until now, the topics that have been addressed have been concerned with theunderlyingtechnologyforreal-timeandembeddedJava.Theremainderofthe book focuses on higher level issues. Real-time and embedded system designers have to be more resource-aware than the average Java programmer. Inevitably, this leads to complexities in the programming task. The RTSJ has introduced abstractions that help the programmer manage resources; however, some of these abstraction can be difficult to use (for example, scoped memory). In Chap.11, Plsek, Loiret and Malohlava argue that this can make the use of the RTSJ error prone.TheyconsidertheroleofRTSJ-awarecomponent-orientedframeworksthat canhelpprovideaclearerseparationbetweenRTSJ-relatedissuesandapplication- relatedissues. One well-known Java framework for component-based service-oriented archi- tectures is the Open Services Gateway initiative (OSGi). Although this initiative has wide supportfrom industry,it lacks any supportfor real-time applications.In Chap.12,RichardsonandWellingsproposetheintegrationofOSGiwiththeRTSJ toprovideareal-timeOSGiframework. In the final chapter of this book, Holgado-Terrizaand Videz-Aivar address the issueofbuildingacompleteembeddedapplicationthatincludesbothsoftwareand hardwarecomponentsfromareusablebase. viii Preface Acknowledgements The editors are grateful to Springer who gave us the opportunity to produce this book,andtoalltheauthorsforagreeingtocontribute(andforreviewingeachothers chapters). WearealsoindebtedtoSitsofeWheelerforhishelpwithlatex. AndyJ.Wellings M.TeresaHiguera-Toledano Contents 1 Supporting Multiprocessors in the Real-Time SpecificationforJavaVersion1.1......................................... 1 AndyJ.Wellings,PeterDibble,andDavidHolmes 2 UsingReal-TimeJavainDistributedSystems:Problems andSolutions................................................................ 23 PabloBasanta-ValandJonathanStephenAnderson 3 HandlingNon-PeriodicEventsinReal-TimeJavaSystems ........... 45 DamienMassonandSergeMidonnet 4 ParallelReal-TimeGarbageCollection.................................. 79 FridtjofSiebert 5 Region-BasedMemory Management:An Evaluation ofItsSupportinRTSJ..................................................... 101 M.TeresaHiguera-Toledano,SergioYovine, andDiegoGarbervetsky 6 Programming Embedded Systems: Interacting withtheEmbeddedPlatform.............................................. 129 PeterDibble,JamesJ.Hunt,andAndyJ.Wellings 7 HardwareSupportforEmbeddedJava.................................. 159 MartinSchoeberl 8 InterfacingJavatoHardwareCoprocessorsandFPGAs.............. 177 JackWhithamandNeilAudsley 9 Safety-CriticalJava:TheMissionApproach............................ 199 JamesJ.HuntandKelvinNilsen 10 MemorySafetyforSafetyCriticalJava.................................. 235 DanielTang,AlesPlsek,andJanVitek ix

Description:
Research on real-time Java technology has been prolific over the past decade, leading to a large number of corresponding hardware and software solutions, and frameworks for distributed and embedded real-time Java systems. This book is aimed primarily at researchers in real-time embedded systems, par
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.