CPU 스케줄러는 프로세스를 어떻게 스케줄링 하는 걸까요? 선점/비선점의 차이, 디스패처

KIM YONG GU·2023년 10월 15일
0

쉬운코드

목록 보기
14/18

스케줄러(scheduler)의 역할

CPU가 놀지 않도록 CPU에서 실행될 프로세스를 선택하는 역할. (프로세스는 ready queue에서 대기중)

디스패처(dispatcher)의 역할

스케쥴러에 의해 선택된 프로세스를 CPU에서 실행될 수 있도록 하는 역활 (CPU에 할당)

  • Context Switching
  • Kernel Mode에서 User Mode로 전환

스케쥴링 방식 (선점 vs 비선점)

nonpreemptive scheduling (비선점 스케쥴링)

  • 프로세스가 자발적으로 Running 상태에서 빠져나가는 것
  • 신사적, 협력적(cooperative), 느린 응답성

preemptive scheduling (선점 스케쥴링)

  • 스케쥴러가 프로세스에 개입하는 것
  • 적극적, 강제적, 빠른 응답성, 데이터 일관성 문제

스케줄링 알고리즘

스케줄링 알고리즘 : FCFS(First-Come, First-Served)

먼저 도착한 순서대로 처리

스케줄링 알고리즘 : SJF(Shortest-Job-First)

프로세스의 다음 CPU Burst가 가장 짧은 프로세스 부터 실행

스케줄링 알고리즘 : SRTF(Shortest-Remaining-Time-First)

남은 CPU burst가 가장 짧은 프로세스부터 실행

스케줄링 알고리즘 : priority

우선순위가 높은 프로세스부터 실행

스케줄링 알고리즘 : RR(Round-Robin)

time slice로 나뉘어진 CPU time을 번갈아가며 실행

스케줄링 알고리즘 : Multilevel queue

프로세스들을 그룹화해서 그룹마다 큐를 두는 방식

profile
Engineer, Look Beyond the Code.

0개의 댓글

관련 채용 정보