IPC (Inter Process Communication)

IPC의 종류

Same host

pipes, FIFOs, semaphores, shared memory

Different host

sockets

 

Communication

process1 -> channel(Same host) -> process3

 

pipe = 하나의 프로세스로부터 데이터 흐름을 다른 프로세스로 연결

한프로세스의 출력을 다른 프로세스의 입력으로 붙이거나 파이프로 연결

파이프 함수는 호출자가 순차적으로 생성된 파일 디스크립터를 통해 접근할수 있는 통신 버퍼 생성

 

Shared memory = 여러 프로세스들이 동일 메모리영역에서 읽고 쓸 수 있도록 제공

연관이 없는 프로세스들이 동일 물리적 메모리에 액세스

동기화 기능이 없어서 공유메모리에 대한 액세스를 동기화 해야함

 

Message Queue = 다른 프로세스들 간에 메시지를 주고받을 수 있는 IPC 메커니즘

파이프를 열고 닫을 필요가 없고, 송신프로세스, 수신프로세스에 대해 독립적으로 존재

 

부모-자식간은 Pipe 다른 부모-자식은 나머지것들

dup = copy fdp dup2 = change fdp

 

FIFO = open을 통해서 연 뒤 READ, WRITEFIFO에 액세스, 권한이 있음

mkfifo = Make FIFO file

unlink = REMOVE FIFO

 

Shared Memory

연관이 없는 두 프로세스가 동일 메모리에 액세스

read/write로 프로세스간 데이터를 주고받음

get key(ftok) -> get SM id(shmget) -> get start address(shmat) -> read/write -> free(remove)(shmdt) -> ipcrm(remove SM)(shmctl)

 

'SW > LINUX' 카테고리의 다른 글

Server & Client  (0) 2017.09.05
NETWORK (네트워크)  (0) 2017.09.05
GDB  (0) 2017.09.05
버전관리, SVN  (0) 2017.09.05
GCC compiler (내부 매크로, Makefile)  (0) 2017.09.05

리눅스 명령어 - PROCESS

   Process



A.    ps : 현재 진행중인 프로세스를 출력한다.


B.     Pstree : 프로세스의 상관관계를 출력한다.


C.    top : 프로세스의 목록을 일정시간(사용자가 지정 가능)마다 갱신하여 출력한다.


D.    Kill (시그널 프로세스) : 입력한 프로세스에 입력한 시그널을 보낸다.


E.     (명령어) & : 해당 명령어를 background에서 실행한다.


F.     jobs : background에서 실행중인 작업을 확인한다.

'SW > LINUX' 카테고리의 다른 글

버전관리, SVN  (0) 2017.09.05
GCC compiler (내부 매크로, Makefile)  (0) 2017.09.05
리눅스 명령어 - INFO  (0) 2017.09.05
리눅스 명령어 - USER  (0) 2017.09.05
리눅스 명령어 - FILE&DIRECTORY  (0) 2017.09.05

'Process'에 해당되는 글 2건

1 →