[CS] OS Scheduler

Daeyoung Nam·2021년 6월 6일
1

CS

목록 보기
3/8

스케줄러란?

  • 한정적인 메모리를 프로세스가 효율적으로 사용 할 수있도록 작업을 할당시켜주는 역할을 한다.

Scheduling Queue 3가지

  • Job Queue -> 모든 프로세스들이 들어있다.
  • Ready Queue -> ready상태인 프로세스들이 들어있다.
  • Device Queue -> I/O장치 사용을 대기하는 프로세스들이 들어있다.

장기 스케줄러 (long-term scheduler | job scheduler)

메모리는 한정되있는데 한번에 많은 양의 프로세스가 메모리로 올라올 경우 대용량 메모리(디스크)로 임시저장한다. 이 pool에 있는 프로세스중 어떤 프로세스를 ready queue로 보낼 지 결정하는 역할을 수행함

  • 메모리 <-> 디스크의 스케줄링을 담당함
  • 프로세스에 memory(및 각종 리소스) 할당
  • degree of multiprogramming 제어
    degree of multiprogramming (멀티 프로그래밍의 정도. 즉,수행중인 프로세스의 수)
  • 프로세스의 상태를 제어 (new -> ready)

참고로 time sharing system에서는 장기 스케줄러가 없다. 곧바로 메모리에 올라가 ready상태가 된다.

단기 스케줄러 (short-term scheduler | CPU scheduler)

  • CPU와 메모리 사이의 스케줄링을 담당함
  • ready queue에 있는 프로세스를 running상태로 바꿀 지 결정하는 역할
    (ready -> running -> waiting -> ready)
  • 프로세스에 CPU를 할당하는 역할을 함(scheduler dispatch)

중기 스케줄러 (midium-term scheduler | Swapper)

  • degree of multiprogramming 제어
  • 여유공간 마련을 위해 프로세스를 메모리에서 디스크로 쫓아냄(swapping)
  • 프로세스에게서 메모리를 deallocate
  • 현 시스템에서 메모리에 너무많은 프로그램이 올라가는 것을 조절하는 스케줄러
  • 프로세스의 상태 ready -> suspended

Process State - Suspended(stopped)

외부적인 이유로 프로세스의 수행이 정지된 상태로 메모리에서 내려간 상태인것을 의미한다.
전부 디스크로 Swap out 되며 Blocked 상태는 다른 I/O작업을 기다리는 상태이기 때문에 스스로 Ready state로 돌아갈 수 있지만 이 상태는 외부적인 이유로 suspending되었기 때문에 스스로 돌아갈 수 없다.

profile
내가 짠 코드가 제일 깔끔해야하고 내가 만든 서버는 제일 탄탄해야한다 .. 😎

0개의 댓글