IT 15026 Examensarbete 30 hp April 2015 Multicore mixed-criticality with a hierarchical real-time scheduler and resource servers Emanuel Berg Masterprogram i datavetenskap Master Programme in Computer Science
IT 15026
Examensarbete 30 hpApril 2015
Multicore mixed-criticality with a hierarchical real-time scheduler and resource servers
Emanuel Berg
Masterprogram i datavetenskapMaster Programme in Computer Science
Teknisk- naturvetenskaplig fakultet UTH-enheten Besöksadress: Ångströmlaboratoriet Lägerhyddsvägen 1 Hus 4, Plan 0 Postadress: Box 536 751 21 Uppsala Telefon: 018 – 471 30 03 Telefax: 018 – 471 30 00 Hemsida: http://www.teknat.uu.se/student
Abstract
Multicore mixed-criticality with a hierarchicalreal-time scheduler and resource servers
Emanuel Berg
This is a real-time mixed-criticality system on a dual-core Linux desktop. The hardware/software architecture employs memory throttling so that modules can be isolated in execution as well as in analysis/certification.There are two asymmetrically dedicated cores. A critical core runs a hierarchical scheduler (hs) with critical software: hard-coded, or Linux processes with associated metadata. The best-effort core runs arbitrary software.The cores share DRAM and the memory bus. Best-effort activity can delay critical software. Interference is throttled/bounded to retain real-time computability.When necessary, hs freezes/thaws best-effort core software. Task schedulers have budgets to bound memory interference. If depleted, the best-effort core is frozen whenever tasks from such a scheduler execute. Budgets are reset periodically.The scheduling algorithm is a polled-preemptive EDF, with critical-group CPU budgets. Task model: sporadic.Two resource servers uphold isolation in the face of shared resources: memory, and critical-core CPU time.A memory experiment shows that best-effort core activity is throttled dynamically. Alas, the submission mechanism lacks precision in worst-case scenarios: hs is itself suspectible to best-effort interference, so the throttling mechanism can brake before it can effectuate.
Tryckt av: Reprocentralen ITCIT15026Examinator: Edith NgaiÄmnesgranskare: Philipp RümmerHandledare: Pontus Ekberg
mibi!i
Pi
rj tjQjzQgjQsj
ojij
!
ti c ti Diti
c + Di ti
"
–977371 1605918
64K512K
best-effort core
cache L1
cache L2 = LLC
bus
DRAM
A B iA B B A
A B i
B A i
70464921
0
nk
g
g = (l, p, r, S, a)
l
l
p
r gS r
S
a gS
s # S
0 < r < p < l
0 < r
r < p s # S
s$ s$ # S s
p < l
S
S %= & s # S g
S = {si} = {(mi, bi, Pi,!i)}
ss = (m, b, P,!)
mi
pmi
si
bi
bi sit # Pi si
si g sig si bi
bi > 0 g si
si Pibi
si
!i
!i si t # Pi
!ia !i
Pi
Pi = {tj} = {(Cj, Dj, Tj)}
Pi %= &
tj = (Cj, Dj, Tj)
Cj
Dj
Tjtj Tj
0 < Cj ' Dj ' Tj
rj tj
rj tjtj
tj Cjtj
rj = Qj + oj + ij + Cj
Qj
Qj tjtj
tj
Qj = Qgj + Qsj
z
z = rjp
Qgj
tjtj
tj
Di ' Djti ti tj ti
tj hp(tj)tj
Qgj =!
{tj,tk}(Pi,tk#hp(tj)
"rjTk
#Ck
hp(tj) tj
Qsj
tj si
tj
Qsj = ()z* + 1)(p – bi)
tj sitj
Qsj
oj
o o
o
ojtj
r
oj =$rjr%o
ij
p si
mi
ij = )z*mi58.5 ns
!"
si PiPi
si
sbf(!", si) si!"
sbf(!", si)
"1 "2
I = !" = "2 – "1
p sibi
w =$Ip%– 1
si
Bi = wbi
w
R = I – wp
U = p – R2
U bi si biU bi U bi U
#i = 2max(0, bi – U)
w
(w + 2)si mi
(w+2)mi
$ = (w + 2)mi58.5 ns
si t # Pi
sbf(si, I) = Bi + #i – $
tj
f =&ITj
'
tj
h = min(I – fTj, Cj)
dbf(tj, I) = fCj + h
Pit # Pi
dbf(Pi, I) =!
tj#Pidbf(tj, I)
xy
y – x
x = y
Di = Ti
UT =!
ti#TCiTi ' 1
C
1
so = s
s$ o$ = s$
o$$ o o$
g = (l, p, r, S, a) 0 < r < p < l
S = {si} = {(mi, bi, Pi,!i)}
Pi = {tj} = {(Cj, Dj, Tj)}
tj = (Cj, Dj, Tj)
rj = Qj + oj + ij + Cj
z = rjp
oj =$rjr%o
ij = )z*mi58.5 ns
Qj = Qgj + Qsj
Qgj =!
{tj,tk}(Pi,tk#hp(tj)
"rjTk
#Ck
Qsj = ()z* + 1)(p – bi)
I = !" = "2 – "1
w =$Ip%– 1
Bi = wbi
R = I – wp
U = p – R2
#i = 2max(0, bi – U)
sbf(si, I) = Bi + #i – $
h = min(I – fTj, Cj)
dbf(tj, I) = fCj + h
dbf(Pi, I) =!
tj#Pidbf(tj, I)
f =&ITj
'