REAL-TIME DISTRIBUTED SYSTEMS Sean McKeon CSc 8320 – Advanced Operating Systems March 23, 2006.

Slides:



Advertisements
Similar presentations
Real Time Scheduling.
Advertisements

EE5900 Advanced Embedded System For Smart Infrastructure
Courseware Scheduling of Distributed Real-Time Systems Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens.
Adapted from A. Burns, B. Dobbing, T. Vardanega: Guide for the use of the Ada Ravenscar Profile in high integrity systems, Univ. of York Tech. Report YCS ,
Tasks Periodic The period is the amount of time between each iteration of a regularly repeated task Time driven The task is automatically activated by.
Module 2 Priority Driven Scheduling of Periodic Task
CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes.
Courseware Basics of Real-Time Scheduling Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens Plads, Building.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
By Group: Ghassan Abdo Rayyashi Anas to’meh Supervised by Dr. Lo’ai Tawalbeh.
CprE 458/558: Real-Time Systems
Misconceptions About Real-time Computing : A Serious Problem for Next-generation Systems J. A. Stankovic, Misconceptions about Real-Time Computing: A Serious.
Real-Time Operating System Chapter – 8 Embedded System: An integrated approach.
EMBEDDED SOFTWARE Team victorious Team Victorious.
Performance Evaluation of Real-Time Operating Systems
An Introduction and Practical approach to RTOS concepts.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
Niranjan Rao Julapelly Real-Time Scheduling [ Chapter 5.5]
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Lecture 5 Operating Systems.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
Real Time Operating Systems Scheduling & Schedulers Course originally developed by Maj Ron Smith 8-Oct-15 Dr. Alain Beaulieu Scheduling & Schedulers- 7.
Dr. M. Munlin Real-Time and Multimedia Systems 1 NETE0516 Operating Systems Instructor: ผ. ศ. ดร. หมัดอามีน หมัน หลิน Faculty of Information Science and.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Real Time Operating Systems Lecture 10 David Andrews
Scheduling policies for real- time embedded systems.
Multiprocessor Real-time Scheduling Jing Ma 马靖. Classification Partitioned Scheduling In the partitioned approach, the tasks are statically partitioned.
Real-Time Operating Systems for Embedded Computing 李姿宜 R ,06,10.
Multiprocessor and Real-Time Scheduling Chapter 10.
Chapter 101 Multiprocessor and Real- Time Scheduling Chapter 10.
Real-Time Systems Mark Stanovich. Introduction System with timing constraints (e.g., deadlines) What makes a real-time system different? – Meeting timing.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
Real Time Scheduling Telvis Calhoun CSc Outline Introduction Real-Time Scheduling Overview Tasks, Jobs and Schedules Rate/Deadline Monotonic Deferrable.
Aravind Venkataraman. Topics of Discussion Real-time Computing Synchronous Programming Languages Real-time Operating Systems Real-time System Types Real-time.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
© 2000 Morgan Kaufman Overheads for Computers as Components Processes and operating systems Operating systems. 1.
Real Time Operating Systems Introduction to Real-Time Operating Systems (Part I) Course originally developed by Maj Ron Smith.
1 VERTAF: An Object-Oriented Application Framework for Embedded Real-Time Systems Pao-Ann Hsiung*, Trong-Yen Lee, Win-Bin See, Jih-Ming Fu, and Sao-Jie.
1 VxWorks 5.4 Group A3: Wafa’ Jaffal Kathryn Bean.
1 Real-Time Scheduling. 2Today Operating System task scheduling –Traditional (non-real-time) scheduling –Real-time scheduling.
CSCI1600: Embedded and Real Time Software Lecture 24: Real Time Scheduling II Steven Reiss, Fall 2015.
2.5 Scheduling. Given a multiprogramming system, there are many times when more than 1 process is waiting for the CPU (in the ready queue). Given a multiprogramming.
Real time scheduling G.Anuradha Ref:- Stallings. Real time computing Correctness of the system depends not only on the logical result of computation,
Introduction to Embedded Systems Rabie A. Ramadan 5.
CSCI1600: Embedded and Real Time Software Lecture 23: Real Time Scheduling I Steven Reiss, Fall 2015.
CS Spring 2009 CS 414 – Multimedia Systems Design Lecture 31 – Process Management (Part 1) Klara Nahrstedt Spring 2009.
Introduction to Real-Time Systems
Real-Time Operating System Design
For a good summary, visit:
Unit - I Real Time Operating System. Content : Operating System Concepts Real-Time Tasks Real-Time Systems Types of Real-Time Tasks Real-Time Operating.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Distributed Process Scheduling- Real Time Scheduling Csc8320(Fall 2013)
Real-Time Operating Systems RTOS For Embedded systems.
1 OPERATING SYSTEMS. 2 CONTENTS 1.What is an Operating System? 2.OS Functions 3.OS Services 4.Structure of OS 5.Evolution of OS.
Embedded System Scheduling
REAL-TIME OPERATING SYSTEMS
Lecture 12: Real-Time Scheduling
Advanced Operating Systems CIS 720
Wayne Wolf Dept. of EE Princeton University
Unit OS9: Real-Time and Embedded Systems
EEE 6494 Embedded Systems Design
Chapter 2 Scheduling.
Real Time Operating System
Real-time Software Design
Chapter 6: CPU Scheduling
CSCI1600: Embedded and Real Time Software
Multiprocessor and Real-Time Scheduling
CSCI1600: Embedded and Real Time Software
CS703 - Advanced Operating Systems
Presentation transcript:

