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에 맞춰서 끝내줄거라는 보장이 없는 시스템.
- real-time task를 조금 더 고려 하겠으나, 100퍼 보장 못함.
- real-time을 아예 제공하지 않진 않음.
- Hard real-time systems
- real-timeness를 무조건 만족시켜야 함. 만족하지 못하는 경우 그 시스템은 그냥 망한 것. ex) 비행기, 자동차, 로봇 등
- 보통 hard deadline이 정해져 있음. deadline 넘어가면 안한것만 못함.
- 운영체제가 만들어질 때 부터 job들을 describe 하는데 이 task는 반드시 언제 끝날 수 있다는 것이 보장 됨.
- deadline 놓치면 큰 일.
Real-time CPU Scheduling
긴 task들을 작은 task로 쪼갠 다음에, 각각의 deadline이 정해져 있는 작은 task들이 쫙 하나씩 들어오는 형태.
어떤 순으로 처리해야 deadline을 놓치는 애 없이 시스템을 모두 완료 시킬 수 있을까?
-> priority-based 스케줄링이 기본이 될 수 밖에 없을 것이다. 온 순서대로 처리하면 보통 deadline 맞추기 어려움.
RMS (Rate Monotonic Scheduling)
- task들의 rate를 보고 rate가 제일 높은 애부터 preemptive하게 스케줄링 하겠다. → 주기가 가장 짧은 프로세스를 먼저 스케줄링하겠다. (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)
- 데드라인이 빠른 애들이 priority 높음.
- priority-based (deadline이 priority로 정의), dynamic priority. 우선순위 중간에 바뀜.
- preemptive
- EDF는 CPU 백퍼센트를 써서 스케줄러블이 가능한가 안가능한가를 결정짓는다. -> CPU Utilization을 100%까지 끌어올릴 수 있는 효율적인 스케줄링 방식
'💻 > CS' 카테고리의 다른 글
[운영체제] Synchronization - 2 (0) | 2022.12.16 |
---|---|
[운영체제] Synchronization - 1 (0) | 2022.12.16 |
CS 참고 (0) | 2022.06.12 |
CS50_배열 (0) | 2022.06.12 |
CS50_C언어 (0) | 2022.06.12 |