프로세스 상태와 스케줄러

목차

운영체제 - 프로세스 상태와 스케줄러

시스템이 실행하고자 하는 프로세스에 CPU를 할당하는 과정

프로세스의 상태

프로세스는 Run, Ready, Wait라는 3가지 상태를 갖는다.

  • Run
    • CPU가 해당 프로세스를 수행하고 있는 상태
  • Ready
    • 다른 프로세스를 실행하기위해 잠시 멈춘상태(실행가능한 상태)
  • Wait
    • 실행 불가능한 상태, 디스크를 읽거나 문자를 입력하는 등의 외부 이벤트가 발생할 때까지 멈춰있는 상태이다.

  1. Running Process가 어떤 값을 입력 받기 전까지는 Wait 상태가 된다.
  2. 스케줄러가 다른 프로세스를 선택한 경우 Running 프로세스는 Ready 상태가 된다.
  3. 스케줄러에의해 Ready 상태의 프로세스를 선택한 경우 다시 Running 상태가 된다.
  4. 값을 입력받을 경우 Wait 된 프로세스는 Ready 상태가 된다.

스케줄링이란

스케줄링란 os내에서 프로세스가 CPU 위에서 실행될 수 있도록 제어해주는 프로그램

프로세스를 스케줄링하기 위한 queue에는 세가지 종류가 존재한다.

  • Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
  • Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
  • Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합

Scheduling 종류

장기 스케줄러 (Memoy 적재)

디스크에서 프로그램을 선택해 Memory(메모리) 로 적재하는 역할을 한다.
요즘은 Viratual Memory Management 의 발달로 장기 스케줄러가 의미가 없어졌다.

한정된 메모리에 많은 프로세스들이 한꺼번에 올라올 경우, 대용량 메모리(디스크)에 임시로 저장된다. 대용량 메모리에 저장된 프로세스 중에서 어떤 프로세스에 메로리를 할당하여 Ready Queue 로 보낼지 결정하는 역할을 한다.

  • 메모리와 디스크 사이의 스케줄링을 담당한다.
  • 프로세스에 Memory 및 각종리소스를 할당한다.
  • 다중 프로그래밍 제어

단기 스케줄러 (Cpu 할당)

프로세스에 CPU 를 할당해 프로세스를 실행하기 위한 역할을 한다.

  • Ready Queue에 존재하는 프로세스 중 어떤 프로세스를 run할지 결정한다.
  • cpu와 메모리 사이의 스케줄링을 담당한다.
  • 프로세스의 상태 : Ready -> Run -> Wait -> Ready

중기 스케줄러 (메모리 관리)

시스템 성능저하를 방지하기 위해 메모리에 적재된 프로세스의 수 를 동적으로 조절하기 위한 스케줄러

  • 프로세스에게서 memory를 deallocate한다.
  • 현 시스템에서 메모리에 너무 많은 프로그램이 동시에 올라가는 것을 조절한다.
  • 다중 프로그래밍의 정도를 완화
  • 프로세스의 상태 : Ready -> Suspended
Share