

* 생성 상태
- 운영체제를 통해 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
- 준비가 완료되었다면 준비 상태로 변경됨.
* 준비 상태
- 당장이라도 CPU를 할당 받아 실행할 수 있지만 자신의 차례가 아니기에 기다리는 상태
- 자신의 차례가 된다면 실행 상태로 변경 (=디스패치)
* 실행 상태
- CPU를 할당 받아 실행 중인 상태
- 할당된 시간 모두 사용 시(타이머 인터럽트 발생 시) 준비 상태로 변경됨.
- 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태로 변경됨.
* 대기 상태
- 프로세스가 실행 도중 입출력장치를 사용하는 경우
- 입출력 작업은 CPU에 비해 느리기에 이 경우 대기 상태로 접어듬.
-> 입출력 작업은 처리가 느리니까 CPU를 다른 프로세스가 사용할 수 있도록 비켜주는 것.
- 입출력 작업이 끝나면(=입출력 완료 인터럽트를 받으면) 준비 상태로 변경됨.
* 종료 상태
- 프로세스가 종료된 상태
- PCB 폐기, 프로세스의 메모리 영역 정리




- 부모 프로세스와 자식 프로세스는 별개의 프로세스이므로 각기 다른 PID를 가짐.
- 일부 운영체제에서는 자식 프로세스 PCB에 부모 프로세스 PID(PPID= Parent PID)를 명시하기도 함.
* 똑같은 프로그램을 두 번 실행 했을지라도 그 둘의 PID는 다름.
* 자식 프로세스는 또 다른 자식 프로세스를 낳고 그 자식 프로세스가 또 다른 자식 프로세스를 낳고 ,,,
=> 프로세스의 계층적인 구조 형성

참고) 아래 내용은 프로세스 생성 기법으로 windows 운영체제와는 큰 관련이 없음. unix 와 관련된 내용임.
Q) 부모 프로세스는 자식 프로세스를 어떻게 만들어 내고, 자식 프로세스는 어떻게 자신만의 코드를 실행할까?
: 복제와 옷갈아입기 라고 하는 두 가지 과정을 거쳐서 생성됨.





'CONCEPT > OS' 카테고리의 다른 글
[OS] 큐(준비 큐, 대기 큐), CPU 스케줄링(선점형, 비선점형) (0) | 2025.03.15 |
---|---|
[OS] 멀티 프로세스, 멀티 스레드 (0) | 2025.03.14 |
[OS] 프로세스, 프로세스 제어 블록, 메모리 영역 (0) | 2025.03.14 |
[OS] 커널, 이중 모드, 시스템 콜 (0) | 2025.02.22 |
[OS] 운영체제를 알아야 하는 이유 (0) | 2025.02.21 |
댓글