32
Real-Time Operating Systems Design and Implementation Dr. Kuan-Hsun Chen LS 12, TU Dortmund October 10, 2019 Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 1 / 32

Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Real-Time Operating Systems Design andImplementation

Dr. Kuan-Hsun Chen

LS 12, TU Dortmund

October 10, 2019

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 1 / 32

Page 2: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Outline

Organization

Introduction to Real-Time Systems

FreeRTOS

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 2 / 32

Page 3: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Organization

• Instructor: Kuan-Hsun Chen, [email protected]

• Office hours: Monday, 13:00-14:00. Please make anappointment by email

• Grading:• Oral exam• Achievement at least 50% of the total exercises points

• References• Textbooks:

• Richard Barry, “Using the FreeRTOS Real Time Kernel - aPractical Guide,” Real Time Engineers Ltd, 2011. ISBN:978-1-4467-6274-5

• Giorgio C. Buttazzo, “Hard Real-Time Computing Systems:Predictable Scheduling Algorithms and Applications”,Springer, Third Edition, 2011. ISBN: 978-1-4614-0675-4

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 3 / 32

Page 4: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Course Description

Time: Thursday, 10:15-11:45 and 12:15-13:45(or a block session from 10:15 to 13:15)

Place: Room U08 (CILAB), OH16

Start: on 10.10.2019

• Prerequisite: Embedded systems or equivalent.• Desirable skills: Basic knowledge of Operating Systems and C

Programming

• Please register in the exercise• Maximum 20 students!

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 4 / 32

Page 5: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Course Calendar and Topics

• Topics:• Organization and introduction• Real-time operating systems• Real-time tasks management• Queues• Interrupts• Schedulers• Resource sharing and resource reservation servers

• If we have time:• Kernel internals• Drivers and libraries

• Course calender: https://ls12-www.cs.tu-dortmund.de/

daes/en/lehre/courses/wintersemester-2019/

real-time-operating-systems-design-and-implementation-ws-20192020.

html

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 5 / 32

Page 6: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Outline

Organization

Introduction to Real-Time Systems

FreeRTOS

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 6 / 32

Page 7: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Computing Systems

Desktops/Servers/Clusters

• Mainframe computing(60’s-70’s)

• Desktop computing andthe Internet (80’s-90’s)

• Millions of units per yearfor purchase

• High performancecomputing

• Optimize for averageresponse time

Embedded Systems

• ubiquitous/physicalcomputing (00’s-?)

• Billions of units per yearfor purchase

• Internet-of-Thing (IOT),safety-critical system

• Timeliness is important

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 7 / 32

Page 8: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Embedded Systems

Complex “best effort” systems• Mobile telecommunications

• Consumer products, e.g., digitalcamera, digital video, etc.

• Good reactivity and gooddependability

Critical control systems• Automated aircraft landing

systems

• Automotive control for gearing,ABS, airbag, etc.

• High reactivity and highdependability

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 8 / 32

Page 9: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Real-Time Systems

• Dual notations of correctness:• Logical correctness (“the results are correct”)

• Requires functional analysis

• Temporal correctness (“the results are delivered in/on time”)• Requires non-functional analysis

• High reactivity and high dependability are more importantthan performance

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 9 / 32

Page 10: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Examples for Real-Time Systems

• Chemical & Nuclear Power Plants

• Railway Switching Systems

• Flight Control Systems

• Space Mission Control

• Automotive Systems

• Robotics

• Telecommunications Systems

• Stock Market, Trading System,

• Information Access

• Multimedia Systems

• Virtual Reality

• . . .. . .

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 10 / 32

Page 11: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Classifications of Real-Time Systems

time

Utility

dr−∞

time

Utility

dr

time

Utility

dr

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 11 / 32

Hard Real-Time Systems

Catastrophic if some deadlinesare missed

Firmed Real-Time Systems

The results are useless if thedeadlines are missed

Soft Real-Time Systems

The results are not very usefulif the deadlines are missed

Page 12: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Fundamentals

• Algorithm:• It is the logical procedure to solve a certain problem• It is informally specified a sequence of elementary steps that an

“execution machine” must follow to solve the problem• It is not necessarily (and usually not) expressed in a formal

programming language

• Program:• It is the implementation of an algorithm in a programming

language• It can be executed several times with different inputs

• Process:• An instance of a program that given a sequence of inputs

produces a set of outputs

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 12 / 32

Page 13: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Operating System

An operating system is a program that

• acts as an intermediary between a user of a computer and thecomputer hardware by providing interfaces

• provides an “abstraction” of the physical machine (forexample, a file, a virtual page in memory, etc.)

• manages the access to the physical resources of a computingmachine

• makes the computer system convenient to use

• executes user programs and makes solving user problems easier

• and more . . . . . .

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 13 / 32

Page 14: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Computer System Components

1 Hardware: provides basic computing resources (CPU, memory,I/O devices)

2 Operating system: controls and coordinates the use of thehardware among the various application programs for thevarious users

3 Applications programs: define the ways in which the systemresources are used to solve the computing problems of theusers (compilers, database systems, video games, businessprograms)

4 Users (people, machines, other computers)

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 14 / 32

Page 15: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Abstract View of System Components

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 15 / 32

Page 16: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Abstraction

• Why abstraction?• Programming the HW directly has several drawbacks

