Schedulability Analysis and Software Synthesis for Graph-based Task - - PowerPoint PPT Presentation

schedulability analysis and software synthesis for graph
SMART_READER_LITE
LIVE PREVIEW

Schedulability Analysis and Software Synthesis for Graph-based Task - - PowerPoint PPT Presentation

Schedulability Analysis and Software Synthesis for Graph-based Task Models with Resource Sharing Jakaria Abdullah , Gaoyang Dai, Morteza Mohaqeqi, Wang Yi Uppsala University April 13, 2018 Outline Problem Problem 1 Algorithm Evaluation


slide-1
SLIDE 1

Schedulability Analysis and Software Synthesis for Graph-based Task Models with Resource Sharing

Jakaria Abdullah, Gaoyang Dai, Morteza Mohaqeqi, Wang Yi

Uppsala University

April 13, 2018

slide-2
SLIDE 2

Problem Algorithm Evaluation Synthesis Conclusion

Outline

1

Problem

2

Algorithm

3

Evaluation

4

Synthesis

5

Conclusion

RTAS18

  • Dept. of Information Technology
  • 2 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-3
SLIDE 3

Problem Algorithm Evaluation Synthesis Conclusion

Outline

1

Problem

2

Algorithm

3

Evaluation

4

Synthesis

5

Conclusion

RTAS18

  • Dept. of Information Technology
  • 3 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-4
SLIDE 4

Problem Algorithm Evaluation Synthesis Conclusion

Graph-based Task Model

Motivation

  • Execute different functions in different contexts
  • Model multi-rate execution

General Features

  • Supports different jobtypes
  • Uses graph as release pattern

Applications

  • Stateflow blocks of Simulink
  • Angle-synchronous task (automotive)
  • Frame processing (multimedia)

RTAS18

  • Dept. of Information Technology
  • 4 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-5
SLIDE 5

Problem Algorithm Evaluation Synthesis Conclusion

Digraph Real-Time (DRT) Task Model

(Stigge et al, RTAS 2011)

Features

  • Arbitrary directed graph as sporadic release pattern
  • Generalizes graph-based task models like Generalized

MultiFrame (GMF), Recurring Branching (RB), . . .

J1

2,10

J2

4,20

J3

1,20

J4

3,15

<WCET, deadline> minimum inter-release

10 10 20 15 20 10

RTAS18

  • Dept. of Information Technology
  • 5 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-6
SLIDE 6

Problem Algorithm Evaluation Synthesis Conclusion

What about resource sharing?

Resource sharing

  • Sharing memory for inter-task communication
  • Original DRT model supports
  • Fully preemptive execution - no resource sharing
  • Fully non-preemptive execution - all jobs can share

RTAS18

  • Dept. of Information Technology
  • 6 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-7
SLIDE 7

Problem Algorithm Evaluation Synthesis Conclusion

What about resource sharing?

Resource sharing

  • Sharing memory for inter-task communication
  • Original DRT model supports
  • Fully preemptive execution - no resource sharing
  • Fully non-preemptive execution - all jobs can share

Observation

In a multi-periodic system all jobs of a task do not require resource sharing

Producer

t

Consumer

t

RTAS18

  • Dept. of Information Technology
  • 6 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-8
SLIDE 8

Problem Algorithm Evaluation Synthesis Conclusion

Communication-by-Sampling

Oversampling in Communication

Reuse old data for slower producer

Producer

t

Consumer

t

Undersampling in Communication

Write data only for potential reader

Producer

t

Consumer

t

RTAS18

  • Dept. of Information Technology
  • 7 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-9
SLIDE 9

Problem Algorithm Evaluation Synthesis Conclusion

Our Proposal

Resource sharing DRT

  • DRT with Preemptive + Non-preemptive execution
  • Resource sharing jobtypes - non-preemptive execution
  • Other jobtypes - preemptive execution

J1

2,10

J2

4,20

J3

1,20

J4

3,15

non-preemptive

10 10 20 15 20

RTAS18

  • Dept. of Information Technology
  • 8 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-10
SLIDE 10

Problem Algorithm Evaluation Synthesis Conclusion

Schedulability Analysis

Settings

  • DRT tasks with preemptive + non-preemptive jobs
  • Fixed task-level unique priority
  • Constrained deadline
  • Uniprocessor

