A Partitioning Algorithm
• Let Ti be a task in T such that Pi ≤ Pj for all tasks Ti in T
• S1 = {Ti}, T = T - {Ti}, For i=...
Scheduling for Horizontal
Striping
• Assume wi stripe units for supervideo Vi is stored on
disk 0
• The Problem
• Schedule...
Testing for Schedulability
• Procedure is_schedulable({T1..Tn},m)
• Let g=gcd(P1..Pn)
• Take g time units 0..(g-1) that ar...
Scheduling for Horizontal
Striping
• Algorithm schedule_tasks_2 [Ozden 97]
• R=is_schedulable({T1…Tn},m)
• If R=FAIL
• Let...
Example
• Tasks T1, T2, T3 with periods 6,8,8 have
two subtasks each. The interval between
them is 4.
• Try the algorithm.
Example
• Tasks T1, T2, T3 with periods 6,8,8 have
two subtasks each. The interval between
them is 4.
• Try the algorithm.
Upcoming SlideShare
Loading in …5
×

Mmclass9

181 views

Published on

MULTIMEDIA AND SYSTEM DESIGN

Published in: Engineering, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
181
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • If the start time for Ti is 0 the j-th subtask is scheduled at times (j-1)m, (j-1).m+Pi, (j-1)m+2Pi …So tasks j and k will be scheduled together iff (j-1)m mod Pi = (k-1)m mod Pi
  • Mmclass9

    1. 1. A Partitioning Algorithm • Let Ti be a task in T such that Pi ≤ Pj for all tasks Ti in T • S1 = {Ti}, T = T - {Ti}, For i=2..g, Si = φ • For i=2..g • For every task Tl in T • max[Tl] = gcd(S1 ∪ {Tl}) – Σ w over all Tk in (S1 ∪ {Tl}) • For j=2..i-1 – max[Tl] = max{max[Tl] , gcd(Sj ∪ {Tl}) – Σ w over all Tk in (Sj ∪ {Tl})} • Let Tl be a task in T such that max[Tl] ≤ max[Tk] for every Tk in T • Si = {Tl}, T = T - {Tl} • For every Ti in T • For j=1..g • Slack[Sj] = gcd(Sj ∪ {Tl}) – Σ w over all Tk in (Sj ∪ {Tl}) • Add Ti to the subset Sj for which Slack[Sj] is maximum
    2. 2. Scheduling for Horizontal Striping • Assume wi stripe units for supervideo Vi is stored on disk 0 • The Problem • Schedule non-preemptible tasks T1…Tr with periods P1…Pr on q processors; each task Ti has wi subtasks, with compute time of 1; interval between consecutive subtasks is m • If a task has P=4, w=3 and m=6 is it schedulable? • Condition for subtasks of a single task Ti to be schedulable on a single processor: • For all 1 ≤ j, k ≤ wi, j ≠ k, ((j-1).m) mod Pi ≠ ((k-1).m) mod Pi • Why? • What is the corresponding algorithm to test
    3. 3. Testing for Schedulability • Procedure is_schedulable({T1..Tn},m) • Let g=gcd(P1..Pn) • Take g time units 0..(g-1) that are not assigned • Sort the tasks in decreasing order of wi • For each task Tiin the sorted order • j=0 • while (j < g) – if for k=0…(wi – 1), time unit (j+k.m) mod g is free • for k=0…(wi – 1), assign time unit (j+k.m) mod g to Ti • exit while – else j=j+1 • If j=g return FAIL • return {(Ti, x): 1 ≤ i ≤ n and the first subtask of Tiis
    4. 4. Scheduling for Horizontal Striping • Algorithm schedule_tasks_2 [Ozden 97] • R=is_schedulable({T1…Tn},m) • If R=FAIL • Let gcd(P1...Pn,)=g • If g=1, return FAIL • Let T1…Tn be tasks with periods P1/g…Pn/g and w1…wn subtasks. • Partition the tasks into g subsets S1…Sg. • For i=1..g, let Ri= schedule_tasks_2(Si,m/g) • If for any i Ri= FAIL, return FAIL, else return {(Ti, x.g+(j-1)): 1 ≤ j ≤ g and (Ti,x) ∈ Rj} • Return R
    5. 5. Example • Tasks T1, T2, T3 with periods 6,8,8 have two subtasks each. The interval between them is 4. • Try the algorithm.
    6. 6. Example • Tasks T1, T2, T3 with periods 6,8,8 have two subtasks each. The interval between them is 4. • Try the algorithm.

    ×