학교생활/운영체제

[운영체제] Ch5(3)Real-Time Cpu scheduling & Operating Systems Examples

sh1256 2022. 10. 13. 20:27
728x90

Real-Time Cpu scheduling

: deadline안에만 수행하면 성능이 100%인 것.(빨리 응답을 한다고 해서 성능이 더 좋은 건 아님)

 

  • Soft real-time systems: deadline을 넘기면 성능은 급격히 떨어지지만 사용은 가능(영상 등)
  • Hard real-time systems: deadline을 넘기면 성능은 0%(항공기 제어 등)

Event latency

어떠한 일을 하는데 걸리는 시간

  • Interrupt latency: Interrupt가 와서부터 Interrupt Service routine을 시작하기까지 걸리는 시간.
  • dispatch latency: [low-level process가 access하던 자원을 high level process가 기다려야 하는 시간] + CPU가 하던 일을 save하고 새로운 일을 reload하는 시간
    --> conflicts + dispatch

event latency
interrupt latency     /      dispatch latency


Priority-based scheduling(Real-Time Cpu scheduling의 종류)

주기적으로 해야하는 real time scheduling 아래 다이어그램처럼 작동한다.

p: period

d: deadline

t: cpu burst

[Priority-based scheduling의 종류]

P1이 도착하면 다음 P1이 도착할 때까지가 deadline

1. Rate Montonic Scheduling

  • 주기가 짧은 일 --> 먼저 실행
  • p1의 주기: 20 , p2의 주기: 35
  • p1의 마감시한: 50, p2의 마감시간: 100

문제점: P2의 deadline이 80인데, P1때문에 80 전에 완료하지 못했음 (반면에 P1은 deadline이 남음)

  • 주기가 짧은 일 --> 먼저 실행
  • p1의 주기: 25 , p2의 주기: 35
  • p1의 마감시한: 50, p2의 마감시간: 100

2. Earliest Deadline First Scheduling(EDF)

마감시간 가까운것 --> 먼저 실행

  • 마감시간 가까운것 --> 먼저 실행
  • p1의 주기: 25 , p2의 주기: 35
  • p1의 마감시한: 50, p2의 마감시간: 80

3. Proportional Share Scheduling

CPU시간을 T만큼 문배해서 N개한테 할당해 준다. 

 

POSIX는 우선순위가 같은 때 FIFO를 할지 RR을 할지 정할 수 있다. 


Operating Systems Examples p 54

  • Linux scheduling
  • Windows scheduling
  • Solaris scheduling

Algorithm Evaluation

운영체제마다 기본 개념은 비슷하지만 디테일한 알고리즘이 틀리다.

이렇게 다른 알고리즘의 성능을 평가해야 한다.

1. deterministic modeling

실제로 계산을 해보는 것.

2. Queuing medel

확률분포를 가지고 성능을 계산하는 것.

queue가 있고 queue에 있는 걸 서비스해주는 것.

 

2(1) Little's Formula ( Queuing medel )

3. Simulations 

실제로 구현은 아니지만 모의시험을 해보는 것.

4. Implementation

실제로 구현하는 것. 

high cost, high risk, Environments vary

하지만 가장 정확하다.