A wide range of high-performance distributed embedded systems have been designed and deployed. Physically distributed embedded systems are used for manufacturing and control, traffic analysis, and other problems. Interestingly, today's systems-on-chips are sufficiently complex that they must be treated as distributed embedded systems. At all scales of physical extent, middleware is required to manage the computations. This paper looks at distributed embedded systems at several physical scales and considers the types of middleware that are needed to operate these systems.
{"title":"Middleware Architectures for Distributed Embedded Systems","authors":"W. Wolf","doi":"10.1109/ISORC.2008.31","DOIUrl":"https://doi.org/10.1109/ISORC.2008.31","url":null,"abstract":"A wide range of high-performance distributed embedded systems have been designed and deployed. Physically distributed embedded systems are used for manufacturing and control, traffic analysis, and other problems. Interestingly, today's systems-on-chips are sufficiently complex that they must be treated as distributed embedded systems. At all scales of physical extent, middleware is required to manage the computations. This paper looks at distributed embedded systems at several physical scales and considers the types of middleware that are needed to operate these systems.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127356294","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Today many embedded computer applications are developed under the assumptions that the hardware works always as described in the documentation, the operating system is free of design errors and the clients use the system as specified. These assumptions lead to systems that are fragile - they break if even a single transistor out of a billion transistors chip occasionally malfunctions or a sporadic Heisenbug [J. Gray, 1986] occurs in the operating system.
{"title":"Wrong Assumptions and Neglected Areas in Embedded Systems Research","authors":"H. Kopetz","doi":"10.1109/ISORC.2008.15","DOIUrl":"https://doi.org/10.1109/ISORC.2008.15","url":null,"abstract":"Today many embedded computer applications are developed under the assumptions that the hardware works always as described in the documentation, the operating system is free of design errors and the clients use the system as specified. These assumptions lead to systems that are fragile - they break if even a single transistor out of a billion transistors chip occasionally malfunctions or a sporadic Heisenbug [J. Gray, 1986] occurs in the operating system.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"2011 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128202418","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Currently, the Real-Time Specification for Java (RTSJ) is silent on multiprocessor issues It attempts not to preclude multiprocessor implementations but provides no direct support. This paper discusses the issues that need to be addressed if the RTSJ is to be better defined for execution on a multiprocessor system. It proposes new dispatching and allocation models. Issues of cost enforcement, interrupts affinity and processor failure are covered.
{"title":"Multiprocessors and the Real-Time Specification for Java","authors":"A. Wellings","doi":"10.1109/ISORC.2008.22","DOIUrl":"https://doi.org/10.1109/ISORC.2008.22","url":null,"abstract":"Currently, the Real-Time Specification for Java (RTSJ) is silent on multiprocessor issues It attempts not to preclude multiprocessor implementations but provides no direct support. This paper discusses the issues that need to be addressed if the RTSJ is to be better defined for execution on a multiprocessor system. It proposes new dispatching and allocation models. Issues of cost enforcement, interrupts affinity and processor failure are covered.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"62 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120964276","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The real-time specification for Java (RTSJ) extends the Java memory model through immortal and scoped memory regions to reduce the timing-indeterminism caused by garbage collection. Since scoped regions can be nested, RTSJ imposes strict assignment rules to avoid dangling pointers. These rules stabilise that an object shall not reference any object whose lifetime could be shorter than they own. Then references among two objects within different scoped regions are allowed only in one direction (i.e., from objects within region r1 to region r2, but never from r2 to r1). In order to support RTSJ component-based applications, we require controlled violations of the assignment rules to have bidirectional references among objects within two different scopes.
{"title":"Allowing Cycle References by Introducing Controlled Violations of the Assignment Rules in Real-Time Java","authors":"M. T. Higuera-Toledano","doi":"10.1109/ISORC.2008.48","DOIUrl":"https://doi.org/10.1109/ISORC.2008.48","url":null,"abstract":"The real-time specification for Java (RTSJ) extends the Java memory model through immortal and scoped memory regions to reduce the timing-indeterminism caused by garbage collection. Since scoped regions can be nested, RTSJ imposes strict assignment rules to avoid dangling pointers. These rules stabilise that an object shall not reference any object whose lifetime could be shorter than they own. Then references among two objects within different scoped regions are allowed only in one direction (i.e., from objects within region r1 to region r2, but never from r2 to r1). In order to support RTSJ component-based applications, we require controlled violations of the assignment rules to have bidirectional references among objects within two different scopes.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"185 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121161921","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Martin Schoeberl, Christian Thalinger, Stephan Korsholm, A. Ravn
Java, as a safe and platform independent language, avoids access to low-level I/O devices or direct memory access. In standard Java, low-level I/O it not a concern; it is handled by the operating system. However, in the embedded domain resources are scarce and a Java virtual machine (JVM) without an underlying middleware is an attractive architecture. When running the JVM on bare metal, we need access to I/O devices from Java; therefore we investigate a safe and efficient mechanism to represent I/O devices as first class Java objects, where device registers are represented by object fields. Access to those registers is safe as Java's type system regulates it. The access is also fast as it is directly performed by the bytecodes getfield and putfield. Hardware objects thus provide an object-oriented abstraction of low-level hardware devices. As a proof of concept, we have implemented hardware objects in three quite different JVMs: in the Java processor JOP, the JIT compiler CACAO, and in the interpreting embedded JVM SimpleRTJ.
{"title":"Hardware Objects for Java","authors":"Martin Schoeberl, Christian Thalinger, Stephan Korsholm, A. Ravn","doi":"10.1109/ISORC.2008.63","DOIUrl":"https://doi.org/10.1109/ISORC.2008.63","url":null,"abstract":"Java, as a safe and platform independent language, avoids access to low-level I/O devices or direct memory access. In standard Java, low-level I/O it not a concern; it is handled by the operating system. However, in the embedded domain resources are scarce and a Java virtual machine (JVM) without an underlying middleware is an attractive architecture. When running the JVM on bare metal, we need access to I/O devices from Java; therefore we investigate a safe and efficient mechanism to represent I/O devices as first class Java objects, where device registers are represented by object fields. Access to those registers is safe as Java's type system regulates it. The access is also fast as it is directly performed by the bytecodes getfield and putfield. Hardware objects thus provide an object-oriented abstraction of low-level hardware devices. As a proof of concept, we have implemented hardware objects in three quite different JVMs: in the Java processor JOP, the JIT compiler CACAO, and in the interpreting embedded JVM SimpleRTJ.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117347901","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A. Kavimandan, A. Narayanan, A. Gokhale, G. Karsai
Recent advances in software processes and artifacts for automating middleware configurations in distributed realtime and embedded (DRE) systems are starting to address the complexities faced by system developers in dealing with the flexibility and configurability provided by contemporary middleware. Despite the benefits of these new processes, there remain significant challenges in verifying their correctness, and validating their effectiveness in meeting the end-to-end quality of service (QoS) requirements of DRE systems. This paper addresses this problem by describing how model-checking and structural correspondence can be used to verify the correctness of a middleware QoS configuration process that uses model-based graph transformations at its core. Next, it provides empirical proof to validate the effectiveness of our technique to meet the end-to-end QoS requirements in the context of a representative DRE system.
{"title":"Evaluating the Correctness and Effectiveness of a Middleware QoS Configuration Process in Distributed Real-Time and Embedded Systems","authors":"A. Kavimandan, A. Narayanan, A. Gokhale, G. Karsai","doi":"10.1109/ISORC.2008.24","DOIUrl":"https://doi.org/10.1109/ISORC.2008.24","url":null,"abstract":"Recent advances in software processes and artifacts for automating middleware configurations in distributed realtime and embedded (DRE) systems are starting to address the complexities faced by system developers in dealing with the flexibility and configurability provided by contemporary middleware. Despite the benefits of these new processes, there remain significant challenges in verifying their correctness, and validating their effectiveness in meeting the end-to-end quality of service (QoS) requirements of DRE systems. This paper addresses this problem by describing how model-checking and structural correspondence can be used to verify the correctness of a middleware QoS configuration process that uses model-based graph transformations at its core. Next, it provides empirical proof to validate the effectiveness of our technique to meet the end-to-end QoS requirements in the context of a representative DRE system.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121164670","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Current RTSJ (the real-time specification for Java) threading model is dualized: programmers have to decide between the high predictability offered by its region-based model and the flexibility offered by its garbage-collected model. Up to now, there is not a unique type of thread that offers, in a single entity, the highest predictability, and flexibility together. This lack has serious consequences on the programmer who has to deal with new and sometimes non-trivial mechanisms, such as queues of objects or the no-heap real-time threads, to avoid the priority inversion caused by the garbage collector, hi order to tackle these issues and provide an improved and more generalized programming model, the authors propose an extension to the current threading model that unifies the RTSJ threading model: the RealtimeThread++ extension.
{"title":"Simplifying the Dualized Threading Model of RTSJ","authors":"P. Basanta-Val, M. García-Valls, I. Estévez-Ayres","doi":"10.1109/ISORC.2008.18","DOIUrl":"https://doi.org/10.1109/ISORC.2008.18","url":null,"abstract":"Current RTSJ (the real-time specification for Java) threading model is dualized: programmers have to decide between the high predictability offered by its region-based model and the flexibility offered by its garbage-collected model. Up to now, there is not a unique type of thread that offers, in a single entity, the highest predictability, and flexibility together. This lack has serious consequences on the programmer who has to deal with new and sometimes non-trivial mechanisms, such as queues of objects or the no-heap real-time threads, to avoid the priority inversion caused by the garbage collector, hi order to tackle these issues and provide an improved and more generalized programming model, the authors propose an extension to the current threading model that unifies the RTSJ threading model: the RealtimeThread++ extension.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130134582","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Internet delay is important for FPS games because it can determine who wins or loses a game. Network traffic for such games has been analysed using packet size and inter-packet time metrics fitting a statistical model. However, the effect of other network traffic on game traffic was not investigated or considered. This paper explores the traffic generated by an FPS game, taking into account the effects of other Internet traffic. Experiments were conducted in an isolated local network, repeated across the Internet and in a simulator with varying degrees of background traffic. FPS game packet inter-arrival time distribution was observed to spread with the decrease of bandwidth due to other traffic along network paths. The twin peak characteristic of packet inter-arrival time observed in the isolated local network experiment flattens and spreads to a bell-shape as bandwidth decreases due to the increased and non-unique delay of packet arrivals.
{"title":"First Person Shooter Multiplayer Game Traffic Analysis","authors":"Qili Zhou, Colin J. Miller, V. Bassilious","doi":"10.1109/ISORC.2008.28","DOIUrl":"https://doi.org/10.1109/ISORC.2008.28","url":null,"abstract":"Internet delay is important for FPS games because it can determine who wins or loses a game. Network traffic for such games has been analysed using packet size and inter-packet time metrics fitting a statistical model. However, the effect of other network traffic on game traffic was not investigated or considered. This paper explores the traffic generated by an FPS game, taking into account the effects of other Internet traffic. Experiments were conducted in an isolated local network, repeated across the Internet and in a simulator with varying degrees of background traffic. FPS game packet inter-arrival time distribution was observed to spread with the decrease of bandwidth due to other traffic along network paths. The twin peak characteristic of packet inter-arrival time observed in the isolated local network experiment flattens and spreads to a bell-shape as bandwidth decreases due to the increased and non-unique delay of packet arrivals.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130369771","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The real-time specification for Java extends the Java platform to support real-time processing and introduces a region-based memory model, called scoped memory, which side-steps the Java garbage collector. While scoped memory succeeds in protecting real-time tasks from execution time jitter, practical experience points to shortcomings. This paper takes stock of the state of the art in memory management for RTSJ programs.
{"title":"Memory Management for Real-Time Java: State of the Art","authors":"F. Pizlo, J. Vitek","doi":"10.1109/ISORC.2008.40","DOIUrl":"https://doi.org/10.1109/ISORC.2008.40","url":null,"abstract":"The real-time specification for Java extends the Java platform to support real-time processing and introduces a region-based memory model, called scoped memory, which side-steps the Java garbage collector. While scoped memory succeeds in protecting real-time tasks from execution time jitter, practical experience points to shortcomings. This paper takes stock of the state of the art in memory management for RTSJ programs.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134388562","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Embedded systems is an area that grows rapidly with new communication media such as smart-phones, house automation applications (that might finally come) and all other hidden systems we use everyday in cars, airplanes, etc. Moreover, in these last domains, there is a need for very safe development because such systems are often life-critical.
{"title":"Design Methodologies for Embedded Systems: Where is the Super-Glue?","authors":"F. Kordon","doi":"10.1109/ISORC.2008.88","DOIUrl":"https://doi.org/10.1109/ISORC.2008.88","url":null,"abstract":"Embedded systems is an area that grows rapidly with new communication media such as smart-phones, house automation applications (that might finally come) and all other hidden systems we use everyday in cars, airplanes, etc. Moreover, in these last domains, there is a need for very safe development because such systems are often life-critical.","PeriodicalId":378715,"journal":{"name":"2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124492711","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}