본문 바로가기
운영체제

프로세스 스케줄링 방식

by asd135 2024. 4. 11.
728x90

비선점형

한번 CPU가 프로세스에 할당되면 작업을 완료할 때까지 CPU를 사용하며, 중간에 다른 프로세스가 CPU를 뺏을 수 없다.

구현이 간단하며, 오버헤드가 낮다.

 

FCFS(First-Come, First-Served)

  • 큐에 들어온 순서대로 CPU를 할당(선입선출)
  • 처리 시간이 긴 프로세스가 앞으로 오면 뒤에 있는 프로세스들은 앞 작업이 끝날 때까지 기다려야 하므로 시스템의 효율성이 떨어짐

SJF(Shortest Job First)

  • 큐에 있는 프로세스 중에서 실행 시간이 짧은 프로세스부터 CPU를 할당
  • 긴 작업은 짧은 작업들에 밀려 실행순위가 밀리게 됨 아사 현상

HRN(Highest Response Ratio Next)

  • SJF에서 발생할 수 있는 아사 현상을 해결하기 위해 만들어진 방식
  • 대기 시간, CPU 사용 시간을 고려하여 스케줄링을 하는 방식
  • 대기 시간 + 사용 시간 / 사용시간 = 응답시간
  • 응답시간이 클수록 우선순위가 높아진다

 

선점형

 

프로세스가 CPU를 사용 중일 때 다른 프로세스가 CPU를 뺏을 수 있다.

오버헤드가 비선점형에 비해 높으며, 구현이 복잡하다.

 

RR(Round Robin)

  • 큐에 들어온 순서대로 CPU를 할당(선입선출)
  • 프로세스가 할당받은 시간 동안 작업, 작업을 완료하지 못하면 큐의 맨 뒤로 이동하고 다시 자기 차례를 기다림
  • 타임슬라이스가 큰 경우 FCFS 스케줄링과 비슷함
  • 타임슬라이스가 작은 경우 문맥 교환이 자주 일어나 성능이 저하됨

SRT(Short Remaining Time)

  • SJF + RR 스케줄링이 합쳐진 방식
  • 정해진 시간만큼 CPU를 이용하고, 다음에 실행되는 프로세스는 남은 작업 시간이 적은 프로세스실행
  • 긴 작업은 짧은 작업들에 밀려 실행순위가 밀리게 됨 아사 현상

우선순위

  • 프로세스에 우선순위를 할당하고 우선순위가 높은 프로세스부터 CPU를 할당
  • 우선순위가 낮은 프로세스는 아사 현상이 발생될 수 있음, 에이징 기법을 사용하여 대기 시간이 길어질수록 프로세스의 우선순위를 높여주는 방법이 있음

다단계 큐

  • 우선순위별로 큐를 여러 개 사용하는 방식 
  • 각 큐는 독립적인 스케줄링 방식(FCFS, RR 등)을 가지며, 큐 간 이동은 불가능하다
  • 우선순위가 높은 큐부터 프로세스를 처리 -> 아사 현상 유발

다단계 피드백 큐

  • 프로세스는 처음에 가장 높은 우선순위의 큐로 들어가고 할당받은 시간 내에 작업을 완료하지 못한 경우 우선순위가 낮은 큐로 이동함
  • 우선순위에 따라 타임 슬라이스 크기가 다름 -> 우선순위가 낮아질수록 CPU를 얻을 확률이 낮아짐 한번 CPU를 사용할 때 많이 작업하라는 기회를 줌
  • 낮은 우선순위 큐에서 너무 오래 기다리는 상황이 발생할 수 있으므로, 에이징 기법을 사용