Você está na página 1de 50

Task Dependency

Analysis for
Embedded
Programs
Presented by
Bhaskar Roy
14CS60R25
Under the Guidance of
Prof. Dr. Rajib Mall

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Topics to be discussed:
Introduction
Ordinary Programs
Task dependency in Embedded programs
Identification of task dependencies
Application
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Introduction:
Embedded System: A microcontroller-based

control system which processes a fixed set of


programmed instructions to control
electromechanical equipment which may be part
of an even larger system.

Embedded programs are programs that are

embedded in a system to perform a dedicated


function.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Components of embedded
system hardware:

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Types of Embedded
system:
Small Scale Embedded Systems:

8 bit or 16 bit processor

Calculator can be the simplest example


Medium Scale Embedded Systems:
16 bit or 32 bit processor
Washing Machine , Microwave Oven
Sophisticated Embedded Systems:
32 bit or 64 bit processor
Flight Landing Gear Systems,
Car Braking Systems,
Military Applications, Robots.
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Applications:

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Characteristics of Embedded
systems:
Single Functioned

Tightly Constraint
Manufacturing cost
Performance, Size, Power
Real time and reactive
Car breaking system
Flights landing gear control
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Characteristics of Embedded
systems:
Complex algorithm
Digital Camera

User interface
ATM

Multi Rate
Digital Camera
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Challenges in Embedded
system design

Meeting
Deadlines

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Ordinary Programs

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

10

Programs for general


purpose Computer

Programs consist of sequence of

instructions, written to perform a


specified task with a computer.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

11

Dependencies in Ordinary
programs :

Data dependency

Control dependency

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

12

Dependency Analysis in
Ordinary programs :
Performed through Dependence

Graph
Program Dependence Graph (PDG)

Dependencies within one


procedure
Intraprocedural

System Dependence Graph (SDG)

9/13/15

Dependencies within entire


system
Bhaskar Roy , 14CS60R215 , Task
Dependency Analysis for Embedded
Programs.

13

Program Dependence Graph (PDG)

Control Flow Graph (CFG)


PDG is union of:
Control
Flow

9/13/15

Dependence Graph

Dependence Graph

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

14

Control Flow Graph


int main() {
int sum = 0;
int i = 1;
while (i < 11) {
sum = sum + i;
i = i + 1;
}
printf(%d\n,sum);
printf(%d\n,i);
}

Enter
F

sum = 0

i = 1

while(i < 11)

printf(sum)

printf(i)

sum = sum + i

9/13/15

i = i + i

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

15

Control Dependence
Control dependence
Graph

int main() {
int sum = 0;
int i = 1;
while (i < 11) {
sum = sum + i;
i = i + 1;
}
printf(%d\n,sum);
printf(%d\n,i);
}
T

sum = 0

i = 1
T

sum = sum + i

9/13/15

qq is reached from p
if condition p is
true (T), not otherwise.
q Similar for false (F).

Enter
T

while(i < 11)

printf(sum)

printf(i)

i = i + i

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

16

Flow Dependence
Flow dependence
Graph

int main() {
int sum = 0;
int i = 1;
while (i < 11) {
sum = sum + i;
i = i + 1;
}
printf(%d\n,sum);
printf(%d\n,i);
}
sum = 0

i = 1

sum = sum + i

9/13/15

qValue of variable
assigned at p may be
used at q.

Enter

while(i < 11)

printf(sum)

printf(i)

i = i + i

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

17

Program Dependence Graph


