CHAPTER 11 CPU 스케쥴링
keyword : CPU 스케쥴링, 우선순위, 스케쥴링 큐, 준비큐, 대기큐, 선점형 스케쥴링, 비선점형 스케쥴링
왜 CPU 스케쥴링이 필요한가?
운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것을 CPU스케쥴링(CPU Scheduling)이라고 한다. 이는 컴퓨터 성능과 직결되는 문제임.
프로세스 우선순위
- 프로세스마다 CPU를 사용하는 우선순위가 다르다. 우선순위란 먼저 처리해줘야 컴퓨터 성능이 더 좋아지거나 오류를 해결/피할 수 있는 순위임.
- 대표적으로 입출력 작업이 많은 프로세스들이 우선순위가 높다.(대기 시간이 길어서)
- 대부분 프로세스들은 CPU와 입출력 장치를 모두 사용한다. 즉 실행상태와 대기상태를 반복하며 실행된다.
- 프로세스는 입출력 작업이 많은 프로세스(입출력 집중 프로세스, I/O bound process), CPU작업이 많은 프로세스(CPU 집중 프로세스, CPU bound process)로 크게 구분된다.
CPU burst와 I/O burst
- CPU를 이용하는 작업을 CPU burst라고 한다.
- 입출력 장치를 이용(대기)하는 작업을 I/O burst라고 한다.
- 일반적으로 프로세스는 CPU버스트와 입출력 버스트를 반복하면서 실행되는데, 그 중에서 무엇의 비율이 더 높은지에 따라 입출력 집중 / CPU 집중의 구분이 이루어진다.
프로세스 우선순위(2)
- 입출력 집중 프로세스를 빨리 실행시켜야 입출력 장치를 끊임없이 돌릴 수 있다.
- 그리고 입출력 집중 프로세스가 대기 상태일 동안 CPU집중 프로세스에 CPU를 집중적으로 할당하는게 CPU 스케쥴링의 기본 전략이다.
- 운영체제는 상황과 중요도에 따라 프로세스에 우선순위를 직접 배분한다. 그리고 우선순위는 PCB에 명시됨.