OS - CPU 스케줄러

itonse·2024년 5월 1일
0

CS 스터디

목록 보기
29/56

1. CPU 스케줄링 정의

  • 효율적인 자원 사용을 위해 실행 준비가 완료된 프로세스들 중 어떤 프로세스에게 다음으로 CPU를 할당할지 결정하는 것
  • 스케줄링 대상은 Ready Queue에 있는 프로세스들 이다.

2. CPU 스케줄링의 대표적인 방법

비선점 스케줄링

1. FCFS(Fist Come Fist Served)

특징: 프로세스가 도착한 순서대로 CPU를 할당받는다.
문제점: 컨보이 효과 - 긴 작업이 앞에 오면 뒤의 짧은 작업들이 오랫동안 대기하는 비효율적인 상황이 발생

2. SJF(Shortest Job Fist)

특징: 준비 상태의 프로세스 중에서 실행 시간이 가장 짧은 프로세스에게 CPU를 먼저 할당
문제점: 기아현상 - 이 스케줄링은 극단적으로 CPU 사용이 짧은 job을 선호해서 사용 시간이 긴 프로세스는 거의 영원히 CPU를 할당받을 수 없다.

기아상태(Starvation)

여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 특정 프로세스가 영원히 자원 할당이 되지 않은 경우이다.


선점 스케줄링

1. SRT(Shortest Remaining Time First)

특징: 남은 실행 시간이 가장 짧은 프로세스에게 CPU를 우선적으로 할당합니다. 새로운 프로세스가 도착하면 현재 실행 중인 프로세스를 선점할 수 있다.
문제점: 빈번한 컨텍스트 스위칭으로 인해 오버헤드가 발생하고, 매우 짧은 프로세스가 계속 들어오면 긴 프로세스는 계속 대기 상태에 머무를 수 있다.

2. Round Robin

특징: 모든 프로세스에 동일한 시간 할당량 (time quantum)을 부여하고, 할당 시간이 지나면 다음 프로세스에게 CPU를 넘깁니다. 이는 공평한 CPU 시간 분배를 보장
문제점: 시간 할당량의 크기 설정에 따라 시스템의 성능이 크게 달라지며, 너무 작으면 컨텍스트 스위칭 오버헤드가, 너무 크면 FCFS와 유사한 비효율이 발생할 수 있다.

3. 다단계 큐(Multi level Queue)

특징: 프로세스를 우선순위나 작업 유형에 따라 여러 큐에 구분하여 관리하고, 우선순위가 높은 큐의 작업이 먼저 처리된다.
문제점: 큐 간 이동이 제한적이라면 특정 큐에 속한 프로세스가 기아 상태에 빠질 위험이 있다.


선점 스케줄링과 비선점 스케줄링의 차이

구분선점형 스케줄링비선점형 스케줄링
작업 방식실행 중인 작업을 중단하고 새 작업을 시작할 수 있다.실행 중인 작업이 완료될 때까지 다른 작업 시작이 불가능하다.
장점즉각적인 작업 전환으로 빠른 응답 시간을 제공, 대화형 및 시분할 시스템에 적합작업량이 적고 컨텍스트 스위칭의 오버헤드가 적음
단점빈번한 컨텍스트 스위칭으로 인한 오버헤드 발생대기 중인 프로세스 증가로 인해 전반적인 처리율 저하
사용시분할 시스템과 같이 빠른 처리가 요구되는 환경에 사용큰 단위의 일괄 처리 작업에 주로 사용
중요도높음낮음

3. CPU 스케줄링의 성능 척도

이용률

CPU가 쉬지 않고 일한 시간의 비율, CPU 이용률은 높을 수록 좋다.

처리량

단위시간 당 처리량(프로세스를 얼마나 처리했는지)이다.

소요시간, 반환시간

Ready queue에서 기다린 시간 + 실제로 CPU를 사용한 시간

대기시간

CPU를 사용하러 와서 기다린 전체 시간의 합

응답시간

어떤 프로세스가 CPU를 사용하기 위해 들어와서 CPU를 최초로 사용하기까지 걸리는 시간



ref.
BreadcrumbsInterview_Question_for_Beginner
/OS/

https://eun-jeong.tistory.com/17
Day7. 선점 스케줄링과 비선점 스케줄링의 차이
https://structuring.tistory.com/133#google_vignette

0개의 댓글