✅ CPS란?
- 임베디드를 대체할 용어로, 물리적인 시스템인데 컴퓨터(사이버)로 관리되는 시스템을 말한다.
→ 의료 분야, IOT, 자율주행 등에 이용된다.
✅ CPS Requirements
- 안전
- 시스템의 정확도는 타이밍과 계산 결과에 의존한다.
- 성능
- 한정된 자원 안에서 최대 성능을 내야한다.
- 상호 운용성
- 서로 다른 운영체제, 프로토콜 등을 가진 객체들을 잘 통합해야 한다.
- 보안 이슈도 있다.
✅ 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: 데드라인
✅ RM (Rate Monotonic)
- 주기가 짧을수록 task의 우선순위가 높다.
→ 모든 task가 데드라인을 지킬 수 없다.
✅ Response Time
→ General Purpose os의 관점에서 response time은 프로세스가 도착하고 처음 실행되기까지의 시간 간격을 말하지만, real time에서는 task의 도착하고 실행이 끝날 때까지의 시간 간격을 말한다.
✅ RM - Utilization Bound
→ RM으로 스케쥴이 가능한 task인지 확인하는 방법!
→ 각 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의 우선순위가 높다.
- 데드라인이 가장 가까운 T1을 실행한다.
- 현재 데드라인 안에 실행이 되지 않은 task 중, T2가 가장 가까우므로 T2을 실행한다.
- 그 다음 데드라인 안에 실행되지 않은 건 T3뿐이니, T3를 실행한다.
- 위 과정을 반복한다.
✅ EDF - Utilization Bound
→ EDF로 항상 스케쥴링이 가능할 지 확인하는 방법!
- ΣUi ≤ 1 을 만족하면 EDF로 항상 데드라인을 맞출 수 있다.
Share article