티스토리 뷰

지난 포스트중에 Time Demand Analysis에 대한 내용을 다룬 적이 있다. 간단하게 이야기 하면 다음과 같다.


위와 같은 Time Demand Fuction이 존재한다. 이렇게 구한 결과 값이 각 job에 대한 response time인데 이 값이 해당 period 내에서 period보다 넘어서지만 않으면 Schedulable하다고 말할 수 있다. 반면 이 값이 period를 넘어서게 된다면 말그대로 Not schedulable하게 될 것이다. 그걸 지난 시간에 구한 Execution Time Checking을 통해서 구한 결과를 바탕으로 각 job에 대한 response time을 구해봤다. 참고로 이때의 Iteration Time은 10이다.



생각을 잘 못하고 있었던게 이 Time Demand function을 구하는 것 자체가 각 Task가 공통으로 적용되어 있다는 것이다. 이를 모르고 Task1부터 Task4까지의 Response Time을 구했었는데 구해보니까 다 똑같은 결과를 얻었다. 결국 Task 4의 Response Time을 구한 후에 그게 period를 넘어서지 않다는 것만 보여주면 끝나는 것이다. 

 그런데 아직까지도 이해가 안되는 것은 이 Time의 영향이 Task 2에 거의 절대적으로 받는다는 것이다. 이전 Xenomai 포스트에서도 이야기 했었지만, Task 2는 0~1000000에 대한 피보나치 수열을 구하는 Task였고, 나머지 summation이나 checking을 구하는 task에 비해서는 연산이 복잡하기 때문에 Execution Time이 조금 많다. 그런데 사실 이 것도 ms 단위이기 때문에 아무리 연산을 한다 하더라도 response time이 period를 넘어서는 일은 거의 없을 듯 하다. 프로세서가 이런 연산을 처리하기에 너무 빨라서 그런지는 몰라도 아무튼 앞으로 어떤 검증 방법을 택한다 하더라도 위의 System이 Schedulable하다는 것은 변하지 않을 듯 하다.


그전 포스트에서도 이야기 했었지만 이런 Time Demand Analysis는 Critical Instant Theorem에 의해서 한 주기 내에서만 Schedulable한 걸 증명하면 나머지 periodic task 내에서도 역시 Schedulable 하기 때문에 이런 과정을 거친 것이다. 이보다 조금 방법을 다르게 한 검증 방식이 Utilization Bound Checking인데 아마 조금더 구현해보고 소개를 해야 할 듯 하다.

댓글