본문 바로가기

Computer Science

[OS] 스케줄러

스케줄링

운영체제에서 프로세서(CPU)를 프로그램에게 할당하는 과정 

시스템에 여러 개의 실행 가능한 프로세스들이 존재하고, OS는 이런 프로세스 중 하나를 선택해 CPU를 할당한다. 

 

  • 실행 준비 완료 된 프로세스들은 준비 큐에 들어가서 CPU를 할당 받을 때까지 대기한다. 
  • 실행 중인 프로세스가 인터럽트를 받았을 경우? 
    • 다시 준비 큐에 들어가게 되고, 이후에 다시 실행된다. 
    • 이 과정에서 프로세스들은 상태를 변화시키면서 큐 사이를 왔다갔다하는데,
    • OS는 적절한 스케줄링을 통해 큐에서 작업들을 관리해야 한다. 
    • 이 작업을 하는 것이 스케줄러

 


장기 스케줄러 / 단기 스케줄러 - 일괄 처리 시스템

장기 스케줄러 

디스크 내의 작업들을 어떤 순서로 메모리에 적재할지 결정한다. 

디스크와 같은 저장장치에 작업들을 저장해 놓고, 필요할 때 작업 큐에서 꺼내 준비큐를 통해 메인 메모리에 적재한다. 

 

작업들의 상태를 new -> ready 로 만든다. 

 

단기 스케줄러

프로세스 스케줄러, CPU 스케줄러. 

메모리에 있는 프로세스 중에 하나를 골라 CPU를 할당한다. 

준비 큐에 있는 프로그램 중 먼저 도착한 프로세스에게 할당한다. 

 

작업의 상태를 ready -> running 으로 만든다. 

 

중기 스케줄러

중기 스케줄러

시분할 시스템에서 사용한다. 

unix나 windows에서는 큐에 작업이 들어오면 바로 메모리에 적재시킨다. 

이런 시분할 시스템에서 메모리 가중을 완화하기 위해 중기 스케줄러를 사용한다. 

 

즉, 메모리에서 CPU를 쓰기 위해 경쟁하는 프로세스들을 어느 정도 제거시킨 뒤, 

나중에 다시 메모리로 불러와 중단된 시점부터 다시 실행한다. (swapping)

 

프로세스들이 CPU를 선점하기 위한 경쟁이 심해지면, Swapping 기법을 활용하여 메모리를 관리한다. 

Swap out : 메모리 -> 디스크 

Swap in : 디스크 -> 메모리 

 


장기 스케줄러 vs 단기 스케줄러
  • 실행빈도
    • 단기 스케줄러는 속도가 빨라야 한다. 프로세스 실행시간이 매우 짧기 때문이다.
      스케줄링 실행시간 > 프로세스 실행시간 이라면 효율이 낮다.
    • 장기 스케줄러는 작업이 시스템을 나갈 때만 실행되기 때문에 그 간격이 상대적으로 길다. 

출처 : https://kim6394.tistory.com/177

'Computer Science' 카테고리의 다른 글

[OS] IPC  (0) 2020.06.08
[OS] 스케줄링 종류  (0) 2020.05.27
[OS] 멀티 스레드  (0) 2020.05.26
[OS] 프로세스와 스레드  (0) 2020.05.26
[자료구조] 삽입정렬(Insertion Sort) 구현하기  (0) 2020.03.25