System/OS

운영체제 3-3~3-4] 스케줄러

hololo 2021. 9. 26. 21:35

##본 포스팅은 운영체제 강의 '이화여자대학교 운영체제 강의 - 반효경 교수님'를 보고 정리한 내용입니다.

 

스케줄러

운영체제에는 CPU 스케줄러, dist 스케줄러 등이 있는데
분류를 해보자면 다음과 같다.

**스케줄러 소프트웨어가 따로 있는 것이 아니라, 운영체제에서 스케쥴링 하는 코드를 의미한다.

  • Long-term scheduler
    job scheduler
    프로세스 new ->(admitted) ->  ready 의 역할을 한다. 즉, 메모리를 누구에게 주는 역할을 한다.
    너무 많거나 적은 프로세스가 허용된다면 문제가 발생할 수 있기에 degree of Multiprogramming을 제어한다.
    time sharing system에는 보통 없고 바로 ready 상태로 간다.
    대신 medium을 둔다.

  • Short-term scheduler
    CPU scheduler
    CPU를 누구에게, 얼마나 줄 지 경정
    굉장히 빠른 과정이기에, 자주 빨리 milisec 단위로 호출이 된다.

  • Medium-term scheduler
    일단 ready로 다 주고, 메모리가 너무 부족할 떄 프로세스를 통째로 메모리에서 디스크로 쫓아내는 역할을 한다.
    프로세스에게 memory를 뺏는 역할
    중간 스케줄러가 들어가면서 suspended라는 상태가 추가되었다.

- Suspended (stopped)
외부적인 이유로 프로세스의 수행이 정지된 상태
프로세스는 통째로 디스크에 swap out된다.
리눅스에서 ctrl + z가 그 예이다.
blocked와 비슷하지만, blocked는 cpu만 없고 이멘트를 진행하는 상태이다.
blocked에서는 ready로 돌아갈 수 있지만, suspended는 외부(사람, 운영체제)에서 resume을 해줘야만 한다.

suspended가 추가되면서 상태도는 위와 같이 바뀐다.