프로세스 상태
생성 상태 (new)
- 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
- 준비가 완료되었다면 준비 상태가 되어 할당 기다림
준비 상태 (ready)
- 바로 CPU를 할당 받아 실행할 수 있지만, 차례를 기다리는 상태
- 자기 차례가 되면 CPU를 할당 받아서 실행 상태됨 (준비 상태에서 실행 상태가 되는 걸 디스패치(dispatch)라고 함)
실행 상태 (running)
- CPU를 할당 받아 실행 중인 상태
- 할당된 시간 모두 사용하면(타이머 인터럽트 발생) 준비 상태가 됨
- 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때까지 대기 상태가 됨
대기 상태 (wait)
- 프로세스가 실행 도중 입출력장치를 사용하는 경우 대기 상태가 됨
(입출력 작업은 CPU에 비해 느리기 때문에 계속 입출력 작업을 기다릴 수 없기에 대기 상태가 되어 기다림)- 입출력 작업이 끝나면 준비 상태가 됨
종료 상태 (terminated)
- 프로세스가 종류된 상태
- PCB, 프로세스의 메모리 영역 정리
프로세스 계층 구조
프로세스는 실행 도중 시스템 호출을 통해 다른 프로세스를 생성할 수 있음
부모 프로세스: 새 프로세스를 생성한 프로세스
자식 프로세스: 부모 프로세스에 의해 생성된 프로세스
- 부모 프로세스와 자식 프로세스는 별개의 프로세스라서
각각 다른 PID를 가짐- 자식 프로세스는 또 다른 자식 프로세스를 생성가능
- 즉,
프로세스는 계층적인 구조형성 가능
프로세스 생성 기법
- 부모 프로세스는
fork 시스템 호출을 통해 자신의 복사본을 자식 프로세스로 생성- 자식 프로세스는
exec 시스템 호출을 통해 자신의 메모리 공간을 다른 프로그램으로 교체
fork 시스템 호출
- 복사본(자식 프로세스) 생성
- 부모 프로세스의 자원 상속 (부모 프로세스에게 상속 받았지만 PID, 저장된 메모리 위치는 다름)
exec 시스템 호출
- 메모리 공간을 새로운 프로그램으로 덮어쓰기
- 코드 / 데이터 영역은 실행할 프로그램 내용으로 바뀌고 나머지 영역은 초기화
요약
<출처>
"혼자 공부하는 컴퓨터구조+운영체제".강민철.https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl (2023.05.03)
책과 강의를 통해 학습한 내용을 요약 정리했습니다.