CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에 스레드 단위로 CPU 소유권을 할당한다.

비선점형 방식

비선점형 방식은 프로세스의 CPU 소유권을 강제로 회수하지 않는다. 따라서 컨텍스트 스위칭에 대한 오버헤드가 적다.

 

FCFS

  • FCFS(First Come First Served)는 가장 먼저 온 순 서대로 CPU 소유권을 할당하는 방식이다.
  • 길게 수행되는 프로세스 때문에 '준비(상태) 큐에서 오래 기다리는 현상(convoy effect)'이 발생하는 단점이 있다.

SJF

  • SJF(Shortest Job First)는 실행 시간이 가장 짧은 순으로 프로세스에 CPU 소유권을 할당하는 방식이다.
  • '긴 시간을 가진 프로세스가 실행되지 않는 현상(starvation)'이 일어나며 평균 대기 시간(=준비 큐에서 대기한 시간)이 가장 짧다.
  • 하지만 실제로 실행 시간을 알 수 없기 때문에 과거의 실행했던 시간을 토대로 추측해서 사용한다.

우선순위

  • SJF의 starvation을 해결하기 위한 방안으로 실행한지 오래된 작업일 수록 '우선순위를 높이는 방법'을 사용해 보안한 알고리즘이다.
  • SJF와 우선순위를 말하는 것 뿐만 아니라 FCFS를 활용하여 만들기도 하며 선점형, 비선점형적인 우선순위 스케줄링 알고리즘을 말하기도 한다.

선점형 방식

선점형 방식은 현대 운영체제가 쓰는 방식으로 프로세스의 CPU 소유권을 강제로 회수하고 다른 프로세스에 할당하는 방식을 말한다.

라운드 로빈

  • 라운드 로빈은 현대 컴퓨터가 쓰는 선점형 알고리즘 스케줄링 방법으로 각 프로세스에 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시 준비 큐의 뒤로 가는 알고리즘이다.
  • 예를 들어 q만큼의 할당 시간이 부여되었고 N개의 프로세스가 운영된다고 하면 (N-1)*q 시간이 지나면 자기 차례가 오게 된다.
  • 할당 시간이 너무 크면 FCFS가 되고 짧으면 컨텍스트 스위칭이 잦아져서 오버헤드가 커진다.
  • 작업 완료 시간은 길어지지만, 응답 시간은 짧아진다는 특징이 있다.

SRF

SJF는 한 프로세스가 실행 중에 실행 시간이 더 짧은 작업이 들어와도 기존 작업을 모두 수행하고 그 다음 짧은 작업을 이어나가는데, SRF(Shortest Remaining First)는 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘이다.

다단계 큐

  • 다단계 큐는 우선순위에 따른 준비 큐를 여러 개 사용하고, 큐마다 라운드 로빈이나 FCFS 등 다른 스케줄링 알고리즘을 적용한 것을 말한다.
  • 큐 간의 프로세스 이동이 안 되므로 유연성이 떨어지는 특징이 있다.

'CS > 운영체제' 카테고리의 다른 글

프로세스와 스레드  (0) 2025.03.10
메모리  (0) 2025.03.09
운영체제와 컴퓨터  (0) 2025.03.07

+ Recent posts