여러 개의 프로세스가 시스템 내 존재
자원을 할당할 프로세스를 선택해야 함: 스케줄링(Scheduling)
자원 관리
* 프로세스 스케줄링(Process Scheduling): 프로세서 사용 시간을 프로세스들에게 분배
프로세스 스케줄링의 목적: 시스템의 성능 향상 (응답 시간, 작업 처리량, 자원 활용도)
프로세스 스케줄링의 기준: 프로세스의 특성, 시스템 특성, 프로세스의 우선순위, 프로세스의 총 실행 시간 등
프로세스 스케줄링의 단계: 발생하는 빈도 및 할당 자원에 따른 구분 - 장기, 중기, 단기 스케줄링으로 분류
Long-term Scheduling: 시스템에 제출할(커널에 등록할) 작업 결정
Mid-term Scheduling: 메모리 할당 결정 (Memory Allocation)
Short-term Scheduling: 프로세스 스케줄링 - 프로세서를 할당할 프로세스를 결정, 가장 빈번하게 발생
타의에 의해 자원을 뺏길 수 있음
컨텍스트 스위치 오버헤드가 큼
응답성이 높아짐
할당 받은 자원을 반납하기 전까지 사용
컨텍스트 스위치 오버헤드가 적음
프로세스 생성시 결정된 우선순위가 유지됨
구현이 쉽고 오버헤드가 적음
시스템 환경 변화에 대한 대응이 어려움
프로세스 상태 변화에 의해 우선순위 결정
구현이 복잡하고 우선순위 재계산 오버헤드가 큼
시스템 변화에 유연한 대응 가능
스케줄링 정책: 비선점 스케줄링 (Nonpreemptive Scheduling)
스케줄링 기준: 도착 시간 - 먼저 도착한 프로세스를 먼저 처리
자원을 효율적으로 처리 가능
일괄처리 시스템(Batch System)에 적합, 대화형 시스템(Interactive System)에 부적합
단점: Convoy Effect(대기시간 > 실행시간), 긴 평균 응답시간
스케줄링 정책: 선점 스케줄링 (Preemptive Scheduling)
스케줄링 기준: 1. 도착 시간 (ready queue 기준), 2. 먼저 도착한 프로세서를 먼저 처리
자원 사용에 제한 시간(time quantum)이 있음: 프로세스가 할당된 시간이 지나면 자원 반납
컨텍스트 스위치 오버헤드가 큼
대화형, 시분할 시스템(Time-sharing System)에 적합
Time quantum이 시스템 성능을 결정하는 핵심 요소
스케줄링 정책: 비선점 스케줄링 (Non-preemptive Scheduling)
스케줄링 기준: 실행시간 - Burst time이 가장 작은 프로세스를 먼저 처리
평균 대기시간(WT) 최소화
시스템 내 프로세스 수 최소화