[운영체제] Real-time System이란?

82.831·2023년 1월 6일
0

⚒️ Real-time Task

  • 시스템이 처리하는 일이 deadline이 존재하거나 특정 시간 내로 처리해야 하는 류의 specification이 정해지는 일들을 뜻한다.
  • Real-time Task들이 있는 System을 Real-time System 이라고 한다.

Soft Real-time Systems

ex) linux

  • Real-time Task 와 Non-Real-time Task들이 혼재되어 있는 상황에서, 시스템이 Real-time Task를 조금 더 신경써서 처리해 주기는 하지만, 무조건 deadline에 맞춰서 끝내줄거라는 보장이 없는 시스템이다.

Hard Real-time Systems

  • Real-timeness를 무조건 만족시켜야 하는 시스템이다.
    만족하지 못하는 경우 그 시스템은 그냥 망한 것이라고 보면 된다. ex) 비행기, 자동차, 로봇 등
  • 보통 hard deadline이 정해져 있다. deadline 넘어가면 안한 것만 못한다.
  • 운영체제가 만들어질 때 부터 job들을 describe 하는데, 이 task는 반드시 언제 끝날 수 있다는 것이 보장된다.

Real-time CPU Scheduling

  • 긴 task들을 작은 task로 쪼갠 다음에, 각각의 deadline이 정해져 있는 작은 task들이 쫙 하나씩 들어오는 형태.

어떤 순으로 처리해야 deadline을 놓치는 애 없이 시스템을 모두 완료 시킬 수 있을까?

  • priority-based 스케줄링이 기본이 될 수 밖에 없을 것이다. 온 순서대로 처리하면 보통 deadline 맞추기 어려움.

RMS (Rate Monotonic Scheduling)

  • rate가 제일 높은 애가 priority가 높다.
    : 주기가 가장 짧은 프로세스를 먼저 스케줄링하겠다. (rate는 period의 역수)
  • priority-based (rate가 priority로 정의)
  • static priority: 우선순위가 중간에 바뀌지 않는다.
  • preemptive
  • 모든 task들이 데드라인을 놓치지 않고 모두 스케줄링 다 됐다!
    : RMS로 real-time schedulable한 task들이다.

어떤 한 방식의 스케줄링으로 만족 못시킨다고 해서 real-timeness를 보장하지 못하는 것은 아니다. 다른 스케줄링 방식으로 찾아보면 됨.

  • RMS로 스케줄링이 안되면 다른 어떤 static priority 형태를 가진 스케줄링 방식이 오더라도 처리 안됨.
  • RMS로 처리 안됐던게 다른 방식으로 처리 됐으면 그것은 static priority 형태가 아니였던 것임.

EDF (Earliest Deadline First)

  • deadline이 빠른 애들이 priority가 높다.
  • priority-based (deadline이 priority로 정의)
  • dynamic priority: 우선순위가 중간에 바뀐다.
  • preemptive
  • EDF는 CPU 백퍼센트를 써서 스케줄러블이 가능한가 안가능한가를 결정짓는다.
    -> CPU Utilization을 100%까지 끌어올릴 수 있는 효율적인 스케줄링 방식이다.

0개의 댓글