운영체제(3) - 프로세스(2)
‘운영체제’를 공부하여 정리한 내용입니다.
3. Operation on Processes
프로세스 생성
-
프로세스는 실행 도중에 여러 개의 새로운 프로세스들을 생성할 수 있다. (fork())
- 생성하는 프로세스: 부모 프로세스
- 생성되는 새로운 프로세스: 자식 프로세스
- 이 작업의 결과로 우리는 프로세스들의 부모 자식 관계가 일종의 트리를 이룬다는 것을 쉽게 상상할 수 있다.
-
자식 프로세스의 특징
- 부모 프로세스의 복사본이다.
- 혹은, 자식 프로세스가 자신에게 적재될 새로운 프로그램을 가지고 있다.
- 우선 부모 프로세스를 복사하면서, PCB 공간을 그대로 복사해 온다
- 이를 새로운 프로그램에 맞게 수정하여 사용한다. (Unix의 exec())
-
프로세스 생성 후 동작
- 부모 프로세스가 자식 프로세스가 끝나기를 기다릴 수 있다.
- 혹은 병렬로 실행된다.
-
프로세스가 종료될 때
- 자식 프로세스의 종료
- 부모 프로세스가 자신의 자식 프로세스를 종료시키는 것이 가능하다.(오직 부모 프로세스만)
- 자신의 Task를 마치고 자식 프로세스가 그냥 종료될 수 있다.
- 종료 되면 exit라는 system call을 사용해서 부모 프로세스에게 상태값을 반환하는 것이 가능하다(부모가 wait() 하고 있다면)
- 자신에게 할당된 자원을 모두 반납 한다.
- 부모 프로세스의 종료
- 이 때, 자식 프로세스는 계속 살아있다면,
- 자식 프로세스의 새로운 부모 프로세스는 init process가 되고,
- 트리구조가 수정된다.
- 중요한 것은 init 프로세스 이후의 모든 프로세스는 무조건 부모 프로세스가 있다는 것이다.
- 자식 프로세스의 종료
4. 프로세스간 통신 (interprocess Communication: IPC), 5. IPC 시스템의 사례
Shared memory
- (내용 생략)
Message passing (MPI)
- (내용 생략)
6. Communication in Client-Server Systems
소켓
- (내용 생략)
Remote Procedure Calls, RPC
- (내용 생략)
Pipes
- (내용 생략)
Leave a Comment