embedded systems: oscsl.skku.edu/uploads/ice3028f18/9-os.pdf · 2018-12-04 · ice3028:embedded...

38
ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) Embedded Systems: OS Jinkyu Jeong ([email protected] ) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

Upload: others

Post on 23-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected])

Embedded Systems: OS

Jinkyu Jeong ([email protected])Computer Systems Laboratory

Sungkyunkwan Universityhttp://csl.skku.edu

Page 2: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 2

Standalone Applications

• Often no OS involved

• One large loop

• Microcontroller-based embedded systems

Page 3: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 3

“Real-Time” OS

• Scheduling of threads (or tasks)– Creation and termination of threads– Timing of thread activations

• Synchronization– Semaphores and locks

• Input and output– Interrupt handling with predictable latency

• A small kernel size

Page 4: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 4

Full-Fledged OS

• Applications are huge and complex

• Multiple processes

• Virtual memory– Requires MMU-enabled CPU

• File systems with persistent storage

• Networking: TCP/IP stack

• Security: User vs. kernel space

• Windowing & GUI support

Page 5: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 5

Classification

One Many

One MS/DOSEarly Macintosh

Traditional UNIX

Many

Many embedded OSes

(VxWorks, μClinux, μC/OS-II, ...)

Mach, OS/2, Linux, Windows, Mac OS X,

Solaris, HP-UX

# of

add

rsp

aces

:# threads per

addr space:

Page 6: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected])

Example: μC/OS-II

Page 7: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 7

What is μC/OS-II?

• A priority-based preemptive RT kernel

• Memory footprint: ~20KB

• Written mainly in C (open but not free)

• Ported to over 100 processors

• Manage up to 64 tasks

• Support 8-bit to 64-bit processors

• GUI, file system, etc. modules available

• http://www.micrium.com

Page 8: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 8

Task

• A task is a simple program that thinks it has the CPU all to itself

• Each task has– Its own stack space– A priority based on its importance

• A task contains your application code

• A task is an infinite loop

Page 9: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 9

Task Example

void Task (void *p_arg) {

Do something with argument p_arg;Task initialization;for (;;) {

Processing (your code)Wait for event; /* Time to expire .. */

/* Signal from ISR *//* Signal from task */

Processing (your code)}

}

Page 10: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 10

Task Creation/Deletion

• A task is created by OSTaskCreate()

• Make the new task ready for multitasking

• The followings passed to the kernel– Starting address– Stack– Priority– Arguments passed to the task, etc.

• A task is deleted by OSTaskDel()

Page 11: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 11

Task States

Residesin ROM

(non-active)

Waits forExecution

ContextSwitch

Waitsfor

Event

EventOccurs

orTimeout

Waits for time to expire, message, or signal

Page 12: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 12

Task Priority

• Max 64 priority levels

• 8 levels reserved for OS, 56 levels for user

• Low number means high priority

• Priority changed by OSTaskChangePrio()

• Suspending a task: OSTaskSuspend()

• Resuming a task: OSTaskResume()

Page 13: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 13

Task Synchronization

Semaphore Mailbox Message Queue

OSSemPost()

OSSemPend()

OSMboxPost()

OSMboxPend()

OSQPost()OSQPostFront()

OSQPend()

Page 14: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 14

Semaphores

• OSSemPend()– Counter--– If (counter < 0), the task is blocked and moved to the

wait list– A time-out value can be specified

• OSSemPost()– Counter++– If (counter >= 0), the highest priority task in the wait list

is removed from the wait list

Page 15: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 15

Mailbox

• OSMboxPend()– The message in the mailbox is retrieved– If empty, the task is immediately blocked– A time-out value can be specified

• OSMboxPost()– A message is posted in the mailbox– If there is already a message, returns an error– The task with the highest priority is removed from the

wait list and scheduled to run

Page 16: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 16

Message Queues

• OSQPend()– A message is removed from queue– If empty, the task is moved to the wait list and becomes

blocked

• OSQPost()/OSQPostFront()– A message is appended to the queue– OSQPost(): FIFO, OSQPostFront(): LIFO– The highest-priority pending task receives the message

and scheduled to run, if any

Page 17: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 17

Memory Management

• To reduce memory fragmentation– Use of memory blocks with fixed size– All blocks same size– The size of blocks is configurable

• Creation of a memory partition: OSMemCreate()

• Requesting a memory block: OSMemGet()

• Releasing a memory block; OSMemPut()

Page 18: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected])

Real-Time Scheduling

Page 19: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 19

Real-Time Systems

• Perform a computation to conform to external timing constraints

• Deadline frequency: periodic vs. aperiodic