Existing analysis

1 Fully preemptive execution (Stigge et al. 13) 2 Fully non-preemptive execution (Stigge et al. 15)

Research question

Does mixed execution require new analysis? Let’s look deep

RTAS18

  • Dept. of Information Technology
  • 9 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-11
SLIDE 11

Problem Algorithm Evaluation Synthesis Conclusion

Preemptive Vs. Non-preemptive

Fully Preemptive Case

  • Lower priority has no effect on higher priority execution
  • Critical instant: Simultaneous release of all higher

priority tasks

H Task1 t H Task2 t L Task t Worst-case

RTAS18

  • Dept. of Information Technology
  • 10 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-12
SLIDE 12

Problem Algorithm Evaluation Synthesis Conclusion

Preemptive Vs. Non-preemptive

Fully Non-preemptive Case

  • Lower priority can push execution of higher priority
  • First job released in critical instant does not give

worst-case situation

  • Requires checking multiple jobs in continuously busy

execution interval known as busy window (BW)

H Task t M Task t L Task t BW

RTAS18

  • Dept. of Information Technology
  • 11 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-13
SLIDE 13

Problem Algorithm Evaluation Synthesis Conclusion

Preemptive Vs. Non-preemptive

Preemptive Job Test

t Interference Response time tr d

Non-preemptive Job Test

t Interference tr Start time Latest start d

RTAS18

  • Dept. of Information Technology
  • 12 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-14
SLIDE 14

Problem Algorithm Evaluation Synthesis Conclusion

Challenges in our case

Preemptive job in mixed execution

  • DRT releases different jobtypes following different

paths

  • Predecessor jobs can be non-preemptive
  • Interfering jobs (other tasks) can be non-preemptive
  • BW analysis for non-preemptive job will not work
  • Requires new BW based analysis

Busy window

  • Exact length of worst-case BW for a job is unknown
  • Need to check different intervals to see whether a job

under test can be part of a BW

RTAS18

  • Dept. of Information Technology
  • 13 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-15
SLIDE 15

Problem Algorithm Evaluation Synthesis Conclusion

Contributions

Timing Analysis

An exact test for fixed priority schedulability analysis of DRT task with preemptive + non-preemptive execution

Software Synthesis

Ada code synthesis of DRT tasks with resource sharing

RTAS18

  • Dept. of Information Technology
  • 14 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-16
SLIDE 16

Problem Algorithm Evaluation Synthesis Conclusion

Outline

1

Problem

2

Algorithm

3

Evaluation

4

Synthesis

5

Conclusion

RTAS18

  • Dept. of Information Technology
  • 15 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-17
SLIDE 17

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm

Main Idea

  • Different BW based analysis for preemptive and

non-preemptive jobs

  • Start with an interval for smallest possible BW
  • Check whether the job under test can finish

(preemptive) or start (non-preemptive) within it

  • Increment the interval to include predecessor jobs until

it reaches upper bound on BW length

  • If a job passes all possible scenario, it is schedulable
  • If all jobs of a task pass, the task is schedulable

RTAS18

  • Dept. of Information Technology
  • 16 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-18
SLIDE 18

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 1

Preemptive Job

Initialization

Start with scheduling window of job under test J as potential busy window (PBW)

t Jrelease Jdeadline PBW

RTAS18

  • Dept. of Information Technology
  • 17 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-19
SLIDE 19

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 2

Preemptive Job

Workload Computation

Compute total workload TW = (High priority interference + Non-preemptive blocking + task under test) in PBW

RTAS18

  • Dept. of Information Technology
  • 18 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-20
SLIDE 20

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 2

Preemptive Job

Workload Computation

Compute total workload TW = (High priority interference + Non-preemptive blocking + task under test) in PBW

Workload Abstraction

Use path based workload abstraction for DRT tasks (Stigge et al. 13)

RTAS18

  • Dept. of Information Technology
  • 18 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-21
SLIDE 21

Problem Algorithm Evaluation Synthesis Conclusion

Request Functions

J1

2,10

J2

4,20

J3

1,20

J4

3,15 10 10 20 15 20

rf(t) t

5 10 15 20 25 30 35 40 2 4 6 8 10

rf (J1,J2,J3)

RTAS18

  • Dept. of Information Technology
  • 19 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-22
