프로세스 상태(Process Status) 란?
사용자가 프로그램을 실행시키면 메모리에 올라가면서 프로세스가 생성된다.
오늘날의 운영체제에는 동시에 수많은 프로세스가 실행된다.
작업관리자를 확인해보면 수많은 프로세스가 실행 중인 것을 확인할 수 있다.
시분할 시스템을 사용하는 운영체제는 여러개의 프로세스를 돌아가면서 실행한다.
CPU 가 여러개의 프로세스를 동시에 실행한다는 의미가 아니라
한 순간에는 하나의 프로세스 밖에 처리하지 못한다는 것이다.
다만 속도가 매우 빨라서 사람이 보기에는 동시에 처리되는 것처럼 보인다.
PCB(Process Control Block) 내부에는 프로세스의 상태를 가리키는 정보가 존재한다.
프로세스는 시분할 처리를 위한 다섯 가지 상태를 가지고 있다.
바로 생성,준비,실행,대기,완료 상태가 있다.
생성(new) 상태
생성 상태에서는 PCB 를 생성하고 메모리에 프로그램 적재를 요청한 상태를 의미한다.
메모리에 프로그램 적재를 승인받으면 준비상태로 넘어간다.
준비(ready) 상태
준비상태는 CPU 를 사용하기 위해 기다리고 있는 상태이다.
준비상태에 있는 프로세스는 CPU 스케줄러에 의해 CPU 가 할당된다.
대부분의 프로세스는 준비상태에 해당된다.
실행(running) 상태
실행상태는 준비상태에 있는 프로세스가
CPU 스케줄러에 의해 CPU를 할당받아 실행되는 상태를 말한다.
실행상태에 있는 프로세스의 수는 CPU의 개수만큼이다.
CPU 가 한개라면 실행상태의 프로세스는 최대 한 개다.
실행상태의 있는 프로세스도 CPU를 무한정 쓸 수 있는 것이 아니고 부여된 시간만큼만 사용할 수 있다.
CPU 스케줄러는 부여된 시간을 초과하면 할당된 CPU 를 강제로 빼앗는다.
그러면 프로세스는 다시 준비상태로 돌아가게 된다.
대기(waiting) 상태
대기 상태는 프로세스가 입출력 요청을 하면 입출력이 완료될 때까지 기다리는 상태이다.
CPU는 굉장히 빠른 장치이지만 입출력 작업은 상당히 느린 작업이다.
특정 프로세스가 입출력 요청을 하면
입출력이 완료될 때까지 CPU를 기다리게 하는 건 굉장히 비효율적인 일이다.
그 대신에, 입출력 요청을 한 프로세스를 "대기상태"로 두고
다른 프로세스에게 CPU를 할당한다.
그러다가 시간이 지나서 입출력 작업이 완료되면 "대기상태"에 있던 프로세스에게 CPU 할당 기회를 준다.
이런 방식을 취하면 CPU에게는 쉬는 시간을 주지 않고 일을 시킬 수 있다.
완료(terminating) 상태
마지막으로 완료상태는 프로세스가 종료된 상태를 의미한다.
프로세스가 사용했던 데이터를 메모리에서 제거하고 생성된 PCB도 제거해 준다.
'운영체제' 카테고리의 다른 글
[운영체제] 프로세스의 생성/종료 (0) | 2024.05.21 |
---|---|
[운영체제] Context Switching (문맥교환) (0) | 2024.05.20 |
[운영체제] PCB(Process Control Block) (0) | 2024.05.14 |
[운영체제] 프로그램과 프로세스 (0) | 2024.05.10 |
[운영체제] Interrupt (인터럽트) (0) | 2024.05.09 |