목차
- 멀티프로그래밍 (멀티태스킹)
- 스케줄링 개념
- 목적
- 성능 지표
- 스케줄링 기준
- 스케줄링 레벨
- 스케줄링 정책
(프로세스 스케줄링을 왜 해야하는 지?)
우리는 주로 많은 프로세스 환경을 사용
즉
Multi-programming
- 여러개의 프로세스가 시스템 내에 존재
- 자원을 할당할 프로세스를 선택해야함
- => 스케줄링 (Scheduling)
- 자원관리
- 시간 분할 관리 (time sharing)
- 하나의 자원을 여러 스레드들이 번갈아 가며 사용
- ex) 프로세서 스케줄링
- 공간 분할 관리 (space sharing)
- 하나의 자원을 분할하여 동시에 사용
- ex) 메모리
- 시간 분할 관리 (time sharing)
스케줄링의 목적
시스템의 성능(performance) 향상
(성능? 모호한 표현)대표적 시스템 성능 지표
- 응답시간 (response time)
- 작업 요청으로부터 응답을 받을때까지의 시간
- => 대화형 시스템, real-time 시스템
- 작업 처리량 (throughput)
- 단위 시간 동안 완료된 작업의 수
- => batch system
- 자원 활용도 (resource utilization)
- 주어진 시간동안 자원이 활용된 시간 (자원을 놀지않고 잘 굴리기)
- => 비싼 장비 사용할 때
- 응답시간 (response time)
목적에 맞는 지표를 고려하여 스케줄링 기법을 선택
대기시간, 응답시간, 반환시간
- 프로세스 도착 ↔ 실행시작 : 대기시간
- 실행시작 ↔ 실행종료 : 실행시간 (burst time)
- 프로세스 도착 ↔ 첫번째 출력 : 응답시간
- 프로세스 도착 ↔ 실행종료 : 반환시간
스케줄링의 기준
: 스케줄링 기법이 고려하는 항목들
- 프로세스의 특성
- I/O-bounded or compute-bounded
- 시스템 특성
- Batch system or interactive system => 목적
- 프로세스의 긴급성(urgency) (어떤게 더 급한가)
- Hard- of soft- realtime, non-real time sys
- 프로세스 우선순위
- 등등
CPU burst vs I/O burst
- 프로세스 수행 = CPU사용 + I/O 대기
- CPU burst
- CPU 사용시간이 더 많은 프로세스
- => compute-bounded process라 부른다
- I/O burst
- I/O 대기시간이 더 많은 프로세스
- => I/O-bounded process라 부름
스케줄링의 단계(level)
발생하는 빈도에 따라
- Long-term scheduling (가끔)
- Mid-term scheduling (종종)
- Short-term scheduling (자주)
Long-term scheduling
- = Job scheduling
- 어떤 Job을 system에 등록시켜줄지~
- (Created에서 Ready상태로)
- 다중 프로그래밍 정도(degree)를 조절
- = 시스템 내에 프로세스 수 조절
- I/O-bounded 와 compute-bounded 프로세스들을
잘 섞어서 선택해야 함- why???
- CPU와 I/O device 둘 중에 하나만 계속 돌아가는 것은 비효율적이다.
- 시분할 시스템(time sharing)에서는 long-term scheduling이 덜 중요
- why???
- 모든 작업을 시스템에 등록하고 시간을 분배한다.
Mid-term scheduling
- = 메모리 할당 결정 (memory allocation)
- (suspended ready 에서 ready로 갈때 발생
- 메모리를 할당받아야 함
- suspended ready 애들 중에서 누구를 줄지~~ 정하는거야)
Short-term scheduling
(ready 에서 running로 갈 때 발생
processor (CPU) 필요
= Process scheduling
- 프로세서를 할당할 프로세스를 결정
가장 빈번하게 발생
- 하기 때문에 매우 빨라야한다.
스케줄링의 정책 (Policy)
(정책 : 수행하기 위한 방법? 기준?)
- 선점 vs 비선점
- 우선순위
비선점 / 선점 스케줄링
선점 : 빼앗을 수 있다. 비선점 : 뺏을 수 없다.
Non-preemptive scheduling
할당 받을 자원을 스스로 반납할 때까지 사용
장점 : Context switch overhead가 적음
단점
잦은 우선순위 역전 (급한데 못들어가...ㅠㅠ)
평균 응답시간 증가 (혼자만 독차지하네)
Preemptive scheduling
- 타의에 의해 자원을 빼앗길 수 있음
- 장점 : 응답성이 높아짐
- Time-shairng system
- real-time system 등에 적합
- 단점 : Context switch overhead가 크다
Priority (우선순위)
- Static priority (정적 우선순위)
- 한 번 우선순위가 결정되면 바뀌지 않는다.
- 장점 : 구현이 쉽지, overhead도 적고
- 단점 : 시스템 환경 변화에 대한 대응이 어려움 (못 바꾸니까)
- Dynamic priority (동적 우선순위)
- 프로세스 상태 변화에 따라 priority 변경
- 장점 : 시스템 환경변화에 대한 유여한 대응 가능
- 단점 : 구현 복잡, priority 재계산 overhead가 큼
- (지우개 쓸 수 있따 생각해라)
'Study > OS' 카테고리의 다른 글
Chapter 05. Process Scheduling (3of4) - SPN, SRTN, HRRN (0) | 2021.06.23 |
---|---|
Chapter 05. Process Scheduling (2of4) - FCFS, RR (0) | 2021.06.23 |
Chapter 04. Thread Management (0) | 2021.06.23 |
Chapter 03. Process Management (0) | 2021.06.17 |
Chapter 02. OS Overview (0) | 2021.06.16 |