[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;
}
파이프는 양방향으로 보내는 것은 가능하지만, 데이터 흐름을 제어하는 것은 불가능에 가깝기 때문에 두 개의 파이프를 생성해야한다.
프로세스간 통신의 적용
메시지를 저장하는 형태의 에코 서버
'Computer Science > Network' 카테고리의 다른 글
[Network] 13. 다양한 입출력 함수들 (0) | 2023.05.28 |
---|---|
[Network] 12. IO 멀티플렉싱 (0) | 2023.05.28 |
[Network] 10. 멀티 프로세스 기반의 서버 구현 (0) | 2023.05.28 |
[Network] 9. 소켓의 다양한 옵션 (0) | 2023.05.28 |
[Network] 8. 도메인 이름과 인터넷 주소 (0) | 2023.05.28 |