출처: https://devraphy.tistory.com/413, https://devraphy.tistory.com/418
(출처는 위 링크! 형광펜은 개인적으로 공부하면서 체크한 부분입니다)
= 프로세스간 통신 기법을 의미
원래 프로세스끼리는 커뮤니케이션이 불가능함
이것을 가능하게 해주는 몇 가지 방법들이 있음
shared.txt와 같은 파일에 현재 커널 영역의 상태 정보를 기입한다.
통신이 필요한 프로세스의 상태정보를 알기위해 shared.txt 파일을 읽고 확인한다.
이 과정을 반복한다.
프로세스에서 통신이 필요할 때마다 매번 shared.txt 파일을 읽어야 한다.
프로세스의 커널 영역의 상태정보가 변할 때마다 해당 파일을 update 해야한다.
그러므로 시간이 오래 걸린다.
fork() 메소드를 이용해 자식 프로세스를 만들었을 때,
부모와 자식 프로세스 간의 통신을 위해 사용하는 기법
단방향 통신이 특징이다.
시스템 콜의 한 종류
어떤 프로세스를 복제하여 자식 프로세스를 만드는 기능
큐(Queue) 자료구조를 이용한 IPC 기법
기본적으로 FIFO 방식으로 데이터를 전송한다.
간단하게, A라는 프로세스에서 데이터를 insert하면 B라는 프로세스에서 받아오는 방식으로 통신한다.
커널 영역에 메모리 공간을 만들고, 해당 공간을 변수처럼 쓰는 방식
message queue처럼 FIFO 방식이 아니라, 해당 메모리 주소를 마치 변수처럼 접근하는 방식
공유 메모리의 key를 가지고, 여러 프로세스가 접근 가능
유닉스에서 30년 이상 사용된 전통적인 기법
어떤 커널 또는 프로세스에서 다른 프로세스에게 어떤 이벤트가 발생되었는지를 알려주는 기법
프로세스 코드에 시그널 핸들러를 등록하여, 해당 시그널을 처리하는 방식으로 동작한다.
소켓은 네트워크 통신을 위한 기술
기본적으로 클라이언트와 서버로 나뉘어 컴퓨터간의 네트워크 통신을 가능하게 하는 기술.
소켓을 이용한 IPC를 간략하게 설명하자면, 네트워크 기기를 이용한 시스템 콜이라고 할 수 있음
소켓은 다른 컴퓨터와의 통신을 위한 기술
그렇다면, 본인 스스로와 통신을 할 수 있지 않을까?
하나의 컴퓨터 내에서 서로 다른 프로세스간의 통신이 가능할 것
이런식으로 Socket을 IPC 기법으로 사용할 수 있음