cs(운영체제)

IPC

그zi운아이 2023. 9. 6. 14:34

IPC란

동일한 시스템에서 실행되는 두 개 이상의 프로세스가 데이터를 교한하기 위한 메커니즘으로 다향한 종류의 데이터 구조와 메세지를 교환하거나 동기화하기 위해 사용된다.

IPC의 주요 목적은 정보 공유,계산 분산, 모듈화 등을 통한 프로그램의 성능 향상이다

 

IPC의 주요 방법

  • Pipes
  • Sockets
  • Message Queue
  • Shared Memory

PIPE

두 프로세스 간에 데이터를 전송하는 기본적인 메커니즘 중 하나이다.

단방향 데이터 흐름을 제공하여 하나의 프로세스에서 쓰고 다른 프로세스는 읽는 방식으로 작동한다.

Pipe의 특징

FIFO

단방향성 : 기본적인 파이프는 단방향이다.

버퍼링: 파이프는 일정량의 데이터를 버퍼에 저장할 수 있다

.


Named PIPE

서로 다른 두 프로세스가 서로 통신할 수 있도록 해준다. Named Pipe 는 익명 파이프와 다르게 서로 다른 프로세스가 각각 다른 시간에 실행되더라도 통신이 가능하다.

 

Named Pipe특징

파일 시스템 기반 : 파일 시스템에 저장되므로 이름을 가진다.

다중 프로세스 통신 : 익명 파이프와 달리 두 프로세스가 독립적인 시간에 실행이 가능하다.

단방향/양방향 : 양방향 통신이 가능하다.


Socket

네트워크 계층에서 가장 기본적은 IPC 방법 중 하나이다

소켓은 IP주소와 포트 번호로 구분되며 이를 토앻 두개 이상의 프로세스가 데이터를 교환할 수 있다.

주로 웹 서버와 클라이언트, 채팅 앱, 실시간 데이터 전송 등에 사용된다.

 

Socket 특징

플렛폼 독립적 : 운영체제에서 소켓 API를 제공하므로 플랫폼간 통신이 가능하다.

네트워크 지원 : 소켓은 네트워크를 통한 원격 통신이 가능하므로, 다른 컴퓨터나 네트워크 상의 다른 프로세스와 통신이 가능하다.


Message Queue

메세지 큐는 프로세스 또는 프로그램 간에 데이터를 교환할 때 시용하는 통신 방법으로 메세지 큐는 메세지 지향 미들웨어의 한 형태로 볼 수 잇다.

메세지 지향 미들웨어는 응용 프로그램이나 프로세스 간에 메세지 기반의 비동기 통신을 가능하게 해준다.

 

Message Queue 특징

비동기 처리 : 메세지 큐는 비동기적인 작업을 가능하게 한다.

유연성 : 생성자와 소비자는 서로 다른 속도로 작업을 처라할 수 있다.

분산 처리 가능 : 여러 시스템이 하나의 메시지 큐를 공유할 수 있으므로, 분산 아키텍처를 구현하는데 유용하다.


Share Memory

프로세스간 데이터를 공유하기 위해 사용하는 메모리 영역으로 이 메모리 영역은 물리적인 메모리(RAM)에 할당되어 여러 프로세스가 동시에 접근할 수 있다.

 

Share Memory 특징 

빠른 속도 : 공유 메모리를 통한 데이터 교환은 메모리에서 이루어지므로 매우 빠르다

직접 접근 : 포인터나 배열을 사용해 공유 메모리에 직접 접근할 수 있다.

데이터 일관성 : 여러 프로세스가 동일한 데이터가 접근할 필요할 때 유용하나 이로 인해 동기화 문제가 발생할 수 있다.

 

 

 

'cs(운영체제)' 카테고리의 다른 글

블로킹 논블로깅 ,동기 비동기  (0) 2023.09.08
가상 메모리  (1) 2023.09.08
교착 상태(DeadLock)  (0) 2023.09.06
프로세스 동기화  (1) 2023.09.06
스케줄링  (0) 2023.09.04