728x90
CPU 스케쥴링이란?
운영체제가 프로세스에 합리적으로 CPU 자원을 할당하는 작업.
- 선점형 스케줄링 : 어떤 프로세스가 CPU를 할당받아 실행중이더라도 운영체제가 CPU를 빼앗을 수 있는 스케줄링 방식-->장점 : 프로세스들에 골고루 자원을 배분할수 있다. 단점: 문맥 교환과정에서 오버헤드 발생 예 ) round robin, SRT, 선점 우선 순위 등의 알고리즘이 있다.
- 비선점형 스케줄링 : 어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식 -->장점: 문맥 교환과정이 적어 오버헤드 발생 적다 단점: 모든 프로세스가 골고루 자원을 사용할 수 없다. 예 ) FCFS(first come first service), SJF(shortest job first), 우선 순위, HRN(heighest response next)등이 있다.
CPU 스케줄러는 프로세스들이 다음과 같은 상황에 있을 때 스케줄링을 결정한다.
- 실행(running) 상태에서 대기(waiting) 상태로 전환(switching)될 때 ( ex : I/O 발생 )
- 실행(running) 상태에서 준비(ready) 상태로 전환(switching)될 때 ( ex : intterupt 발생 )
- 대기(waiting) 상태에서 준비(ready) 상태로 전환(switching)될 때 ( ex : I/O 완료 시 )
- 종료(Terminated)될 때
1번과 4번 상황에서만 스케줄링이 발생하는 것을 비선점형(non-preemptive) 스케줄링이라고 한다.
이외의 모든 스케줄링은 선점형(preemptive) 스케줄링이라고 한다.
728x90
'운영체제' 카테고리의 다른 글
페이징(Paging)과 세그맨테이션(Segmentation)이란 (0) | 2023.12.27 |
---|---|
시스템 콜이란 무엇인가? (0) | 2023.12.19 |
PCB(Process Control Block)란 무엇인가? (0) | 2023.12.19 |
컨텍스트 스위칭(Context Switching)이란 무엇인가? (0) | 2023.12.19 |
프로세스와 쓰레드의 차이점 (2) | 2023.12.19 |
댓글