1 분 소요

CPU 스케줄링이란, 어떤 프로세스에 CPU를 배정할지 결정하는 일을 말한다.

image

목적

CPU 스케줄링은 특정 프로세스를 배제하는 일 없이 모든 프로세스가 자원을 공평하게 배정받으며(공평성), 시스템 자원을 놀리지 않고(효율성), 중요한 프로세스에 자원을 먼저 배분하며(안정성), 적절한 시간 안에 프로세스의 요구에 반응하고(반응 시간 보장), 특정 프로세스의 작업을 무한히 연기시키지 않는(무한 연기 방지) 것을 목적으로 한다.

단계

고수준 스케줄링(long-term scheduling, job scheduling)

시스템의 과부하를 막기 위해, 실행 가능한 프로세스의 개수를 조절한다.

중간 수준 스케줄링

중지(suspend)와 활성화(active)로 활성화된 프로세스 수를 조절한다.

저수준 스케줄링(short-term scheduling)

어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼 지 등을 결정한다. 중간 수준 스케줄링은 프로세스를 중지(suspend)하지만, 저수준 스케줄링은 대기 상태로 보낸다는 것이 차이점이다. 아래 대부분의 내용이 저수준 스케줄링에 해당한다.

선점형vs비선점형(preemptive vs non-preemptive)

특정 프로세스가 CPU를 점유하고 있을 때, 운영체제가 해당 프로세스의 CPU를 빼앗아 다른 프로세스에 할당할 수 있는 지 여부를 말한다. 선점형 스케줄링의 경우 운영체제가 CPU를 빼앗을 수 있어 처리 시간이 매우 긴 프로세스가 CPU를 독점하는 상황을 막을 수 있지만, 잦은 문맥 교환으로 오버헤드가 크다는 단점이 있다. 비선점형 스케줄링의 경우 CPU를 빼앗을 수 없어 오버헤드가 상대적으로 적지만, 프로세스가 어떤 순서로 CPU를 할당받느냐에 따라 효율성 차이가 크다.

CPU bound vs I/O bound

프로세스가 대기 상태에 있다가 CPU를 할당핟아 실행하면 CPU burst, 입출력 작업을 수행하면 I/O burst라고 한다.

CPU bound process의 경우 CPU burst가 많은 프로세스를 말하고, I/O bound process는 I/O burst가 많은 프로세스를 말한다.

전면 프로세스 vs 후면 프로세스

참고:

  • https://bnzn2426.tistory.com/65

태그:

카테고리:

업데이트:

댓글남기기