17-619 Introduction To Real-Time Software and Systems: Carnegie Mellon
17-619 Introduction To Real-Time Software and Systems: Carnegie Mellon
Overview
Real-time software controls everything from jet airplanes to airline reservations; deep-space communication to mobile phones. Any system that responds at the pace of relevant events has real-time requirements and constraints whether the timescale is short like the flight controls for an aircraft or longer like the flight scheduling system for an airline. Thinking about time and timing are fundamental to software engineering practice because at some level, every software system has real-time requirements and development considerations. System response must be both correct and timely. Introduction to Real-Time Software and Systems presents an overview of time as it relates engineering complex software systems. In this course basic concepts, terminology, and issues of real-time are examined. Initial emphasis is placed on real-time scheduling and priority to achieve desired system timing, reliability, and robustness. Understanding how timing is achieved and the potential problems that may arise provides the basis for applying software engineering principles to real-time systems development. The software development lifecycle is examined with emphasis on addressing real-time issues during each phase. General software systems engineering processes are expanded by the added concerns of real-time response. Real-time requirements analysis, architecting real-time systems, design and modeling of system timing, and implementation and testing strategies are examined. Languages and operating systems for real-time computing, and real-time problems in distributed processing systems are explored. This course provides a comprehensive view of real-time systems with theory, techniques and methods for the practitioner. After successfully completing this course, the student will be able to identify and understand timing issues in system development and propose approaches or solutions to address basic problems in real-time computing. It is the goal of this course to motivate and prepare students to pursue more in-depth study of specific problems in real-time computing and systems development.
Objectives
This course will examine analysis, design, and systems issues for real-time systems. By the end of the course you should be able to: Dene what it means to be a real-time system or application Understand elements of hardware and software as they relate to system performance Discuss timing and related attributes associated with real-time systems Learn scheduling concepts and algorithms and their relative merits Understand synchronization and resource management approaches Identify possible timing problems including deadlock and priority inversion Apply analysis techniques including rate monotonic analysis Consider approaches to servicing periodic and aperiodic events Recognize the systems development process and its relationship to real-time issues Consider the critical requirements imposed by real-time applications Apply real-time extensions to software requirements analysis including UML modeling Understand the role of architecture in real-time systems engineering
Introduction to Real-Time Software and Systems
Carnegie Mellon
Decide the appropriate analysis and design methods for a real-time system Apply techniques for modeling dynamic behavior in real-time systems Consider real-time verification and validation issues and strategies. Devise real-time testing strategies and plans to meet performance and quality requirements Discuss characteristics of real-time operating systems and features of programming languages
Instructor
Ofce David Wettergreen NSH 2113 Telephone 412-268-5421 Email dsw@ri.cmu.edu
Course Meetings
Lectures: Office Hours: Tuesday and Thursday, 1:30-2:50pm Immediately after class or by appointment
Course Materials
The required textbooks are: Real-Time Systems Design and Analysis (3rd Edition), by Phillip Laplante, ISBN 0-471-22855-9, IEEE Press/WileyInterscience, 2004 Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (2nd Edition), by Giorgio Buttazzo, ISBN 0-387-23137-4, Springer, 2004 The syllabus, lectures and assignments will be available online under course F09-17619 at: http:// blackboard.andrew.cmu.edu
Prerequisites
This course is designed with practicing developers and managers in mind. Prerequisites are established to ensure that students have some software engineering experience from which this course can build. Familiarity with the typical software development process either from practical experience or an introductory software engineering course. Proficiency with a high-level programming language such as C or Ada and basic concepts of computing systems. Software will be considered to the level of device drivers rather than microcode. Knowledge of basic operating systems concepts generally taught in an undergraduate operating systems course, such as tasks and scheduling.
Any concerns about your background should be discussed with the instructor.
Carnegie Mellon
Carnegie Mellon
Schedule
Date
1 2 8/25 8/27
Unit
Introduction
Lecture
Course Introduction and Overview Real-Time Characteristics and Denitions Real-Time Hardware Processors Memory Transducers Operating Systems and Tasks Kernels Tasks Priorities Utilization and Response Time Task Utilization Factor and Test Completion Time Theorem Response Time Test Periodic Task Scheduling Utilization Bound Rate Monotonic Scheduling Earliest Deadline First Synchronization and Blocking Semaphones Priority Inversion Priority Ceiling Protocol Resource Access Stack Resource Protocol Other Resource Strategies Rate Monotonic Analysis Sonar Case Study No Lecture - G-20 Summit Aperiodic Task Scheduling Asynchronous Interrupts Scheduling Algorithms Priority Servers Fixed Priority Servers Dynamic Priority Servers Priority Servers Dynamic Priority Servers Lessons Systems Development Systems Perspective Lifecycle Requirements, Architecture and Design Software Attributes Properties and Attributes Principles Requirements Elicitation
Reading
[Lapante04]Ch.1 [Halang92] [Stankovic88] [Lapante04]Ch.2
Assignment
A1 Out
9/1
Systems
A1 Due A2 Out
9/3
[Lapante04]Ch.3 [Buttazzo04]Ch.9 [Buttazzo04]Ch.2 [Lui73] [Buttazzo04]Ch.4 [Sha91] [Buttazzo04]Ch.7 A3 Due A4 Out Project Topic Out A2 Due A3 Out
9/8
Scheduling
9/10
9/15
9/17
[Buttazzo04]Ch.7 [Johnson95] [Fowler93] [Klein93] [Buttazzo04]Ch.3 A4 Due A5 Out Project Topic Due
9 10 11
12
10/1
13
10/6
A5 Due A6 Out
14
10/8
15
10/13
Development Process
[Lapante04]Ch.4-5
A6 Due A7 Out
Carnegie Mellon
Date
16 17 10/15 10/20
Unit
Requirements
Lecture
Analysis Structured Analysis Modeling Use Cases Sequence Diagrams Modeling Use Cases Sequence Diagrams Modeling Sequence Diagrams Timing Diagrams Statecharts Architecture Denitions and Views Architectural Properties Design Patterns Patterns Concurrency Distribution Safety and Reliability Patterns Deployment Case Study Performance Analysis Modeling Methods Verication and Validation Process and Methods Completeness and Stability Test Procedures Defect Detection Complexity Analysis Inspections and Procedures Safety and Reliability Fault Tolerance Failure Modes and Effects Analysis Real-Time Languages No Lecture - Thanksgiving Real-Time Operating Systems Course Review
Reading
[Yourdon89] [Douglass04]Ch.3
Assignment
A7 Due A8 Out
18
10/22
[Douglass04]Ch.3
19
10/27
[Douglass04]Ch.5
A8 Due A9 Out Project Design Out Project Specication Due A9 Due A10 Out
20
10/29
Design
21
11/3
[Douglass03]Ch.7-8
22
11/5
[Gomaa00]Ch.18
23
11/10
24
11/12
A10 Due A11 Out Project V&V Out Project Design Due
25
11/17
[Laplante04]Ch.8 [Cooling03]Ch.11
A11 Due
26
11/19
27 28 29
Carnegie Mellon
Bibliography
[Cooling03] Cooling, J., Software Engineering for Real-Time Systems, Addison-Wesley, 2003. [Collofello 88] Collofello, James S. Introduction to Software Verification and Validation (SEI-CM-13-1.1). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1988. [Douglass99] Douglass, B., Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns, Addison-Wesley, 1999. [Douglass03] Douglass, B., Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems, Addison-Wesley, 2003. [Douglass04] Douglass, B., Real-Time UML: Advances in the UML for Real-Time Systems, Addison-Wesley, 2004. [Fowler93] Priscilla Fowler, Linda Levine; Technology Transition Push: A Case Study of Rate Monotonic Analysis (Part 1); SEI Technical Report CMU/SEI-93-TR-29, December 1993 [GAO92] GAO Report, IMTEC-92-26 - Patriot Missile Software Problem, February, 1992. http://www.fas.org/ spp/starwars/gao/im92026.htm [Garlan94] Garlan, D., Shaw, M, An Introduction to Software Architecture, CMU/SEI-94-TR-21, Carnegie Mellon University, January 1994. [Gomaa00] Gomaa, H., Designing Concurrent, Distributed, and Real-Time Applications with UML, AddisonWesley, 2000. [Fowler93] Priscilla Fowler, Linda Levine; Technology Transition Push: A Case Study of Rate Monotonic Analysis (Part 1); SEI Technical Report CMU/SEI-93-TR-29, December 1993 [Klein93] Mark Klein, Thomas Ralya, Bill Pollak, Ray Obenza, Michael Gonzlez Harbour; A Practioners Handbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time SystemsKluwer Academic Publishers, 1993 [Halang92] Halang, W., Real-Time Systems: Another Perspective, Journal of Systems and Software, Elsevier Science Inc., April 1992, also published in Real-Time Systems: Abstractions, Languages and Design Methodologies, edited by K. Kavi, IEEE Computer Society Press, 1992 [Humphrey89] Humphrey, W., Managing the Software Process. Reading, MA: Addison-Wesley, 1989. [Johnson95] Johnson, Theodore. A Performance Comparison of Fast Distributed Mutual Exclusion Algorithms 9th International Parallel Processing Symposium (April 1995). [Kossiakoff03] Kossiakoff, A., Sweet, W., Systems Engineering: Principles and Practice, Wiley-Interscience, 2003. [Lapante03] Laplante, P., Real-Time Systems Design and Analysis (3rd Edition), IEEE/Wiley Interscience, 2004. [Leveson93] Leveson, N, Turner, C. Investigation of the Therac-25 Accidents. IEEE Computer, Vol. 26, No. 7 (July 1993): 18-41. http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Therac_1.html [Lui73] Liu, C., Layland. J. Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment. Journal of the Assoc. for Computing Machinery, Vol. 20, No. 1 (1973): pp. 46-61. [Shaw98] Shaw, M., Moving from Qualities to Architecture: Architectural Style Software Architecture in Practice, Chapter 5, Editors: Len Bass, Paul Clements, Rick Kazman, Addison-Wesley, 1998. [Place93] Place, P., Kang, K., Safety-Critical Software: Status Report and Annotated Bibliography. SEI Technical Report CMU/SEI-92-TR-5. Carnegie Mellon University, 1995. [Rakitin01] Rakitin, Steven, Software Verification and Validation for Practitioners and Managers, Boston, MA: Artech House 2001. [Sha88] Sha, L., Rajkumar, R., Lehoczky, J., Ramamritham, K., Mode Change Protocols for Priority-Driven Preemptive Scheduling, Software Engineering Institute Technical Report, CMU/SEI-88-TR-034, 1988. [Sha91] Sha, Lui, Mark H. Klein and John B. Goodenough, Rate Monotonic Analysis for Real-Time Systems,
Carnegie Mellon Introduction to Real-Time Software and Systems
Software Engineering Institute Technical Report, CMU/SEI-91-TR-6, March 1991. [SIAM96] Inquiry Board Traces Ariane 5 Failure to Overflow Error, SIAM News, Vol. 29, No. 8. (October 1996). http://www.math.ufl.edu/~cws/3114/ariane-siam.html [Stankovic88] Stankovic, J., Misconceptions About Real-Time Computing: A Serious Problem for Next-Generation Systems, IEEE Computer, Vol. 21, No. 10, October 1988. [Suri92] Suri, D., Considerations for testing of real time spacecraft software, American Institute of Aeronautics and Astronautics (AIAA 92- 0998), February 1992. [OMG03] Object Modeling Group (OMG), Unified Modeling Language: Superstructure, Version 2.0. 2003. www.omg.org [Yourdon89] Yourdon, E., Modern Structured Analysis, Prentice Hall, 1989
Carnegie Mellon