* 혼자공부하는 컴퓨터구조 운영체제를 공부하며 정리하였습니다.
CPU 스케줄링이란
- 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는것, 컴퓨터 전체 성능과도 직결되는 문제이다.
공정한 스케줄링을 위하여
- 단순히 들어온 순서대로 처리를 하는 방식은 좋은 방식이 아니다.
- 빨리 처리해야되는 프로세스도 있는 반면 비교적 CPU를 적게 써도 되는 프로세스도 있다.
- 입출력 작업이 많은 프로세스의 우선순위는 CPU 작업이 많은 프로세스의 우선순위보다 높다.
(입출력 작업이 많은 프로세스는 CPU를 안쓰는 대기시간이 더 많기 때문이다.)
프로세스 우선순위
- 상황에 맞게, 프로세스의 중요도에 맞게 운영체제가 부여하는것이다.
- PCB에 저장이 된다.
스케줄링 큐
- 운영체제 입장에서는 모든 프로세스의 PCB를 뒤적거려 우선순위를 파악하는것은 굉장히 비효율적이다.
- 스케쥴링 큐 (자원을 이용하고자 하는 프로세스들을 줄을 세운다.)
준비 큐, 대기 큐
- 준비큐 : CPU를 이용하기 위해 기다리는 줄이다.
- 대기큐 : 입출력장치를 이용하기 위해 기다리는 줄 / 같은 장치를 요구한 프로세스들이 들어있는 큐이다.
** 먼저 준비상태에 접어들었다고 해서 먼저 CPU를 사용하는것은 아니다. 프로세스의 우선순위가 더 중요
프로세스 상태 다이어그램
선점형(preemptive) / 비선점형(nun-preemptive) 스케줄링
1) 선점형 : 현재 CPU를 사용 중인 프로세스로부터 CPU자원을 빼앗아 다른 프로세스에 할당
- 어떤 프로세스 하나가 CPU를 독점할 수 없음.
- 장점 : 프로세스에 골고루 자원을 배분가능
- 단점 : 문맥교환이 많이 발생하게 됨. 이 과정에서 오버헤드가 발생할 수 있음
2) 비선점형 : 현재 CPU를 사용중인 프로세스의 작업이 끝날 때까지 프로세스 기다리기
- 어느 한 프로세스가 자원을 이용하고 있다면 종료, 대기 상태에 접어들기 전까지는 다른 프로세스가 못끼어든다.
- 장점 : 문맥교환에서 발생하는 오버헤드가 선점형에 비해 적다.
- 단점 : 모든 프로세스가 골고루 자원을 이용하기는 어렵다.
'프로그래밍 > 컴퓨터구조 및 운영체제' 카테고리의 다른 글
프로세스 동기화 (2) | 2023.11.19 |
---|---|
CPU 스케줄링의 알고리즘 알아보기 (0) | 2023.11.18 |
스레드 알아보기 (1) | 2023.11.15 |
프로세스 상태, 계층 구조, 생성 기법 (0) | 2023.11.14 |
프로세스 개요 (0) | 2023.11.13 |