Keep going

실시간 cpu 스케줄링 본문

School/운영 체제

실시간 cpu 스케줄링

코딩천재홍 2021. 4. 21. 02:52

실시간 스케줄링

  • 어떤 사건이 일어나면 언제까지 처리가 되어야 된다는 시간에 대한 제약조건
  • 일반적으로 사용하고 있는 시스템에 RealTime Schedulling 기능을 더할려고 하니까 문제 생긴다. (어려워짐)
  • Real Time 전용 → 문제 쉬움
  • Soft realtime-system
    • 이 시스템에서는 real time task 와 Non real time task 들이 혼재되어 있는 상황에서 Real time 애플리케이션에 대해서 Real time process가 들어오면 우선순위를 더 주긴주지만 deadline 에 맞춰서 끝내줄거라는 보장이 없는 시스템을 말한다. (다른애들보다 우선순위를 주지만 너가 언제까지 실행이 된다 보장 못할 경우)
  • Hard realtime system
    • 어떤 process의 deadline 주어지게 되면 그 deadline 안에 맞춰서 끝내주는 시스템
    • 이 시스템에서 deadline을 못 맞추는 것은 너무 치명적이여서, 못 맞출바에야 차라리 그냥 스케줄을 안해주는게 더 나을 정도인 시스템이다. 
    • 대표적인 에로는 자율주행 자동차나 , 무기체계 사용되는 시스템들이 있다. 
  • real time system에 영향을 크게 주는 2가지 지연 시간이 있다.
    • Interrupt latency (인터럽트 지연 시간)
      • 바깥에서 들어오는 신호 처리하기 위해서 프로세스를 돌리게 된다. 처리하고 있던 시스템 중단 시켜야 한다. (인터럽트) 인터럽트 걸리게 되면 cpu가 왜 걸렸는지 판단한다. cpu가 인터럽트 원인 발견해서 현재 진행하고 있던 작업환경 필요하면 save → 인터럽트 서비스 루틴으로 점프 
      • 인터럽트 발생했을 때 부터 시작해서 실제 ISR 실행되기까지 걸린 시간
    • Dispatch latency 
      • 실제 신호를 처리하기 위한 프로세스한테 cpu를 넘겨주기 위해 걸리는 시간이다.
      • 현재 중단되있던 프로세스를 처리하고 잠자고 있던 신호 처리하는 프로세스 깨워서 프로세스를 시작한다.
    • 2가지 시간이 실시간 신호가 들어왔을 때 필요한 지연 시간이다.

 

 

 

Soft real time을 위한 스케줄링 알고리즘

  • 프로세스는 주기적으로 cpu를 요구한다. (신호 처리기가 깨면 신호들어오면 그때마다 처리 해야하기 때문에 일정한 시간마다 계속 신호를 처리한다고 가정)
  • cpu 요청해서 걸게되면 t 시간동안 처리한다.
    • deadline 처리시간에 대한 임계치(d)  주기적으로 발생하는 처리 요구도(p)  처리시간(t)  
  • soft real time system 운영한다고 하면 process 한테 우선순위 줘서 우선순위로 해결하게 된다. 주기가 짧은 프로세스 p1, 주기가 긴 프로세스 p2 중 누구한테 우선순위 주나 ? p1

 

 

 

 

Rate Montonic Scheduling

  • 1/p = rate (대응되는 우선순위)  주기↓ rate↑
  • 주기에 의해서 프로세스의 우선순위가 정해지고 거기에 따라서 우선순위가 고정되어지는 스케줄링 방법이다.
  • 더짧은 주기 - 더높은 우선순위
  • 더 긴 주기 - 더 낮은 우선순위

 

 

missed deadlines with rate montonic scheduling

 

 

 

Earliest Deadline First Scheduling (EDF)

  • 데드라인 기준으로 잡아서 데드라인 가까운 작업부터 실행한다.
  • 이런 방법을 취하게 되면 우리가 스케줄러가 각 프로세스마다 데드라인 얼마인가 알아야 된다. 데드라인만 알면 이 방법은 거의 cpu를 full로 할 수 있을 정도로 문제가 없는 방법이다.

 

 

 

Propotional Share Scheduling

  • 세 개 process 있따면 cpu time 100개가 있는데 100개를 일정 비율 (30, 40, 20) 로 나눠준다.

'School > 운영 체제' 카테고리의 다른 글

동기화 하드웨어  (0) 2021.06.01
알고리즘 평가방법  (0) 2021.04.21
우선순위 스케줄링  (0) 2021.04.20
CPU 스케줄링  (0) 2021.04.19
스레드 이슈  (0) 2021.04.17
Comments