CPU 스케줄링 기법 , 프로세스와 스레드 관리 기법 학습하기

강준호·2024년 1월 17일
0

기술면접

목록 보기
9/9

CPU 스케줄링? 이것이 왜 필요한가?

스케줄링 이란?

  • Process에게 CPU 사용을 어떻게 할당할지

왜 필요해?

  • 목표: CPU가 노는시간 없이 처리량 최대화하기 위함(최고로 뽕뽑기)

  • 멀티태스킹 환경에서는 여러 프로세스를 효율적으로 관리하는 것이 중요합니다.

여러가지 CPU 스케줄링 기법

비선점형 스케줄링(OS가 강제로 너 나와 못함)

  • 현재 CPU에서 실행중인 process 의 수행을 CPU 버스트가 완료될 때까지 중지할 수 없습니다.

  • CPU는 현재 프로세스가 실행을 완료하거나 일반적으로 I/O 작업을 수행할 때 자발적으로 제어를 포기한 후에만 다음 프로세스에 사용할 수 있습니다.

선점형 스케줄링(너 나와)

  • 현재 CPU에서 실행 중인 process의 수행을 정지할 수 있음

  • 이러한 선점은 시간 분할이나 프로세스 우선순위와 같은 특정 기준에 따라 발생할 수 있으므로 이 접근 방식을 더욱 동적으로 만듭니다.

  • CPU에서 작업이 실행되는 순서를 관리하는 기본 프로세스


선착순(FCFS)

  • 먼저온 애 먼저라 운영체제가 관여할 수 없음
  • 대기시간이 랜덤 갸차임 => 짧은 대기시간을 항상 보장X
  • 작업은 대기열에 도착하는 순서대로 실행됩니다. 가장 먼저 도착하는 작업이 가장 먼저 처리됩니다.

장점

  • 간단하고 공정합니다.

단점

-긴 프로세스가 대기열을 차단하면 성능 저하(호송 효과)가 발생할 수 있습니다.

SJF(Shortest-Job-First)

  • Job 짧은애부터 무조건 수행
  • 예상 실행 시간이 가장 짧은 작업을 먼저 실행합니다.

장점

  • 평균 대기 시간을 크게 줄일 수 있습니다.

단점

  • 작업 실행 시간을 예측하기 어렵습니다.
  • 더 긴 작업을 수행하면 기아상태로 이어질 수 있습니다.

우선순위(Priority) 스케줄링

  • 미리 주어진 우선순위에 따라서 CPU 할당

비선점형에서는

한번 CPU 받으면 내 CPU Burst 시간 끝나기전까지 계속

선점형에서는

새로 실행된 애중에 우선순위 높은 애 오면 바꿈

장점

  • 중요한 작업을 먼저 처리할 수 있습니다.

단점: 기아상태

  • Burst time이 긴편인 애는 시작이 빨라도 우선순위 애들한테 계속 밀림.

해결방안: Aging 기법

  • 기다리는 시간에 따라 우선순위를 높여주자.

라운드 로빈(RR) (중요!)

  • 선점형 방식. (무지의 먹방 라이브와 유사)

  • 각 작업에는 고정된 시간 슬롯인 Time Quantum이 할당되며 작업은 순환 순서로 처리된다 (시간 공유와 유사!)

  • Time Quantum(일정시간) 만큼 지나면 너 나와하고 바꾸는것

  • 시간 공유 시스템에서 광범위하게 사용되며 응답성과 공정성을 우선시하는 시스템에 특히 효과적

  • 모든 프로세스가 CPU 시간을 공평하게 분배받아 단일 프로세스가 지배하는 것을 방지합니다.

장점

  • 반응성이 뛰어나고 시간 공유 환경에 적합합니다.

단점

  • 시간 할당량을 선택하는 것이 중요합니다.
  • 너무 작으면 컨텍스트 전환 오버헤드가 높아지고, 너무 크면 FCFS가 됩니다.

멀티레벨 큐 스케줄링

배경

  • 광범위한 프로세스를 처리하도록 발전함에 따라 기존 단일 스케줄링 접근방식으로는 충분하지 않음..

특징

다양한 프로세스 유형 처리

  • 우선순위, 유형 또는 기타 특성을 기반으로 프로세스를 서로 다른 큐로 분리할 수 있습니다.
  • 이는 특정 요구 사항에 따라 프로세스를 보다 효율적으로 관리하는 데 도움이 됩니다.

우선순위 지정 및 전문화

  • 각 대기열에 고유한 예약 알고리즘이 있어 프로세스 유형에 맞게 서로 다른 스케줄링 부여
  • ready 큐를 여러개 줘서 각각에 대해 다른 스케줄링 알고리즘을 부여 => 프로세스들을 구분해줌

예시

Foreground Queue

  • Interactive한 동작이 필요한 프로세스를 위한 큐 => Round Robin 기법사용

Background Queue

  • CPU 연산만 묵묵히 하는 Process를 위한 큐 => FCFS 기법사용

장점

  • 다양한 유형의 프로세스(시스템 대 사용자, 포그라운드 대 백그라운드)에 맞게 사용자 정의할 수 있습니다.

단점

  • 구현 및 유지 관리가 복잡합니다.

멀티레벨 피드백 큐 스케줄링(중요!)

  • 멀티레벨 큐에서 프로세스들이 서로 다른 큐로 이동할 수 있는 스케줄링 방법

  • 동적이고 유연한 접근 방식이 필요한 시스템에 자주 사용

  • Windows 및 UNIX/Linux와 같은 범용 운영 체제에서 사용.

  • 다단계 피드백 큐는 CPU 집약적인 작업부터 I/O 바인딩된 작업까지 광범위한 프로세스 유형을 효과적으로 처리할 수 있습니다.

  • 이는 프로세스의 동작에 적응하여 효율적이고 반응이 빠른 환경을 제공합니다.

  • 실행 특성에 따라 서로 다른 대기열 간에 프로세스를 이동하는 기능을 통해 리소스 활용도를 높이고 전반적인 성능을 향상가능하다!

장점

  • 매우 유연하고 효율적입니다.

단점

  • 복잡하고 미세 조정이 어려울 수 있습니다.

주요 차이점
프로세스 처리의 유연성:

다중 레벨 대기열 예약은 프로세스가 할당된 대기열에 남아 있기 때문에 더욱 엄격합니다.
다단계 피드백 큐 스케줄링은 보다 유연하여 프로세스가 동작에 따라 큐 간에 이동할 수 있도록 합니다.
프로세스 동작에 대한 적응성:

다단계 피드백 큐 스케줄링은 프로세스의 변화하는 동작에 적응하여 잠재적으로 보다 효율적인 리소스 활용과 더 나은 전체 시스템 성능을 제공합니다.
다중 레벨 대기열 예약은 초기 대기열 할당 후 프로세스 동작에 적응하지 않습니다.
구현의 복잡성:

다단계 피드백 큐 스케줄링은 일반적으로 프로세스 동작을 평가하고 큐 전환을 관리하는 메커니즘이 필요하기 때문에 구현하기가 더 복잡합니다.
다중 레벨 대기열 스케줄링은 대기열에 대한 정적 할당을 포함하므로 개념상 더 간단합니다.


프로세스와 스레드 관리 기법

0개의 댓글