프로세스 스케줄링이란?
프로세스 스케줄링은 운영체제에서 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 자원을 받을 수 있게 해줍니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] [ Java ] for 루프를 사용하여 배열 출력 | 2020년 정보처리기사 기출문제 (0) | 2024.09.06 |
---|---|
[정보처리기사] [ C ] 버블 정렬 코드 | 2020년 정보처리기사 기출문제 (0) | 2024.09.06 |
[정보처리기사] 튜플 수 구하기 | SQL : SELECT, DISTINCT, COUNT | 2020년 정보처리기사 실기 기출문제 (0) | 2024.09.06 |
[정보처리기사] 인터페이스 구현 : JSON, XML, AJAX, REST | 정보처리기사 실기 기출 모음 (0) | 2024.09.05 |
[정보처리기사] 프로토콜이란? 프로토콜의 개념과 3가지 기본 요소 | 정보처리기사 실기 기출문제 (1) | 2024.09.05 |