코가손의 블로그
[운영체제] 프로세스간 통신, IPC 본문
프로세스가 independent 하다
- 프로세스 끼리 공유하는 데이터 없음
- 프로세스 끼리 메시지 주고받지 않음
프로세스가 cooperating 하다
- 프로세스가 서로 영향을 준다
- 데이터를 공유 한다
"프로세스간 통신 문제 어떻게 해결?"
-> IPC(Inter-Process Communication)
IPC
IPC는 한 컴퓨터 내부에서 2개의 프로세스가 통신하는 것을 말한다.
cooperating 프로세스들은 IPC메커니즘이 필요하다.
IPC메커니즘은 프로세스 끼리 데이터를 주고 받는 과정이다.
IPC모델은 2가지 방법이 있다.
공유 메모리(shared memory)
프로세스 간에 공유가 되도록 설정해놓은 메모리, 모든 프로세스가 접근이 가능하다.
공유 메모리는 처음 생성할 때만 시스템 호출을 사용하기 때문에 속도가 빠르다(공유 메모리 접근은 커널이 필요가 없다). 많은 양의 데이터를 전달하는 경우에 많이 사용된다.
단, 동기화 부분을 잘 해결해야 한다.
메세지 전달(message passing)
필요한 공유자원을 그때그때 프로세스 사이에서 전달하는 방식이다.
장점은 동기화를 고민할 필요가 없고 구현하기 편하다.
단점은 공유메모리에 비해 속도가 매우 느리다. 데이터를 커널을 통해서 복사하여 보내기 때문
적은 양의 데이터를 전달하는 경우에 많이 사용된다.
'운영체제' 카테고리의 다른 글
[운영체제] 프로세스간 통신 소켓(Socket)과 RPC (0) | 2021.12.26 |
---|---|
[운영체제] 프로세스간 통신, PIPE (0) | 2021.12.26 |
[운영체제] 프로세스 생성 실습 (0) | 2021.12.19 |
[운영체제] 프로세스의 이해 (0) | 2021.12.19 |
[운영체제] 운영체제 란? (0) | 2021.12.19 |
Comments