Real-time Systems and Their Programming Languages


Book Description

A survey of real-time systems and the programming languages used in their development. Shows how modern real-time programming techniques are used in a wide variety of applications, including robotics, factory automation, and control. A critical requirement for such systems is that the software must




Real-time Systems and Programming Languages


Book Description

Introduction to real-time systems - Designing real-time systems - Programming in the small - Programming in the large - Reliability and fault tolerance - Exceptions and exception handling - Concurrent programming - Shared variable-based synchronization and communication - Message-based synchronization and communication - Atomic actions, concurrent processes and reliability - Resource control - Real-time facilities - Scheduling - Distributed systems - Low-level programming - The execution environment - A case study in ada.




Real-Time Systems Development


Book Description

Real-Time Systems Development introduces computing students and professional programmers to the development of software for real-time applications. Based on the academic and commercial experience of the author, the book is an ideal companion to final year undergraduate options or MSc modules in the area of real-time systems design and implementation. Assuming a certain level of general systems design and programming experience, this text will extend students' knowledge and skills into an area of computing which has increasing relevance in a modern world of telecommunications and 'intelligent' equipment using embedded microcontrollers. This book takes a broad, practical approach in discussing real-time systems. It covers topics such as basic input and output; cyclic executives for bare hardware; finite state machines; task communication and synchronization; input/output interfaces; structured design for real-time systems; designing for multitasking; UML for real-time systems; object oriented approach to real-time systems; selecting languages for RTS development; Linux device drivers; and hardware/software co-design. Programming examples using GNU/Linux are included, along with a supporting website containing slides; solutions to problems; and software examples. This book will appeal to advanced undergraduate Computer Science students; MSc students; and, undergraduate software engineering and electronic engineering students. * Concise treatment delivers material in manageable sections* Includes handy glossary, references and practical exercises based on familiar scenarios* Supporting website contains slides, solutions to problems and software examples




Real-Time Systems Design and Analysis


Book Description

The leading text in the field explains step by step how to write software that responds in real time From power plants to medicine to avionics, the world increasingly depends on computer systems that can compute and respond to various excitations in real time. The Fourth Edition of Real-Time Systems Design and Analysis gives software designers the knowledge and the tools needed to create real-time software using a holistic, systems-based approach. The text covers computer architecture and organization, operating systems, software engineering, programming languages, and compiler theory, all from the perspective of real-time systems design. The Fourth Edition of this renowned text brings it thoroughly up to date with the latest technological advances and applications. This fully updated edition includes coverage of the following concepts: Multidisciplinary design challenges Time-triggered architectures Architectural advancements Automatic code generation Peripheral interfacing Life-cycle processes The final chapter of the text offers an expert perspective on the future of real-time systems and their applications. The text is self-contained, enabling instructors and readers to focus on the material that is most important to their needs and interests. Suggestions for additional readings guide readers to more in-depth discussions on each individual topic. In addition, each chapter features exercises ranging from simple to challenging to help readers progressively build and fine-tune their ability to design their own real-time software programs. Now fully up to date with the latest technological advances and applications in the field, Real-Time Systems Design and Analysis remains the top choice for students and software engineers who want to design better and faster real-time systems at minimum cost.




Real Time Programming


Book Description

Pt. I. Real time systems - background. 1. Real time system characteristics. 1.1. Real-time and reactive programs. 2. Formal program development methodologies. 2.1. Requirement specification. 2.2. System specifications. 3. Characteristics of real-time languages. 3.1. Modelling features of real-time languages. 3.2. A look at classes of real-time languages. 4. Programming characteristics of reactive systems. 4.1. Execution of reactive programs. 4.2. Perfect synchrony hypothesis. 4.3. Multiform notion of time. 4.4. Logical concurrency and broadcast communication. 4.5. Determinism and causality -- pt. II. Synchronous languages. 5. ESTEREL language : structure. 5.1. Top level structure. 5.2. ESTEREL statements. 5.3. Illustrations of ESTEREL program behaviour. 5.4. Causality problems. 5.5. A historical perspective. 6. Program development in ESTEREL. 6.1. A simulation environment. 6.2. Verification environment. 7. Programming controllers in ESTEREL. 7.1. Auto controllers. 8. Asynchronous interaction in ESTEREL -- 9. Futurebus arbitration protocol : a case study. 9.1. Arbitration process. 9.2. Abstraction of the protocol. 9.3. Solution in ESTEREL -- 10. Semantics of ESTEREL. 10.1. Semantic structure. 10.2. Transition rules. 10.3. Illustrative examples. 10.4. Discussions. 10.5. Semantics of Esterel with exec -- pt. III. Other synchronous languages. 11. Synchronous language LUSTRE. 11.1. An overview of LUSTRE. 11.2. Flows and streams. 11.3. Equations, variables and expressions. 11.4. Program structure. 11.5. Arrays in LUSTRE. 11.6. Further examples. 12. Modelling Time-Triggered Protocol (TTP) in LUSTRE. 12.1. Time-triggered protocol. 12.2. Modelling TTP in LUSTRE. 13. Synchronous language ARGOS. 13.1. ARGOS constructs. 13.2. Illustrative example. 13.3. Discussions -- pt. IV. Verification of synchronous programs. 14. Verification of ESTEREL programs. 14.1. Transition system based verificationy of ESTEREL Programs. 14.2. ESTEREL transition system. 14.3. Temporal logic based verification. 14.4. Observer-based verification. 14.5. First order logic based verification. 15. Observer based verification of simple LUSTRE programs. 15.1. A simple auto controller. 15.2. A complex controller. 15.3. A cruise controller. 15.4. A train controller. 15.5. A mine pump controller -- pt. V. Integration of synchrony and asynchrony. 16. Communicating reactive processes. 16.1. An overview of CRP. 16.2. Communicating reactive processes : structure. 16.3. Behavioural semantics of CRP. 16.4. An illustrative example : banker teller machine. 16.5. Implementation of CRP. 17. Semantics of communicating reactive processes. 17.1. A brief overview of CSP. 17.2. Translation of CSP to CRP. 17.3. Cooperation of CRP nodes. 17.4. Ready-trace semantics of CRP. 17.5. Ready-trace semantics of CSP. 17.6. Extracting CSP ready-trace semantics from CRP semantics. 17.7. Correctness of the translation. 17.8. Translation into MEIJE process calculus. 18. Communicating reactive state machines. 18.1. CRSM constructs. 18.2. Semantics of CRSM. 19. Multiclock ESTEREL. 19.1. Need for a multiclock synchronous paradigm. 19.2. Informal introduction. 19.3. Formal semantics. 19.4. Embedding CRP. 19.5. Modelling a VHDL subset. 19.6. Discussion. 20. Modelling real-time systems in ESTEREL. 20.1. Interpretation of a global clock in terms of exec. 20.2. Modelling real-time requirements. 21. Putting it together