(PDG)
int main() {
int sum = 0;
int i = 1;
while (i < 11) {
sum = sum + i;
i = i + 1;
}
printf(%d\n,sum);
printf(%d\n,i);

sum = 0

i = 1
T

sum = sum + i

9/13/15

Control dependence
Flow dependence

Enter
T

while(i < 11)

printf(sum)

printf(i)

i = i + i

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

18

System Dependence Graph (SDG)

combine PDGs to model inter-

procedural dependences.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

19

System Dependence Graph


(SDG)
Enter main

Call p

Call p

Enter p

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

20

A Program With Auxiliary


Procedure
int main() {
int sum = 0;
int i = 1;
while (i < 11) {
sum = add(sum,i);
i = add(i,1);
}
printf(%d\n,sum);
printf(%d\n,i);
}

9/13/15

int add(int x, int y)


{
return x + y;
}

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

21

SDG for the Sum


Program
Enter main

sum = 0

i = 1

while(i < 11)

printf(sum)

Call add

Call add

xin = sum yin = i

printf(i)

sum = xout

xin = i

yin=
1

i = xout

Enter add

9/13/15

x = xinBhaskaryRoy=, 14CS60R215
x=
x+y
, Task
Dependency
yin Analysis for Embedded
Programs.

xout = x
22

Dependency in Embedded
Programs

In addition the dependencies present in

ordinary programs there is another type of


dependency present called task
dependency .

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

23

Some Assumptions:
Tasks are statically created and are assigned

static priority values


The tasks are periodic in nature and are

scheduled using a priority-driven preemptive


task scheduler
Tasks communicate using either shared

memory or message passing primitives

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

24

Reason behind task


dependencies in Embedded
programs:
Task Priority
Task precedence
Inter task communication
Shared Memory
Message Passing

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

25

Task execution dependencies due to


priorities:
A delay to the completion of higher priority

task may delay a lower priority task

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

26

Task execution dependencies due to


priorities:
pri( )>pri( )>pri( )
3

Tasks

Execution Order: 1, 2, 3

2
3
Time

Tasks

1
Execution Order: 1, 2, 3

2
3
Time

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

27

Task execution dependencies


due to precedencies:
1
2
3

4
5

A precedence relation between two tasks arises

when one task is dependent on some actions or


results produced by the other task.
Precedence relation defines a partial order(PO)
among tasks.
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

28

Task execution dependencies due to


precedencies:
Task Arrival
Deadline

2
3

3
6

Time

Task Arrival
Delayed

2
3

9/13/15

Deadline Miss

3
6

Time

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

29

Task execution dependencies due


to Inter task communication:
Message Passing.
Shared Memory.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

30

Task execution dependencies due to


Message Passing:
When two tasks communicate using a

message passing strategy a delay to one


of the task can delay to the other task.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

31

Task execution dependencies due to


Message Passing:
Some
Computati
on

Waitin
g

Send Msg

9/13/15

Bhaskar iRoy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

j
32

Task execution dependencies due to


Message Passing:
Modifications
Some
Computati
on

Waitin
g

Send Msg

i
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

Deadline
Miss

j
33

Task execution dependencies due to


Shared Memory:
Accessing of shared memory is

synchronized through semaphore or locks.


If a task lock a synchronization variable for

an unusually long time , then it will affect


the execution of other tasks.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

34

Task execution dependencies due to


Shared Memory:
var

lock sem
read var
compute var
write var
unlock sem

lock sem
write var
unlock sem

i
9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

j
35

Timing dependency among


tasks
.

1
Time

1
Delay

2
3

Deadline

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

36

IDENTIFICATION OF
TASK EXECUTION
DEPENDENCIES

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

37

identifying execution-dependent
tasks.
1:

##

procedure IDENTIFYTD
Input
: embedded program
## Output
: set of tasks that are execution dependent on
each task in input
2: succ()
3: prior ()
4: ()
5: ()
6: for each task modified in INPUT do
/* Compute succ() */
7: for every occurrence of a join( )/wait( ) primitive in

do

8:
Determine whether any task is dependent on due to precedence
9:
succ() = ()
/*Add all to succ()
10:
end for
/*Scan input and compare priorities of the other tasks with that of
11: Determine prior ()
/* Scan input to find out matching pairs of message queues and synchronization
variables
12: Determine () and ()
13: end for
14: end procedure

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

38

IDENTIFICATION OF TASK
EXECUTION DEPENDENCIES

The set of tasks that are execution dependent

on task [denoted by ] is :
= succ()

prior()

()

()

Execution dependencies existing among a set

of tasks in an embedded application


computed by performing static analysis on the
source code.
Bhaskar Roy , 14CS60R215 , Task
9/13/15

Dependency Analysis for Embedded


Programs.

39

Application

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

40

APPLICATION OF TASK EXECUTION


DEPENDENCE ANALYSIS :

Regression Test Selection For Embedded


Programs.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

41

Regression Test Selection


For Embedded Programs :
Regression testingis a type of

softwaretestingthat seeks to uncover new


software bugs, orregressions, in existing
functional and non-functional areas of a system
after changes have been made to them.
RTS concerns selection of a subset of valid test

cases from an initial test suite that tests the


affected but unmodified parts of a program.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

42

Use of RTS:
Use of an effective RTS technique can help to

substantially reduce the testing costs in


environments in which a program undergoes
frequent modifications.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

43

Testing Real Time Embedded Systems

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

44

Difficulty In Testing Real Time


Embedded Systems
The timing constraints and concurrency

features in multitasking causes embedded


systems to produce non-deterministic outputs.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

45

Defining Coverage Metric For


Real-Time Embedded System

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

46

Coverage Metrics In Real-Time


Embedded Systems
In addition to the metrics used in normal

programs some new types of metrics are


needed to cover embedded real-time
dependencies present in real-time embedded
systems

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

47

References:

[1] Swarnendu Biswas, Graduate Student Member, IEEE,


Rajib Mall, Senior Member, IEEE, and Manoranjan Satpathy;
Task Dependency Analysis for Regression Test Selection of
Embedded Programs.

[2]

SWARNENDU BISWAS and RAJIB MALL, Indian Institute of


Technology Kharagpur MANORANJAN SATPATHY, GM India Science
Lab; A Regression Test Selection Technique for Embedded
Software.

[3] Susan Horwitz, Thomas Reps, and David


Binkley;Interprocedural Slicing Using Dependence Graphs.

[4]

Todd M. Austin and Gurindar S. Sohi; Dynamic


Dependency Analysis of Ordinary Programs.

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

48

Questions ?

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

49

Thank You

9/13/15

Bhaskar Roy , 14CS60R215 , Task


Dependency Analysis for Embedded
Programs.

50

Você também pode gostar