-
OS - CPU스케줄링CS/OS 2021. 2. 16. 20:16
CPU 스케줄링
CPU 스케줄링
-
CPU와 같은 자원을 우선순위에 기반하여 프로세스에 할당하는 방법을 말한다.
- 이때 사용되는 Queue에는 세 가지가 있다.
- Job Queue: 현재 시스템 안에서 돌고 있는 프로세스를 의미한다.
- Ready Queue: 메모리 안에서 CPU의 할당을 기다리는 프로세스를 의미한다.
- Device Queue: 장치 입출력을 기다리고 있는 프로세스를 의미한다.
스케줄러의 종류
- 장기 스케줄러(Job 스케줄러)
- 어떤 프로세스를 메모리에 먼저 적재할 것인지 결정한다.
- 단기 스케줄러(CPU 스케줄러)
- CPU 스케줄링.
- 메모리에 올라온 프로세스들 중에서 어떤 프로세스를 먼저 CPU의 할당을 받게 할지 순서를 결정한다.
- 중기 스케줄러(Swapper)
- 자원 고갈 등의 이유로 메모리에 적재된 프로세스 중 일부를 하드디스크로 옮긴다.
CPU 스케줄링의 종류
- Ready Queue에 있는 프로세스를 대상으로 스케줄링 한다.
- 비선점 스케줄링) 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없다.
- FIFO: Ready Queue에 도착한 순서대로 CPU를 할당한다.
- SJF: Ready Queue에 있는 프로세스들 중에 실행시간이 짧은 프로세스에 먼저 CPU를 할당한다.
- 장점: 응답시간을 예측하기 용이하다.
- 단점: 긴 작업이 짧은 작업, 중요 작업을 오랫동안 기다리게 하는 경우가 발생한다.
- 선점 스케줄링) 우선순위가 더 높은 프로세스가 CPU를 강제로 빼앗아 사용할 수 있다.
- SRT: 실행중인 프로세스의 남은 시간과 Ready Queue에 있는 프로세스의 실행시간을 비교하여 가장 짧은 실행시간을 요구하는 프로세스에게 CPU를 할당한다.
- RR: 모든 프로세스가 동일한 시간 만큼 CPU를 할당 받고 할당 시간이 만료되면 Ready Queue에 맨 뒤에 적재된다. 할당량이 클수록 FIFO와 유사해 지고, 작을수록 문맥교환이 많아져 성능에 문제가 생긴다.
- 장점: 긴급하게 처리해야 할 높은 우선순위를 가진 프로세스를 빠르게 처리할 수 있다.
- 단점: 프로세스간 문맥 교환이 자주 발생하여 운영체제의 오버헤드가 증가한다.
- 문맥 교환(context switch): 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 적재하는 작업이다.
reference
velog.io/@hygoogi/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C
'CS > OS' 카테고리의 다른 글
[OS] CPU 작동원리 (0) 2021.08.06 [OS]Process VS Thread (0) 2021.07.10 OS - 은행원 알고리즘 (0) 2021.02.20 OS - 프로세스와 쓰레드 (0) 2021.02.15 OS - 메모리 (0) 2021.02.09 -