REAL-TIME DISTRIBUTED SYSTEMS Sean McKeon CSc 8320 – Advanced Operating Systems March 23, 2006

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

What is a Real-Time System? A real-time system interacts with the external world in a way that involves time. [1] Such a system is required to complete its work and deliver its services on a timely basis. [2] In most cases, a late answer, even if correct, is considered a system failure. [1]

What is a Real-Time System? Examples: Air traffic control system Automobile brake system Aircraft autopilot system Laser eye surgery system Tsunami early detection system

What is a Real-Time System? [2]

What is a Real-Time System? Hard vs. Soft real-time systems A missed deadline in a hard real-time system is unacceptable. [1] An occasional missed deadline in a soft real-time system is okay. [1] Hard real-time systems require validation to prove that the system meets timing constraints. [2]

What is a Real-Time System? Centralized vs. Distributed RTS: A single CPU must be able to handle multiple event streams. [1] Events may occur periodically, aperiodically, or sporadically. [1] As real-time systems become more complex, more processors can be added to distribute the workload. [1] However, distributed CPUs introduce problems with task assignment and interprocessor synchronization. [2]

What is a Real-Time System? [1]

What is a Real-Time System? Myths [1] : 1.Real-time systems are about writing device drivers in assembly code. 2.Real-time computing is fast computing. 3.Fast computers will make real-time systems obsolete.

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

Design Issues Event-triggered vs. Time-triggered systems Event-triggered systems are interrupt driven. Widely used design. [1] However, event shower may cause massive interrupts and system failure. [1] Time-triggered systems use periodic polling during clock ticks to process events. [1] However, some latency may be added in processing each event. [1]

Design Issues Predictability Worst-case completion time of every job is known at design time. [2] Easy to validate in a priority-driven, static, uniprocessor system, when jobs are independent and preemptable. [2] Distributed systems are generally more dynamic and less predictable, but completion times can be bounded if jobs are preemptable and migratable. [2]

Design Issues Fault Tolerance Many real-time systems control safety- critical devices. [1] Active replication (e.g. triple replication and voting) can be used if overhead for synchronization is not too great. [1] Primary backups may cause missed deadlines during cutover. [1] A fail-safe system can halt operation without danger. [1]

Design Issues Language Support Allow programmer to define periodic tasks or threads. [1] Allow programmer to define priority of tasks. [1] Supply access to one or more high- resolution timers [2]. No unbounded operations, like while loops or garbage collection. Examples: Ada 95, Real-time Java, and Real-time C/POSIX

Design Issues Commercial RTOSes Provide a good collection of features and tools. [3] Advantages [2] : Standardized Standardized Modular and Scalable Modular and Scalable Fast and Efficient Fast and Efficient Support priority scheduling, priority inversion control, high-resolution timers, interrupt handling, memory management, and networking. Support priority scheduling, priority inversion control, high-resolution timers, interrupt handling, memory management, and networking. Examples: VRTX, VxWorks, pSOS, LynxOS, QNX, Neutrino. [2, 3]

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

Real-Time Communication Must be predictable and deterministic. [1] Ethernet is unbounded. [1] Token ring can guarantee worst-case delay of kn byte times (i.e. k machines with n-byte packet). [1] Time Division Multiple Access (TDMA) provides fixed-size frames with n slots. Each processor can be assigned one or more dedicated slots. [1]

Real-Time Communication [1]

Real-Time Communication Real-time connections need to be established between distant machines to provide predictability. [1] QoS negotiated in advance to guarantee maximum delay, jitter, and minimum bandwidth. [1] Additional resources needed: memory buffers, table entries, CPU cycles, and link capacity. [1] Fault tolerance: Duplicate packets over duplicate links (information and physical redundancy). [1]

