[정보처리기사] 프로세스 스케줄링 | 선점 스케줄링 기법, 비선점 스케줄링 기법 | 2020년 정보처리기사 실기 기출문제
프로세스 스케줄링이란?
프로세스 스케줄링은 운영체제에서 CPU를 프로세스들에게 효율적으로 배정하는 기술입니다. 여러 개의 프로세스가 실행 대기 상태에 있을 때, CPU를 어떻게 분배할 것인지를 결정하는 과정이 바로 프로세스 스케줄링입니다. 이 스케줄링 방식을 통해 프로세스 처리 효율성과 시스템 성능을 극대화할 수 있습니다.
스케줄링 방식은 크게 선점 스케줄링과 비선점 스케줄링으로 나뉩니다.
선점 스케줄링 vs. 비선점 스케줄링
- 선점 스케줄링 (Preemptive Scheduling)
선점 스케줄링은 CPU 사용 중인 프로세스를 강제로 중단하고, 다른 프로세스에게 CPU를 배정할 수 있는 방식입니다.- 장점: 응답 시간을 줄이고, 긴급한 프로세스를 빠르게 처리할 수 있음.
- 예시: SRT, RR, MLFQ 등.
- 비선점 스케줄링 (Non-preemptive Scheduling)
비선점 스케줄링은 프로세스가 CPU를 한 번 점유하면 작업이 끝날 때까지 사용하는 방식입니다.- 장점: CPU 처리의 예측이 가능하고, 프로세스가 중간에 중단되지 않음.
- 예시: FCFS, SJF, HRN 등.
주요 프로세스 스케줄링을 선점 스케줄링과 비선점 스케줄링으로 나누어 설명하겠습니다.
1. 선점 스케줄링 (Preemptive Scheduling)
선점 스케줄링은 현재 실행 중인 프로세스를 중단하고, 다른 프로세스가 CPU를 사용할 수 있도록 하는 방식입니다. 주로 긴급한 작업을 먼저 처리해야 할 때 사용됩니다.
선점 스케줄링 알고리즘:
- SRT (Shortest Remaining Time)
- 설명: 실행 중인 프로세스의 남은 실행 시간이 더 긴 경우, 남은 실행 시간이 더 짧은 프로세스가 도착하면 실행 중인 프로세스를 중단하고, 새로운 프로세스를 실행합니다.
- 장점: 짧은 작업을 먼저 처리하여 응답 시간을 줄일 수 있습니다.
- 단점: 긴 작업이 자주 중단될 수 있어 비효율적일 수 있습니다.
- RR (Round Robin)
- 설명: 모든 프로세스에 동일한 시간 할당량을 주고, 해당 시간 동안만 실행한 후 다음 프로세스로 전환합니다. 주기적으로 모든 프로세스에게 CPU가 돌아가도록 설계된 방식입니다.
- 장점: 공정하게 자원을 분배하며, 응답 시간이 빠릅니다.
- 단점: 할당 시간이 너무 짧으면 빈번한 문맥 교환으로 인해 오버헤드가 증가할 수 있습니다.
- MFQ (Multi-Level Feedback Queue) 다단계 피드백 큐 스케줄링
- 설명: 프로세스들이 여러 레벨의 우선순위 큐에 배정되며, 각 프로세스가 CPU를 사용할 때마다 우선순위가 변동합니다. 처음엔 높은 우선순위 큐에 있다가, 시간이 지나면 낮은 우선순위 큐로 이동할 수 있습니다.
- 장점: 시간이 지나도 낮은 우선순위 프로세스가 CPU를 받을 수 있어 기아 문제를 해결합니다.
- 단점: 설정이 복잡하고, 우선순위 조정이 필요합니다.
2. 비선점 스케줄링 (Non-preemptive Scheduling)
비선점 스케줄링은 프로세스가 CPU를 점유하면 작업이 끝날 때까지 다른 프로세스가 CPU를 가로채지 않는 방식입니다. 즉, 한번 CPU를 할당받으면 중단 없이 끝까지 실행됩니다.
비선점 스케줄링 알고리즘:
- FCFS (First Come First Served)
- 설명: 가장 먼저 도착한 프로세스부터 차례대로 CPU를 할당받아 실행됩니다.
- 장점: 구현이 간단하며, 일괄 처리 시스템에 적합합니다.
- 단점: 먼저 도착한 긴 작업 때문에 뒤에 도착한 짧은 작업들이 오랜 시간 대기해야 하는 대기 시간 증가 문제를 겪을 수 있습니다.
- SJF (Shortest Job First)
- 설명: CPU 사용 시간이 가장 짧은 프로세스부터 우선적으로 실행하는 방식입니다.
- 장점: 평균 대기 시간이 최소화됩니다.
- 단점: 실행 시간이 긴 프로세스가 무한정 대기하는 기아 현상이 발생할 수 있습니다.
- HRN (Highest Response Ratio Next)
- 설명: 대기 시간과 실행 시간을 고려해 응답 비율이 높은 프로세스를 우선 처리하는 방식입니다.
- 응답 비율은 (대기 시간 + 실행 시간) / 실행 시간으로 계산됩니다.
* 실행시간 = 서비스시간 - 장점: SJF의 기아 문제를 보완하며, 공정한 CPU 분배가 가능합니다.
- 단점: 구현이 복잡할 수 있습니다.
2020년 정보처리기사 실기 기출문제
문제
스케줄링 방식에서 HRN(Highest Response ratio Next) 우선순위 계산식을 쓰시오.
답
(대기 시간 + 서비스 시간) / 서비스 시간
* 실행시간 = 서비스시간
해설
HRN(Highest Response-ratio Next) 스케줄링 방식은 대기 시간과 **서비스 시간(실행 시간)**을 기반으로, 응답 비율이 높은 프로세스를 우선 실행하는 방식입니다. 이 알고리즘은 SJF(Shortest Job First)의 단점을 보완하여, 긴 대기 시간을 가진 프로세스도 일정 비율 이상으로 우선순위를 받을 수 있도록 설계되었습니다.
HRN(Highest Response-ratio Next) 스케줄링 알고리즘은 **응답 비율(Response Ratio)**을 계산하여 가장 높은 응답 비율을 가진 프로세스에게 CPU를 할당합니다.
- 대기 시간: 프로세스가 대기 중인 시간.
- 서비스 시간(실행 시간): 프로세스가 CPU에서 실제로 실행되는 데 필요한 시간.
우선순위 계산 공식:
이 식을 보면, 대기 시간이 길어질수록 응답 비율이 커져 우선순위가 높아집니다. 이는 긴 시간 동안 대기하던 프로세스가 계속 대기 상태에 머물지 않도록 CPU 자원을 받을 수 있게 해줍니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."