CS/CS STUDY

2022.01.29. 2차 CS 스터디: 멀티 프로세스 환경/IPC/Shared Memory/Message Passing/ Communication Link/Block&Non-Block/소켓/RPC

ImYena 2022. 1. 29. 19:31
728x90

멀티 프로세스 환경

  • 한 대의 컴퓨터에 여러 개의 프로세스(서비스)를 띄워 사용하는 방식
  • 각 프로세스는 독립적인 메모리를 할당 받기 떄문에, 메모리 공유를 위해서는 IPC를 사용해야 함

 

IPC(Inter Process Communication) 

  • 프로세스 혹은 스레드가 데이터를 교환하는 기법

공유 메모리(Shared Memory)

  • 여러 프로그램이 동시에 접근할 수 있는 메모리
    • 성능은 좋지만, 동기화 문제 발생

 

메시지 교환(Messaging Passing)

  • 커널(운영체제)가 프로세스간 서로 자원에 접근이 불가능하기 때문에 대리 전달해주는 것
    • 안전하고 동기화 문제가 없는 대신, 성능이 떨어짐

 

RPC(Remote Procedure Call)

  • 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스 간 통신

 

소켓(Socket)

  • 네트워크에서 프로세스가 데이터 통신을 위해 사용하는 창구
  • 프로토콜, IP 주소, Port 번호로 정의

 


Communication link

  • Direct Communication

: 프로세스가 커널에 메시지를 직접 주고, 그걸 커널이 다른 프로세스에세 직접 전달하는 방식

  • Indirect Communication

: 커널이 직접 메시지를 두는 것이 아니라 하나의 프로세스가 Message Queue에 메시지를 주고, 다른 프로세스가 해당 메시지를 읽어오는 방식

 

Synchronous(동기)/Asynchronous(비동기)

: 동시에 두개 이상의 이벤트가 발생하는 경우

  • Synchronous(동기) : 호출된 함수의 수행 결과 및 종료를 호출한 함수가 신경 쓰는 경우
  • Asynchronous(비동기) : 호출된 함수의 수행 결과 및 종료를 호출한 함수가 신경 쓰고 처리하는 경우

 

Block/Non-Block

: 행위 자체가 제한된/대기하는 상태 혹은 그 반대

  • Block : 호출된 함수가 자신의 일을 마칠 때까지 제어권을 계속 가지고 호출한 함수에게 돌려주지 않는 경우
  • Return : 호출된 함수가 자신이 할 일을 마지치 않았더라도 바로 제어권을 건네주는 경우
  • Non-Blcok : 호출된 함수가 자신이 할 일을 마지치 않았더라도 호출한 함수가 다른 일을 진행하면서 대기할 수 있도록 해주는 경우

참고 사이트

 

동기와 비동기, 그리고 블럭과 넌블럭

무릇 모든 개발자들, 아니 비단 개발자가 아니라 할지라도 컴퓨터 관련 산업계 종사자들이라면 오다 가다 한 번씩은 꼭 들어보고, 또 익혔음직한 내용이겠습니다. 이름하야, 동기(Synchronous)와 비

musma.github.io

 

 

[기본] 소켓(SOCKET)통신 이란?

소켓통신 소켓(SOCKET)이란? 소켓(Socket)은 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 한다. 그러므로 프로세스가 데

helloworld-88.tistory.com

 

728x90
반응형