Today s topic: RTOS. OS kernel. Overall Stucture of Computer Systems. API/OS User Interface/Shell, Windows. Filesystem and Disk management.

Similar documents
Lecture 3 Theoretical Foundations of RTOS

Performance Comparison of RTOS

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Predictable response times in event-driven real-time systems

REAL TIME OPERATING SYSTEMS. Lesson-10:

Embedded Systems. 6. Real-Time Operating Systems

Chapter 6, The Operating System Machine Level

Programming real-time systems with C/C++ and POSIX

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

Real Time Programming: Concepts

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Linux 2.4. Linux. Windows

SYSTEM ecos Embedded Configurable Operating System

The Real-Time Operating System ucos-ii

Real-Time Scheduling 1 / 39

Operating Systems 4 th Class

Enhancing the Monitoring of Real-Time Performance in Linux

Real-Time Operating Systems.

Linux Process Scheduling Policy

Real Time Operating Systems. Tajana Simunic Rosing Department of Computer Science and Engineering University of California, San Diego.

Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses

Real- Time Scheduling

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS

Real Time Scheduling Basic Concepts. Radek Pelánek

Operating Systems. III. Scheduling.

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

What is best for embedded development? Do most embedded projects still need an RTOS?

Operating Systems Concepts: Chapter 7: Scheduling Strategies

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Processes and Non-Preemptive Scheduling. Otto J. Anshus

System Software and TinyAUTOSAR

Real-Time Operating Systems With Example PICOS18. What is an Operating System?

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Real-time Operating Systems. VO Embedded Systems Engineering Armin Wasicek

Chapter 3 Operating-System Structures

Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Real Time Operating Systems. Tajana Simunic Rosing Department of Computer Science and Engineering University of California, San Diego.

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.

Weighted Total Mark. Weighted Exam Mark

Processor Scheduling. Queues Recall OS maintains various queues

W4118 Operating Systems. Instructor: Junfeng Yang

Tasks Schedule Analysis in RTAI/Linux-GPL

Real-time KVM from the ground up

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

the high-performance embedded kernel User Guide Version 5.0 Express Logic, Inc Toll Free 888.THREADX FAX

OPERATING SYSTEMS SCHEDULING

2. is the number of processes that are completed per time unit. A) CPU utilization B) Response time C) Turnaround time D) Throughput

How To Compare Real Time Scheduling To A Scheduled Scheduler On Linux On A Computer System With A Visualization System

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015

Operating System Aspects. Real-Time Systems. Resource Management Tasks

Embedded & Real-time Operating Systems

Operating System Manual. Realtime Communication System for netx. Kernel API Function Reference.

A Predictable and IO Bandwidth Reservation Task Scheduler

Process Description and Control william stallings, maurizio pizzonia - sistemi operativi

Operating System Components

Linux A multi-purpose executive support for civil avionics applications?

Operating System Tutorial

Operating Systems for Wireless Sensor Networks: A Survey

CPU Scheduling Outline

ICS Principles of Operating Systems

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems

Comparison between scheduling algorithms in RTLinux and VxWorks

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

The Design and Implementation of Real-Time Schedulers in RED-Linux

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Lecture 25 Symbian OS

A Survey of Fitting Device-Driver Implementations into Real-Time Theoretical Schedulability Analysis

COS 318: Operating Systems. Virtual Machine Monitors

CS161: Operating Systems

Introduction. Scheduling. Types of scheduling. The basics

System Software Integration: An Expansive View. Overview

Real-Time Scheduling Strategy for Wireless Sensor Networks O.S

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1

Embedded & Real-time Operating Systems Communication Libraries

Shared Address Space Computing: Programming

Real Time Operating System for Embedded DSP Applications

ELEC 377. Operating Systems. Week 1 Class 3

CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems

OS OBJECTIVE QUESTIONS

Operating Systems. Lecture 03. February 11, 2013

1. Computer System Structure and Components

Chapter 2 System Structures

Aperiodic Task Scheduling

Embedded OS. Product Information

Implementing and Using Execution Time Clocks in Ada Hard Real-Time Applications

Process Scheduling CS 241. February 24, Copyright University of Illinois CS 241 Staff

Chapter 2: OS Overview

An Implementation Of Multiprocessor Linux

Real-Time Software. Basic Scheduling and Response-Time Analysis. René Rydhof Hansen. 21. september 2010

