CPU스케쥴러와 선점/비선점

강민승·2023년 4월 13일

CPU schedular vs Dispatcher

여기서 스케쥴러는 CPU가 놀지 않도록 프로세스를 선택하는 역할을 한다.

즉,

cpu 스케쥴러는 cpu에서 실행될 프로세스를 선택하는 역할

디스패쳐는 선택된 프로세스가 실제로 cpu 에서 실행될 수 있도록 만드는 역할

  • context switching
  • 등등

즉, 디스패쳐는 선택된 프로세스에게 cpu를 할당하는 역할

스케쥴링의 선점 방식

Nonpreemptive scheduling vs Preemptive scheduling

운영체제가 강제적으로 개입하는 것이 아닌 프로세스 스스로 러닝상태를 멈추고 I/O 상태로 들어간다던데 멈춘다던가 다른 프로세스가 cpu를 사용할 수 있도록 양보한다.

cooperative → 스스로 양보하는 것

스케쥴링 알고리즘

  1. FCFS ( first-come, first-served ) - 먼저 도착한 순서대로 처리
  2. SJF ( shortest-job-first) - 프로세스 다음 cpu burst가 가장 짧은 프로세스부터 실행
  3. SRTF ( shortest-remaining-time-first ) - 남은 CPU burst가 가장 짧은 프로세스부터 실행
  4. priority - 우선순위가 높은 프로세스부터 실행
  5. RR ( round-robin ) - time slice 로 나눠진 cpu time 을 번갈아가며 실행
  6. Multilevel queue - 프로세스들은 그룹화해서 그룹마다 큐를 두는 방식
profile
Step by Step goes a long way. 꾸준하게 성장하는 개발자 강민승입니다.

0개의 댓글