Introduction to Real-Time Systems

Slides:



Advertisements
Similar presentations
Washington WASHINGTON UNIVERSITY IN ST LOUIS Real-Time: Periodic Tasks Fred Kuhns Applied Research Laboratory Computer Science Washington University.
Advertisements

Real Time Scheduling.
EE5900 Advanced Embedded System For Smart Infrastructure
Introduction to Embedded Systems Resource Management - III Lecture 19.
CPE555A: Real-Time Embedded Systems
CSE 522 Real-Time Scheduling (4)
An Introduction to Real Time Systems
Mehdi Kargahi School of ECE University of Tehran
1 Swiss Federal Institute of Technology Computer Engineering and Networks Laboratory Embedded Systems Exercise 2: Scheduling Real-Time Aperiodic Tasks.
Module 2 Priority Driven Scheduling of Periodic Task
Basic Real Time Concepts Systems Concepts Real-Time Definitions Events and Determinism CPU Utilization Real-Time System Design Issues Example Real-Time.
1 Multiprocessor and Real-Time Scheduling Chapter 10.
Project 2 – solution code
CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes.
Chapter 13 Embedded Systems
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
Strategic Directions in Real- Time & Embedded Systems Aatash Patel 18 th September, 2001.
Wk 2 – Scheduling 1 CS502 Spring 2006 Scheduling The art and science of allocating the CPU and other resources to processes.
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.
An Introduction and Practical approach to RTOS concepts.
Niranjan Rao Julapelly Real-Time Scheduling [ Chapter 5.5]
Distributed Real-Time systems 1 By: Mahdi Sadeghizadeh Website: Sadeghizadeh.ir Advanced Computer Networks.
 Scheduling  Linux Scheduling  Linux Scheduling Policy  Classification Of Processes In Linux  Linux Scheduling Classes  Process States In Linux.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Real Time Process Control (Introduction)
MM Process Management Karrie Karahalios Spring 2007 (based off slides created by Brian Bailey)
1. Introduction 1.1 Background 1.2 Real-time applications 1.3 Misconceptions 1.4 Issues in real-time computing 1.5 Structure of a real-time system.
Real Time Operating Systems Scheduling & Schedulers Course originally developed by Maj Ron Smith 8-Oct-15 Dr. Alain Beaulieu Scheduling & Schedulers- 7.
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.
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.
Real-Time Scheduling CS 3204 – Operating Systems Lecture 20 3/3/2006 Shahrooz Feizabadi.
Prepare by : Ihab shahtout.  Overview  To give an overview of fixed priority schedule  Scheduling and Fixed Priority Scheduling.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Introduction to Real-Time Systems.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
5 May CmpE 516 Fault Tolerant Scheduling in Multiprocessor Systems Betül Demiröz.
Undergraduate course on Real-time Systems Linköping 1 of 45 Autumn 2009 TDDC47: Real-time and Concurrent Programming Lecture 5: Real-time Scheduling (I)
Special Class on Real-Time Systems
Real-Time Scheduling CS 3204 – Operating Systems Lecture 13 10/3/2006 Shahrooz Feizabadi.
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.
Chapter 3: Real-Time Scheduling and Schedulability Analysis Albert M. K. Cheng.
Introduction to Embedded Systems Rabie A. Ramadan 5.
CSCI1600: Embedded and Real Time Software Lecture 23: Real Time Scheduling I Steven Reiss, Fall 2015.
Dynamic Priority Driven Scheduling of Periodic Task
Introduction to Real-Time Systems
Real-Time Operating System Design
CS333 Intro to Operating Systems Jonathan Walpole.
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.
Distributed Process Scheduling- Real Time Scheduling Csc8320(Fall 2013)
CONCEPTS OF REAL-TIME OPERATING SYSTEM. OBJECTIVE  To Understand Why we need OS?  To identify Types of OS  To Define Real - Time Systems  To Classify.
Real-Time Operating Systems RTOS For Embedded systems.
CPU Scheduling Scheduling processes (or kernel-level threads) onto the cpu is one of the most important OS functions. The cpu is an expensive resource.
Embedded System Scheduling
Introduction to Real-Time Operating Systems
REAL-TIME OPERATING SYSTEMS
Unit OS9: Real-Time and Embedded Systems
EEE 6494 Embedded Systems Design
Multiprocessor and Real-Time Scheduling
Chapter 10 Multiprocessor and Real-Time Scheduling
Presentation transcript:

Introduction to Real-Time Systems

Real Time System “A real time computer system is one in which the correctness of the system behavior depends not only on the logical results of the computation, but also on the physical instant at which these results are produced.” –Kopetz Not necessarily fast, but definitely predictable

Distinguishing Embedded and Real-Time Systems Embedded systems