This tutorial will take you through step by step approach while learning Operating System concepts.

What is an RTOS? Introduction to Real-Time Operating Systems. So what is an RTOS?(contd)

Hard Real-Time Linux

CPU Scheduling. CPU Scheduling

Transcription:

Today s topic: RTOS 1 Overall Stucture of Computer Systems Application Program Application Program Application Program API/OS User Interface/Shell, Windows Filesystem and Disk management OS kernel Hardware 2 1

Operating System Provides Hardware abstraction layer Interrupt processing Device drivers: I/O Libraries - 10 times bigger than a minimal OS e.g. the firmware on an automotive ECU is 10% RTOS and 90% device drivers Environment for executing program(s) Process/thread management, process communication Stable storage Filesystems API Application Programming Interface System calls Requirements on RTOS Determinism Deterministic system calls Responsiveness (quoted by vendors) Fast process (thread) switch Fast interrupt response Support for timely concurrent processing Real-time Multi-tasking synchronization User control over OS policies Mainly scheduling, many priority levels Memory support (especially embedded) E.g. pages locked in main memory E.g. cache partitioning/coloring on multicore Controlled code size E.g. Micro kernel, Contiki, 1000 loc, OSE small kernel, 2k 2

typical footprints code size 1000kb POSIX PSE54 Linux real-time 100kb POSIX PSE51/52 µitron SHaRK ecos VXworks 10kb 1kb OSEK/VDX L4 threadx ERIKA tinyos Contiki ThreadX Implemented as a C library. Only the features used by the application are brought into the final image. The minimal footprint is under 2KB on Microcontrollers. Minimal Kernel Size: Under 2K bytes Queue Services: 900 bytes Semaphore Services: 450 bytes Mutex Services: 1200 bytes Block Memory Services: 550 bytes Minimal RAM requirement: 500 bytes Minimal ROM requirement: 2K bytes 6 3

Existing RTOS: 4 categories Priority based kernel for embbeded applications e.g. POSIX (IEEE standard 1003.1-1988, UNIX based), OSE (cell phone), VxWorks (space and robotics), OSEK/VDX (automotive), QNX (automotive and multimedia)... Many of them are commercial kernels Applications should be designed and programmed to suite priority-based scheduling e.g deadlines as priority etc Real Time Extensions of existing time-sharing OS e.g. Real time Linux, Real time NT by e.g locking RT tasks in main memory, assigning highest priorities etc Research RT Kernels e.g. SHARK, TinyOS Run-time systems for RT programmingn languages e.g. Ada, Erlang, Real-Time Java... 7 Micro-kernel architecture External interrupts System calls Hardware/software exceptions Clock interrupts Immediate Interrupt services Kernel Case of...... Create task Suspend task Terminate task Create timer Sleep-timer Timer-notify Exception handling Other system calls Time services Scheduling 8 4

POSIX: an example RTOS POSIX: Portable Operating System Interface for Unix IEEE standard 1003.1-1988 A typical footprint around 1M Use profiles to support subsets of the standard A profile lists a set of services typically used in a given environment POSIX real time profiles are specified by the ISO/IEEE standard 1003.13 POSIX 1003.13 profiles PSE51 minimal real-time system profile (around 50-150 Kbytes) no file system no memory protection Mono-process multi-thread kernel PSE52 real-time controller system profile PSE51 + file system + asynchronous I/O PSE53 dedicated real-time system profile PSE51 + process support and memory protection PSE54 multi-purpose real-time system profile PSE53 + file system + asynchronous I/O 5

RT Linux: an example RTOS RT-Linux is an operating system, in which a small real-time kernel co-exists with standard Linux kernel: The RT kernel sits between standard Linux kernel and HW. the standard Linux Kernel sees this RT layer as actual HW The RT kernel intercepts all hardware interrupts Only for those RT Linux-related interrupts, the appropriate ISR is run. All other interrupts are held and passed to the standard Linux kernel as software interrupts when the standard Linux kernel runs. The RT kernel assigns the lowest priority to the standard Linux kernel. Thus the realtime tasks will be executed in real-time User can create RT tasks and achieve correct timing The user can decide on scheduling algorithms, priorities, execution freq, etc. RT tasks have direct access to hardware, and they do NOT use virtual memory. 11 RT Linux: an example RTOS 12 6

