1. Process Group
- 프로세스들도 각 프로세스들이 속성이 있기 떄문에 그에 맞춰서 그룹핑할 수 있다.
- 1) System Process : 시스템(OS)이 사용하는 프로세스 (파일 입출력, 가상메모리, 통신 등)
- 2) Interactive Process : 사용자와 계속적으로 대화하는 프로세스 (게임, 워드와 같이 입출력이 계속 됨)
- 3) Batch Process : 컴퓨터가 알아서 일괄적으로 처리하는 (대화X) 프로세스 (e.g. 컴파일러 등)
생각해보면 각 그룹별로 프로세스들의 중요도가 다를 것이다. 예를 들어 가장 중요한 것은 시스템 프로세스이며, 배치프로세스보다는 인터랙티브 프로세스가 더 빨리 응답해야 사용자가 답답함을 덜 느낄 것이다. 때문에 이러한 아이디어로부터 각 속성에 맞게 Ready Queue 자체를 여러개 쓰면 어떨까? 하는 것이 Multilevel Queue (다중 큐) 스케줄링이다.
실제로 은행에서도 작업을 입/출금과 같이 비교적 빨리 끝나는 작업들과 대출/통장개설과 같이 오래걸리는 작업으로 나눌 수 있는데 이들을 다른 창구를 이용하게 해서 번호표도 다르게 발급한다. 사람 100명이 입/출금을 희망하는데 앞선 1명이 1시간 동안 대출 상담을 하고있을수는 없기 때문이다. 즉, 다중큐 스케줄링은 은행의 다중창구 시스템을 컴퓨터로 옮겨놓은 것이라고 생각 할 수 있다.
2. Multilevel Queue Scheduling
- 각 Queue마다 절대적 우선순위가 존재하거나 (Sys > Inter > Batch)
- 각 Queue마다 CPU 할당 시간을 차등분배 하거나 (Sys : 60, Inter : 30, Batch : 10)
- 각 Queue마다 다른 스케줄링 전략을 세울수도 있음 (Sys : RR, Inter : Priority : Batch : FCFS 등)
- 단, Queue가 지정되면 프로세스는 해당하는 Queue에서만 대기해야한다 (Queue를 못 옮긴다)
3. Multilevel Feedback Queue
- Queue가 여러개 존재한다는 것은 기존 Multilevel Queue 스케줄링과 비슷하지만,
- Feedback 스케줄링은 프로세스가 하나의 Queue에 있다가 성능이 잘 안나오면 다른 Queue로 옮길 수 있음
- 예를 들어, 너무 많은 CPU time을 사용하거나, 기아상태가 우려되면 다른 Queue로 옮겨서 성능을 확보함
4. 실제 OS에서는 어떨까?
- 우리가 실제로 사용하는 Windows나 Linux와 같은 실제 OS들도 이렇게 여러개의 큐를 운용하면서
- 상황에 맞게 사용할 수 있는 매우 다양한 스케줄링 기법을 동시에 활용한다.
5. Reference
'운영체제' 카테고리의 다른 글
쓰레드란 무엇인가? (0) | 2020.05.05 |
---|---|
프로세스 생성과 소멸 (0) | 2020.05.05 |
CPU 스케줄링 (4) - 라운드 로빈 스케줄링 (0) | 2020.03.06 |
CPU 스케줄링 (3) - 우선순위 스케줄링 (0) | 2020.03.05 |
CPU Scheduling (2) - SJF (Shortest Job First) (0) | 2020.03.05 |
CPU Scheduling (1) - FCFS (First Come, First Served) (0) | 2020.02.04 |
CPU Scheduling Criteria & Kinds (0) | 2020.02.04 |