운영체제 - 프로세스 관리 6
System Call
fork()
- 부모 프로세스를 복제 생성한다.
exec()
- 완전히 새로운 프로그램으로 덮어 씌우는 역할을 한다.
wait()
- 부모 프로세스는 자식 프로세스가 종료될 때까지 blocked 상태로 대기하다가, 자식 프로세스가 종료되면 다시 running 상태로 돌아간다.
exit()
- 프로세스를 정상적으로 종료시킬 때 사용하는 시스템콜이다. (자발적 종료)
- 부모가 자식을 강제 종료시키거나, 키보드로 kill, break 명령을 쳤거나, 부모가 종료하는 경우 호출된다. (비자발적 종료)
프로세스 간 협력
독립적 프로세스
- 프로세스는 각자의 주소 공간을 갖고 수행되는 것을 원칙으로 한다.
- 하나의 프로세스는 다른 프로세스의 수행에 영향을 미치지 못한다.
협력 프로세스
- 프로세스 협력 매커니즘을 통해 하나의 프로세스가 다른 프로세스의 수행에 영향을 미칠 수 있다.
프로세스 간 협력 매커니즘
IPC : Interprocess Communication
- Message passing
- 커널을 통해 메시지를 전달
- Shared memory
- 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 shared memory 매커니즘이 있다.
- Thread (번외)
- 쓰레드는 사실상 하나의 프로세스다. 그러니 프로세스 간 협력으로 보기는 어렵다.
- 동일한 프로세스를 구성하는 쓰레드들 간에는 주소 공간을 공유하기 때문에 협력이 가능하다.
Message Passing
- Message system
- 프로세스 사이에 공유 변수를 일체 사용하지 않고 통신하는 시스템
- Direct Communication
- 통신하려는 프로세스의 이름을 명시적으로 표시한다.
- Process A -> Process B
- Indirect Communication
- Mailbox (or Port)를 통해 메시지를 간접적으로 전달한다.
- Process A -> Mailbox (or Port) -> Process B
Comments powered by Disqus.