CPU 스케줄링

Solf·2023년 6월 30일
0

운영체제

목록 보기
10/13

CPU 스케줄링의 정의

CPU 스케줄링은 어떤작업에 CPU를 배정할지 정하는 것이다.
이는 CPU 스케줄러가 담당한다.

스케줄링의 종류

고수준 스케줄링: 가장 큰 틀에서의 cpu 스케줄링 이는 시스템 내의 전체 작업 수를 조절하는 것이다.(전체 프로세스 수를 조절하는 것)

중간수준 스케줄링: 고수준이 프로세스 수를 결정하더라도 시스템에 과부화가 생길 수 있다. 이때 중간수준 스케줄링은 중지와 활성화로 전체 시스템에 '활성화'된 프로세스 수를 조절한다.

저수준 스케줄링: 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 결정하는 일.

스케줄링의 목적

  • 공평성: 모든 프로세스가 자원을 공평하게 배정할 것
  • 효율성: 시스템 자원이 유휴 시간 없이 사용되도록 할 것
  • 안정성: 우선순위를 이용해 중요 프로세스가 먼저 작동하도록 할 것
  • 확장성: 프로세스가 증가해도 시스템이 안정적으로 작동하도록 할 것
  • 반응 시간 보장
  • 무한 연기 방지

선점형 스케줄링/비선점형 스케줄링

선점은 빼앗을 수 있음을 뜻한다. 따라서 선점형 스케줄링은 다른 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 빼앗을 수 있는 방식이다. 비선점형은 빼앗을 수 없다.

비선점형 알고리즘

  • FCFS 스케줄링
  • SJF(Shortest Job First) 스케줄링
  • HRN(Highest Response Ratio Next) 스케줄링

선점형 알고리즘

  • RR(라운드 로빈) 스케줄링
  • SRT(Shortest Remaining Time) 스케줄링
  • 다단계 큐 스케줄링
  • 다단계 피드백 큐 스케줄링
profile
CS/Back-End

0개의 댓글