본문 바로가기
computer science

하루에 하나씩 배우는 컴퓨터 사이언스 개념: 스케줄링

by vita12321 2023. 8. 2.
728x90
반응형

컴퓨터 시스템에서 여러 작업(프로세스)들이 효율적으로 관리되고 실행되기 위하여 '스케줄링' 중요한 개념이 되었습니다.  글에서는 스케줄링의 기본 개념, 대표적인 알고리즘, 중요성에 대해 보다 자세하게 설명하겠습니다.


 

1. 스케줄링의 개념  중요성

 

스케줄링은 여러 프로세스가 동시에 실행되는 환경에서 CPU(중앙 처리 장치) 시간을 공평하게 분배하고, 어떤 순서로 실행될 것인지 결정하는 과정입니다. 스케줄링은 시스템의 처리 성능을 최적화하고, 사용자가 요구하는 작업에 대한 응답 시간을 최소화하는데 중요한 역할을 합니다.

 

스케줄링 과정에서 반드시 고려해야할 목표는 공정성, 효율성  안정성입니다. 각각의 목표를 달성하기 위해 작업의 우선 순위 설정, 교착 상태 관리, 자원 분배  다양한 정책과 기법이 도입되었습니다.


 

2. 대표적인 스케줄링 알고리즘

 

  • FCFS(First-Come, First-Served)

FCFS 방식은 가장 간단한 스케줄링 기법으로, 들어온 순서대로 프로세스를 처리합니다. 공정한 방식이지만, 평균 대기 시간이 길어질  있는 단점이 있습니다.  작업이 앞에 위치한 경우, 짧은 작업들이 대기열에서 오래 기다리게 됩니다.

 

  • SJF(Shortest Job First)

    SJF 기법은 짧은 실행 시간을 가진 프로세스부터 처리하는 방식으로, 평균 대기 시간을 최소화하려는 목적을 가지고 있습니다. 하지만, 작업 시간이  프로세스에 대한 공정성이 떨어져 '기아 현상' 발생할  있는 단점이 있습니다. 작업 시간이  프로세스는 계속해서 뒤로 밀리게 되어 처리되지 않을  있습니다.

 

  • Round Robin

    Round Robin 기법은  프로세스에 동일한 시간 할당량(quantum) 주고, 순환하면서 해당 시간 할당량만큼 실행을 제공하는 방식입니다. 공정성과 평균 응답 시간 측면에서 높은 효율성을 나타내지만, 적절한 시간 할당량 설정이 중요한 요소가 됩니다. 할당량이 너무 길면 FCFS 동일한 결과를 보이고, 너무 짧으면 전환 오버헤드가 증가합니다.

 

  • Priority Scheduling

    우선순위 스케줄링에서는  프로세스에 우선순위를 부여하고, 높은 우선순위를 가진 프로세스부터 처리하는 방식입니다.  기법은 중요한 작업의 처리를 보장하지만, 우선순위 낮은 작업들이 기아 현상을 겪을  있습니다.  문제를 어느 정도 해결하기 위해 역행 (aging) 기법을 사용하여, 대기 시간이 길어지는 작업의 우선순위를 점진적으로 높여줍니다.

 

  • Multilevel Queue

    Multilevel Queue 스케줄링 기법은 프로세스를 분류하여 서로 다른 큐에 할당하고,  큐마다 다른 스케줄링 알고리즘을 적용하는 방식입니다. 이를 통해   별로 독립적인 스케줄링을 관리할  있어, 유연성이 높지만 동시에 복잡성이 증가합니다.

 

3. 실제 시스템에서 스케줄링 알고리즘의 적용

 

실제 컴퓨터 시스템에서는 이러한 알고리즘을 단독으로 사용하기보다는 환경과 요구 사항에 맞게 다양한 알고리즘을 혼합하거나 개선한 형태로 적용합니다. 이전에 언급한 알고리즘들뿐만 아니라, 리눅스에서 사용되는 CFS (Completely Fair Scheduler) 같은 고급 알고리즘들도 있습니다.

 

 

스케줄링에 대한 이해를 통해 여러 프로세스들이 공평하고 효율적으로 시스템 자원을 이용할  있도록 관리하는 방법에 대해 알게 되었습니다. 이를 활용하여 컴퓨터 시스템에서의 작업 관리를 최적화할  있습니다. 여전히 이해되지 않거나 궁금한 부분이 있다면 댓글로 남겨주세요.

728x90
반응형