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 | |
| parent | e948e4b6a6cf1efd8d1f3d3359b1ad9891b3babc (diff) | |
Fixed calculation of tardiness.
Diffstat (limited to 'parse')
| -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 | |||