Linux v.s. RTLinux Linux Non-real-time Features Dymanic scheduling, not designed for real-time tasks -- good average performance or throughput Non-preemptible. Un-predictable delays Uninterruptible system calls, the use of interrupt disabling, virtual memory support (context switch may take hundreds of microsecond). Coarse timer resolution 1-10ms (e.g. 4ms) RTLinux Real-time Features Real-time scheduling (EDF, RMS, FPS): guarantee hard deadlines Pre-emptible kernel Predictable delays (by its small size and limited operations) Finer timer resolution (can be nanos/too much overheads, 50micrs...) 13 OSEK /VDX: an example RTOS (automotive applications) Founded in May 1993 Joint project of the German automotive industry OSEK (German): Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug Initial project partners: BMW, Bosch, DaimlerChrysler, Opel, Siemens, VW 1994 PSA & Renault joined OSEK Similar project of the French automotive industry VDX Vehicle Distributed executive OSEK/VDX resulted from the merge of the two projects http://www.osek-vdx.org 14 7

Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 15 Time mangement A high resolution hardware timer is programmed to interrupt the processor at fixed rate Time interrupt Each time interrupt is called a system tick (time resolution) Normally, the tick can vary in microseconds The tick may be selected/configured by the user All time parameters for tasks should be the multiple of the tick OBS: too fine too much overheads, too coarse too long latency System time = 32 bits One tick = 1ms: your system can run 50 days One tick = 20ms: your system can run 1000 days = 2.5 years One tick = 50ms: your system can run 2500 days= 7 years 16 8

Time interrupt routine Save the context of the task in execution Increment the system time by 1, if current time > system lifetime, generate a timing error Update timers (reduce each counter by 1) A queue of timers Activation of periodic tasks in idling state Schedule again - call the scheduler Other functions e.g. (Remove all tasks terminated -- deallocate data structures e.g TCBs) (Check if any deadline misses for hard tasks, monitoring) load context for the first task in ready queue 17 Basic functions of RTOS kernel Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 18 9

What is a Task? 19 Process vs. Thread & Task A process is a program in execution, corresponding to one application e.g. mail browser, web browser etc Process Application Several threads run within one process A thread is a lightweight process, in the sense that different threads share the same address space (within the same application), with all code, data, process status in the main memory, which gives Shorter creation and context switch times, and faster IPC Tasks are implemented as threads in RTOS. 20 10

Task: basic notion in RTOS Task = thread (lightweight process) A sequential program in execution It may communicate with other tasks It may use system resources such as memory blocks We may have timing constraints for tasks 21 Typical RTOS Task Model Each task a triple: (execution time, period, deadline) Usually, deadline = period Can be initiated any time during the period Initiation Execution time Deadline Time Period 11

Task Classification (1) Periodic tasks: arriving at fixed frequency, can be characterized by 3 parameters (C,D,T) where C = computing time D = deadline T = period (e.g. 20ms, or 50HZ) Often D=T, but it can be D<T or D>T Also called Time-driven tasks, their activations are generated by timers 23 Task Classification (2) Sporadic tasks: their activations are separated with minimum interarrival time Tmin In the worst case, they are periodic tasks with period Tmin Non-Periodic or aperiodic tasks, also known as Eventdriven: their activations may be generated by external interrupts 24 12

Task classification (3) Hard real-time systems where it is absolutely imperative that responses occur within the required deadline. E.g. Flight control systems, automotive systems, robotics etc. Soft real-time systems where deadlines are important but which will still function correctly if deadlines are occasionally missed. E.g. Banking system, multimedia etc. A single system may have both hard and soft real-time tasks. In reality many systems will have a cost function associated with missing each deadline. 25 Classification of RTS s value value Hard deadline soft deadline value value On-time deadline no deadline 26 13

Task states (1) Ready Running Waiting/blocked/suspended... Idling Terminated 27 Task states (2) Activate Ready preemption Dispatch Runnig Terminate signal wait Blocked 28 14

Task states (Ada, delay) timeout Idling delay Activate Ready preemption Dispatch Runnig Terminate signal wait Blocked 29 Task states (Ada95) declared timeout Idling Sleep created Activate Ready preemption Dispatch Runnig Terminate signal wait Blocked 30 15

