본문 바로가기

운영체제 기초 이해 | 스케줄링

by ㅇㅍㅍ 2023. 4. 14.
운영체제 기초 이해 | 스케줄링
728x90

이번 글은 'ChatGPT로 배우는 프롬프트 엔지니어링'이라는 연재글 일부입니다. 해당 글은 인공지능 언어 모델인 ChatGPT가 작성한 것입니다.

 

운영체제 기초 이해

 

 파일 시스템, 프로세스, 스케줄링, 메모리 관리 등에 대한 이해

 

스케줄링(Scheduling)

스케줄링은 CPU의 자원을 효율적으로 사용하기 위해 프로세스를 관리하는 작업입니다. 운영체제는 CPU 스케줄링 알고리즘을 사용하여 여러 개의 프로세스 중 어떤 프로세스에 CPU를 할당할 것인지 결정합니다. 대표적인 스케줄링 알고리즘으로는 FCFS(First-Come, First-Served), SJF(Shortest Job First), RR(Round-Robin) 등이 있습니다.

 

<스케줄링 알고리즘>

스케줄링 알고리즘은 운영체제가 CPU를 할당하는 방식을 결정하는 알고리즘입니다. 프로세스가 실행 중인 상태에서 입출력 요청 등으로 인해 대기 상태로 전환되면, 운영체제는 이를 대기 큐에 넣고, 실행 가능한 프로세스들 중에서 CPU를 할당할 프로세스를 결정하여 해당 프로세스를 실행 상태로 전환합니다.

스케줄링 알고리즘은 다양한 방식으로 구현될 수 있으며, 대표적인 스케줄링 알고리즘으로는 다음과 같은 것들이 있습니다.

  • FCFS(First-Come-First-Served) : 먼저 도착한 프로세스부터 순서대로 CPU를 할당하는 방식입니다.
    장점: 구현이 간단하며, 처리 시간이 긴 프로세스의 경우 대기 시간이 길어지는 문제를 제외하면 공정한 스케줄링 방식입니다.
    단점: 처리 시간이 긴 프로세스가 먼저 도착하면 평균 대기 시간이 길어질 수 있으며, 이를 해결하기 위해서는 우선순위를 고려한 스케줄링 방식을 사용해야 합니다.
  • SJF(Shortest-Job-First) : CPU를 할당받기 위한 프로세스 중에서 실행 시간이 가장 짧은 프로세스부터 우선적으로 CPU를 할당하는 방식입니다.
    장점: 평균 대기 시간이 최소화되는 스케줄링 방식입니다.
    단점: 프로세스의 실행 시간을 예측하는 것이 어려울 수 있습니다. 또한, 처리 시간이 긴 프로세스의 경우 대기 시간이 매우 길어질 수 있습니다.
  • RR(Round-Robin) : CPU를 할당받은 프로세스는 일정 시간동안만 CPU를 점유하고, 시간이 경과하면 다시 대기 큐에 들어가게 되는 방식입니다.
    장점: 각 프로세스가 공정하게 CPU를 사용할 수 있습니다. 또한, 대기 시간이 너무 길어지는 것을 방지할 수 있습니다.
    단점: 프로세스의 실행 시간이 일정하지 않을 경우, 처리 시간이 긴 프로세스의 대기 시간이 매우 길어질 수 있습니다.
  • Priority-based : 프로세스에 우선순위를 부여하여 CPU를 할당하는 방식입니다.
    장점: 중요한 작업이 우선적으로 처리될 수 있습니다. 또한, 실시간 처리와 같은 특수한 경우에 유용합니다.
    단점: 우선순위가 높은 프로세스만 처리될 경우, 우선순위가 낮은 프로세스가 지나치게 대기 시간이 길어질 수 있습니다. 또한, 우선순위가 매우 높은 프로세스가 계속해서 도착할 경우, 낮은 우선순위의 프로세스가 실행되지 않을 수 있습니다.
  • Multilevel Queue : 프로세스를 다양한 큐로 분류하여 각 큐마다 다른 스케줄링 알고리즘을 적용하는 방식입니다.
    장점: 다양한 요구사항에 따라 CPU를 할당할 수 있습니다. 또한, 각 큐에서 다른 스케줄링 알고리즘을 적용할 수 있어서 각 프로세스의 특성에 맞게 스케줄링을 할 수 있습니다.
    단점: 구현이 복잡하며, 각 큐 사이에서의 교류가 필요합니다. 또한, 다른 스케줄링 알고리즘과의 조합이 필요할 경우, 성능 저하의 문제가 발생할 수 있습니다.
  • Multilevel Feedback Queue : 프로세스를 여러 개의 큐에 할당하고 각 큐에서 다른 스케줄링 알고리즘을 적용하여 스케줄링하는 방식입니다.
    각 큐는 우선순위가 다르고, 우선순위가 높은 큐에서 처리되는 프로세스가 우선권을 가집니다. 만약 높은 우선순위 큐에서 대기하는 프로세스가 없다면, 우선순위가 낮은 큐에서 대기하는 프로세스가 CPU를 할당받습니다.
    이 방식에서는 처리 시간이 긴 프로세스가 먼저 도착하는 경우에도, 우선순위가 높은 큐에 할당되어 바로 처리될 수 있습니다. 또한, 프로세스의 실행 상태에 따라 큐를 이동시키면서, 각 프로세스에게 적합한 스케줄링 알고리즘을 적용할 수 있어 유연한 스케줄링이 가능합니다.

    장점: 다양한 요구사항에 따라 CPU를 할당할 수 있습니다. 또한, 한 번 할당된 큐에서도 다른 스케줄링 알고리즘을 적용하여 프로세스의 특성에 따라 유연하게 스케줄링할 수 있습니다.
    단점: 구현이 복잡하며, 다른 스케줄링 알고리즘과의 조합이 필요할 경우, 성능 저하의 문제가 발생할 수 있습니다. 또한, 너무 많은 큐를 사용할 경우, 큐 사이에서의 교류가 더 복잡해질 수 있습니다.

 

