IPC(Inter-Process Communication)

2024. 10. 29. 18:20·Computer Science/Operating System
반응형

IPC(Inter-Process Communication)란?

프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 방법.

ex) 브라우저를 띄워 네이버 서버와 HTTP 통신해서 html 등의 파일을 가져오는 것

 

IPC의 종류

  • 공유메모리
  • 파일
  • 소켓
  • 파이프
  • 메세지 큐

위 다섯가지 IPC 종류를 하나씩 살펴보자

 

 

공유메모리 (Shared Memory)

  • 여러 프로세스가 메모리를 공유하여 서로 통신할 수 있도록 하는 것.
  • 어떠한 매개체를 통해 데이터를 주고 받는게 아니라 메모리 자체를 공유.
    때문에 불필요한 데이터 복사의 오버헤드가 발생하지 않음.
  • 고속 데이터 전송 : 메모리에 직접 접근하므로 속도가 가장 빠른 방법
  • 같은 메모리 영역을 여러 프로세스가 공유하기 때문에 동기화 필요

 

 

파일(File)

  • 디스크에 저장된 데이터를 기반으로 통신하는 것. 공용 파일을 통해 데이터를 주고 받음.
    하나의 프로세스가 파일에 데이터를 쓰고 다른 프로세스가 이를 읽음.
  • 파일 입출력 기능을 사용하여 구현이 비교적 간단
  • 디스크 입출력 속도가 느리기 때문에 실시간 통신에는 적합하지 않음. (저속)
  • 데이터를 파일에 저장하므로 시스템 종료 후에도 데이터를 유지할 수 있다는 장점이 있음.(지속성)

 

 

소켓(Socket)

  • TCP/IP 프로토콜을 사용하여 네트워크를 통해 서로 다른 호스트 간에도 통신이 가능.
  • 네트워크 통신으로 로컬과 원격 시스템 간의 통신 가능.
  • 다양한 프로토콜을 사용할 수 있음 (TCP, UDP)

 

 

파이프 (Pipe)

익명 파이프 (Anonymous Pipe, Unnamed pipe)

  • 주로 부모-자식 프로세스간 통신에 사용.
  • 파이프는 생성된 후 특정 프로세스 간에만 유효. 이름이 없어 외부에서 접근 불가
  • 기본적으로 단방향 통신. 양방향을 위해서는 두개의 파이프가 필요.

명명 파이프

  • 파일 시스템에 이름이 부여된 특별한 파일로, 파이프를 생성하고 나면 이름을 통해 접근
  • 부모-자식 관계뿐만 아니라 독립적인 프로세스 간 통신이 가능.
  • 양방향 통신 가능
  • 운영체제에 따라 명명 파이프 생성과 사용법이 다를 수 있음

 

 

 

메시지 큐 (Message Queue)

  • 운영체제에서 관리하는 메시지 큐를 통해 프로세스간 데이터를 주고받는 방법.
    메시지는 큐에 저장되고 다른 프로세스가 이를 읽음.
  • 메시지 큐는 메시지의 순서를 유지하고 동기화를 자동으로 처리함.
  • 다양한 크기의 메시지를 주고받을 수 있음.
  • 운영체제에 따라 메시지 큐 구현과 사용법이 다를 수 있음.

 

 

728x90
반응형

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

멀티태스킹(Multitasking)과 CPU 스케줄링(선점형, 비선점형, 라운드로빈, 우선순위 기반 스케줄링, FIFO, SFJ ...)  (0) 2024.10.30
프로세스의 상태  (0) 2024.10.29
멀티프로세싱(Multiprocessing), 멀티스레딩(Multithreading)  (0) 2024.10.24
컨텍스트 스위칭(Context Switching)  (0) 2024.10.23
PCB(Process Control Block)  (0) 2024.10.23
'Computer Science/Operating System' 카테고리의 다른 글
  • 멀티태스킹(Multitasking)과 CPU 스케줄링(선점형, 비선점형, 라운드로빈, 우선순위 기반 스케줄링, FIFO, SFJ ...)
  • 프로세스의 상태
  • 멀티프로세싱(Multiprocessing), 멀티스레딩(Multithreading)
  • 컨텍스트 스위칭(Context Switching)
settong
settong
    250x250
  • settong
    개 발 자 국
    settong
  • 전체
    오늘
    어제
    • 전체보기 (202)
      • Computer Science (50)
        • Network (7)
        • Operating System (18)
        • Data Structure (9)
        • Database (11)
        • Algorithm (5)
      • Language (17)
        • Java (17)
        • Javascript (0)
        • Python (0)
      • Devops (20)
        • AWS (0)
        • Naver Cloud (16)
        • CICD (3)
        • 웹 서버 관리 (1)
      • Front (0)
        • React (0)
      • Backend (5)
        • Spring (5)
      • 코딩 테스트 정복기 (110)
        • 백준 (51)
        • 프로그래머스 (53)
        • 기타 (6)
      • etc (0)
      • 경제 상식 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    집합
    프로그래머스
    백트래킹
    lcs
    분할정복
    완전탐색
    다이나믹프로그래밍
    DFS
    벨만포드
    CI/CD
    ncp200
    Spring Boot
    BFS
    github actions
    ncp
    Network
    해시
    다익스트라
    ncp202
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
settong
IPC(Inter-Process Communication)
상단으로

티스토리툴바