TCB (Task Control Block) Id Task state (e.g. Idling) Task type (hard, soft, background...) Priority Other Task parameters period comuting time (if available) Relative deadline Absolute deadline Context pointer Pointer to program code, data area, stack Pointer to resources (semaphors etc) Pointer to other TCBs (preceding, next, waiting queues etc) 31 Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 32 16

Task managment Task creation: create a newtcb Task termination: remove the TCB Change Priority: modify the TCB... State-inquiry: read the TCB 33 Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 34 17

Handling an Interrupt 1. Normal program execution 2. Interrupt occurs 3. Processor state saved 4. Interrupt routine runs 7. Normal program execution resumes 6. Processor state restored 5. Interrupt routine terminates Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 36 18

Memory Management/Protection Standard methods Block-based, Paging, hardware mapping for protection No virtual memory for hard RT tasks Lock all pages in main memory Many embedded RTS do not have memory protection tasks may access any block Hope that the whole design is proven correct and protection is unneccessary to achive predictable timing to avoid time overheads Most commercial RTOS provide memory protection as an option Run into fail-safe mode if an illegal access trap occurs Useful for complex reconfigurable systems 37 Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 38 19

Exception handling Exceptions e.g missing deadline, running out of memory, timeouts, deadlocks, divide by zero, etc. Error at system level, e.g. deadlock Error at task level, e.g. timeout Standard techniques: System calls with error code Watch dog However, difficult to know all senarios Missing one possible case may result in disaster This is one reason why we need Modelling and Verification 39 Watch-dog A task, that runs (with high priority) in parallel with all others If some condition becomes true, it should react... Loop begin... end until condition The condition can be an external event, or some flags Normally it is a timeout 40 20

Example Watch-dog (to monitor whether the application task is alive) Every 100ms, it should check: if flag=1 then OK otherwise if flag has been 0 for 20s, send out a warning Loop if flag==1 then { next :=system_time; flag :=0 } else if system_time> next+20s then WARNING; sleep(100ms) end loop Application-task flag:=1...... computing something...... flag:=1... flag:=1... 41 Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 42 21

Task states timeout Idling delay Activate Ready preemption Dispatch Runnig Terminate signal wait Blocked 43 Scheduling algorithms Sort the READY queue acording to Priorities (HPF) Execution times (SCF) Deadlines (EDF) Arrival times (FIFO) Classes of scheduling algorithms Preemptive vs non preemptive Off-line vs on-line Static vs dynamic Event-driven vs time-driven 44 22

Challenges for RTOS Different performance criteria GPOS: maximum average throughput RTOS: deterministic behavior Optimal schedules difficult to find Hard to get complete knowledge How to garuantee Timing Constraints? 45 Schedulability A schedule is an ordered list of tasks (to be executed) and a schedule is feasible if it meets all the deadlines A queue (or set) of tasks is schedulable if there exists a feasible schedule New tasks scheduling Dispatching Running Termination Preemption How do we know all possible queues (situations) are schedulable? Scheduling theory (later lectures) 46 23

Basic functions of RT OS Time management Task mangement Interrupt handling Memory management Exception handling Task scheduling Task synchronization 47 Challenges for RTOS (task synchronization) Critical section (data, service, code) protected by lock mechanism e.g. Semaphore etc. In a RTOS, the maximum time a task can be delayed because of locks held by other tasks should be less than its timing constraints. Deadlock, livelock, starvation Some deadlock avoidance/prevention algorithms are too complicate and indeterministic for real-time execution. Simplicity preferred, e..g. all tasks always take locks in the same order. Priority inversion using priority-based task scheduling and locking primitives should know the priority inversion danger: a medium-priority job runs while a highpriority task is ready to proceed. 48 24

Synchronization primitives Semaphore: counting semaphore and binary semaphore A semaphore is created with initial_count, which is the number of allowed holders of the semaphore lock. (initial_count=1: binary sem) Sem_wait will decrease the count; while sem_signal will increase it. A task can get the semaphore when the count > 0; otherwise, block on it. Mutex: similar to a binary semaphore, but mutex has an owner. a semaphore can be waited for and signaled by any task, while only the task that has taken a mutex is allowed to release it. Spinlock: lock mechanism for multi-processor systems, A task wanting to get spinlock has to get a lock shared by all processors. Barrier: to synchronize a lot of tasks, they should wait until all of them have reached a certain barrier. 49 25