Thread - SW/HW
•
하드웨어 스레드
◦
OS가 스케쥴 해줄 수 있는 최소 단위의 일
◦
개수 : 동시 실행 가능한 스레드 개수
•
소프트웨어 스레드
◦
소프트웨어 상에서
병렬적으로 task를 나누고 일을 할당할때 쓰임
Mutiple-Processor Scheduling
Load Balancing
각 프로세서가 균등하게 일을 분배해야한다
→ 각자 Ready-Queue를 지니고 있다
Push Migration
•
특정 task가 주기적으로 각 프로세서의 부하를 검사 → 불균형 상태인 경우, 스레드 이동을 통해 균형 유지
Pull Migration
•
Idle상태의 프로세서(처리기)가 busy상태 프로세서(처리기)로부터 스레드를 가져옴
Real-Time CPU Scheduling
실시간 시스템 : 시장에서 끝나는 시간이 존재
반응이 실시간으로 일어나야한다 : 1초 반응해야하는 경우가 2초만에 응답시, 못한 것(실패)과 동일하다.
→ 어떻게 스케쥴링을 할 것인가?
Soft real-time systems
우선순위만 보장하면 됨
Hard real-time systems
우선순위도 보장하면서, 마감시간도 보장해야함 → 즉, Hard Real-time system을 염두에 두고 운영체제 내용을 학습
Event Latency
이벤트가 발생하고, 서비스되기까지의 응답시간 사이 지연시간
1.
Interrupt Latency
인터럽트 발생 시간부터, 인터럽트 루틴 시작까지의 딜레이
2.
Dispatch Latency
CPU의 현재 프로세스를 멈추고, 다른 것으로 Context Switching 하는데 발생하는 딜레이
컨텍스트 스위칭의 오버헤드에 해당
•
Conflict
◦
선점
우선순위가 높은 프로세스가 우선순위가 낮은 프로세스보다 먼저 점령
◦
자원방출
낮은 순위의 프로세스가 높은 순위의 프로세스에게 자원 양보
Priority-based Scheduling
우선순위를 주는건, 더 자주 필요한 프로세스에게 우선권을 주면서 시작하게 됨
•
처리시간 t, 데드라인 d, 주기 p
•
주기적인 task의 비율 = 1/p
Rate Montonic Scheduling
주기가 짧은 프로세스에게 높은 우선순위 배정
(CPU를 자주 필요로하는 task에 높은 우선순위 부여)
•
Short periods → high priority
•
Long periods → low priority
EDF (Earliest Deadline First Scheduling)
데드라인(마감시간)에 임박한 프로세스에게 높은 우선순위 부여
프로세스가 실행가능하게 되면, 마감시간을 시스템에 알림
