[운영체제] 3. 프로세스(Process) 생성, 종료, 좀비

Posted by 앱해피
2015. 7. 12. 17:58 운영체제(OS)

프로세스 생성(Process Creation)

 

운영체제, 정보처리기사, 프로세스 생성, 프로세스 제거, 좀비 프로세스, zombie process, fork

 

 

- 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 사용 정보를 제외한 모든 자원은 제거된다.