티스토리 뷰
이 포스팅은 공부한 걸 정리하는 목적으로 쓴 글로 위키 백과를 참고하여 작성 하였습니다.
IPC는 Inter-Process Communication의 약자로써 프로세스간 통신 이라는 뜻을 가지고 있습니다.
IPC는 프로세스들 사이에서 서로 데이터를 주고 받는 행위, 또는 그에 대한 방법이나 경로를 뜻합니다.
IPC의 방식
방식 |
사용 가능한 곳 |
신호 |
대부분의 운영 체제, 일부 시스템은 C 라이브러리에서만 지원 |
소켓 |
대부분의 운영 체제 |
메시지 큐 |
대부분의 운영 체제 |
파이프 |
모든 POSIX시스템, 윈도우즈 |
공유 메모리 |
모든 POSIX시스템, 윈도우즈 |
신호(Signal)
신호는 유닉스 계열, POSIX 호환 운영 체제에서 쓰이는 제한된 형태의 IPC 방법 중 하나 입니다.
프로세스나 동일 프로세스 내의 특정 스레드로 전달되는 비동기식 통보입니다.
일반적으로 실행 중인 프로세스의 터미널에 특정 키 조합을 입력 하면 시스템이 특정 신호를 프로세스에게 전달 합니다(ex. Ctrl + C 프로세스 종료)
소켓(Socket)
컴퓨터 네트워크를 경유하는 IPC의 종착점 입니다.
오늘날 컴퓨터간의 네트워크 통신은 대부분 인터넷 프로토콜을 기반으로 하고 있으므로 대부분의 네트워크 소켓은 인터넷 소켓을 사용 합니다.
메시지 큐(Message Queue)
사용자가 키보드나 마우스로 명령한 것을 메시지 형태로 변환하여 저장하는 큐 입니다.
윈도우즈 운영 체제의 모든 스레드에 존재 하며, 사용자가 창에 어떠한 명령을 내리면 프로그램이 큐에서 메시지를 읽고 처리 합니다.
파이프(Pipe)
유닉스 계열에서 제공되는 병행성 메커니즘의 하나로 한 프로세스가 쓰고 다른 프로세스가 익는 FIFO(First In First Out)형태의 큐 라고 할 수 있다. 파이프에는 일정한 크기가 할당되어 있어 어떤 프로세스가 파이프에 데이터를 기록 하려고 할때 충분한 공간이 남아 있지 않다면 그 프로세스는 차단된다. 즉 한 순간에 1 개의 프로세스만이 파이프에 접근 할 수 있다.
파이프는 익명 파이프와 지명 파이프로 나뉘는데. 익명 파이프는 서로 관련된 프로세스(자식 프로세스와 부모 프로세스)끼리만 공유가 가능 하나 지명 파이프는 관련이 없는 프로세스 끼리 공유가 가능하며 프로세스가 소멸되어서 계속 존재 하기 때문에 제거할 필요가 있으며 파일 처럼 취급이 가능하다.
공유 메모리(Shared Memory)
컴퓨터 환경에서 여러 프로그램이 동시에 접근 할 수 있는 메모리 입니다.
과다한 복사를 피하거나 해당 프로그램 간 통신을 위해 고안 되었습니다.
환경에 따라 하나의 프로세서에서 실행 될 수 있고 여러 개의 프로세서에서 실행 될 수 있습니다.
'OS' 카테고리의 다른 글
인터럽트란? (0) | 2017.02.12 |
---|---|
POSIX란 무엇인가. (0) | 2017.02.11 |
문맥 교환(Context Switching) (0) | 2017.02.09 |
프로세스란 무엇인가 (1) | 2017.02.09 |
커널의 종류 (0) | 2017.02.08 |