inblog logo
|
soultree
    OS

    [OS] RT scheduling

    Real Time Scheduling에 대한 오해와 알고리즘 동작 방식에 대해 알아보자.
    Hi's avatar
    Hi
    Apr 15, 2024
    [OS] RT scheduling
    Contents
    ✅ CPS란?✅ CPS Requirements✅ Real-Time Systems란?✅ Real Time에 대한 오해✅ Real Time 시스템의 유형✅ Real Time Scheduling✅ Real Time task✅ RM (Rate Monotonic)✅ Response Time✅ RM - Utilization Bound✅ EDF (Earliest Deadline First)✅ EDF - Utilization Bound
     

    ✅ 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

    RSS·Powered by Inblog