📌 CPU 스케줄링 알고리즘 (SECTION 3.4)
1. 목적
- CPU를 어떤 프로세스에 할당할지 결정하는 알고리즘
- 목표: CPU 이용률 극대화, 응답 시간 단축, 준비 큐 최소화
2. 비선점형 방식 (Non-preemptive)
- 프로세스가 스스로 CPU를 포기할 때까지 실행
- 컨텍스트 스위칭 부담 적음
- FCFS (First Come, First Served)
- 먼저 온 프로세스부터 실행
- 단점: 긴 작업 때문에 다른 프로세스가 오래 기다리는 Convoy Effect
- SJF (Shortest Job First)
- 실행 시간이 가장 짧은 프로세스 먼저 실행
- 장점: 평균 대기 시간 최소
- 단점: 긴 작업이 계속 밀려서 Starvation 발생 가능
- 실제로는 실행 시간을 알 수 없어 과거 기록 기반 추측
- 우선순위 스케줄링
- 오래된 작업의 우선순위를 높이는 Aging 기법으로 Starvation 문제 해결
- FCFS, SJF 기반으로 확장 가능
- 선점형/비선점형 모두 존재
3. 선점형 방식 (Preemptive)
- 현재 실행 중인 프로세스를 중단시키고 다른 프로세스에 CPU 할당
- 현대 운영체제에서 주로 사용
- 라운드 로빈 (RR)
- 모든 프로세스에 동일한 시간 할당 (q)
- 시간이 끝나면 준비 큐 뒤로 이동
- q가 크면 FCFS처럼 되고, 너무 작으면 오버헤드 증가
- 평균 응답 시간은 짧아짐
- SRF (Shortest Remaining Time First)
- 남은 실행 시간이 더 짧은 프로세스가 들어오면 현재 실행 중인 프로세스를 중단하고 교체
- 다단계 큐 (Multilevel Queue)
- 여러 개의 준비 큐를 두고 각 큐마다 다른 알고리즘 적용
- 큐 간 이동 불가 → 단순하지만 유연성 부족
📌 데이터베이스 기본 (SECTION 4.1)
1. 정의