-
프로세스 우선순위
가장 공정한 CPU 스케줄링
CPU를 사용하고 싶은 프로세스들이 차례로??- 빨리 처리해야 하는 프로세스가 있기 때문
(= 프로세스마다 우선 순위가 다르다) - 입출력 작업이 많은 프로세스 (= 입출력 집중 프로세스)의 우선순위는 CPU 작업이 많은 프로세스의 우선순위보다 높다

-> 🤔 이유는 간단하게 입출력 작업이 많은 프로세스의 경우 CPU 작업이 많은 프로세스보다 대기 상태에 더 많이 머무르게 되는데, 이러면 CPU 사용을 하지 않게된다. 이래서 입출력 작업은 잠깐 CPU를 사용하고 CPU를 사용하지 않을거기 때문에 우선순위를 높여 빨리 처리한 후 CPU 작업이 많은 프로세스한테 CPU를 몰빵하는 방법을 택했다
스케줄링 큐
- 준비 큐와 대기 큐

- 대기 큐 : 같은 장치를 요구한 프로세스들은 같은 큐에서 대기

선점형 스캐줄링 비선점형 스케줄링
- 아래와 같이 프로세스가 실행 중인데 다른 급한 프로세스가 나올 수 있다
- 현재 CPU를 사용중인 프로새스로부터 CPU 자원을 빼앗아 다른 프로세스에 할당 -> 선점형 스케줄링
- 어느 한 프로세스의 자원 독점 막을 수 있고 프로세스들에 골고로 자원 배분 가능
- 그만큼 문맥교환 과정에서의 오버헤드가 발생 가능
- 현재 CPU를 사용중인 프로세스의 작업이 끝날 때 까지 프로세스 기다리기 -> 비 선점형 스케줄링
- 선점형 스케줄링에 비해 문맥 교환에서 발생하는 오버헤드가 적다
- 모든 프로세스가 골고루 자원을 이용하기 어렵다
- 현재 CPU를 사용중인 프로새스로부터 CPU 자원을 빼앗아 다른 프로세스에 할당 -> 선점형 스케줄링

