CPU 스케줄링
운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것
프로세스 우선순위
가장 공정한 CPU 스케줄링은
CPU를 원하는 프로세스들이 차례로 돌아가는 것이 아니라
빨리 처리해야 하는 프로세스 즉, 우선순위에 따라 진행하는 것이다
그리고 이러한 프로세스 우선순위는 프로세스의 PCB에 저장이 된다
ex. 입출력 작업이 많은 프로세스(= 입출력 집중 프로세스)의 우선순위는
CPU 작업이 많은 프로세스(= CPU 집중 프로세스)의 우선순위보다 높다
스케줄링 큐
운영체제가 매번 모든 프로세스의 PCB를 확인하는 것은 너무 비효율적이다
따라서 운영체제가 스케줄링 큐를 이용
대표적으로는 준비 큐와 대기 큐가 있음
준비큐와 대기 큐
프로세스 상태 다이어그램
선점형 스케줄링과 비선점형 스케줄링
위와 같은 상황일 때,
1. 선점형 스케줄링 (preemprtive scheduling)
현재 CPU를 사용 중인 프로세스로부터 CPU 자원을 빼앗아 다른 프로세스에 할당
장점: 어느 한 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원을 배분할 수 있다
단점: 그만큼 문맥 교환 과정에서 오버헤드가 발생할 수 있다
2. 비선점형 스케줄링 (non-preemprtive scheduling)
현재 CPU를 사용 중인 프로세스의 작업이 끝날 때까지 프로세스 기다리기
장점: 선점형 스케줄링에 비해 문맥 교환에서 발생하는 오버헤드가 적다
단점: 모든 프로세스가 골고루 자원을 이용하기 어렵다
'CS > [혼자 공부하는] 운영체제' 카테고리의 다른 글
4-1] 프로세스 동기화: 동기화란 (0) | 2023.06.06 |
---|---|
3-2] CPU 스케줄링: CPU 스케줄링 알고리즘 (0) | 2023.06.06 |
2-3] 프로세스와 스레드: 스레드 (0) | 2023.06.05 |
2-2] 프로세스와 스레드: 프로세스 상태와 계층 구조 (0) | 2023.06.04 |
2-1] 프로세스와 스레드: 프로세스 개요 (0) | 2023.06.04 |