Real-Time Communication Time-Triggered Protocol (TTP) used in the MARS real- time distributed system. [1] Redundancy [1] : Each node is comprised of one or more CPUs. Each node is comprised of one or more CPUs. Nodes connected by dual TDMA networks. Nodes connected by dual TDMA networks. Every node maintains the global state of the system: mode, time, and membership. Every node maintains the global state of the system: mode, time, and membership. Clock synchronization is critical - each node uses packet skew to adjust clocks [1]. Node gets rejected by all receiving nodes if [1] : Message is missing from expected slot. Message is missing from expected slot. Expected acknowledgement is missing. Expected acknowledgement is missing. Expected global state doesn’t match (CRC). Expected global state doesn’t match (CRC). Periodic ‘initialization’ packet broadcast with global state. [1]

Real-Time Communication [1]

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

Real-Time Scheduling Scheduler keeps track of state of each task (Running, Ready, or Blocked) and decides which task should be running. [3] Scheduling algorithm choices [1] : Hard vs. Soft real-time Hard vs. Soft real-time Preemptive vs. Nonpreemptive Preemptive vs. Nonpreemptive Dynamic vs. Static Dynamic vs. Static Centralized vs. Decentralized Centralized vs. Decentralized A set of m periodic tasks is schedulable if the total workload can be handled by N processors. [1]

Real-Time Scheduling Dynamic Scheduling - scheduling decisions are made during run-time. [1] Algorithms [1] : Rate Monotonic Algorithm - task priority is based on execution frequency. Rate Monotonic Algorithm - task priority is based on execution frequency. Earliest Deadline First - scheduler keeps tasks queued in closest-deadline-first order. Earliest Deadline First - scheduler keeps tasks queued in closest-deadline-first order. Least Laxity - scheduler prioritizes tasks based on least time until deadline. Least Laxity - scheduler prioritizes tasks based on least time until deadline. None of these algorithms are provably optimal in a distributed system [1].

Real-Time Scheduling Static Scheduling - scheduling decisions are made in advance. [1] Tasks are partitioned and statically bound to processors. [2] The scheduling algorithm is executed before run-time and uses heuristics to find a good schedule [1]. Each processor’s scheduler simply follows the order of execution stored in a table. [1]

Real-Time Scheduling [1]

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

Whirlwind/SAGE (Semi-Automatic Ground Environment) computer built by MIT and IBM for NORAD is first system to operate in real time. Distributed network of radars for tracking bombers SABER (Semi-Automatic Business Environment Research), now SABRE, computer reservations system developed by IBM for American Airlines RDOS (Real-time Disk Operating System) released by Data General for their Nova and Eclipse minicomputers. 1980s - Commercial RTOSes developed: pSOS (Software Components Group), VRTX (Ready Systems), VxWorks (Wind River Systems), QNX (Quantum Software), LynxOS (LynuxWorks).

History of Real-Time Systems Recent Research: 1996 – BAG: Real-Time Distributed OS [4] 1996 – BAG: Real-Time Distributed OS [4] 1998 – SROS: Dynamically Scalable Distributed RTOS [5] 1998 – SROS: Dynamically Scalable Distributed RTOS [5] 2002 – TMO-Linux: Linux-based RTOS supporting execution of Time-triggered Message-triggered Objects [6] 2002 – TMO-Linux: Linux-based RTOS supporting execution of Time-triggered Message-triggered Objects [6] 2004 – Autonomic Distributed Real-Time Systems [7] 2004 – Autonomic Distributed Real-Time Systems [7]

REAL-TIME DISTRIBUTED SYSTEMS What is a Real-Time System? Design Issues Real-Time Communication Real-Time Scheduling History of Real-Time Systems References

References [1] A.S. Tanenbaum, Distributed Operating Systems, Prentice-Hall, Upper Saddle River, New Jersey, [2] J.W.S. Liu, Real-Time Systems, Prentice-Hall, Upper Saddle River, New Jersey, [3] D.E. Simon, An Embedded Software Primer, Addison-Wesley, Boston, [4] B.T. Akgun, E. Peksen, A.E. Harmanci, N. Erdogan, G. Menderes, BAG Real-Time Distributed Operating System, International Conference On High Performance Computing, pp , December [5] S.I. Jun, B.G. Jung, Y.J. Cha, H.K. Chang, H.K. Kim, E.H. Lee, H.H. Lee, Y.M. Kim, SROS: A Dynamically-Scalable Distributed Real- Time Operating System For ATM Switching Network, IEEE Global Telecommunications Conference GLOBECOM 98, Vol. 5, pp , 1998.

References [6] H.J. Kim, S.H. Park, J.G. Kim, M.H. Kim, K.W. Rim, TMO-Linux: A Linux-Based Real-Time Operating System Supporting Execution Of TMOs, IEEE International Symposium on Object-Oriented Real- Time Distributed Computing ISORC, pp , [7] F.J. Rammig, Autonomic Distributed Real-Time Systems: Challenges And Solutions, IEEE International Symposium on Object-Oriented Real-Time Distributed Computing ISORC, pp , May 2004.

Real-Time System Links