SLIDE 22

Problem Algorithm Evaluation Synthesis Conclusion

Workload Abstraction

Over-approximation

rf(t) t

rf 1 rf 2

RTAS18

  • Dept. of Information Technology
  • 20 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-23
SLIDE 23

Problem Algorithm Evaluation Synthesis Conclusion

Workload Abstraction

Over-approximation

rf(t) t

rf 1 rf 2 rf 1 ⊔rf 2

RTAS18

  • Dept. of Information Technology
  • 20 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-24
SLIDE 24

Problem Algorithm Evaluation Synthesis Conclusion

Workload Abstraction

Over-approximation

rf(t) t

rf 1 rf 2 rf 1 ⊔rf 2

Abstraction tree

rf 1 rf 2 rf 3 rf 4 mrf Maximum of all rf (T)(t) for a task T Abstract rf (T)(t)s Concrete rf (T)(t)s

RTAS18

  • Dept. of Information Technology
  • 20 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-25
SLIDE 25

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 2

Preemptive Job

Workload Computation

Compute total workload TW = (High priority interference + Non-preemptive blocking + task under test) in PBW

Higher priority

t

Task under test

t

Lower priority

t BW

Maximum Blocking

1 One lower priority blocking per BW 2 Longest lower priority non-preemptive job maximizes

RTAS18

  • Dept. of Information Technology
  • 21 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-26
SLIDE 26

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 2

Preemptive Job

Workload Computation

Compute total workload TW = (High priority interference + Non-preemptive blocking + task under test) in PBW

Higher priority

t

Task under test

t

Lower priority

t

BW

Multiple jobs in BW

Include predecessor jobs for BW > scheduling window

RTAS18

  • Dept. of Information Technology
  • 22 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-27
SLIDE 27

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 3

Preemptive Job Is TW >= Length of PBW? Step 4: Workload refinement Step 5: Busy window extension Yes No

RTAS18

  • Dept. of Information Technology
  • 23 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-28
SLIDE 28

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 4

Preemptive Job

Workload Refinement

  • If TW includes only concrete workload, then the job is

unschedulable

concrete request functions Task T1

A B C D E

Task T3

A B C

Task T3

A B C D E F G RTAS18

  • Dept. of Information Technology
  • 24 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-29
SLIDE 29

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 4

Preemptive Job

Workload Refinement

  • If TW includes only concrete workload, then the job is

unschedulable

  • If TW includes any abstract workload then refine it and

go back to step 2

abstract request functions: candidates for refinement Task T1

A B C D E

Task T3

A B C

Task T3

A B C D E F G RTAS18

  • Dept. of Information Technology
  • 24 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-30
SLIDE 30

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 5

Preemptive Job

Busy Window (BW) extension

Extend PBW backwards to include another release of task under test

t Jrelease Jdeadline Jrelease−1 PBWi−1

RTAS18

  • Dept. of Information Technology
  • 25 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-31
SLIDE 31

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 5

Preemptive Job

Busy Window (BW) extension

Extend PBW backwards to include another release of task under test

t Jrelease Jdeadline Jrelease−1 PBWi extension

RTAS18

  • Dept. of Information Technology
  • 25 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-32
SLIDE 32

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Step 5

Preemptive Job

Busy Window (BW) extension

  • If new PBW < MBW, go to step 2, otherwise feasible
  • MBW is the smallest t where ∑T∈τ mrf (T)(t) t

∑mrf (T)(t) t

Maximum Busy Window (MBW)

RTAS18

  • Dept. of Information Technology
  • 26 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-33
SLIDE 33

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm

Non-preemptive Job

Differences

  • Start time computation excludes job under test
  • High priority jobs can not preempt non-preemptive

execution

Change 1

The initial PBW = Scheduling window - WCET of Job under test

t Jrelease Jdeadline Latest start WCETJ PBW

RTAS18

  • Dept. of Information Technology
  • 27 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-34
SLIDE 34

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm

Non-preemptive Job

Differences

  • Start time computation excludes job under test
  • High priority jobs can not preempt non-preemptive

execution

Change 2

High priority interference (request functions) should include jobs released at the end of an interval

rf(t) t

5 10 15 20 25 30 35 40 2 4 6 8 10 rf 1

