프로세스 간 통신(Inter-Process Communication, IPC)이란 프로세스가 서로 통신 할 수 있도록 운영 체제에서 제공하는 메커니즘입니다. 이 통신에는 일부 이벤트가 발생했음을 다른 프로세스에 알리거나 한 프로세스에서 다른 프로세스로 데이터를 전송하는 프로세스가 포함될 수 있습니다.
여기서 말하는 프로세스가 무엇인지 말하자면,
프로세스는 일반적으로 CPU에 의해 처리되는 사용자 프로그램 , 시스템 프로그램 즉 실행중인 프로그램을 의미하며 ,작업 또는 태스크 라고 합니다.
프로세스 간 통신에 대한 접근 방식은 여러가지가 있는데
파이프(Pipe)는 유닉스 계열 운영 체제에서 제공되는 병행성 메커니즘의 하나로서, 두 프로세스가 생산자-소비자 모델에 따라 통신할 수 있게 해주는 원형 버퍼이다. 즉, 파이프는 한 프로세스가 쓰고 다른 프로세스가 읽는 선입선출 형태의 큐라 할 수 있다. 그리고 두 개의 파이프를 사용하여 두 프로세스 사이에 양방향 데이터 채널을 만들 수 있습니다.
소켓(Socket) 은 네트워크에서 데이터를 보내거나 받기위한 끝점입니다. 이는 동일한 컴퓨터의 프로세스간에 전송 된 데이터 또는 동일한 네트워크의 다른 컴퓨터간에 전송 된 데이터에 해당됩니다. 대부분의 운영 체제는 프로세스 간 통신에 소켓을 사용합니다.
시그널(SIGNAL) 은 프로세스나 동일 프로세스 내의 특정 스레드로 전달되는 비동기식 통보이다. 특정 이벤트가 발생했을 때 프로세스에게 전달하는 신호라고 생각하면 됩니다.
파일(FILE) 은 디스크에 저장되거나 파일 서버에서 요청시 획득 할 수있는 데이터 레코드입니다. 여러 프로세스가 필요에 따라 파일에 액세스 할 수 있습니다. 모든 운영 체제는 데이터 저장을 위해 파일을 사용합니다.
공유 메모리(Shared Memory)는 여러 프로세스에서 동시에 액세스 할 수있는 메모리입니다.이는 프로세스가 서로 통신 할 수 있도록 수행됩니다.
메시지 큐(Message queue)는 여러 프로세스가 서로 연결하지 않고도 메시지 큐에 데이터를 읽고 쓸 수 있습니다. 메시지는받는 사람이 검색 할 때까지 큐에 저장됩니다. 메시지 큐는 프로세스 간 통신에 매우 유용하며 대부분의 운영 체제에서 사용됩니다.
'공부 > 개발록' 카테고리의 다른 글
DNS와 Hosting (0) | 2021.05.20 |
---|---|
인터넷,HTTP,Browsers 개념 (0) | 2021.05.18 |
Backend란? 로드맵과 방향 (2) | 2021.05.12 |
ES6(ES2015)와 JavaScript(자바스크립트) (0) | 2021.03.10 |
도메인 네임(Domain name) (0) | 2021.03.09 |