[운영체제] CPU 스케줄링

강민혁·2023년 3월 13일
0

기술면접 | 운영체제

목록 보기
13/32

CPU 스케줄링에 대해 설명하세요

Keyword

CPU 이용률, 효율적, CPU 할당, 선점형, 비선점형, 스케줄링 알고리즘


Script

CPU 스케줄링은 CPU 이용률을 최대화하고 효율적으로 CPU를 사용하기 위해서, 운영체제가 각 process를 CPU에 언제 어떻게 할당시킬지 결정하는 방식입니다. 크게 선점형, 비선점형 스케줄링으로 나눌 수 있으며, 스케줄링 알고리즘에 따라서 CPU 자원을 사용하는 순서를 결정하게 됩니다. 그 기준으로는 대기 순서, 실행 시간, 작업량 등이 있고, 각 기준에 따른 스케줄링 알고리즘을 상황에 맞게 효율적으로 사용하는 것이 중요합니다.


Additional

CPU Burst, I/O Burst

Process는 CPU Burst와 I/O Burst를 반복하며 실행된다. CPU를 이용하는 작업은 CPU Burst, 입출력 장치를 실행하는 작업은 I/O Burst라고 할 수 있다.

입출력 집중 프로세스(I/O bound process)
비디오 재생이나 디스크 백업 작업을 담당하는 process와 같이 I/O 작업이 많은 Process

CPU 집중 프로세스(CPU bound process)
복잡한 수학 연산, 컴파일, 그래픽 처리 작업을 담당하는 process와 같이 CPU 작업이 많은 Process

CPU 스케줄링의 결정 상황

  1. 한 Process가 running 상태에서 waiting 상태로 전환될 때 (I/O 발생)
  2. Process가 running 상태에서 ready 상태로 전환될때 (interrupt 발생)
  3. Process가 waiting 상태에서 ready 상태로 전환될때 (I/O 종료)
  4. Process가 terminated 될때

선점형 스케줄링(preemptive scheduling), 비선점형 스케줄링(non-preemptive scheduling)

선점형 스케줄링은 Process가 CPU를 비롯한 자원을 사용하고 있더라도, 운영체제가 Process로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식이다. 선점형 스케줄링 알고리즘으로는 Round Robin, SRT, 다단계 큐, 다단계 피드백 큐 등이 있다.

비전섬형 스케줄링은 CPU가 하나의 Process에 할당되면, Process가 terminated되거나, waiting 상태로 전환될 때까지 CPU를 점유하는 스케줄링 방식이다. 비선점형 스케줄링 알고리즘으로는 FCFS, SJF, 우선순위 스케줄링 등이 있다.


Reference

Book - 혼자 공부하는 컴퓨터 구조+운영체제

운영체제의 CPU 스케줄링

profile
with programming

0개의 댓글