RTAS18

  • Dept. of Information Technology
  • 28 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-35
SLIDE 35

Problem Algorithm Evaluation Synthesis Conclusion

Algorithm Summary

Generalization

Exactness

Our test is exact for sporadic release as

  • Pass means taskset is schedulable
  • Fail generates a set of job releases that is not

schedulable

Our algorithm Fully preemptive test Fully non-preemptive test Preemptive only Non-preemptive only

RTAS18

  • Dept. of Information Technology
  • 29 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-36
SLIDE 36

Problem Algorithm Evaluation Synthesis Conclusion

Outline

1

Problem

2

Algorithm

3

Evaluation

4

Synthesis

5

Conclusion

RTAS18

  • Dept. of Information Technology
  • 30 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-37
SLIDE 37

Problem Algorithm Evaluation Synthesis Conclusion

Evaluation

Experimental Settings

Random tasksets

  • 200 DRT tasksets/3% utilization
  • Maximum 25 tasks/taskset
  • Randomly assigned unique priority to each task
  • Randomly marked jobtypes as non-preemptive

Realistic workload

  • A fully non-preemptive angle-synchronous DRT task

v1 v2 v3 5,22 3,13 1,9 22 22 13 13 23 13 9

  • Bosch case study (2015) + Mohaqeqi et al. 17

RTAS18

  • Dept. of Information Technology
  • 31 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-38
SLIDE 38

Problem Algorithm Evaluation Synthesis Conclusion

Evaluation

Acceptance Vs. Utilization

0% 10% 20% 30% 40% 50% 60% 70% 80% 0.2 0.4 0.6 0.8 1 Task Set Utilization Acceptance Ratio 5% NPR 10% NPR 20% NPR 40% NPR

Table: Random Task set parameters

Job types Branching degree p d/p e/d [3,5] [1,3] [50,200] [0.5,1] [0.01,0.05]

RTAS18

  • Dept. of Information Technology
  • 32 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-39
SLIDE 39

Problem Algorithm Evaluation Synthesis Conclusion

Evaluation

Runtime Vs. Utilization

0% 10% 20% 30% 40% 50% 60% 70% 80% 10 20 30 Task Set Utilization Average Analysis Run-Time (seconds) 5% NPR 10% NPR

Table: Random Task set parameters

Job types Branching degree p d/p e/d [3,5] [1,3] [50,200] [0.5,1] [0.01,0.05]

RTAS18

  • Dept. of Information Technology
  • 33 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-40
SLIDE 40

Problem Algorithm Evaluation Synthesis Conclusion

Evaluation

Observations

On acceptance

  • Ratio of non-preemptive jobtypes has little effect
  • Priority assignment influences acceptance in higher

utilization

  • Taskset schedulable in mixed execution may not be

schedulable in fully preemptive or fully non-preemptive settings

On runtime

  • Testing time for schedulable tasksets < 10 seconds
  • Depends on length of MBW
  • Complexity: Strongly co-NP hard (from fully preemptive

case)

RTAS18

  • Dept. of Information Technology
  • 34 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-41
SLIDE 41

Problem Algorithm Evaluation Synthesis Conclusion

Outline

1

Problem

2

Algorithm

3

Evaluation

4

Synthesis

5

Conclusion

RTAS18

  • Dept. of Information Technology
  • 35 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-42
SLIDE 42

Problem Algorithm Evaluation Synthesis Conclusion

Software Synthesis

How to generate code for resource sharing DRT?

Two key features need implementation:

1 Event-triggered (sporadic) release of different jobtypes 2 Mixed preemptive and non-preemptive execution

Our Approach

We use Ada programming language and its runtime for generating DRT code

RTAS18

  • Dept. of Information Technology
  • 36 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-43
SLIDE 43

Problem Algorithm Evaluation Synthesis Conclusion

Software Synthesis

Event-triggered release

  • Use Ada Protected Object (PO) to release based on

event

  • Interrupt handlers are attached with POs
  • Jobs can block on a PO entry

Example

