티스토리 뷰

728x90

 

프로세스 간 통신(IPC: Inter-process Communication)

1) 프로세스 간에 데이터를 주고 받는다 (write/read)

2) 프로세스는 독립적이다 (-> 다른 프로세스 영역을 접근(access)할 수 없다)

3) 공유 메모리가 필요하다 

   공유 메모리가 커널 영역에 존재 -> 동기화가 필요하지 않음

   공유 메모리가 사용자 영역에 존재 -> 동기화가 필요함

4) 임계영역(critical section)이 존재함.

 

 

 

 

메시지 전송(message passing) 방식

- 커널(운영체제) 영역의 일부분을 공유 메모리로 이용한다.

- 운영체제에서 임계 영역에 대한 동기화를 해결해 준다.

- 메시지가 세 곳에 존재한다.

  송신 프로세스는 자신의 데이터 영역에 메시지를 작성한 후, send() 함수를 호출한다.

  ② 운영체제는 송신 프로세스 영역의 메시지를 운영체제 영역에 복사한다.

  ③ 수신 프로세스는 메시지를 수신하기 위하여 receive() 함수를 호출한다.

  ④ 운영체제는 운영체제 영역의 메시지를 수신 프로세스 영역에 복사한다.

 

 

 

공유 메모리(shared memory) 방식

- 사용자 영역의 일부분을 공유 메모리로 이용한다.

- 프로그램에서 임계 영역에 대한 동기화를 해결해야 한다.

- 메시지가 한 곳에 존재한다.

   송신 프로세스는 공유 메모리를 확보 후, 프로세스 영역으로 연결한다.

   송수 프로세스는 메시지를 공유 메모리에 작성한다.

  수신 프로세스는 공유 메모리를 프로세스 영역으로 연결한다.

  ④ 수신 프로세스는 메시지를 공유 메모리에서 읽는다.

 

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함