운영체제 - 프로세스 관리 5
프로세스 생성
- 부모 프로세스가 자식 프로세스를 만든다.
- 부모와 같은 나이를 가진 프로세스를 복제 생성한다고 볼 수 있다.
- fork() 명령어로 만들 수 있다.
- 프로세스의 트리(계층 구조) 형성
- 프로세스는 자원을 필요로 한다.
- 운영체제로부터 받는다.
- 부모와 공유한다.
- 자원의 공유
- 부모와 자식이 모든 자원을 공유하는 모델
- 일부를 공유하는 모델
- 전혀 공유하지 않는 모델
- 수행
- 부모와 자식은 공존하며 수행되는 모델
- 자식이 종료(terminate)될 때까지 부모가 기다리는(wait) 모델
- 주소 공간
- 자식은 부모의 공간을 복사한다.
- 자식은 그 공간에 새로운 프로그램을 올린다.
- 예시
- fork()
- 부모를 복제 생성
- exec()
- 다른 새로운 프로그램으로 덮어씌운다.
- 보통 fork와 exec를 같이 사용한다. 그 이유는 exec 사용 시, 이전의 프로세스는 잊혀지게 되기 때문이다. 그렇기에 부모 프로세스는 fork 명령을 통해 자식을 먼저 생성하고, 자식에게 새로운 프로그램 실행을 (exec 명령 사용을 통해) 맡긴다.
- fork()
프로세스 종료
- exit 명령어를 통해 종료.
- 부모가 기다리는 경우, 자식이 부모에게 output 데이터를 보낸다.
- 프로세스의 각종 자원이 운영체제에 반납된다.
- abort 명령어를 통해 종료 - 부모 프로세스가 자식의 수행을 종료시키는 경우
- 자식이 할당된 자원의 한계치를 넘어서는 경우 사용한다.
- 자식에게 할당된 태스크가 더 이상 필요하지 않게 되면 사용한다.
- 부모가 종료(exit)되는 경우 사용한다.
- 운영체제는 부모 종료 시 자식이 더 이상 수행되지 않도록 막는다. (단계적인 종료 과정)
Comments powered by Disqus.