프로그래밍/컴퓨터구조 및 운영체제

CPU 스케쥴링 개념

gameObject 2023. 11. 16. 19:44
728x90

* 혼자공부하는 컴퓨터구조 운영체제를 공부하며 정리하였습니다.

CPU 스케줄링이란

- 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는것, 컴퓨터 전체 성능과도 직결되는 문제이다.

 

공정한 스케줄링을 위하여

- 단순히 들어온 순서대로 처리를 하는 방식은 좋은 방식이 아니다.

- 빨리 처리해야되는 프로세스도 있는 반면 비교적 CPU를 적게 써도 되는 프로세스도 있다.

- 입출력 작업이 많은 프로세스의 우선순위는 CPU 작업이 많은 프로세스의 우선순위보다 높다.

(입출력 작업이 많은 프로세스는 CPU를 안쓰는 대기시간이 더 많기 때문이다.)

 

프로세스 우선순위

- 상황에 맞게, 프로세스의 중요도에 맞게 운영체제가 부여하는것이다.

- PCB에 저장이 된다.

 

스케줄링 큐

- 운영체제 입장에서는 모든 프로세스의 PCB를 뒤적거려 우선순위를 파악하는것은 굉장히 비효율적이다.

- 스케쥴링 큐 (자원을 이용하고자 하는 프로세스들을 줄을 세운다.)

 

준비 큐, 대기 큐

- 준비큐 : CPU를 이용하기 위해 기다리는 줄이다.

- 대기큐 : 입출력장치를 이용하기 위해 기다리는 줄 / 같은 장치를 요구한 프로세스들이 들어있는 큐이다.

** 먼저 준비상태에 접어들었다고 해서 먼저 CPU를 사용하는것은 아니다. 프로세스의 우선순위가 더 중요

 

프로세스 상태 다이어그램

 

선점형(preemptive) / 비선점형(nun-preemptive) 스케줄링

1) 선점형 : 현재 CPU를 사용 중인 프로세스로부터 CPU자원을 빼앗아 다른 프로세스에 할당

 - 어떤 프로세스 하나가 CPU를 독점할 수 없음.

 - 장점 : 프로세스에 골고루 자원을 배분가능

 - 단점 : 문맥교환이 많이 발생하게 됨. 이 과정에서 오버헤드가 발생할 수 있음

2) 비선점형 : 현재 CPU를 사용중인 프로세스의 작업이 끝날 때까지 프로세스 기다리기 

 - 어느 한 프로세스가 자원을 이용하고 있다면 종료, 대기 상태에 접어들기 전까지는 다른 프로세스가 못끼어든다.

 - 장점 : 문맥교환에서 발생하는 오버헤드가 선점형에 비해 적다.

 - 단점 : 모든 프로세스가 골고루 자원을 이용하기는 어렵다.

728x90