157. 스케줄링
- 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거침
1) 장기 스케줄링 = 작업 스케줄링(Job Scheduling), 상위 스케줄링
- 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가 결정하여 준비상태 큐로 보내는 작업
- 작업 스케줄러에 의해 수행됨
2) 중기 스케줄링
- 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업
- CPU를 할당받으려는 프로세스가 많을 경우 프로세스를 일시 보류시킨 후 활성화해서 일시적으로 부하 조절
3) 단기 스케줄링 = 프로세서 스케줄링(Processor Scheduling), 하위 스케줄링
- 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
- 프로세서 스케줄링 및 문맥 교환을 프로세서 스케줄러에 의해 수행
💡 문맥 교환
- 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생하는 것
- 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장
- 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업
1. ⭐ 프로세스 스케줄링 기법
1) 비선점(Non-Preemptive) 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용
- 모든 프로세스에 대한 요구를 공정하게 처리
- 프로세스 응답 시간의 예측이 용이
- 일괄 처리 방식 적합
- 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있음
- FCFS, SJF, 우선순위, HRN, 기한부
2) 선점(Preemptive) 스케줄링
- 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- 우선순위가 높은 프로세스를 빠르게 처리
- 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용
많은 오버헤드(Overhead) 초래 - 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요
- Round Robin, DRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐
158. ⭐ 주요 스케줄링 알고리즘
FCFS (First Come First Service, 선입 선출) = FICO (First In First Out)
- 준비상태 큐(대기 큐, 준비 완료 리스트, 작업준비 큐, 스케줄링 큐)에 도착한 순서에 따라 CPU를 할당
- 가장 간단한 알고리즘
- 공평성을 유지되지만 짧은 잡업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다림
- 대기 시간 : 프로세스가 대기한 시간, 바로 앞 프로세스까지의 진행시간으로 계산
- 반환 시간 : 프로세스의 대기 시간과 실행 시간의 합

SJF (Shortest Job First, 단기 작업 우선)
- 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
- 실행시간이 긴 프로세스는 실행시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태 발생할 수 있음

HRN (Hightest Response-ratio Next)
- 실행시간이 긴 프로세스에 불리한 SJF 기법을 보완
- 대기 시간과 서비스(실행) 시간을 이용
- 우선순위 계산 공식을 이용해 서비스(실행) 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU 할당
- 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일 경우 우선순위가 높아짐
- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위 부여

📖 Reference
2023 시나공 정보처리기사 필기 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
728x90
반응형
'Certificate > 정보처리기사' 카테고리의 다른 글
| [4과목 프로그래밍 언어 활용] 응용 SW 기초 기술 활용 - 161. ⭐ 인터넷 (0) | 2025.11.21 |
|---|---|
| [4과목 프로그래밍 언어 활용] 응용 SW 기초 기술 활용 - 156. ⭐ 프로세스 (Process)의 개요 (0) | 2025.11.21 |
| [4과목 프로그래밍 언어 활용] 응용 SW 기초 기술 활용 - 155. ⭐ 가상기억장치 기타 관리 사항 (0) | 2025.11.21 |
| [4과목 프로그래밍 언어 활용] 응용 SW 기초 기술 활용 - 154. ⭐ 가상기억장치 구현 기법 / 페이지 교체 알고리즘 (0) | 2025.11.21 |
| [4과목 프로그래밍 언어 활용] 응용 SW 기초 기술 활용 - 153. 주기억장치 할당 기법 (0) | 2025.11.21 |