[Network] 11. 프로세스간 통신

2023. 5. 28. 18:30

 

프로세스간 통신의 기본 개념

프로세스간 통신
두 프로세스 사이에서의 데이터 전달이 가능하려면 두 프로세스가 공유하는 메모리가 공유해야한다. 하지만, 프로세스는 자신만의 메모리 공간을 독립적으로 가지고 있다. 그래서 운영체제가 별도의 메모리 공간을 마련해야한다.

파이프 기반의 프로세스 통신 

#include <unistd.h>

int pipe(int filedes[2]);

 

int main(int argc, char *argv[])
{
	int fds[2];
    char str[] = "Who are you";
    char buf[BUF_SIZE];
    pid_t pid;
    
    pipe(fds);
    pid=fork();
    if(pid==0)
   	{
    	write(fds[1], str, sizeof(str));
    }
    else
    {
    	read(fds[0], buf, BUF_SIZE);
        puts(buf);
    }
    return 0;
}

 

파이프는 양방향으로 보내는 것은 가능하지만, 데이터 흐름을 제어하는 것은 불가능에 가깝기 때문에 두 개의 파이프를 생성해야한다.

 

프로세스간 통신의 적용

메시지를 저장하는 형태의 에코 서버

 

 

BELATED ARTICLES

more