728x90

 

운영체제마다 채택한 스케줄링 알고리즘이 다를 수 있습니다. 각 운영체제는 자신의 목적과 환경에 맞는 최적의 스케줄링 알고리즘을 채택하고 있습니다. 예를 들어, Windows 운영체제는 멀티태스킹 환경에서 멀티코어 CPU를 사용하므로 Round Robin 방식의 스케줄링 알고리즘을 채택하고 있습니다. 반면에, Unix/Linux 운영체제는 대부분의 경우 시분할 시스템 환경을 가지므로 대부분 RR(Round-Robin) 또는 다단계 큐(Multi-Level Queue)와 같은 우선순위 기반 스케줄링 알고리즘을 채택하고 있습니다.시분할 시스템 환경은 여러 개의 프로세스가 동시에 실행되는 환경에서, 각 프로세스들이 공평하게 CPU 자원을 사용할 수 있도록 시간을 분할하여 할당하는 방식을 말합니다. 이러한 환경에서는 CPU 자원의 사용권한을 어떻게 할당할지가 중요한 문제이며, 이를 위해 우선순위 기반 스케줄링 알고리즘이 사용됩니다.

 

 

<CPU 스케줄링>

CPU 스케줄링은 프로세스들이 CPU를 사용하기 위한 경쟁 상황에서 우선순위, 대기 시간 등을 고려하여 CPU를 어떻게 할당할지 결정하는 것을 의미합니다.

 

CPU 스케줄링은 일반적으로 스케줄링 알고리즘이 제공하는 기본적인 프레임워크를 사용하여 실행됩니다. 이는 프로세스들이 어떤 순서에 따라 CPU를 할당받는지를 결정하는 알고리즘을 의미합니다. CPU 스케줄링은 프로세스의 우선순위, CPU 사용시간 등 다양한 요소들을 고려하여 적절한 결정을 내리게 됩니다.
예를 들어, 스케줄링 알고리즘 중 Round Robin 알고리즘은 CPU 스케줄링에 사용될 때, CPU 시간을 일정한 시간 단위로 분할하고 각 프로세스에게 일정한 시간을 할당합니다. 이 방법은 모든 프로세스에게 CPU 시간을 공평하게 분배하면서도, 대기 시간이 긴 프로세스가 지나치게 대기하지 않도록 합니다.

 

 

목차
 

 

반응형

댓글