Tải bản đầy đủ (.pdf) (52 trang)

Bài giảng Real-time Systems: Week 4: Basic concepts of scheduling

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (676.18 KB, 52 trang )

Real-time Systems
Week 4:
Basic concepts of scheduling
Ngo Lam Trung

Dept. of Computer Engineering

NLT, SoICT, 2015


Contents
 Introduction

of scheduling

 Constraints

of real-time tasks

 Classification
 Scheduling

of scheduling algorithms

anomalies

NLT, SoICT, 2015


Introduction
 Why



do we need scheduling?

There are always more tasks than processors.
 Multiple tasks run concurrently on uniprocessor
system.


 Scheduling

policy: the criterion to assign the
CPU time to concurrent tasks

 Scheduling

algorithm: the set of rules that
determines the order in which tasks are
executed

 What is the main difference between scheduling in
RTOS and GPOS?
NLT, SoICT, 2015


An illustration of scheduling (1)


All activated tasks enters “ready queue” at first.




The scheduler selects one task in the Ready queue according to the
tasks’ priorities allocated based on the scheduling algorithm.



The selected task is dispatched and becomes in “running” state.



After the selected task is completed, it is removed from the Ready
queue.
Scheduler

task

activate

Start/
dispatched
Ready queue

terminate

running
preempted

released

Wait queues


Wait/blocked
NLT, SoICT, 2015


Preemption


The running task can be interrupted at any point, so that a
more important task that arrives can immediately gain the
processor.



The to-be-preempted task is interrupted and inserted to
the ready queue, while CPU is assigned to the most
important ready task which just arrived.



Preemption is the solution for dynamic OS.



Why preemption is needed in real-time systems?






Exception handling of a task
Treating with different criticalities of tasks, permits to anticipate
the execution of the most critical activities
Efficient scheduling to improve system responsiveness
FreeRTOS
NLT, SoICT, 2015


Notation of scheduling (1)
J

= {J1,…,Jn}

 :R+N


A set of tasks

A schedule

A function mapping from time to task to assign task to
CPU

If (t)=i for t[t1,t2), task Ji is executed during time
duration [t1,t2).
 If (t)=0, the CPU is idle.


 Simple


translation



CPU time is divided in to time slices [t1,t2)



During a time slice (t)=const, representing the task
that is executed
NLT, SoICT, 2015


Notation
of
scheduling(2)
Notation of scheduling (2)
Idle

J1

J2

J3

3

idle

(t)


2
1

A time slice
t1

t2

t3

t4

Context switching are performed at these times
NLT, SoICT, 2015


Notation of scheduling (3)
 Preemptive


A schedule in which the running task can be arbitrarily
suspended at any time, to assign the CPU to another
task

 Feasible


schedule


schedule

A schedule that all tasks can be completed according to
a set of specified constraints

 Schedulable


set of tasks

A set of tasks that has at least one feasible schedule by
some scheduling algorithm

NLT, SoICT, 2015


Example of preemptive schedule

J1

t

J2

t

J3

t


(t)

3
2
1
t
NLT, SoICT, 2015


Types of task constraints
 Timing

constraints

 Precedence
 Resource

constraints

constraints

NLT, SoICT, 2015


Timing constraints
 Timing

constraints:

Constraints on execution time, is the time that must

be meet in order to achieve the desired behavior.
 Typical constraint: deadline


- Relative deadline: deadline is specified with respect to the
arrival time
- Absolute deadline: deadline is specified with respect to time
zero.

 Classification

of real-time tasks



Hard : completion after deadline can cause
catastrophic consequence



Soft : missing deadline decreases the performance of
the system but does not jeopardize its correct
behavior
NLT, SoICT, 2015


Task parameters(1)
Li
Lateness


Ci

time
fi

Di relative deadline
Ci Execution
time

ai
arrival time

fi
finishing
time

Si
start time

Xi Laxity

di
absolute
deadline

time

NLT, SoICT, 2015



Task parameters(2)


Other task parameters


Response time: different between the finishing time and
the request time Ri = fi - ri



Criticality: Hard or Soft



Value vi: relative importance of task with respect to the
other tasks



Lateness: the delay of a task completion with respect to its
deadline Li = fi –di



Tardiness or Exceeding time: Ei = max(0,Li) is the time a
task stays active after its deadline.




Laxity or Slack time Xi = di – ai – Ci is the maximum time a
task can be delayed on its activation to complete within its
deadline

NLT, SoICT, 2015


Task parameters(3)
 Regularity

of task activation

Periodic tasks: infinite sequence of identical activities
(jobs) activated at constant rate
 Aperiodic: infinite sequence of identical activities
(jobs) with irregular activation
 Sporadic: aperiodic tasks where consecutive
activation are separated by some minimum interarrival time


NLT, SoICT, 2015


Periodic task and aperiodic task

NLT, SoICT, 2015


Precedence constraints
 Tasks



can have precedence constraint:

A task has to be executed after another task is completed

 Notation:


Precedence relations are described by a directed acyclic
graph G.



: task Ja is a predecessor of task Jb



: task Ja is an immediate predecessor of Jb

NLT, SoICT, 2015


An example of precedence relations

To be executed
earlier
J1

J2


To be executed
later

J4

J3

J5

NLT, SoICT, 2015


An example of deriving precedence relations

Motors
and
encoders

CPU
board

Motor
drivers

Sensors

NLT, SoICT, 2015



Tasks
J2

J1

J3

J4

J5



J1: read sensors input



J4: control left wheel



J2: read encoder values



J5: control right wheel



J3: calculate control commands

NLT, SoICT, 2015


Resource constraints
 Resource

Any software structure that can be used by the process
to advance its execution
 Ex: data structure, a set of variables, main memory area,
a file, a piece of program, a set of registers of a
peripheral device


 Private


A resource dedicated to a particular process

 Shared


resource:

resource:

A resource that can be used by more tasks

NLT, SoICT, 2015



Shared resource & critical section
 Many

shared resources do not allow
simultaneous access
 require mutual exclusion

 Critical

section

A piece of code under mutual exclusion constraints
 Created by synchronization mechanism


 When

tasks have resource constrains, they have
to be synchronized

NLT, SoICT, 2015


An example of mutual exclusion
Lower priority
J2

Higher priority
J1


Wait(s)
Critical section

Signal(s)

Wait(s)
Shared resource
R

Critical section
Signal(s)

Critical section is created by using the binary semaphore s
NLT, SoICT, 2015


An example of mutual exclusion


Scheduling with preemption
preempts

blocked

Higher priority
J1

Lower priority
J2


Locks resource
normal execution

Unlocks resource

critical section

NLT, SoICT, 2015


Waiting state caused by resource constraint

scheduling
Termination

activation

RUN

READY

preemption
Wait on busy
resource

Signal free
resource

WAITING


NLT, SoICT, 2015


Definition of scheduling problems
 Given


J = {J1,…,Jn}: A set of tasks



P = {P1,…,Pm}: A set of processors



R = {R1,…,Rr}: A set of resources



With precedence constraints and timing constraints

 Scheduling


problem:

Assigning processors from P and resource from R to
tasks from J under given constraints

NLT, SoICT, 2015



×