[OS] - Process states

오동훈·2021년 3월 18일
0

Operating System

목록 보기
2/16

1. 프로세스의 상태 (Process states)

  • 프로세스 - 자원간의 상호작용에 의해 결정
  • 프로세스 상태 및 특성
상태 자원 할당 상태
Active
(swapped-in)
Running
Ready
Blocked, aleep
프로세서 O
프로세서 X, 기타 자원 O
프로세서 X, 기타 자원 X
메모리 O
Suspend
(swapped-in)
Suspended ready
Suspended block
프로세서 X
프로세서 X, 기타 자원 X
메모리 X

1.1 Created State

  • 작업(Job)을 커널에 등록
  • PCB 할당 및 프로세스 생성
  • 커널
    - 가용 메모리 공간 체크 및 프로세스 상태 전이
    Ready or Suspended ready

1.2 Ready State

  • 프로세서 외에 다른 모든 자원을 할당 받은 상태
    - 프로세서 할당 대기 상태(CPU)
    - 즉시 실행 가능 상태

  • Dispatch (or Schedule)
    - Ready State -> Running State

1.3 Running State

  • 프로세서와 필요한 자원을 모두 할당받은 상태

  • Preemption
    - Running State -> Ready State
    - 프로세서 스케쥴링(e.g, time-out)

  • Block / Sleep
    - Running State -> Asleep State
    - I/O등 자원 할당 요청

1.4 Block / Asleep State

  • 프로세서 외 다른 자원을 기다리는 상태
    - 자원 할당은 system call에 의해 이루어짐
  • Wake-up
    - Asleep State -> Ready State

이 과정에서, 다른 자원이 할당 되었다고 해도 바로 Running State로 가지 못하고 Ready State를 거쳤다가 자기 순서가 되면 Running State로 넘어가게 된다.

1.5 Suspended State

  • 메모리를 할당 받지 못한(빼앗긴) 상태
    - Memory image를 swap device에 보관
    swap device: 프로그램 정보 저장을 위한 특별한 파일 시스템
    ex) HDD??

  • 커널 또는 사용자에 의해 발생

1.6 Terminated / Zombie State

  • 프로세스 수행이 끝난 상태
  • 모든 자원 반납 후, 커널 내에 일부 PCB 정보만 남아 있는 상태
    - 이후 프로세스 관리를 위해 정보 수집
    다음에 비슷한 작업이 들어왔을 때, 관리하기 유용
  • Zombie State - 프로세스가 종료되었음에도 불구하고 메모리상에서 프로세스에 대한 정보가 사라지지 않은 상태
  • orphans - 부모가 자식 프로세스보다 먼저 종료되면 그 자식 프로세스는 고아 프로세스가 된다.

지금까지의 내용은 HPC Lab의 강의와 자료를 참조했습니다

profile
삽질의 기록들🐥

0개의 댓글