Just do IT
article thumbnail

프로세스간 커뮤니케이션 (InterProcess Communication - IPC)

   프로세스는 다른 프로세스의 공간을 접근할 없다

   프로세스들이 서로의 공간을 쉽게 접근할 있다면?

      - 프로세스 데이터/코드가 바뀔 있다 -> 해킹 -> 매우 위험

 

IPC (InterProcess Communication)

   프로세스간에 커뮤니케이션을 있게 프로세스간 통신 방법을 제공한다

   IPC : InterProcess Communication

   * 프로세스간 통신이 필요한가요?

     - 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행

     - 프로세스간 상태 확인 데이터 송수신이 필요하다

 

프로세스간 커뮤니케이션의 방법

   1. file 사용

     - file 사용하면 실시간으로 직접 원하는 프로세스에 데이터 전달이 어렵다

 

) 리눅스

   * 프로세스간 공간은 완전히 분리되어 있다

      (사용자 모드에서는 커널 공간 접근 불가)

   * 커널 공간은 공유한다

      (보다 구체적인 내용은 가상 메모리에서 다룸)

 

다양한 IPC 기법

   * IPC : InterProcess Communication

   1. file 사용

   2. Message Queue

   3. Shared Memory

   4. Pipe

   5. Signal

   6. Semaphore

   7. Socket 등등

     * 2 부터는 모두 커널 공간을 사용하는

 

 정리

   * 여러 프로세스 동시 실행을 통한 성능 개선, 복잡한 프로그램을 위해 프로세스  통신 필요

   * 프로세스간 공간이 완전 분리

   * 프로세스간 통신을 위한 특별한 기법 필요 : IPC(InterProcess Communication)

   * 대부분의 IPC 기법은 결국 커널 공간을 활용하는 것임

      이유 : 커널 공간은 공유하기 때문

 

출처 : 제로베이스

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!