OS

[OS] Lecture 5. Process Scheduling (1/4)

사랑우주인 2022. 2. 5. 13:59

다중 프로그래밍(multi-prgramming) 

- 여러 프로세스가 시스템에 존재

- 자원을 할당 할 프로세스 선택= 스케줄링

- 자원 관리

 

자원 관리

1. 시간 분할(time sharing) 관리

- 하나의 자원을 여러 스레드들이 번갈아 가며 사용. 예) 프로세서(CPU). CPU에는 한번에 하나의 프로세스

- ex) process scheduling 

 

2. 공간 분할(space sharing) 관리

- 하나의 자원을 분할하여 동시 사용

- ex) memory

 

스케줄링의 목적

- 성능 향상

- 목적에 맞는 지표를 고려하여 스케줄링 기법 선택

 

성능의 지표

- reponse time: 작업 요청으로부터 응답을 받을 때까지의 시간

- throughput(작업 처리량): 단위 시간 동안 완료된 작업의 수

- resource utilization(자원 활용도): 주어진 시간 동안 자원이 활용된 시간

 

스케줄링 기준(Criteria)

- 기준= 스케줄링 기법이 고려하는 항목(지표?) 

- 프로세스의 특성: I/O-bounded or compute-bounded

- 시스템 특성: Batch or Interactive system

- 프로세스 긴급성(urgency)

- 프로세스 우선순위(priority) 

 

CPU burst vs I/O burst

- burst time은 스케줄링의 중요 기준 중 하나

- CPU burst= CPU 사용 시간

- I/O burst= I/O 대기 시간

- 프로세스 수행=CPU 사용+ I/O 대기

- I/O-bounded= I/O burst > CPU burst. I/O burst가 프로세스 성능 결정

- compute-bounded= CPU burst > I/O burst. CPU burst가 프로세스 성능 결정

 


스케줄링 레벨(스케줄링 빈도로 구분)

1. Long-term scheduling

ex) Job-> created(프로그램-> 프로세스 생성)

2. Mid-term scheduling

ex) swap-in, swap-out(메모리 할당)

3. Short-term scheduling

ex) created->ready(CPU 할당) 

 


Scheduling Policy(정책)

1. 선점 vs 비선점

preemptive scheduling, Non-preemptive scheduling 

2. 우선순위 

priority

 

 

Non-preemptive scheduling(= 자원을 뺏을 수 X)

- 할당 받을 자원을 스스로 반납할 때까지 사용. 

- 장점: context-switching이 적음

- 단점: 평균 응답 시간 증가, 우선순위 역전 현상(우선순위가 높아도 앞에서 끝날 때까지 대기) 

 

Preemptive scheduling(= 자원을 뺏을 수 O)

- 장점: 응답성 높다. 

- ex) time-sharing system, real-time system 등에 적합

- 단점: 빈번한 context-switching-> overhead가 큼

 

Priority

프로세스의 중요도

1. static priority(정적 우선순위)

- 프로세스 생성시 우선순위 결정되고 불변

- 구현 쉽고, overhead 적음

- 시스템 환경 변화 대응 어려움

 

2. dynamic priority(동적 우선순위) 

- 프로세스 상태 변화에 따라 우선순위 변경

- 구현이 복잡. 우선순위 재계산-> overhead가 큼

- 시스템 환경 변화 유연 대응