여러 개의 프로세스가 시스템 내 존재
자원을 할당 할 프로세스를 선택 해야 함
- 스케줄링(Scheduling)
자원 관리
시간 분할 관리(time sharing) | 공간 분할 관리(space sharing) | |
---|---|---|
개념 | 하나의 자원을 여러 스레드들이 번갈아 가며 사용 | 하나의 자원을 분할하여 동시에 사용 |
예시 | 프로세서 (Processor) | 메모리 (Memory) |
프로세스 스케줄링1 |
- 기타 시스템 성능 지표들
- 공평성 (Fairness)
- 실행 대기 방지
- 예측 가능성 (Predictability)
- 우선 순위
- 서비스 사용 기회 확대
- 서비스 수 감소 방지
- 오버헤드 최소화
- ...
- 대기시간, 응답시간, 반환시간
- 대기시간 : 대기열에 들어와 CPU를 할당받기까지 기다린 시간
- 응답시간 : 대기열에서 처음으로 CPU를 얻을 때까지 걸린 시간
- 반환시간 : 프로세스가 CPU요청을 한 시점부터 작업을 모두 마친 후까지 걸리는 시간
1. 스케줄링 기준 (Criteria) : 스케줄링 기법이 고려하는 항목들
- 프로세스의 특성
- I/O-bounded or compute-bounded
- 시스템 특성
-- Batch system or interactive system
- 프로세스의 긴급성 (Urgency)
- Hard- or soft- real time, non-real time systems
- 프로세스 우선순위 (Prioirty)
- 프로세스 총 실행 시간 (Total Service Time)
- CPU burst vs I/O burst
- 프로세스 수행 = CPU 사용 + I/O 대기
- CPU burst : CPU 사용 시간
- I/O burst : I/O 대기 시간
※ Burst time은 스케줄링의 중요한 기준 중 하나
2. 스케줄링의 단계 (Level) : 발생하는 빈도 및 할당 자원에 따른 구분
Long-term Scheduling
- 스케줄링의 단계
Non-preemptive scheduling
Priority : 프로세스의 중요도
3.1. Static priority (정적 우선순위)
3.2. Dynamic priorty (동적 우선순위)