1. 개념
a) 선점형 스케줄러(Preemptive Scheduling)
- 하나의 프로세스가 다른 프로세스 대신에 CPU(프로세서)를 차지할 수 있음
- 현재 CPU를 사용중인 프로세스를 멈추고 다른 프로세스에 CPU를 할당할 수 있다.
ex) 시분할 시스템
b) 비선점형 스케줄러(Non-preemptive scheduling)
- 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
- 현재 CPU를 사용중인 프로세스가 자발적으로 block(wait)상태로 전환되거나 실행이 끝나는 상태(terminated)가 아닌 경우, CPU를 다른 프로세스에 할당할 수 없다.
ex) 배치 처리 시스템
2. 스케줄러 정책에 따른 알고리즘 조합
- FIFO(FCFS), SJF, Priority-based: 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘으로 비선점형 스케줄링 방식에 가깝다.
- RoundRobin: 시분할 시스템을 위한 기본 알고리즘으로 선점형 스케줄링 방식이다.
- 스케줄러 정책에는 선점형, 비선점형 스케줄러가 있다. 그리고 스케줄링 알고리즘에는 여러가지가 존재한다.
- 전체적인 스케줄링은 비선점형으로 하지만, 각 프로세스의 상태를 담는 queue는 시분할 방식인 RoundRobin으로 설정하는 등 다양한 조합방식이 존재한다.
- 이해하고 넘어가야 할 부분은 스케줄링 정책과 알고리즘을 종류에 따라 구분하지말고, 필요한 기능과 목적에 따라 유연하게 조합할 수 있다는 것을 인지해야 한다.
'컴퓨터공학기초 개념 > 운영체제' 카테고리의 다른 글
11. 인터럽트의 종류 (0) | 2021.04.07 |
---|---|
10. 인터럽트란? (0) | 2021.04.06 |
8. 프로세스 상태와 스케줄링 알고리즘 (0) | 2021.04.02 |
7. 운영체제 - 스케줄링 알고리즘 (0) | 2021.03.31 |
6. 운영체제 핵심개념 - 프로세스 스케줄링 (0) | 2021.03.29 |
댓글