앞서 포스팅했던 논문 Scheduling Algorithm for Multiprogramming in a Hard-Real-Time Environment을 읽으면서 선배와 함께 해봤던 증명을 정리한 내용이다. 사실 수식을 아직 온전히 다 옮기지 못해서 미완이다! 😅
증명 쓸 때 주의할 점
- 읽는 사람을 생각하면서 많이 풀어서 설명하기
- notation은 최대한 적게 쓰기
논문 읽을 때 주의할 점
- 해결하고자 하는 문제를 무엇으로 정의했는지
- 해당 문제를 해결하기 위해서 어떤 접근법을 사용했는지
- 나라면 어떻게 접근했을 것 같은지 생각하면서
- 증명할 때는 쉬운 케이스 → general case → corner case 확인
Theorem 1
Given a set of two tasks denoted as τ1=(T1,C1) and τ2=(T2,C2), where Ti denotes the period of the task τi, and Ci denotes the worst-case exeucution time of the task τi (1 ≤i≤ 2).
Suppose that the task set is scheduled with RM (Rate-Monotonic) algorithm. If the priority of the task τ1 is higher than the priority of the task τ2 (i.e. T1<T2), then the critical point of task τ2 starts simultaneously with the task τ1.
Proof
Assume there exist a time point ϵ where amount of the preemption by the task τ1 is larger than the point described above (simultaneously relased).
Let us suppose the amount of cumulative execution time of the task τ1 at the time point k as the function f(k), then f(k) can be represented as follows.
Here, ϵ is a variation factor for τ1 initiation time. (0≤α<T1) τ1 is initiated at times ϵ+kT1,k≥0. ϵ is 0 with described case.
f′(ϵ)=C1⌊T1T2−ϵ⌋+min(C1,T2−T1⌊T1T2−ϵ⌋−ϵ)
I'll show in every case, f(0)>f(ϵ), which means τ2 have critical instant when initiated with τ1.
Correctness of f(t)
위의 그림과 같이 time 0에 task τ1과 τ2가 함께 release 되었을 때 task τ2의 T2가 가질 수 있는 경우의 수는 3가지이다.
-
C1과 T2가 overlap되는 상황 (주황색)
- f(t)=C1⌊T1T2⌋+T2−T1⌊T1T2⌋
-
C1과 T2 overlap되지않는 상황 (연두색)
- f(t)=C1⌊T1T2⌋+C1
-
⌊T1T2⌋=T1T2 , T2=k⋅T1(k∈Z+) (파란색)
- f(t)=C1⌊T1T2⌋
- 사실 이 케이스도 1번 케이스(주황색)으로 간주할 수 있다.
// TODO : try extending range of ϵ to (−T2,T2) and show ≥
// TODO : add description of proof