Concurrent and Real-Time Programming in Java


Book Description

Real-time functionality is essential for developing many consumer, industrial, and systems devices. While the C/C++ programming language is most often used in the creation of real-time software, the Java language, with its simple and familiar object-oriented programming model, offers many advantages over current real-time practices. Concurrent and Real-Time Programming in Java covers the motivations for, and semantics of, the extensions and modifications to the Java programming environment that enable the Java platform (Virtual Machine) to meet the requirements and constraints of real-time development. Key aspects of concurrent and real-time programming and how they are implemented in Java are discussed, such as concurrency, memory management, real-time scheduling, and real-time resource sharing.




The Concurrent C Programming Language


Book Description

Concurrent C is a superset of C that provides parallel programming facilities such as those for the declaring and creating processes, for process synchronization and interaction, and for process termination and abortion. Concurrent C was designed for the effective utilization of multiprocessors and multicomputers. Concurrent C, as a compile-time option, also works with C++, an object-oriented superset of C.




Real-Time Phoenix


Book Description

Give users the real-time experience they expect, by using Elixir and Phoenix Channels to build applications that instantly react to changes and reflect the application's true state. Learn how Elixir and Phoenix make it easy and enjoyable to create real-time applications that scale to a large number of users. Apply system design and development best practices to create applications that are easy to maintain. Gain confidence by learning how to break your applications before your users do. Deploy applications with minimized resource use and maximized performance. Real-time applications come with real challenges - persistent connections, multi-server deployment, and strict performance requirements are just a few. Don't try to solve these challenges by yourself - use a framework that handles them for you. Elixir and Phoenix Channels provide a solid foundation on which to build stable and scalable real-time applications. Build applications that thrive for years to come with the best-practices found in this book. Understand the magic of real-time communication by inspecting the WebSocket protocol in action. Avoid performance pitfalls early in the development lifecycle with a catalog of common problems and their solutions. Leverage GenStage to build a data pipeline that improves scalability. Break your application before your users do and confidently deploy them. Build a real-world project using solid application design and testing practices that help make future changes a breeze. Create distributed apps that can scale to many users with tools like Phoenix Tracker. Deploy and monitor your application with confidence and reduce outages. Deliver an exceptional real-time experience to your users, with easy maintenance, reduced operational costs, and maximized performance, using Elixir and Phoenix Channels. What You Need: You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.




Real-Time C++


Book Description

With this book, Christopher Kormanyos delivers a highly practical guide to programming real-time embedded microcontroller systems in C++. It is divided into three parts plus several appendices. Part I provides a foundation for real-time C++ by covering language technologies, including object-oriented methods, template programming and optimization. Next, part II presents detailed descriptions of a variety of C++ components that are widely used in microcontroller programming. It details some of C++’s most powerful language elements, such as class types, templates and the STL, to develop components for microcontroller register access, low-level drivers, custom memory management, embedded containers, multitasking, etc. Finally, part III describes mathematical methods and generic utilities that can be employed to solve recurring problems in real-time C++. The appendices include a brief C++ language tutorial, information on the real-time C++ development environment and instructions for building GNU GCC cross-compilers and a microcontroller circuit. For this third edition, the most recent specification of C++17 in ISO/IEC 14882:2017 is used throughout the text. Several sections on new C++17 functionality have been added, and various others reworked to reflect changes in the standard. Also several new sample projects are introduced and existing ones extended, and various user suggestions have been incorporated. To facilitate portability, no libraries other than those specified in the language standard itself are used. Efficiency is always in focus and numerous examples are backed up with real-time performance measurements and size analyses that quantify the true costs of the code down to the very last byte and microsecond. The target audience of this book mainly consists of students and professionals interested in real-time C++. Readers should be familiar with C or another programming language and will benefit most if they have had some previous experience with microcontroller electronics and the performance and size issues prevalent in embedded systems programming.




Handbook of Real-Time and Embedded Systems


Book Description

Real-time and embedded systems are essential to our lives, from controlling car engines and regulating traffic lights to monitoring plane takeoffs and landings to providing up-to-the-minute stock quotes. Bringing together researchers from both academia and industry, the Handbook of Real-Time and Embedded Systems provides comprehensive covera