CS Operating System - IPC

Huisu·2025년 1월 28일
0

CS

목록 보기
19/25
post-thumbnail

IPC

IPC가 무엇이고 어떤 종류가 있는지 설명해 주세요

IPC (Inter Process Communication)
프로세스 간 소통 방법이다. 프로세스는 독립적이거나 다른 프로세스와 협력한다. 독립적인 프로세스는 동시에 실행 중인 다른 프로세스에 영향을 주지 않지만, 협력이 필요한 경우 영향을 주고받을 수 있다.

IPC가 필요한 이유

  1. 정보 공유: 여러 사용자가 동일한 정보에 관심을 가지면, 이 정보에 동시에 접근할 수 있는 환경을 제공한다.
  2. 계산 속도 증가: 특정 연산을 빠르게 실행하기 위해서는 작업은 작은 단위로 나누어서 병렬로 실행 가능하다.
  3. 모듈성: 시스템 기능을 프로세스 단위 또는 스레드 단위로 나눈 모듈 방식으로 시스템을 구성할 수 있다.
  4. 편리성: 개발 사용자도 동시에 많은 작업을 할 수 있다.

Shared Memory가 무엇이며, 사용할 때 유의해야 할 점에 대해 설명해 주세요.

https://velog.velcdn.com/images/coastby/post/4969e8ec-4e86-4f1d-a5f6-205e2aa66668/image.png

협력 프로세스 간 공유되는 메모리를 생성한 후, 이를 사용하여 정보를 교환하는 방식이다. 데이터의 형식과 위치는 프로세스들에 의해 결정되며 운영체제의 소관은 아니다. 성능은 좋지만 동기화 문제가 발생해서 어플리케이션에서 직접 동기화를 해야 한다.

IPC 종류

  • 익명 Pipe
    • 단방향 통신 채널로 한 쪽은 보내기만 하며, 한 쪽은 받기만 한다. 양방향 통신을 위해서는 pipe가 두 개 필요하다.
    • 자식 프로세스와 부모 프로세스 사이에서만 생성이 가능하다.
  • Named Pipe (FIFO)
    • 이름을 가진 pipe를 통해서 양방향 통신을 지원한다.
  • Message Queue
    • 메모리를 이용한 Pipe이며, 구조체를 기반으로 통신한다.
    • 메시지 타입에 따라 구조체 종류를 다르게 받을 수 있으며, 여러 프로세스가 동시에 데이터를 다룰 수 있다. 커널에서 제공하기 때문에 메모리 제한이 있다.
  • Shared Memory

방법

  1. Shared Memory model에는 producer 프로세스와 consumer 프로세스가 있다.
  2. 공유 메모리를 통해 동시에 통신한다.
  3. 생산자가 item을 생산하고 buffer에 저장하면, 소비자는 buffer의 item을 소비한다.
  4. 가용한 항목이 있을 때만 소비가 이루어지도록 생산자와 소비자 사이의 프로세스는 동기화되어야 한다.

메시지 큐는 단방향이라고 할 수 있나요?

메시지 큐는 단방향이 아니라, 단방향과 양방향 통신을 모두 지원할 수 있다.

메시지 큐는 프로세스 간 통신(Inter-Process Communication, IPC)의 한 형태로, 기본 개념은 프로세스나 스레드가 메시지를 큐에 넣고 다른 프로세스나 스레드가 이런 메시지를 가져와 처리하는 것이다.

  1. 단방향 메시지 큐: 단방향 메시지 큐에서는 프로세스나 스레드가 메시지를 큐에 보낼 수 있지만, 직접적인 응답을 기대하지 않는다. 다른 프로세스나 스레드는 이러한 메시지를 읽고 처리할 수 있다.
  2. 양방향 메시지 큐: 양방향 메시지 큐(요청-응답 패턴으로도 알려짐)에서 프로세스는 요청 메시지를 보내고 응답을 기대한다. 수신 프로세스는 요청을 처리하고 응답 메시지를 발신자에게 다시 보낼 수 있다.

단방향 메시지 큐는 프로세스가 다른 프로세스에게 알림이나 정보를 전달해야 할 경우에 적합하며, 양방향 메시지 큐는 요청이 제기되고 응답이 수신되어야 하는 더 상호작용적인 통신이 필요한 경우에 유용하다.

0개의 댓글