• Deadline type:– Hard: failure to meet deadline causes system failure– Soft: failure to meet deadline causes degraded response

(best effort, statistical guarantees)

Page 20: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 20

Periodic vs. Aperiodic Tasks

• Periodic task: executes on (almost) every period

• Aperiodic task: executes on demand

• Analyzing aperiodic task sets is harder– Must consider worst-case combinations of task

activations

Page 21: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 21

Real-Time Workload

• Job (unit of work)– A computation, a file read, a message transmission, etc.

• Attributes– Resources required to make progress– Timing parameters

ReleasedAbsolute deadline

Relative deadline

Execution time

Page 22: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 22

Real-Time Task

• Task: a sequence of similar jobs

• Periodic task (p, e)– Its jobs repeat regularly– Period p = inter-release time (0 < p)– Execution time e = maximum execution time (0 < e < p)– Utilization U = e/p

5 10 150

Page 23: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 23

Real-Time Scheduling

• Schedulability– Property indicating whether a real-time system (a set of

real-time tasks) can meet their deadlines

• Real-time scheduling– Determines the order of real-time task executions– Static-priority scheduling: RM– Dynamic-priority scheduling: EDF

Page 24: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 24

Simple Feasibility Test

• Assume:– No resource conflicts– Constant process

execution times

• Require:– T ≥ ∑i Ti– Can’t use more than 100% of the CPU

T1 T2 T3

T

Page 25: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 25

RM

• Rate Monotonic– Optimal static-priority scheduling– Assigns priority according to period– A task with a shorter period has a higher priority

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 26: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 26

RM

• Rate Monotonic– Executes a job with the shortest period

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 27: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 27

RM

• Rate Monotonic– Executes a job with the shortest period

(4,1)

(5,2)

(7,2)

Deadline Miss !

5 10 15

T1

T2

T3

Page 28: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 28

RM

• Utilization bound– Real-time system is schedulable under RM if

– Example: T1(4,1), T2(5,1), T3(10,1)

– Thus, {T1, T2, T3} is schedulable under RM.

å -£ )12( /1 ni nU

78.0)12(3

55.010/15/14/13/1 »-

=++=å iU

Page 29: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 29

RM

• Utilization bound (cont’d)

0.50.60.70.80.9

11.1

1 4 16 64 256 1024 4096

Util

izat

ion

The Number of Tasks

RM Utilization Bounds

å -£ )12( /1 ni nU

~ 69%

Page 30: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 30

RM

• As the number of tasks approaches infinity, the maximum utilization approaches 69%

• RM cannot use 100% of CPU, even with zero context switch overhead

• Must keep idle cycles available to handle worst-case scenario

• However, RM guarantees all tasks will always meet their deadlines

Page 31: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 31

EDF

• Earliest Deadline First – Optimal dynamic priority scheduling– Task with a shorter deadline has higher priority– Executes a job with the earliest deadline

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 32: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 32

EDF

• Earliest Deadline First – Executes a job with the earliest deadline

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 33: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 33

EDF

• Earliest Deadline First – Executes a job with the earliest deadline

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 34: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 34

EDF

• Earliest Deadline First – Executes a job with the earliest deadline

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 35: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 35

EDF

• Optimal scheduling algorithm– If there is a schedule for a set of real-time tasks, EDF can

schedule it

(4,1)

(5,2)

(7,2)

5 10 15

T1

T2

T3

Page 36: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 36

EDF

• Utilization bound– Real-time system is schedulable under EDF if and only if

(cf.) Liu & Layland, “Scheduling algorithms for multi-programming in a hard-real-time environment,” Journal of ACM, 1973.

å £1iU

Page 37: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 37

RM vs. EDF (1)

• Rate Monotonic– Simpler implementation, even in systems without explicit

support for timing constraints– Predictability for the highest priority tasks

• EDF– Full processor utilization– Implementation complexity and runtime overhead due

to dynamic priority management– Misbehavior during overload conditions

Page 38: Embedded Systems: OScsl.skku.edu/uploads/ICE3028F18/9-os.pdf · 2018-12-04 · ICE3028:Embedded Systems Design, Fall 2018, Jinkyu Jeong(jinkyu@skku.edu) 38 RM vs. EDF (2) •Assumptions

ICE3028: Embedded Systems Design, Fall 2018, Jinkyu Jeong ([email protected]) 38

RM vs. EDF (2)

• Assumptions– All tasks are periodic and fully preemptible– All tasks are released at the beginning of period and have

a deadline equal to their period– All tasks are independent– All tasks have a fixed computation time– No task may voluntarily suspend itself– All overheads are assumed to be 0– There is just one processor