본문 바로가기
정보처리기사 자격증/4과목 운영체제

정보처리기사 필기 SJF 완벽 마스터!

by 길잡이마롱 2024. 11. 2.

메타 설명: 정보처리기사 필기 시험에서 까다롭기로 유명한 SJF(Shortest Job First) 스케줄링 알고리즘을 완벽하게 이해하고 득점하는 방법을 알려드립니다.  핵심 개념부터 예제 문제 풀이까지, 꼼꼼한 설명과 함께 정보처리기사 시험 준비에 도움이 될 만한 모든 것을 담았습니다.

 


SJF(Shortest Job First) 스케줄링 알고리즘 완벽 분석

아, 정보처리기사 시험… 생각만 해도 머리가 지끈거리시죠? 특히 운영체제 파트는 암호처럼 느껴지는 용어들이 가득해서 막막하다는 분들 많으실 거예요.  하지만 걱정 마세요! 오늘은 그 중에서도 많은 분들이 어려워하는 SJF(Shortest Job First) 스케줄링 알고리즘을 쉽고 명확하게 풀어드리려고 합니다.  이 글을 끝까지 읽으시면 SJF가 더 이상 두렵지 않을 거예요, 약속드립니다!

 

SJF, 즉 최단 작업 우선 스케줄링은 여러 프로세스들이 CPU를 사용하려고 기다리는 상황에서, 실행 시간이 가장 짧은 프로세스부터 먼저 처리하는 방식입니다.  쉽게 말해, 일감이 가장 적은 일부터 먼저 처리해서 효율성을 높이는 거죠.  이렇게 하면 CPU 사용률을 높이고, 모든 프로세스의 평균 대기 시간을 줄일 수 있다는 장점이 있습니다.  하지만 세상에 완벽한 건 없듯이, SJF에도 단점은 존재합니다.  바로 긴 작업이 계속해서 밀리는 현상이 발생할 수 있다는 점이죠. 짧은 작업들이 계속해서 먼저 처리되면서, 실행 시간이 긴 작업은 계속해서 뒤로 밀려나 무한정 기다려야 할 수도 있는 거예요.

 

그럼에도 불구하고 SJF는 평균 대기 시간을 최소화한다는 점에서 높은 평가를 받고 있습니다.  특히, 짧은 작업들이 많은 환경에서는 매우 효율적입니다.  단, 긴 작업의 대기 시간이 길어질 수 있다는 점은 항상 고려해야 합니다.  실제 시스템에서는 이런 단점을 보완하기 위해 여러 가지 스케줄링 기법들이 사용되고 있어요.  예를 들어,  HRN(Highest Response Ratio Next) 스케줄링 기법은 SJF의 단점을 보완하기 위해 대기 시간을 고려하여 우선순위를 부여하는 방식입니다.

 

SJF는 단순히 짧은 작업을 우선시하는 것이 아니라, 실행 시간에 기반하여 스케줄링을 진행한다는 점을 명심해야 합니다.  프로세스의 우선순위가 아닌, 실제 실행에 필요한 시간을 기준으로 하기 때문에,  처음에는 복잡해 보일 수 있지만,  핵심 개념만 제대로 이해하면 의외로 간단하게 문제를 풀 수 있습니다.  실행 시간을 정확하게 파악하고, 이를 기준으로 프로세스의 처리 순서를 결정하는 것이 SJF 스케줄링의 핵심이라고 할 수 있어요.

 


SJF 스케줄링의 실제 적용과 예제 문제 풀이

자, 이제 SJF 스케줄링의 실제 적용 사례와 예제 문제 풀이를 통해 더욱 확실하게 개념을 정리해 봅시다.  이 부분은 정보처리기사 시험에서 자주 출제되는 유형이니,  꼼꼼하게 살펴보는 것이 중요해요.  어려운 개념도 실제 문제를 풀어보면서 이해하면 훨씬 수월해진답니다.

 

자, 예를 들어 볼까요?  다음과 같은 프로세스들이 있다고 가정해 봅시다.  각 프로세스의 도착 시간과 실행 시간이 주어져 있고,  우리는 SJF 스케줄링을 적용하여 프로세스들의 실행 순서와 각 프로세스의 평균 대기 시간을 계산해야 해요.  이때, 가장 중요한 것은 프로세스의 도착 시간과 실행 시간을 정확하게 이해하는 것입니다.  도착 시간은 프로세스가 CPU를 요청한 시간이고, 실행 시간은 프로세스가 CPU를 사용하여 작업을 완료하는 데 걸리는 시간을 의미합니다.

 


이러한 조건들을 충족시키기 위해서는 꼼꼼한 계산이 필요합니다.  먼저, 각 프로세스의 도착 시간을 기준으로 CPU를 할당받기까지 걸리는 대기 시간을 계산해야 합니다.  그리고, SJF 알고리즘의 핵심 원칙인 “실행 시간이 가장 짧은 프로세스부터 먼저 처리”를 적용하여 프로세스들의 실행 순서를 결정합니다.  마지막으로,  각 프로세스의 대기 시간을 모두 합산하여 평균 대기 시간을 계산하면 됩니다.

 

