Inter-Process Communication

os kernel 구조

  • 프로세스들은 유저 공간(user-mode)에서 개별로 os로부터 할당받은 독립된 공간에 존재
  • kernel space에서 IPC기술을 통해 프로세스들 간 통신을 제공

 

종류

  • PIPE
    • 익명의 PIPE를 통해 동일한 PPID를 가진 프로세스들 간에 단방향 통신(Half Duplex)을 지원
    • 송수신을 위해선 2개의 파이프가 필요

 

  • Named PIPE
    • 이름을 가진 PIPE를 통해서 프로세스들 간에 단방향 통신을 지원
    • PIPE이름만 알면 프로세스들이 통신 가능
    • 송수신을 위해선 2개의 파이프가 필요

 

  • Message Queue
    • 메모리를 사용한 PIPE(컨테이너 벨트), 구조체 기반으로 통신
    • 메시지 큐에 쓸 데이터에 번호를 붙임

 

  • Shared Memory
    • 시스템 상의 공유 메모리를 통해 통신
    • IPC들 중에서 가장 빠르게 작동

 

  • Memory Map
    • 열린 파일을 프로세스의 메모리에 일정 부분 매핑시켜서 사용

 

  • Socket
    • 네트워크 소켓통신을 사용한 데이터 공유
    • 원격에서 프로세스간 데이터를 공유할 때
    • 네트워크 프로그래밍

 

  • Semaphore
    • 프로세스 간 데이터를 동기화하고 보호하는데 목적
    • 공유된 자원에 하나의 프로세스만 접근 가능하도록

 

 

참고: https://cho001.tistory.com/42

 

리눅스 IPC 프로그래밍(IPC종류) [1]

IPC(Inter Process Communication) - 프로세스 간 통신에 대하여 종류와 특징들에 대하여 살펴보겠습니다. [리눅스 커널 구조] - 위 그림처럼 Process는 완전히 독립된 실행객체입니다. 서로 독립되어

cho001.tistory.com

 

❗ 나중에 해당 코드들도 찾아보자...특히 shared memory, socket, semaphore

'Computer Science > Operating System' 카테고리의 다른 글

[개념] Memory Management 1  (0) 2021.08.12
[개념] Virtualization  (0) 2021.08.12
[개념] I/O Management  (0) 2021.08.12
[개념] Threads and Concurrency  (0) 2021.08.12
[개념] Process Management  (0) 2021.08.12

+ Recent posts