[OS] RT scheduling

Real Time Scheduling에 대한 오해와 알고리즘 동작 방식에 대해 알아보자.
Hi's avatar
Apr 15, 2024
[OS] RT scheduling
 

✅ CPS란?

  • 임베디드를 대체할 용어로, 물리적인 시스템인데 컴퓨터(사이버)로 관리되는 시스템을 말한다.
    • → 의료 분야, IOT, 자율주행 등에 이용된다.
 

✅ CPS Requirements

  1. 안전
      • 시스템의 정확도는 타이밍계산 결과에 의존한다.
  1. 성능
      • 한정된 자원 안에서 최대 성능을 내야한다.
  1. 상호 운용성
      • 서로 다른 운영체제, 프로토콜 등을 가진 객체들을 잘 통합해야 한다.
      • 보안 이슈도 있다.

✅ Real-Time Systems란?

  • 실행결과가 논리적으로 정확해야 하며, 시간적으로도 정확해야 한다.
    • → 어떤 연산이 정해진 제한 시간 내에 끝나야 한다.
  • 성능의 척도
    • 어떤 task가 deadline 안으로 들어와야 한다.!!! (가장 중요)
    • 속도에 대한 성능은 비교적 덜 중요하다.
  • 핵심은.. 타이밍을 미리 예측할 수 있어야 한다.
 

✅ Real Time에 대한 오해

  • 보통 real time이라는 것이 실시간으로 빠르게 작동하는 것이라고 오해한다.
    • → 단순히 “빠르다”가 아니라, 예측 가능해야 한다!
      → 평균이 얼마인지는 중요하지 않다.
      강물의 수심은 평균적으로 보면, 빠지지 않지만 실제로는 빠질 것이다!!
      강물의 수심은 평균적으로 보면, 빠지지 않지만 실제로는 빠질 것이다!!
 

✅ Real Time 시스템의 유형

Hard real-time systems

→ 반드시!! 데드라인을 맞춰야 한다.
  • 데드라인을 지키지 못하면 목숨이 위험한 경우.
    • ex) 비행기, 자동차 ….
  • 명확하게 분석해서 worst case인 경우에서도 데드라인을 무조건 지켜야 한다.
 

Soft real-time systems

→ 여전히 타이밍은 중요하지만, 데드라인을 못 지켜도 큰 문제가 발생하지 않는다.
  • 데드라인이 지켜지지 않더라도 목숨이 위험하지 않은 경우.
    • ex) TV, Vedio, 컴퓨터 게임 ….
 

✅ Real Time Scheduling

근본적인 문제

  • 스케쥴링 알고리즘에 대한 고민
    • 어떤 스케쥴링 알고리즘을 쓸 것인가?
  • 스케쥴링 분석 (데드라인을 지킬 수 있을까?)
    • 모든 가능한 조합을 다 탐색했는데도 데드라인을 어기지 않는다면 괜찮다.
    • 최악의 경우를 분석한다.
 

✅ Real Time task

Task: 비슷한 job들의 연속
→ Job이 모이면 Task가 된다.
 
Periodic task (T, C, D)
  • T: 주기
  • C: 연산 시간
  • D: 데드라인
notion image
 

✅ RM (Rate Monotonic)

  • 주기가 짧을수록 task의 우선순위가 높다.
notion image
→ 모든 task가 데드라인을 지킬 수 없다.
 

✅ Response Time

→ General Purpose os의 관점에서 response time은 프로세스가 도착하고 처음 실행되기까지의 시간 간격을 말하지만, real time에서는 task의 도착하고 실행이 끝날 때까지의 시간 간격을 말한다.
notion image
 

✅ RM - Utilization Bound

→ RM으로 스케쥴이 가능한 task인지 확인하는 방법!
notion image
각 Task의 실행시간을 주기로 나눈 것을 모두 더한 값n(2^(1/n) - 1)보다 작거나 같으면 된다.
 
위 예제에서는 3개의 Task가 있다고 가정하고, ΣUi = 1/4 + 1/5 + 1/10 = 0.55이고 3 * (2 ^ (1/3) - 1) = 0.78이다. 따라서, 0.55 ≤ 0.78이므로 RM으로 스케쥴링이 가능하다.
 

✅ EDF (Earliest Deadline First)

→ 데드라인에 가장 가까울 수록 Task의 우선순위가 높다.
notion image
  1. 데드라인이 가장 가까운 T1을 실행한다.
  1. 현재 데드라인 안에 실행이 되지 않은 task 중, T2가 가장 가까우므로 T2을 실행한다.
  1. 그 다음 데드라인 안에 실행되지 않은 건 T3뿐이니, T3를 실행한다.
  1. 위 과정을 반복한다.
 

✅ EDF - Utilization Bound

→ EDF로 항상 스케쥴링이 가능할 지 확인하는 방법!
  • ΣUi ≤ 1 을 만족하면 EDF로 항상 데드라인을 맞출 수 있다.
Share article

soultree