-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtask_generator.py
More file actions
98 lines (85 loc) · 2.16 KB
/
Copy pathtask_generator.py
File metadata and controls
98 lines (85 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
'''
Author Kevin Huang and Georg von der Brueggen
'''
from __future__ import division
import random
import math
import numpy
import sys, getopt
import json
import mixed_task_builder
ofile = "taskset-p.txt"
USet=[]
def UUniFast(n,U_avg):
global USet
sumU=U_avg
for i in range(n-1):
nextSumU=sumU*math.pow(random.random(), 1/(n-i))
USet.append(sumU-nextSumU)
sumU=nextSumU
USet.append(sumU)
def UUniFast_Discard(n,U_avg):
while 1:
sumU=U_avg
for i in range(n-1):
nextSumU=sumU*math.pow(random.random(), 1/(n-i))
USet.append(sumU-nextSumU)
sumU=nextSumU
USet.append(sumU)
if max(USet) < 1:
break
del USet[:]
def UniDist(n,U_min,U_max):
for i in range(n-1):
uBkt=random.uniform(U_min, U_max)
USet.append(uBkt)
def CSet_generate(Pmin,numLog):
global USet,PSet
j=0
for i in USet:
thN=j%numLog
#p=random.uniform(Pmin*math.pow(10, thN), Pmin*math.pow(10, thN+1))
p=random.uniform(1, 50)
pair={}
pair['period']=p
pair['deadline']=p#*random.uniform(1)
pair['execution']=i*p
PSet.append(pair)
j=j+1;
def init():
global USet,PSet
USet=[]
PSet=[]
def taskGeneration_p(numTasks,uTotal):
random.seed()
init()
UUniFast(numTasks,uTotal/100)
CSet_generate(1,2)
fo = open(ofile, "ab")
print >>fo, json.dumps(PSet)
return PSet
def taskGenerationMatlab(numTasks, uTotal, ind):
global ofile, PSet
random.seed()
init()
UUniFast(numTasks,uTotal/100)
CSet_generate(1,2)
ofile = "taskset-matlab.m"
PSet = mixed_task_builder.hardtaskWCET(PSet, 1.83, 10**-6.)
fo = open(ofile, "ab")
fo.write("if index == "+str(ind)+"\n")
j = 0
for i in PSet:
j+=1
fo.write("taskSet{"+str(j)+"}{1} = ["+str(i['execution'])+","+str(i['abnormal_exe'])+";0.999999, 0.000001];\n")
fo.write("taskSet{"+str(j)+"}{2} = ["+str(i['period'])+"; 1];\n")
fo.write("end\n")
ofile = "taskset-p.txt"
fo = open(ofile, "ab")
print >>fo, json.dumps(PSet)
def taskGenerationMatlabX(numTasks, uTotal, j):
for i in range(j):
taskGenerationMatlab(numTasks, uTotal, i)
#print taskGenerationMatlab(20, 60)
#print taskGenerationMatlab(10, 60)
#print taskGenerationMatlabX(10, 70, 100)