{"title":"Supporting user-friendly analysis of timing constraints","authors":"Lo Ko, D. Whalley, M. Harmon","doi":"10.1145/216636.216668","DOIUrl":"https://doi.org/10.1145/216636.216668","url":null,"abstract":"Real-time programmers have to deal with the problem of relating timing constraints associated with source code lines to sequences of machine instructions. This paper describes an interface that was developed to assist users in this task. Portions of programs can be quickly selected and the corresponding bounded times, source code lines, and machine instructions are automatically displayed. In addition, users are restricted to only selecting portions of the program for which timing bounds can be obtained. The result is a user-friendly interface that assists programmers in the analysis of timing constraints within a program.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"129 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114260764","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}
{"title":"Re-usable software design for programmable logic controllers","authors":"F. Bonfatti, G. Gadda, P. Monari","doi":"10.1145/216636.216651","DOIUrl":"https://doi.org/10.1145/216636.216651","url":null,"abstract":"It is the aim of this paper to present a model conceived for supporting the initial, critical phases of PLC software life cycle, namely requirement specification, requirement analysis and software design, to obtain reusable code. The model, named EASIER, is based on an object-oriented paradigm where the message-method mechanism is replaced by the law and action primitives, since they are more suitable to cope with the real-time, cyclic nature of PLC software. Software re-usability is pursued by identifying independent control modules through a proper bedded encapsulation mechanism, representing system dynamics by means of synchronized state diagrams, expressing context-free behaviour of system components by introducing virtual objects. The EASIER approach is presently validated with respect to relevant reverse and forward engineering applications; from one of these cases we derive the examples used in the paper.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126412232","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}
{"title":"Language constructs and transformation for hard real-time systems","authors":"Tai M. Chung, H. Dietz","doi":"10.1145/216636.216654","DOIUrl":"https://doi.org/10.1145/216636.216654","url":null,"abstract":"In practice, time critical portions of hard real-time systems are still implemented in low-level programming languages and manually tuned to meet all the timing requirements. Without a real-time language that supports an appropriate way of specifying timing constraints for a generic hard real-time systems, and high precision timing analysis that is transparent to users, the users will ever suffer from the complex coding and analysis, particularly for systems requiring fast turnaround responses.In this paper, we propose novel language constructs that can be added to any imperative programming language so that the extended language provides users a way to specify relative timing constraints between arbitrary operations at instruction-level. The compilation techniques unique to transformation of the proposed language are also presented as a part of CHaRTS, the Compiler for Hard Real-Time Systems, which generates a valid instruction sequence for a target execution model.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117194703","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}
{"title":"Static timing analysis of real-time systems","authors":"Muriel Jourdan, F. Maraninchi","doi":"10.1145/216636.216664","DOIUrl":"https://doi.org/10.1145/216636.216664","url":null,"abstract":"The approach we propose consists in describing a real-time system with a timed extension of a synchronous language. The formal semantics of the language describes how programs can be translated into a wide class of models, usually labeled transition systems, but whose labels can range from pure boolean information to complex assignements to real-valued variables. In particular, Timed Graphs [ACD90] may be obtained. We then use a tool which implements a symbolic modelchecking algorithm for TCTL [ACD90] properties of Timed Graphs. We illustrate the approach with an example taken from robotics. Several real-time tasks are involved in a synchronization scheme, sending and receiving messages, according to various protocols. They are periodically re-activated by an external controller, and should not be re-activated if they are still communicating with each other. We show how to statically determine whether a particular choice of the re-activation delays would allow a deadlock.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124078411","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}
{"title":"Compiler support for software-based cache partitioning","authors":"F. Mueller","doi":"10.1145/216636.216677","DOIUrl":"https://doi.org/10.1145/216636.216677","url":null,"abstract":"Cache memories have become an essential part of modern processors to bridge the increasing gap between fast processors and slower main memory. Until recently, cache memories were thought to impose unpredictable execution time behavior for hard real-time systems. But recent results show that the speedup of caches can be exploited without a significant sacrifice of predictability. These results were obtained under the assumption that real-time tasks be scheduled non-preemptively.This paper introduces a method to maintain predictability of execution time within preemptive, cached real-time systems and discusses the impact on compilation support for such a system. Preemptive systems with caches are made predictable via software-based cache partitioning. With this approach, the cache is divided into distinct portions associated with a real-time task, such that a task may only use its portion. The compiler has to support instruction and data partitioning for each task. Instruction partitioning involves non-linear control-flow transformations, while data partitioning involves code transformations of data references. The impact on execution time of these transformations is also discussed.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130676012","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}
{"title":"Worst-case execution time analysis on modern processors","authors":"K. Nilsen, B. Rygg","doi":"10.1145/216636.216650","DOIUrl":"https://doi.org/10.1145/216636.216650","url":null,"abstract":"Many of the trends that have dominated recent evolution and advancement within the computer architecture community have complicated the analysis of task execution times. Most of the difficulties result from two particular emphases: (1) Instruction-level parallelism, and (2) Optimization of average-case behavior rather than worst-case latencies. Both of these trends have resulted in increased nondeterminism in the time required to execute particular code sequences. And since the analysis required to determine worst-case task execution times on modern processors is so complicated, it is not practical for programmers to perform all of the necessary analyses by hand. Tools must aid them. This paper describes ongoing research on a collection of tools intended to automate the analyses that must be performed in order to build reliable real-time software for modern computing environments. Emphasis is given to the interplay between components of the development environment.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121642271","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}
{"title":"Software synthesis for real-time information processing systems","authors":"M. Cornero, F. Thoen, G. Goossens, F. Curatelli","doi":"10.1145/216636.216658","DOIUrl":"https://doi.org/10.1145/216636.216658","url":null,"abstract":"Software synthesis is a new approach which focuses on the support of embedded systems without the use of operating-systems. Compared to traditional design practices, a better utilization of the available time and hardware resources can be achieved with software synthesis, because the static information provided by the system specification is fully exploited and a application specific solution is automatically generated.In this paper on-going research on a software synthesis approach for real-time information processing systems is presented which starts from a concurrent process system specification and tries to automate the mapping of this description to a single processor. An internal representation model which is well suited for the support of concurrency and liming constraints is proposed, together with flexible execution models for multi-tasking with real-time constraints. The method is illustrated on a personal terminal receiver demodulator for mobile satellite communication.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"49 2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120864673","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}
{"title":"Scheduling of hard aperiodic tasks","authors":"Jongwon Lee, Sungyoung Lee, Hyungill Kim","doi":"10.1145/216636.216647","DOIUrl":"https://doi.org/10.1145/216636.216647","url":null,"abstract":"In this paper, we present a preemptive joint scheduling of hard deadline periodic and hard deadline aperiodic tasks on a uniprocessor real-time system. The scheduling has extended the Critical Task Indicating (CTI) algorithm [4] of which simulation study shows a considerable performance improvement over the other soft aperiodic task schedulings, especially under a heavy transient overload. Since a hard deadline aperiodic task has its own deadline, the proposed algorithm has a decision making mechanism that performs the on-line acceptance/rejection test upon its arrival. For simplicity and good performance, the algorithm reuses the original CTI table being used in the CTI algorithm as a slack search domain. Moreover, by searching the CTI table similarly to a circular list, it has removed the problem of search space limitation caused by the hyperperiod bound.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133511940","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}
{"title":"Verus: a tool for quantitative analysis of finite-state real-time systems","authors":"S. Campos, E. Clarke, W. Marrero, M. Minea","doi":"10.1145/216636.216661","DOIUrl":"https://doi.org/10.1145/216636.216661","url":null,"abstract":"Symbolic model checking is a technique for verifying finite-state concurrent systems. Models with up to 1030 states can often be verified in minutes. In this paper, we present a new tool to analyze real-time systems, based on this technique. We have designed a language, called Verus, for the description of real-time systems. Such a description is compiled into a state-transition graph and represented symbolically using binary decision diagrams. We have developed new algorithms for exploring the state space and computing quantitative information about the system. In addition to determining the exact bounds on the length of the time interval between two specified events, we compute the number of occurrences of an event in such an interval. This technique allows us to determine performance measures such as schedulability, response time, and system load. Our algorithms produce more detailed information than traditional methods. This information leads to a better understanding of the behavior of the system, in addition to verifying if its timing requirements are satisfied. We integrate these ideas into the Verus tool, currently under development. To demonstrate how our technique works, we have verified a robotics control system. The results obtained demonstrate that our method can be successfully applied in the analysis of real-time system designs.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121848041","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}
{"title":"Automatic generation of scheduling and communication code in real-time parallel programs","authors":"A. Bakkers, J. Sunter, Evert Ploeg","doi":"10.1145/216636.216679","DOIUrl":"https://doi.org/10.1145/216636.216679","url":null,"abstract":"Inter-process communication and scheduling are notorious problem areas in the design of real-time systems. Using CASE tools, the system design phase will in general result in a system description in the form of parallel processes. Manual allocation of these processes to processors may result in error prone and/or slow communication code. Scheduling of the processes, necessary to meet timing constraints, is also a tedious task that takes many iterations. The described design tools result in code that is comparable in quality and performance with expert manual realization. Many network layers have been implemented to relieve the user from the low-level programming of communication software. However, the increase in user-friendliness is usually paid with performance degradation. The proposed approach combines user-friendliness with high performance by generating communication software that is tailor-made for the application. A similar approach is followed with the scheduling software. Schedulers in the form of a built-in a kernel are available all the time and cause overhead all the time. The proposed preprocessor tool generates scheduling software after analyzing the timing requirements of the particular application. This results in simple code for simple timing requirements and more complicated code for complex timing requirements. The tools have been implemented in Occam for use on a transputer. However, the results are valid for any distributed memory machine.","PeriodicalId":349852,"journal":{"name":"Proceedings of the ACM SIGPLAN 1995 workshop on Languages, compilers, & tools for real-time systems","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132001014","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}