리얼타임 스케줄링
6. Real-time scheduling
이는 모든 프로세스가 Deadline 전해 모두 수행이 되도록 스케줄링 하는 방식이다. 이 방식은 Soft Real Time 혹은 Hard Real Time의 상황에서 사용된다. Soft Real Time 이란 프로세스가 deadline을 넘겼을 때 그전 까지 진행했든 프로세싱이 무의미해 지는 환경을 의미한다. Hard Real Time이란 프로세스가 시간 내에 수행하지 못할 경우 의료사고나, 차량사고등 현실에 위험을 줄 수 있는 환경을 의미한다.
Real Time Scheduling에는 대표적으로 RMS(Rate-Monotonic Scheduling)을 사용한다. 이는 수행 주기가 가장 짧은 프로세스에 가장 높은 우선순위를 부여하는 방식이다. RMS를 사용하면 운영체제는 일반적이고 선점형이고, 응답시간에 대해 결정적인 특징을 지니게 된다. RMS는 RMA가 배경이 되는데 RMA에 따라 n개의 프로세스가 있을 때, Real Time Schduling이 가능한지 여부를 아래와 같은 식으로 계산할 수있다.
위의 식이 만족할 경우 Real Time Scheduling이 가능하기 위한 충분조건이 된다. 다만 이 조건은 필요조건이 아니므로 이 스케줄링 알고리즘이 적영된 시스템이 더 높은 사용률을 가지더라도 스케줄링이 불가능하다고 할 수 는 없다.
위 식에서 우측 항의 n을 무한대로 보내면 약 69.3%로 수렴한다. CPU 사용율의 상한이 69.3%가 된다는 의미이다.
RMS에는 비주기 Task를 처리하는 방식에따라 Back Ground Alogrithm (BGA) 과 Polling Server Alogrithm(PSA)이 존재한다. BGA는 모든 주기적 Task의 작업이 처리 되고 남은 시간에 비주기 Task를 처리하는 방식이다. PSA는 주기적으로 비주기 Task가 발생했는지 검사를하고 정해진 Computation Time 동안 비주기Task를 수행 후 다시 주기 Task를 처리하는 방식이다. PSA는 주기적으로 검사를 해야 하는 오버헤드가 있지만 대부분의 경우에서 운영체제의 응답속도를 높일 수 있다는 장점이 있다.
Back Ground Alogrithm (BGA) 시뮬레이션
높이가 낮은 블럭은 주기태스크, 높은 블럭은 비주기 태스크 이다.
- Ap#1 의 대기시간 : 10
- Ap#2 의 대기시간 : 8
- Ap#3 의 대기시간 : 0
- 평균 대기시간 : 6
Polling Server Alogrithm(PSA) 시뮬레이션
1. 디텍팅 주기 5s
- Ap#1 의 대기시간 : 8
- Ap#2 의 대기시간 : 10
- Ap#3 의 대기시간 : 1
- 평균 대기시간 : 6.3333
2. 디텍팅 주기 3s
- 평균 대기시간 : 3.666