[OS 공부] 스케줄러
스케줄러란
프로세스들은 자신이 죽을때까지 수많은 큐들을 돌아다닌다. OS는 이 큐 안에 있는 프로세스 중에 하나를 선택해야 한다. 이런일을 스케줄러가 하는 것이다.
즉,프로세스들 중에 무엇을 어떻게 어떤시간에 선택해야하는것일까? 이러한 원칙을 세워 실행하는 것을 스케줄러라고 한다.
큐(Queue) :
프로세스를 스케줄링 하기 위한 큐는 세가지 종류가 있다.
- Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
- Ready Queue : 현재 메모리 내에 있으면서 CPU를 기다리는 프로세스의 집합
- Device Queue : Device I/O 작업을 대기하고있는 프로세스의 집합
스케줄러의 종류
장기스케줄러 : 한정된 메모리 공간에 프로세스들이 한번에 올라온 경우, 디스크에 임시로 저장된다. 이 프로세스들 중 어떤 프로세스에 메모리를 할당하여 ready queue로 보낼지 결정하는 역할을 한다.
- 메모리와 디스크 사이 스케줄링 담당
- 프로세스에 메모리를 할당
- 실행중인 프로세스의 수 제어
- 프로세스의 상태 new->ready
단기스케줄러 :
- CPU와 메모리 사이의 스케줄링 담당
- ready queue에 존재하는 프로세스 중 어떤 프로세스를 run 시킬지 결정
- 프로세스에 CPU를 할당해준다.
- 프로세스의 상태 ready -> running -> waiting -> ready
중기스케줄러 :
- 여유공간을 마련하기 위해서 프로세스를 통째로 메모리에서 디스크로 쫓아낸다
- 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절하는 스케줄러
- 프로세스의 상태 ready -> suspended
참고자료 : 프로세스와 스레드
[OS 공부] 프로세스와 스레드
프로세스 : 실행중인 프로그램 으로 메모리에 적재돼서 CPU에 할당을 받을 수 있는것을 말한다. 위 사진과같이 OS로부터 주소공간과 파일 메모리 등을 할당받고 이를 프로세스라고 한다. Stack 은
dbstndi6316.tistory.com