06. 프로세스간 통신의 실제

개발 99·2025년 4월 3일

공룡책

목록 보기
6/22
  • Shared Memory( POSIX Shared Memory )
    OS의 표준화

  • Message Passing( Pipes )
    UNIX

POSIX shared memory

using memory-mapped files which associate the region of shared memory with a file
(HDD가 아니라, memory에서 file을 참조한다.)

-- shared_memory 객체를 생성
fd = shm_open(name,O_CREATE | ORDWR, 0666);

mmap

mmap을 통해서 file을 가상 메모리와 맵핑을 해서 read/write 속도를 개선할 수 있다.

Pipes

UNIX의 IPC 메커니즘

  • pipe를 단방향으로 하자.

  • 구현의 편의상 parent-child 관계

  • network에선 안 쓰고, 사용되면 socket

Ordinay pipe

parent-child relationship
반드시 parent가 pipe를 만들면 child와 통신

  • fd[0] : the read end of the pipe

  • fd[1] : the write end

Socket

상대 IP, 내 IP, Port를 이용해서, 프로토콜 스택 제어 정보를 이용해서 주고 받는다.

종류

TCP

  • 연결 지향, ACK 패킷을 받아야 함.
  • 3way-handshake

UDP

  • 비연결 지향, ACK 패킷이 필요 없음.

RPCs

원격에 있는 함수를 호출(소켓)

Java에선 RMI
원격지 함수를 호출하고자 한다.

데이터 정렬 마샬링(직렬화/역직렬화)

IPC는 로컬 호스트, RPC는 원격지 호스트
RPS는 마샬링을 해야함.

profile
구구구구구!

0개의 댓글