티스토리 뷰
프로세스 간 통신(IPC: Inter-process Communication)
1) 프로세스 간에 데이터를 주고 받는다 (write/read)
2) 프로세스는 독립적이다 (-> 다른 프로세스 영역을 접근(access)할 수 없다)
3) 공유 메모리가 필요하다
공유 메모리가 커널 영역에 존재 -> 동기화가 필요하지 않음
공유 메모리가 사용자 영역에 존재 -> 동기화가 필요함
4) 임계영역(critical section)이 존재함.
메시지 전송(message passing) 방식
- 커널(운영체제) 영역의 일부분을 공유 메모리로 이용한다.
- 운영체제에서 임계 영역에 대한 동기화를 해결해 준다.
- 메시지가 세 곳에 존재한다.
① 송신 프로세스는 자신의 데이터 영역에 메시지를 작성한 후, send() 함수를 호출한다.
② 운영체제는 송신 프로세스 영역의 메시지를 운영체제 영역에 복사한다.
③ 수신 프로세스는 메시지를 수신하기 위하여 receive() 함수를 호출한다.
④ 운영체제는 운영체제 영역의 메시지를 수신 프로세스 영역에 복사한다.
공유 메모리(shared memory) 방식
- 사용자 영역의 일부분을 공유 메모리로 이용한다.
- 프로그램에서 임계 영역에 대한 동기화를 해결해야 한다.
- 메시지가 한 곳에 존재한다.
① 송신 프로세스는 공유 메모리를 확보 후, 프로세스 영역으로 연결한다.
② 송수 프로세스는 메시지를 공유 메모리에 작성한다.
③ 수신 프로세스는 공유 메모리를 프로세스 영역으로 연결한다.
④ 수신 프로세스는 메시지를 공유 메모리에서 읽는다.
'cs > operating system' 카테고리의 다른 글
[운영체제/OS] 파이프/메시지 큐 (0) | 2021.04.17 |
---|---|
[운영체제/OS] 스레드 동기화 기법 뮤텍스(mutex)/세마포어(semaphore) (0) | 2021.04.16 |
[운영체제/OS] 임계 영역(critical section) (0) | 2021.04.02 |
[운영체제/OS] 결정성, 생산자/소비자 프로세스, 경쟁 조건 (0) | 2021.04.02 |
[운영체제/OS] 리눅스 프로세스 (0) | 2021.03.28 |