TLI: 스케쥴러 2편(상태, 선점 / 비선점)

tohero·2022년 4월 8일
0

TIL

목록 보기
8/10
post-thumbnail

상태

지금까지 살펴본 시스템과 스케쥴링 기법을 보면 어떤 프로세스를 실행하고 어떤 프로세스를 대기시켜야 하는지 구분할 필요가 있었다. 이 말은 프로세스의 상태가 바뀐다는 뜻이며, 스케쥴링 기법에서 대표적인 5가지 상태를 알아보려 한다.

  1. 프로세스 생성(new): 생성 중이어서 실행 가능 상태에 들어가지 못하는 상태
  2. 실행 가능(ready): CPU가 실행할 수 있는 상태지만 대기중인 상태
  3. 실행 중(running): 현재 CPU에서 실행 중인 상태
  4. 대기(blocked): 실행 중 중단되어 다른 상태로 전환되기를 기다리는 상태
  5. 종료(exit): 시스템에 할당된 리소스를 제거하는 등 종료 전 수행할 작업을 실행하기 위한 상태

상태 간 관계

프로세스 상태는 스케쥴러가 관리한다. 스케쥴링 알고리즘은 다양하며, 기본적으로 스케쥴리 알고리즘을 5가지의 상태에 따라 구현할 수 있다.

선점 / 비선점

선점형 스케쥴러(Preemptive)

스케쥴러가 특정 프로세스를 선점한다. 이 때 CPU를 점유하고 있는 기존 프로세스를 중단하고 다른 프로세스로 대체할 수 있다.

Running으로 상태를 변경할 수 있는 시점

  1. 현재 running 상태의 프로세스가 completed되어 exit 상태로 스스로 전환하는 경우
  2. 현재 running 상태의 프로세스가 스스로 blocked 상태로 전환하는 경우

비선점형 스케쥴러(Non Preemptive)

하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음

Running으로 상태를 변경할 수 있는 시점

  1. 비선점 프로세스가 변경할 수 있는 시점 모두 포함
  2. 스케쥴러가 프로세스를 중단하고 싶은 경우
    • 우선순위

스케쥴러 처리 비교

상황: 비선점 / 선점에 따른 시분할(2cycle에 한 번) 적용 여부

  • 비선점형의 경우 스케쥴러가 시분할 방식을 적용할 수 없다.
    • 단점:
      • 한 프로세스가 CPU를 점유하는 시간이 늘어난다.
      • 대기중인 프로세스의 경우 응답시간이 지연된다.
    • 장점:
      • 구현이 간단하다.
  • 선점형의 경우 스케쥴러가 시분할 방식을 적용할 수 있다.
    • 장점:
      • 스케쥴러가 필요에 따라 프로세스를 중단할 수 있기 때문에. 한 프로세스가 CPU를 점유하는 시간이 줄어든다.
      • 대기중이 프로세스의 경우 응답시간이 축소된다.
    • 단점:
      • 구현이 어렵다.
profile
Front 💔 End

0개의 댓글