Non–RTS Utility value remains constant “Utility” is some measurement of value of the computation

Soft RTS Decreasing Utility value after deadline

Hard RTS Zero Utility value after deadline Firm vs. Hard  basically the same, with less drastic results

Example: Cruise Control Regulates speed of car by adjusting the throttle: driver sets a speed and car maintains it. Measures speed through device connected to drive shaft. Hard real-time: drive shaft revolution events. Soft real-time: driver inputs, throttle adjustments.

Example: Manufacturing

Lots of Examples cars: engine control, ABS, drive-by-wire planes: stability, jet engine, fly-by-wire computers: peripherals, applications military: weapons, satellites Small appliances: microwave, thermostat, dishwasher medical: pacemaker, medical monitoring protection: intruder alarm, smoke/gas detection

Terminology System: black box with n inputs and m outputs Response time: time between presentation of a set of inputs and the appearance of the corresponding outputs Utilization: measure of ‘useful’ work a system performs Events: Change of state causing a change of flow-of-control of a computer program

Classification of RT Systems synchronous: events occur at predictable times in the flow-of-control. asynchronous: interrupts. state-based vs. event-based: plane wing is at an angle of 32º (state) plane wing moved up 4º (event) deterministic system: for each possible state and each set of inputs, a unique set of outputs and next state of the system can be determined.

Common Misconceptions “Real fast” is Real-time: a computer system may satisfy an application’s requirement, but no predictability (no real-time resource management). Hardware over-capacity is enough: again, without real-time resource management no appropriate balance of resource distribution.

Static vs. Dynamic RT Systems In a Static System, the environment and workload is assumed to be constant (or at least close) Approach: Prove at design-time that your system meets required timings In a Dynamic System, where the environment may change, we aren’t so lucky Approach: Prove at design-time that your system will meet required timings given certain environmental assumptions Reliability is the measure of how sure we are that correct operation will happen Usually a probability

Operating Systems Real-Time OS: VxWorks, QNX, LynxOS, etc. GPOS: no support for real-time applications, focus on ‘fairness’. BUT, people love GPOSs, e.g., Linux: RTLinux(WindRiver) KURT (Kansas U.) Linux/RT (TimeSys)

RT OSs Determinism / Predictability Standards: Real-Time POSIX 1003.1 Ability to meet deadlines Traditional operating systems non-deterministic Standards: Real-Time POSIX 1003.1 Pre-emptive fixed-priority scheduling Synchronization methods Task scheduling options

RT OS Sampler LynxOS VxWorks Microkernel Architecture Provides scheduling, interrupt, and synchronization support Real-Time POSIX support Easy transition from Linux VxWorks Monolithic Kernel Reduced run-time overhead, but increased kernel size compared to Microkernel designs Supports Real-Time POSIX standards Common in industry Mars missions Honda ASIMO robot Switches MRI scanners Car engine control systems

RT Linux “Workaround”on top of a generic O/S Dual-kernel approach Generic O/S – optimizes average case scenario RTOS – need to consider WORST CASE scenarios to ensure deadlines are met Dual-kernel approach Makes Linux a low-priority pre-emptable thread running on a separate RTLinux kernel Tradeoff between determinism of pure real-time O/S and flexibility of conventional O/S Periodic tasks only (still true?)

RT Process Types static: all scheduling decisions are determined before execution. dynamic: run-time decisions are used. periodic: processes that repeatedly execute aperiodic: processes that are triggered by asynchronous events from the physical world. sporadic: aperiodic processes w/ known minimum inter-arrival jitter between any two aperiodic events

Real-Time Scheduling Schedulers: compile-time or run-time Systems: uniprocessor, multiprocessor We can characterize a task with a few parameters: c computation time s start (release or ready) time d deadline (relative to start time) p period or minimum separation

Preemptive vs. Not Preemptive Scheduling Non-preemptive Scheduling Task execution is preempted and resumed later. Preemption takes place to execute a higher priority task. Offers higher schedulability. Involves higher scheduling overhead due to context switching. Non-preemptive Scheduling Once a task is started executing, it completes its execution. Offers lower schedulability. Has less scheduling overhead because of less context switching

Optimal Scheduler One which may fail to meet the deadline of task only if no other scheduler can Examples include (for uniprocessors) earliest-deadline-first (EDF) least-laxity-first (LLF) Only for independent tasks with no synchronization constraints and no resource requirements

EDF vs FIFO (non-real-time scheduler) Example: task s d c 1 0 5 3 2 0 12 4 3 0 10 4 ready queue: 2, 3, 1 FIFO schedule: 2, 3, 1 (task 1 misses deadline) EDF schedule: 1, 3, 2 (all tasks meet deadlines)