Home [OS] 운영체제 - 프로세스 관리 3
Post
Cancel

[OS] 운영체제 - 프로세스 관리 3

운영체제 - 프로세스 관리 3

스케줄러 (Scheduler)

Long-term scheduler (job scheduler)

  • 시작 프로세스 중 어떤 것들을 Ready Queue에 보낼지 결정한다.

  • 프로세스에 Memory 및 각종 자원을 주는 문제를 결정한다.

  • degree of Multiprogramming을 제어한다.

    degree of Multiprogramming

    메모리에 올라간 프로그램의 수 메모리에 너무 많은 프로그램이 올라가도 문제고, 너무 적은 양의 프로그램이 올라가도 문제다. 이를 적절히 조절해야 한다.

  • Time Sharing System에는 보통 장기 스케줄러가 없다.

    • 무조건 Ready
    • 현대의 리눅스 같은 운영체제들이 이에 속한다.
    • 장기 스케줄러는 타임 쉐어링 시스템 이전에 사용한 기법이다.

Short-term scheduler (CPU scheduler)

  • 어떤 프로세스를 다음 순서에 Running 시킬 것인지 결정한다.
  • 프로세스에 CPU를 주는 문제를 결정한다.
  • 충분히 빨라야 한다. (밀리세컨드 단위)

Medium-term scheduler (Swapper)

  • 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 옮긴다.
  • 프로세스에게서 Memory 자원을 빼앗는 문제를 결정한다.
  • degree of Multiprogramming을 제어한다.

프로세스의 상태 (Process State)

  • 중기 스케줄러가 들어오면서 상태가 추가되었다.

기존 (실행 중인 상태) - Active

  • Running : CPU를 잡고 Instruction 수행 중인 상태
  • Ready : CPU 대기하는 상태 (조건 모두 만족)
  • Blocked (wait, sleep) : 이벤트(I/O 등) 기다리는 상태

추가 (아예 정지되어 재개가 필요한 상태) - Inactive

  • Suspended (Stopped)
    • 외부적 이유로 프로세스 수행이 정지된 상태
    • 프로세스는 통째로 디스크에 swap out 된다.
    • 예시
      • 사용자가 프로그램을 일시 정지한 경우 (break key)
      • 시스템이 여러 이유로 프로세스를 잠시 중단시킨 경우 (메모리 부족 등의 이유로)

Blocked와 Suspended의 차이

  • Blocked : 자신이 요청한 event가 만족되면 Ready 상태가 된다.
  • Suspended : 외부에서 resume 해주어야 Active 상태가 된다.
This post is licensed under younghwani by the author.

[OS] 운영체제 - 프로세스 관리 2

[OS] 운영체제 - 프로세스 관리 4

Comments powered by Disqus.