✲✲ ❊✈❡♥t r❡❝❡✐✈❡r ✐s ❛ ♣r♦t❡❝t❡❞ ♦❜❥❡❝t ✲✲ ❚❛s❦ ❜❧♦❝❦❡❞ ❤❡r❡ ❢♦r ♥❡①t r❡❧❡❛s❡ ❊✈❡♥t❴r❡❝❡✐✈❡r ✳❲❛✐t✭❡✈❡♥t❴✐❞ ✮❀ ✐❢ ❡✈❡♥t❴✐❞ ❂ ✉ t❤❡♥ ✲✲ ❝❛❧❧ ❥♦❜t②♣❡ ❢♦r ✉ ❡❧s❡ ✐❢ ❡✈❡♥t❴✐❞ ❂ ✈ t❤❡♥ ✲✲ ❝❛❧❧ ❥♦❜t②♣❡ ❢♦r ✈

RTAS18

  • Dept. of Information Technology
  • 37 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-44
SLIDE 44

Problem Algorithm Evaluation Synthesis Conclusion

Software Synthesis

Preemptive + Non-preemptive execution

  • Assign one global PO maximum system priority
  • Put all non-preemptive job procedures in the global PO
  • PO uses Immediate Ceiling Priority Protocol (ICPP)

Example

✲✲ ❊♥tr② ❢♦r ❜❧♦❝❦✐♥❣ t❛s❦s ❡♥tr② ❲❛✐t ✭❊✈❡♥t✿ ❡✈❡♥t❴t②♣❡ ■❉✮❀ ✲✲ ❍✐❣❤❡st ❙②st❡♠ ♣r✐♦r✐t② ♣r❛❣♠❛ ■♥t❡rr✉♣t❴Pr✐♦r✐t② ✭Pr✐♦r✐t②❴▼❛① ✮❀ ✲✲ ❉❡❝❧❛r❛t✐♦♥ ❢♦r ♥♦♥ ✲♣r❡❡♠♣t✐✈❡ ♣r♦❝❡❞✉r❡s ♣r♦❝❡❞✉r❡ ◆P❘❴❏♦❜✶❴t❛s❦❴❛ ❀ ♣r♦❝❡❞✉r❡ ◆P❘❴❏♦❜✷❴t❛s❦❴❛ ❀ ♣r♦❝❡❞✉r❡ ◆P❘❴❏♦❜✶❴t❛s❦❴❜ ❀ ✳✳✳

RTAS18

  • Dept. of Information Technology
  • 38 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-45
SLIDE 45

Problem Algorithm Evaluation Synthesis Conclusion

Outline

1

Problem

2

Algorithm

3

Evaluation

4

Synthesis

5

Conclusion

RTAS18

  • Dept. of Information Technology
  • 39 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-46
SLIDE 46

Problem Algorithm Evaluation Synthesis Conclusion

Summary and Future Work

Summary

  • Exact fixed priority schedulability test for DRT with

job-level non-preemptive resource sharing

  • Quick analysis for schedulable taskset
  • Software synthesis using Ada without runtime

modification

Future Work

  • Analysis for co-operative scheduling
  • Apply classical resource sharing protocols
  • Compute end-to-end latency
  • Abstraction refinement on busy window extension

RTAS18

  • Dept. of Information Technology
  • 40 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-47
SLIDE 47

Problem Algorithm Evaluation Synthesis Conclusion

Questions?

RTAS18

  • Dept. of Information Technology
  • 41 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se

slide-48
SLIDE 48

Problem Algorithm Evaluation Synthesis Conclusion

References

  • M. Stigge, P

. Ekberg, N. Guan, and W. Yi, The digraph real-time task model, RTAS, 2011, pp. 71–80.

  • M. Stigge and W. Yi, Combinatorial abstraction

refinement for feasibility analysis, RTSS, 2013, pp. 340–349.

  • M. Stigge and W. Yi, Combinatorial abstraction

refinement for feasibility analysis of static priorities, Real-Time Systems, vol. 51, no. 6, pp. 639–674, 2015.

  • M. Mohaqeqi, J. Abdullah, P

. Ekberg, and W. Yi, Refinement of Workload Models for Engine Controllers by State Space Partitioning, ECRTS, 2017, pp. 11:1–11:22.

  • A. Hamann, D. Dasari, S. Kramer, M. Pressler, F

. Wurst, and D. Ziegenbein, Waters industrial challenge 2017.

RTAS18

  • Dept. of Information Technology
  • 42 -

Jakaria Abdullah | jakaria.abdullah@it.uu.se