[운영체제] 3. 프로세스(Process) 생성, 종료, 좀비
프로세스 생성(Process Creation)
- Parent 프로세스는 Child 프로세스를 생성한다.
- 프로세스는 고유의 프로세스 식별자를 갖는다.
- 생성된 프로세스는 프로세스 트리를 구성한다.
- 리소스 공유
case 1) 부모 프로세스와 자식 프로세스는 모든 자원을 공유한다.
case 2) 자식 프로세스는 부모 프로세스 자원의 일부를 공유한다.
case 3) 부모 프로세스와 자식 프로세스는 어떠한 자원도 공유하지 않을 수 있다.
- 실행
case 1) 부모 프로세스와 자식 프로세스는 동시에 실행된다.
case 2) 부모 프로세스는 자식 프로세스가 종료되는 것을 기다린다.
프로세스 생성(Process Creation)
- 주소 공간
1) 자식 프로세스는 생성될 시점에 부모 프로세스의 복제본을 갖는다.
2) 자식 프로세스는 exec나 execvp 함수를 이용해서 자신의 프로그램을 실행한다.
- UNIX 관련 Process
1) fork 시스템 함수는 새로운 프로세스를 생성한다.
2) 프로세스의 메모리 공간을 새로운 프로그램으로 교체하기 위해서 fork 함수가 호출된 이후에 exec 시스켐 함수가 호출된다.
프로세스 종료(Process Termination)
- 프로세스는 마지막 명령문을 실행한 뒤 운영체제로 하여금 자신을 삭제해 달라 요청하게 된다.
- 자식 프로세스가 종료될 때 반환되는 데이터는 부모 프로세스로 전달된다(wait 시스템 함수를 통해서)
- 오픈된 파일, 할당된 메모리, I/O버퍼와 같은 프로세스의 자원은 운영체제에 의해 제거된다.
프로세스 종료(Process Termination)
- 부모 프로세스가 자식 프로세스의 실행을 종료시킬 수 있다.
case 1) 자식 프로세스가 상당히 많은 양의 자원을 보유할 때
case 2) 자식 프로세스에 할당된 자원이 더이상 필요하지 않을 때
case 3) 부모 프로세스가 종료되었을 때
- 일부 운영체제는 부모 프로세스가 종료되었을 때 자식 프로세스를 종료한다.
좀비 프로세스(Zombie Process)
- 자식 프로세스가 종료 됐을 때, 부모 프로세스에 의해서 wait 함수가 호출되기 전까지 자식 프로세스는 좀비 상태로 남아있는다.
- process entry, exit status 그리고 resource 사용 정보를 제외한 모든 자원은 제거된다.
'운영체제(OS)' 카테고리의 다른 글
[IEEE754] float, double 부동 소수점에 대해서 (0) | 2015.11.28 |
---|---|
[운영체제] IPC(Inter Process Communication) 공유 메모리, 메시지 전달 [Shared Memory, Message Passing] (0) | 2015.07.12 |
[운영체제] 2. 프로세스(Process) 스케줄링, 스케줄러, 문맥 전환 (0) | 2015.07.12 |
[운영체제] 1. 프로세스(Process) 개념, 상태, 컨트롤 블록(PCB) (0) | 2015.07.12 |