상태 | 자원 할당 상태 | ||
---|---|---|---|
Active (swapped-in) |
Running Ready Blocked, aleep |
프로세서 O 프로세서 X, 기타 자원 O 프로세서 X, 기타 자원 X |
메모리 O |
Suspend (swapped-in) |
Suspended ready Suspended block |
프로세서 X 프로세서 X, 기타 자원 X |
메모리 X |
Ready or Suspended ready
프로세서 외에 다른 모든 자원을 할당 받은 상태
- 프로세서 할당 대기 상태(CPU)
- 즉시 실행 가능 상태
Dispatch (or Schedule)
- Ready State -> Running State
프로세서와 필요한 자원을 모두 할당받은 상태
Preemption
- Running State -> Ready State
- 프로세서 스케쥴링(e.g, time-out)
Block / Sleep
- Running State -> Asleep State
- I/O등 자원 할당 요청
이 과정에서, 다른 자원이 할당 되었다고 해도 바로 Running State로 가지 못하고 Ready State를 거쳤다가 자기 순서가 되면 Running State로 넘어가게 된다.
메모리를 할당 받지 못한(빼앗긴) 상태
- Memory image를 swap device에 보관
swap device: 프로그램 정보 저장을 위한 특별한 파일 시스템
ex) HDD??
커널 또는 사용자에 의해 발생
다음에 비슷한 작업이 들어왔을 때, 관리하기 유용
- Zombie State - 프로세스가 종료되었음에도 불구하고 메모리상에서 프로세스에 대한 정보가 사라지지 않은 상태
- orphans - 부모가 자식 프로세스보다 먼저 종료되면 그 자식 프로세스는 고아 프로세스가 된다.
지금까지의 내용은 HPC Lab의 강의와 자료를 참조했습니다