CPU 스케줄링 알고리즘

쿠우·2023년 6월 29일
0

CS지식

목록 보기
3/4
post-thumbnail

cpu 스케줄링 알고리즘은 cpu가 어떤 일을 어떻게 처리하는지 순서 및 처리 기준에 대한 이야기를 합니다. 아래 내용을 종합해보면 CPU 스케줄링 알고리즘의 목적은 처리 대기 시간을 최소화하고 반환시간의 예측을 가능하게 하기 위함입니다. 좀더 자세히 알아보겠습니

CPU 스케줄러란?

CPU 스케줄링 알고리즘에 따라 프로세스에서 해야하는 일을 스레드 단위로 CPU에 할당.

CPU ?
산술논리연산장치, 제어장치, 레지스터로 구성된 컴퓨터 장치
중앙 처리 장치(CPU)는 컴퓨터 부품과 정보를 교환하면서 컴퓨터 시스템 전체를 제어하는 장치로, 모든 컴퓨터의 작동과정이 중앙 처리 장치(CPU)의 제어를 받기 때문에 컴퓨터의 두뇌에 해당한다고 할 수 있다.

프로세스(process) ?
단순히 실행 중인 프로그램이라고 할 수 있음.

스레드(thred) ?
프로세스 내에서 실제로 작업을 수행하는 주체

즉, "cpu 스케줄러"란 cpu가 어떤 일을 처리해야 스레드 일꾼 단위로 계획을 세우는 것이라고 이해!

CPU 스케줄링 알고리즘의 GOAL "효율"

  1. CPU 이용률 높이기
  2. 주어진 시간에 많은 일 처리하기
  3. 처리할 일을 저장하는 준비 큐(queue)에 있는 프로세스는 적게 설정하기
  4. 응답 시간은 짧게 설정하기

CPU 스케줄링 알고리즘에는 크게 2가지 방식 존재!

비선점형 방식

  1. FCFS (First Come, First Served)
    : 가장 먼저 들어온 일을 가장 먼저 처리하는 알고리즘. 선입선출과 같은 개념.
    앞의 일의 처리 시간이 긴만큼 다음 일들의 처리 시간이 지연된다는 단점이 있음.

  2. SJF (Shortest Job First)
    : 실행 시간이 짧은 프로세스 먼저 실행하는 알고리즘. FCFS의 단점 보완 가능.
    단점으로는 긴 시간을 가진 프로세스가 실행되는 않는 현상이 있으며, 실제로는 실행 시간 예측이 불가하여 과거의 프로세스 처리 시간을 토대로 처리 순서를 정함.

  3. 우선순위
    : SJF 방식의 단점인 처리 시간이 긴 프로세스가 맨 마지막에 실행되는 문제를 보완하기 위한 방식. 처리 시간이 길지만 중요한 보다 중요한 프로세스일 경우 우선순위를 먼저 두어 선 진행될 수 있도록 처리하는 알고리즘.

선점형 방식

현대 운영체제가 사용하는 알고리즘 방식으로, 진행중인 프로세스를 알고리즘이 중단시키고 강제로 CPU가 다른 프로세스를 처리하도록 할당하는 방식.

  1. 라운드 로빈
    : 현대 컴퓨터가 사용중인 "우선순위 스케줄링"의 한 종류. 각 프로세스 당 동일한 시간을 부여하고 해당 시간 내에 처리되지 못한 프로세스는 다시 준비큐로 넘기는 알고리즘.

  2. SRF (Shorrest Remaining Time First)
    : SJF는 cpu가 다른 프로세스를 실행하는 중에 기존 프로세스보다 처리 시간이 짧은 프로세스가 발생해도 기존 작업을 끝낸 후에 수행.
    이와 반대로 SRF는 기존 프로세스보다 시간이 짧은 작업이 들어오면 중단하고 해당 프로세스를 먼저 처리.

  3. 다단계 큐
    우선순위별 준비 큐를 여러개 마련. 큐마다 (라운드 로빈이나 FCFS과 같은) 각각 다른 스케줄링 알고리즘을 적용. 큐 간의 프로세스 이동은 없어서 스케줄링 부담은 적지만, 유연성이 떨어짐.

출처

면접을 위한 cs 전공지식 노트 (주홍철 지음, 출판사 길벗)
https://ko.wikipedia.org/wiki/%EC%A4%91%EC%95%99_%EC%B2%98%EB%A6%AC_%EC%9E%A5%EC%B9%98
https://sweetday-alice.tistory.com/171
https://wonin.tistory.com/338

profile
기록하며 J가 되고싶은 ENTP 🐣

0개의 댓글