• It is difficult and error-prone• It is not portable

• A simple example to read a text file from a hard disk anddisplay on the screen

• Without a proper interface, the whole process will need toinvolve many interactions with the hardware devices

• Application programming interface (API)• Provides a convenient and uniform way to access to one

service so that• HW details are hidden to the high level programmer• One application does not depend on the HW• The programmer can concentrate on higher level tasks

• Examples• read, write, open system calls in standard unix/linux OS.

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 16 / 32

Page 17: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

What is A Real-Time OS?

• Often used as a control device in a dedicated application suchas controlling scientific experiments, medical imaging systems,industrial control systems, and some display systems

• Well-defined fixed-time constraints• System allows access to sensitive resources with defined

response times:• Maximum response times are required for hard real-time

systems• Average response times could be okay for soft real-time

systems

• For example, context switch overhead• 10 ns, 10 µs, 10 sec

• Taxonomy of RTOSes• RT extensions to commercial timesharing systems• Research kernels• Small, fast, proprietary kernels

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 17 / 32

Page 18: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

RT Extensions

• A common approach is to extend Unix• Linux: RT-Linux, RTLinuxPro, RTAI, etc.• Posix: RT-POSIX

• Also done for Windows based on virtualization, e.g. RTOSWin

• Advantages• Richer environment, more functionality.• These systems use familiar interfaces, even standards.

• Disadvantages• Generally slower and less predictable.• Timers too coarse• Memory management has no bounded execution time• Intolerable overhead, excessive latency

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 18 / 32

Page 19: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

An Example: RTAI

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 19 / 32

Page 20: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Research Real-Time Kernels

Many researchers built a new kernel for one of these reasons:

• Challenge basic assumptions made in timesharing OS

• Developing real-time process models

• Developing real-time synchronization primitives

• Developing solutions facilitating timing analysis

• Strong emphasis on predictability or fault tolerance

• Investigate the object-oriented approach

• Real-time multiprocessor/multicore support

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 20 / 32

Page 21: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Small, Fast, Proprietary Kernels

• Usually used for small embedded systems

• Typically specialized for one particular application

• Typically stripped down and optimized versions:• Fast context switch• Small size, limited functionality• Low interrupt latency• Fixed or variable sized partitions for memory management

• FreeRTOS, PICOS18, pSOS, MicroC OS, . . . . . .

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 21 / 32

Page 22: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Reasons for concurrency

• Functional• allow multiple users• perform many operations concurrently

• Performance• take advantage of blocking time• parallelism in multi-processor machines

• Expressive Power• many control application are inherently concurrent• concurrency support helps in expressing concurrency, making

application development simpler

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 22 / 32

Page 23: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Multi-Tasking

• The execution entities (tasks, processes, threads, etc.) arecompeting from each other for shared resources

• In FreeRTOS, we will only use “tasks” for the rest of thewhole course.

• Scheduling decision policy is needed• When to schedule an entity?• Which entity to schedule?• How to schedule entities?

• The focus of this course: implement and analyze schedulingalgorithms and timing sensitive features in real-time systems

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 23 / 32

Page 24: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Context switch

• It happens when• A task instance has been “preempted” by another

higher-priority task instance• The task instance blocks due to some condition• In time-sharing systems, the task instance has completed its

“round” and it is the turn of some other task instance

• We must be able to restore the task later• Therefore we must save its state before switching to another

task instance

Definitions of Terms

• A task is a re-incurring entity which allows for multipleinitializations of task instances

• A task instance (job) is a single execution unit for are-incurring task

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 24 / 32

Page 25: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Time Sharing

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 25 / 32

Page 26: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Scheduling Latency

latency =interrupt latency + handler duration +scheduler latency + scheduler duration

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 26 / 32

Page 27: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Outline

Organization

Introduction to Real-Time Systems

FreeRTOS

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 27 / 32

Page 28: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Introduction to FreeRTOS

• Cross platform OS

• Open source

• Modular design

• Light-weighted and micro-kernel approach

• features for powerful trace and stackoverflow detections

• Latest version supported by Amazon (v10)

• http://www.freertos.org

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 28 / 32

Page 29: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

FreeRTOS

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 29 / 32

Page 30: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Amazon-FreeRTOS

https://docs.aws.amazon.com/freertos/latest/

userguide/what-is-amazon-freertos.html

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 30 / 32

Page 31: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

Key Components in FreeRTOS

• Task Management• To create an execution entity• Fixed-priority scheduling

• Queue Management• To create and manipulate real-time message queues for

inter-task communications

• Interrupt Management• To allow different interrupt service routines (ISR)• Deferred interrupt scheme

• Resource and Memory Management• Critical sections and semaphores• Priority inversion and priority inheritance protocol

Next week we don’t have lecture!

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 31 / 32

Page 32: Real-Time Operating Systems Design and Implementation · Key Components in FreeRTOS Task Management To create an execution entity Fixed-priority scheduling Queue Management To create

What is Google Summer of Code?

Google Summer of Code is a global program focused on bringingmore student developers into open source software development.(Feb. 26 - Sep. 2, 2019)Students work with an open source organization on a 3 monthprogramming project during their break from school.

Dr. Kuan-Hsun Chen (LS 12, TU Dortmund) 32 / 32