Copy-on-Write (COW) : wirte 가 발생하면서 수정될 때 copy 하겠다
-
부모 프로세스가 자식 프로세스 생성
-
프로세스의 트리(계층 구조) 형성
-
수행 (Execution)
- 부모와 자식은 공존하여 수행되는 모델
- 자식이 terminate 될 때 까지 부모가 wait 하는 모델
-
유닉스 예
- fork()
- 시스템 콜이 새로운 프로세스 생성
- 자식은 부모를 그대로 복사 (복제 생성)
- 주소 공간 할당
- exec ()
- 시스템 콜을 통해 새로운 프로램을 메모리에 올림
자식은 부모의 공간을 그대로 복사한다.
fork()가 복제 생성을 하는 단계고, exec()은 덮어 씌우는 단계이다.
- fork()
A process is created by fork() system call
-
자식 프로세스는 포크가 일어난 다음 시점 부터 실행이 된다.
-
복제할 때는 자식과 부모 구분
- return value 가 다름
- 부모 프로세스 return 값 양수
- 자식 프로세스 return 값 0
A process execute a different program by exec() system call
- execip() 이후의 코드는 실행되지 않음
- 부모 프로세스가 block 상태가 된다.
- 자식 프로세스가 종료될 때 까지 기다리는 system call
프로세스의 종료
- 자발적 종료
- 비자발적 종료
- 사람이 종료 시킴
- 부모 프로세스가 종료 시킴
- 부모 프로세스 본인이 죽음
- 원래는 자식 프로세스가 먼저 죽어야 됨 그래서 자식까지 다 죽어버림
- fork ( )
- 부모 프로세스 복제 생성
- exec ( )
- 새로운 프로세스로 덮어 씌움
- wait ( )
- 자식이 종료될 때 까지 기다림
- exit ( )
- 프로세스가 죽는다고 알림
-
Message system
- 운영체제 커널을 통해 메세지 보냄
-
통신 방법
- Direct Communication
- Indirect Communication