/////
Search
📝

5월2일(목)

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)

데드라인(마감시간)에 임박한 프로세스에게 높은 우선순위 부여 프로세스가 실행가능하게 되면, 마감시간을 시스템에 알림