특징: 프로세스가 도착한 순서대로 CPU를 할당받는다.
문제점: 컨보이 효과 - 긴 작업이 앞에 오면 뒤의 짧은 작업들이 오랫동안 대기하는 비효율적인 상황이 발생
특징: 준비 상태의 프로세스 중에서 실행 시간이 가장 짧은 프로세스에게 CPU를 먼저 할당
문제점: 기아현상 - 이 스케줄링은 극단적으로 CPU 사용이 짧은 job을 선호해서 사용 시간이 긴 프로세스는 거의 영원히 CPU를 할당받을 수 없다.
기아상태(Starvation)
여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 특정 프로세스가 영원히 자원 할당이 되지 않은 경우이다.
특징: 남은 실행 시간이 가장 짧은 프로세스에게 CPU를 우선적으로 할당합니다. 새로운 프로세스가 도착하면 현재 실행 중인 프로세스를 선점할 수 있다.
문제점: 빈번한 컨텍스트 스위칭으로 인해 오버헤드가 발생하고, 매우 짧은 프로세스가 계속 들어오면 긴 프로세스는 계속 대기 상태에 머무를 수 있다.
특징: 모든 프로세스에 동일한 시간 할당량 (time quantum)을 부여하고, 할당 시간이 지나면 다음 프로세스에게 CPU를 넘깁니다. 이는 공평한 CPU 시간 분배를 보장
문제점: 시간 할당량의 크기 설정에 따라 시스템의 성능이 크게 달라지며, 너무 작으면 컨텍스트 스위칭 오버헤드가, 너무 크면 FCFS와 유사한 비효율이 발생할 수 있다.
특징: 프로세스를 우선순위나 작업 유형에 따라 여러 큐에 구분하여 관리하고, 우선순위가 높은 큐의 작업이 먼저 처리된다.
문제점: 큐 간 이동이 제한적이라면 특정 큐에 속한 프로세스가 기아 상태에 빠질 위험이 있다.
구분 | 선점형 스케줄링 | 비선점형 스케줄링 |
---|---|---|
작업 방식 | 실행 중인 작업을 중단하고 새 작업을 시작할 수 있다. | 실행 중인 작업이 완료될 때까지 다른 작업 시작이 불가능하다. |
장점 | 즉각적인 작업 전환으로 빠른 응답 시간을 제공, 대화형 및 시분할 시스템에 적합 | 작업량이 적고 컨텍스트 스위칭의 오버헤드가 적음 |
단점 | 빈번한 컨텍스트 스위칭으로 인한 오버헤드 발생 | 대기 중인 프로세스 증가로 인해 전반적인 처리율 저하 |
사용 | 시분할 시스템과 같이 빠른 처리가 요구되는 환경에 사용 | 큰 단위의 일괄 처리 작업에 주로 사용 |
중요도 | 높음 | 낮음 |
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