운영체제 - CPU 스케줄링

델리만쥬 디퓨저·2024년 8월 24일

운영체제

목록 보기
7/13

CPU 스케줄링

  • 운영 체제가 CPU를 여러 프로세스나 스레드에 어떻게 할당할지를 결정하는 메커니즘
  • 여러 프로세스가 동시에 실행되기를 원할 때, CPU는 한 번에 하나의 프로세스만을 실행할 수 있으므로, CPU 스케줄러는 프로세스들이 공정하게 , 그리고 효율적으로 CPU를 사용할 수 있도록 조정하는 역할

CPU 스케줄링의 필요성

  • 멀티태스킹 : 하나의 CPU가 여러 작업을 동시에 처리해야 하는 상황에서, 각 작업이 적절한 시간동안 CPU를 사용할 수 있도록 조정하는 것이 필요함
  • 프로세스 처리 속도 향상 : CPU 스케줄링을 통해 응답 시간을 최소화하고, 처리율을 극대화하며, 시스템 효율성을 향상시킬 수 있음
  • 공정성 : 모든 프로세스가 공정하게 CPU를 사용하도록 보장

스케줄링 기준

  • 공정성 (Fairness) : 모든 프로세스가 CPU를 공정하게 사용할 수 있도록 보장
  • 대기 시간 (Waiting Time) : 프로세스가 대기 큐에서 기다린 총 시간
  • 응답 시간 (Response Time) : 프로세스가 실행되기 시작하는 시간과 프로세스가 실행을 요청한 시간 사이의 차이
  • 처리량 (Throughput) : 주어진 시간 동안 완료된 프로세스의 수

주요 CPU 스케줄링 알고리즘

비선점형 방식

  • 프로세스가 스스로 CPU를 포기하는 방식이며, 강제로 프로세스를 중지하지 않음
  • 컨텍스트 스위칭으로 인한 부하가 적음
  1. FCFS (First-Come, First-Served)

    • 개념 : 가장 먼저 도착한 프로세스를 먼저 처리하는 방식
    • 특징 : 간단하고 공정하지만, 비효율적일 수 있음. 대기 시간이 길어질 수 있으며, 특히 긴 작업이 앞에 있는 경우 문제가 발생할 수 있음.
    • 장점 : 구현이 쉽고 이해하기 쉬움
    • 단점 : 'Convoy Effect'라고 불리는 현상 발생 가능. 긴 작업이 CPU를 차지하면 뒤에 있는 짧은 작업들이 오래 기다리게 됨
  2. SJF (Shortest Job First)

    • 개념 : 가장 짧은 작업(실행 시간이 짧은 프로세스)을 먼저 처리하는 방식
    • 특징 : 이론적으로 최적의 평균 대기 시간을 제공하지만, 정확한 실행 시간을 미리 알 수 없는 경우가 많아 실제 적용이 어려움
    • 장점 : 평균 대기 시간이 최소화됨
    • 단점 : 실행 시간을 예측하기 어려움, 긴 작업이 무한정 기다릴 수 있는 'Starvation' 문제 발생 가능
  3. Priority Scheduling

    • 개념 : 각 프로세스에 우선순위를 부여하고, 우선순위가 높은 프로세스에게 먼저 CPU를 할당
    • 특징 : 중요한 작업을 먼저 처리할 수 있도록 함
    • 장점 : 시스템 요구사항에 맞게 유연한 스케줄링 가능
    • 단점 : 우선순위가 낮은 프로세스가 무한히 대기할 수 있는 'Starvation' 문제 발생 가능. 이를 해결하기 위해 '에이징(Aging)' 기법 사용

선점형 방식

  • 현대 운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스에 CPU 소유권을 할당하는 방식
  1. RR (Round Robin)
    • 개념 : 각 프로세스에게 동일한 시간 양(타임 퀀텀)을 할당하며, 순환 방식으로 CPU를 처리함
    • 특징 : 멀티태스킹 환경에서 공정하게 CPU 시간을 분배하며, 모든 프로세스가 일정 시간마다 실행될 기회를 가짐
    • 장점 : 반응성을 높일 수 있으며, 긴 작업이 독점하지 않음
    • 단점 : 타임 퀀텀 설정이 중요. 너무 짧으면 문맥 교환(Context Switching)이 너무 빈번해져 오버 헤드 발생, 너무 길면 반응 시간이 길어짐
  2. Multilevel Queue Scheduling
    • 개념 : 프로세스들을 여러 개의 큐로 나누고, 각 큐에 다른 스케줄링 알고리즘을 적용함
    • 특징 : 큐별로 다른 성격의 프로세스를 관리할 수 있으며, 큐 간에도 우선순위를 둘 수 있음
    • 장점 : 다양한 작업을 효율적으로 관리할 수 있음
    • 단점 : 각 큐의 관리가 복잡하며, 큐 사이의 스케줄링 정책이 정교하지 않으면 비효율적일 수 있음
  3. Multilevel Feedback Queue Scheduling
    • 개념 : 프로세스들을 한 큐에서 다른 큐로 이동할 수 있도록 하여, 다양한 성격의 작업을 유연하게 관리함
    • 특징 : 작업의 성격에 따라 적절한 우선순위와 처리 시간을 부여함
    • 장점 : 유연하고 공정한 처리 가능
    • 단점 : 설정이 복잡하며, 튜닝이 필요함
profile
< 너만의 듀얼을 해!!! )

0개의 댓글