다중 프로그래밍(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가 큼
- 시스템 환경 변화 유연 대응
'OS' 카테고리의 다른 글
[OS] Lecture 5. Process Scheduling (3/4) - SPN, SRTN, HRRN (0) | 2022.02.05 |
---|---|
[OS] Lecture 5. Process Scheduling (2/4) - FCFS, RR (0) | 2022.02.05 |
[OS] Lecture 4. Thread management (0) | 2022.02.05 |
CPU, Main Memory(Primary Memory), Disk(Secondary Memory) (0) | 2022.02.02 |
[OS] Lecture 3. OS Process Management (2/2) (0) | 2022.01.31 |