1. 임베디드 시스템이란?

특정 기능 수행을 위해 설계된 컴퓨터 시스템으로 general purpose PC와는 다르다. 종종 하드웨어와 소프트웨어가 통합된 형태로 존재한다.

 

2. 실시간 시스템이란?

결과의 correctness도 중요하지만, 더 중요한 것은 시간 내에 결과가 도출되는 것이다. Deadline을 맞출 수 있다면, 몇가지 task를 포기하는 것도 가능하며 대표적으로는 자율 주행 차량과 웹 서버 등이 있다.

 

임베디드 시스템과 실시간 시스템의 차이는 다음과 같다.

Real-time embedded Real-time, but not embedded Embedded, but not real-time
Nuclear reactor control
Flight control
Mobile phone
Drone
Stock trading system
Skype
Video streaming
Home temparature control
Washing machine
Blood pressure meter

 

실시간 시스템의 경우, event-driven하며 failure에 high cost를 가지고 있다.

 

3. 실시간 시스템의 분류

  • Hard real-time : 데드라인을 무조건 맞춰야 하는 시스템 (항공기 제어)
  • Soft real-time : 데드라인을 맞추지 못하더라도, 시스템의 성능이 조금 저하될 뿐인 시스템 (비디오 스트리밍)
  • Firm real-time : 데드라인을 맞추지 못하면, task의 가치가 사라지는 시스템 (주식 거래 시스템)

 

위의 구분에서 알 수 있듯이, 빠를 필요는 없으며 예측 가능성이 중요하다. 타이밍 스케쥴링이 없을 경우 시스템 오류가 발생할 수 있기 때문이다.

 

현재 트렌드는 작게 나누어서 구현하던 과거에서 많은 작은 제어 유닛을 통합하여 더 강력하고 중앙 집중화된 컴퓨팅 플랫폼으로 전환되고 있다.

 

4. Job과 Task의 정의

  • Job : 개별 연산 (객체 인식)
  • Task : Job의 연속 (어플리케이션)

Task가 더 큰 개념이라고 보면 된다. Task는 다시 periodic과 aperiodic으로 나뉜다.

 

  • Periodic task : Task가 주기적으로 수행됨
    • Single rate : Period가 1개인 경우
    • Multi rates : Period가 여러개인 경
  • Aperiodic task : Task가 event에 의해 실행됨, 역동적인 workload를 가짐 (예측이 불가능함)
    • Sporadic : Minimum inter-arrival time 동안은 발생하지 않음. 최소 간격 시간이 있음(=period is lower bound).
    • Event-based : 진짜 random하게 event 기반으로 동작함

 

Aperiodic task의 미래 workload를 예측하는 것은 어려운 일이기 때문에, worst case를 보장하는 알고리즘을 만들기 어렵다.

 

5. Deadline

데드라인의 종류는 3가지가 있다. Hard, Soft, Firm

Utility functions

 

데드라인과 period 사이에는 3가지 관계가 있다. Implicit, Constrained, Arbitrary

  • Implicit : deadline = period
  • Contrained : deadline이 period보다 같거나 작음
  • Arbitrary : deadline이 period보다 클수도 작을수도 같을수도 있음

 

6. Execution model

두 가지 방식이 있다.

  • Preemptive : 현재 실행 중인 task를 중단하고, 우선순위가 더 높은 task가 즉시 실행될 수 있음
  • Non-preemptive : 현재 실행 중인 task가 자발적으로 종료하거나 블록될 때까지 실행을 지속함

 

7. Static vs Dynamic

  • Static :  Task의 arrival time이 알려짐. Task length가 알려짐. WCET 분석 가능. CPU utilization 높일 수 있음
  • Dynamic :  Task의 arrival time을 모름. 간단한 경우 static analysis 가능. Utilization 감소됨, 대부분의 경우 handle이 어려움