100세까지 코딩
[운영체제] 프로세스 상태와 계층 구조 본문
혼공컴운 강의를 참고했습니다.
1. 프로세스 상태
- 생성 상태
- 이제 막 메모리에 적재되어 PCB를 할당 받은 상태 - 준비 상태
- 자신의 차례가 아니기에 기다리는 상태
- 준비 -> 실행 (디스패치) - 실행 상태
- CPU를 할당 받아 실행 중인 상태
- 할당된 시간 모두 사용 (타이머 인터럽트 발생 시) 준비 상태
- 실행 도중 입출력장치를 사용하면 입출력 작업이 끝날 때 까지 대기 상태 - 대기 상태
- 프로세스가 실행 도중 입출력장치를 사용하는 경우
- 입출력 작업이 끝나면 준비 상태 - 종료 상태
- 프로세스가 종료된 상태
- PCB, 프로세스의 메모리 영역 정리

2. 프로세스 계층 구조
- 부모 프로세스
- 새 프로세스를 생성한 프로세스 - 자식 프로세스
- 부모 프로세스에 의해 생성된 프로세스
- 자식이 다시 프로세스를 생성 가능. (부모가 될 수 있다.)
부모 프로세스와 자식 프로세스는 별개의 프로세스 (각기 다른 PID)

3. 프로세스 생성 기법
- 부모 프로세스는 fork 시스템 호출로 자신의 복사본을 자식 프로세스로 생성
- 부모 프로세스의 자원 상속

- 자식 프로세스는 exec 시스템 호출로 자신의 메모리 공간을 다른 프로그램으로 교체
- 코드/데이터 영역은 실행할 프로그램 내용으로 바뀌고 나머지 영역 초기화
- 자식 프로세스가 반드시 exec을 호출하는 것은 아니다.
(부모와 동일한 일을 하는 프로세스가 병행 실행될 수도 있다)

'CS > 운영체제' 카테고리의 다른 글
[운영체제] 파일과 디렉터리 (0) | 2024.03.14 |
---|---|
[운영체제] 페이징의 이점과 계층적 페이징 (0) | 2024.03.14 |
[운영체제] 프로세스 개요 (0) | 2024.03.03 |