여기서 잠깐!  SJF 스케줄링은 비선점형 스케줄링이라는 점을 기억해야 합니다.  즉,  한번 CPU를 할당받은 프로세스는 작업이 완료될 때까지 CPU를 놓지 않습니다.  반면에,  선점형 스케줄링은 실행 중인 프로세스의 CPU를 다른 프로세스가 빼앗을 수 있는 방식입니다.  정보처리기사 시험에서는 이러한 차이점을 정확하게 알고 있어야 하므로,  비선점형과 선점형 스케줄링의 개념을 확실하게 구분하는 연습이 필요합니다.

 

또한, SJF 스케줄링의 한계점도 함께 고려해야 합니다.  실행 시간이 긴 프로세스는 무한정 기다릴 수도 있다는 점, 그리고 실행 시간을 미리 정확하게 예측하기 어렵다는 점 등을 이해해야 실제 시스템에서 SJF를 적용할 때 발생할 수 있는 문제점들을 예상하고 대비할 수 있습니다.  결국,  SJF 스케줄링은 단순하면서도 효율적인 기법이지만,  절대적인 해결책이 아니라는 점을 기억해야 합니다.

 

SJF 스케줄링의 장점과 단점, 그리고 다른 스케줄링 기법과의 비교

자, 이제 SJF 스케줄링의 장점과 단점을 좀 더 자세히 알아보고, 다른 스케줄링 기법들과 비교해 보면서  더욱 깊이 있는 이해를 해보도록 하겠습니다. 정보처리기사 시험에서 고득점을 노린다면, 단순히 개념만 아는 것으로는 부족합니다.  각 기법의 특징을 명확하게 이해하고,  장단점을 비교 분석할 줄 알아야  시험 문제에 효과적으로 대처할 수 있습니다.

 

SJF 스케줄링의 가장 큰 장점은 평균 대기 시간을 최소화한다는 점입니다.  이는 실행 시간이 짧은 프로세스부터 먼저 처리하기 때문에 가능한 일인데요,  하지만 이러한 장점은 동시에 단점으로 작용하기도 합니다.  바로, 실행 시간이 긴 프로세스는 계속해서 뒤로 밀려 '기아 현상'을 겪을 수 있다는 점입니다.  따라서 SJF는 모든 프로세스에 대해 공평한 처리를 보장하지는 못한다는 점을 명심해야 합니다.

 

다른 스케줄링 기법들과 비교해 보면, SJF는 FCFS(First Come First Served) 스케줄링보다 평균 대기 시간이 짧지만,  긴 작업에 대한 불공평함이 존재합니다.  반면에 Round Robin 스케줄링은 모든 프로세스에 공평한 시간을 할당하지만,  평균 대기 시간은 SJF보다 길 수 있습니다.  또한, 우선순위 스케줄링은 중요도가 높은 프로세스를 우선적으로 처리하지만,  실행 시간이 짧은 프로세스가 밀릴 수 있다는 단점이 있습니다.

 

마지막으로,  SJF 스케줄링은 비선점형 스케줄링이라는 점을 다시 한번 강조합니다.  한번 CPU를 할당받은 프로세스는 작업이 완료될 때까지 CPU를 사용합니다.  반면,  선점형 스케줄링은 실행 중인 프로세스의 CPU를 다른 프로세스가 빼앗아 사용할 수 있습니다.  이러한 차이점을 명확하게 이해하고,  각각의 장단점을 비교 분석하는 것이 정보처리기사 시험에서 좋은 점수를 받는 비결입니다.

 

SJF(Shortest Job First) 실행 시간이 가장 짧은 프로세스부터 처리 평균 대기 시간 최소화 긴 작업의 기아 현상 발생 가능 비선점형
FCFS(First Come First Served) 작업 도착 순서대로 처리 간단하고 구현이 쉽다 평균 대기 시간이 길 수 있다 비선점형
Round Robin 각 프로세스에 시간 할당 공정성 유지 평균 대기 시간이 SJF보다 길 수 있다 선점형
우선순위 스케줄링 우선순위가 높은 프로세스 우선 처리 중요한 작업 우선 처리 낮은 우선순위 작업의 기아 현상 발생 가능 선점형/비선점형

스케줄링 기법 설명 장점 단점 선점형/비선점형

 

Q1. SJF 스케줄링의 가장 큰 장점은 무엇인가요?

A1. 평균 대기 시간을 최소화하는 것입니다.

 

Q2. SJF 스케줄링과 FCFS 스케줄링의 주요 차이점은 무엇인가요?

A2. SJF는 실행 시간이 짧은 작업을 우선 처리하지만, FCFS는 작업 도착 순서대로 처리합니다.

 

Q3. SJF 스케줄링은 선점형인가요, 비선점형인가요?

A3. 비선점형 스케줄링입니다.

 

이제 SJF 스케줄링에 대한 이해도가 높아졌기를 바랍니다. 정보처리기사 시험에서 좋은 결과를 얻으시길 응원합니다. 다음 시간에는 또 다른 운영체제 개념으로 찾아오겠습니다.