CPU 스케줄링 (CPU scheduling)
이란 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것이다.
입출력 집중 프로세스 (I/O bound process)
: 입출력 작업이 많은 프로세스CPU 집중 프로세스 (CPU bound process)
: CPU 작업이 많은 프로세스CPU 버스트 (CPU burst)
: CPU를 이용하는 작업 입출력 버스트 (I/O burst)
: 입출력장치를 기다리는 작업일반적으로 프로세스는 CPU 버스트와 입출력 버스트를 반복하여 실행되며, CPU 집중 프로세스 보다 입출력 집중 프로세스를 우선순위로 CPU를 할당하는 것이 효율적이다.
❗❗프로세스 우선순위 확인하기❗❗
유닉스 체계 운영체제 : 명령어 ps -el
Window : Process Explore 소프트웨어
준비 큐 (ready queue)
: CPU를 이용하기 위해 기다리는 줄대기 큐 (waiting queue)
: 입출력장치를 이용하기 위해 기다리는 줄선점형 스케줄링(preemptive scheduling)
: 하나의 프로세스가 자원을 사용하고 있을 때 다른 프로세스가 해당 자원을 빼앗을 수 있는 스케줄링
비선점형 스케줄링(non-preemptive scheduling)
: 하나의 프로세스가 자원을 사용하고 있을 때 다른 프로세스가 해당 자원을 빼앗을 수 없는 스케줄링
❗오버헤드 : 프로세스를 처리하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 말한다.