state of a process
각 프로세스에 위와 같은 상태 정보를 넣어서, 프로세스 상태를 기반으로 프로세스를 스케줄링한다. 이전에 배운 여러 가지 알고리즘들도 상태 정보를 갖는다.
new(create) state : 생성될 예정이지만 아직 생성되지 않은 상태. 보조 메모리에 존재한다.
ready state : 프로세스가 CPU에서 실행할 준비가 된 상태. 이때, 프로세스가 메인 메모리로 로드된다.
running state : 실행을 위해 CPU에 의해 선택되어 실행 중인 상태
blocked state : 프로세스 실행 중간에 저장매체를 access해서 더 이상 실행이 불가능한 상태. (특정 이벤트 발생 대기 상태)
exit state : 프로세스가 완료되고 종료하기 직전의 상태
각 프로세스는 상태를 오고 가며 실행된다.
CPU and I/O Bound Processes
프로그램에 따라, CPU/메모리를 주로 사용하는 프로그램과 I/O 관련 기능(저장매체 자주 오고 가는)을 주로 사용하는 프로그램 등 여러가지로 분류될 수 있다.
속도 순서 분류(I/O Bound가 가장 느리고, CPU Bound가 가장 빠르다)
I/O Bound > Memory Bound > Cache Bound > CPU Bound
저장매체를 빈번하게 오고 간다면 성능 문제를 야기할 수 있으므로, I/O bound라면 최대한 CPU bound가 되도록 코드를 짜는 게 좋다.
참고
States of a Process in Operating Systems
What is the relationship between process states and the machine cycle?