diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-04-17 16:07:35 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-04-17 16:07:35 -0400 |
commit | 2a4b1c11751632dcc1f47c3c13ab2e2a718b883c (patch) | |
tree | 4bb91a28475b8248790405be5fa7aa0ce1594c7a /parse/sched.py | |
parent | e948e4b6a6cf1efd8d1f3d3359b1ad9891b3babc (diff) |
Fixed calculation of tardiness.
Diffstat (limited to 'parse/sched.py')
-rw-r--r-- | parse/sched.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/parse/sched.py b/parse/sched.py index 13c7ca2..a38c61b 100644 --- a/parse/sched.py +++ b/parse/sched.py | |||
@@ -26,10 +26,13 @@ class TimeTracker: | |||
26 | self.begin = 0 | 26 | self.begin = 0 |
27 | self.job = 0 | 27 | self.job = 0 |
28 | 28 | ||
29 | def start_time(self, record): | 29 | def start_time(self, record, time = None): |
30 | '''Start duration of time.''' | 30 | '''Start duration of time.''' |
31 | self.begin = record.when | 31 | if not time: |
32 | self.job = record.job | 32 | self.begin = record.when |
33 | else: | ||
34 | self.begin = time | ||
35 | self.job = record.job | ||
33 | 36 | ||
34 | # Data stored for each task | 37 | # Data stored for each task |
35 | TaskParams = namedtuple('TaskParams', ['wcet', 'period', 'cpu']) | 38 | TaskParams = namedtuple('TaskParams', ['wcet', 'period', 'cpu']) |
@@ -132,7 +135,8 @@ def process_completion(task_dict, record): | |||
132 | def process_release(task_dict, record): | 135 | def process_release(task_dict, record): |
133 | data = task_dict[record.pid] | 136 | data = task_dict[record.pid] |
134 | data.jobs += 1 | 137 | data.jobs += 1 |
135 | data.misses.start_time(record) | 138 | if data.params: |
139 | data.misses.start_time(record, record.when + data.params.period) | ||
136 | 140 | ||
137 | def process_param(task_dict, record): | 141 | def process_param(task_dict, record): |
138 | params = TaskParams(record.wcet, record.period, record.partition) | 142 | params = TaskParams(record.wcet, record.period, record.partition) |
@@ -147,7 +151,7 @@ def process_resume(task_dict, record): | |||
147 | register_record('ResumeRecord', 9, process_resume, 'Q8x', ['when']) | 151 | register_record('ResumeRecord', 9, process_resume, 'Q8x', ['when']) |
148 | register_record('BlockRecord', 8, process_block, 'Q8x', ['when']) | 152 | register_record('BlockRecord', 8, process_block, 'Q8x', ['when']) |
149 | register_record('CompletionRecord', 7, process_completion, 'Q8x', ['when']) | 153 | register_record('CompletionRecord', 7, process_completion, 'Q8x', ['when']) |
150 | register_record('ReleaseRecord', 3, process_release, 'QQ', ['release', 'when']) | 154 | register_record('ReleaseRecord', 3, process_release, 'QQ', ['when', 'release']) |
151 | register_record('ParamRecord', 2, process_param, 'IIIcc2x', | 155 | register_record('ParamRecord', 2, process_param, 'IIIcc2x', |
152 | ['wcet','period','phase','partition', 'task_class']) | 156 | ['wcet','period','phase','partition', 'task_class']) |
153 | 157 | ||
@@ -203,4 +207,3 @@ def extract_sched_data(result, data_dir, work_dir): | |||
203 | if not data or not sum(data): | 207 | if not data or not sum(data): |
204 | continue | 208 | continue |
205 | result[name] = Measurement(str(name)).from_array(data) | 209 | result[name] = Measurement(str(name)).from_array(data) |
206 | |||