[컴퓨터공학] 프로세스와 스케줄러 이해 -프로세스간 커뮤니케이션
프로세스와 스케줄러 이해 - 프로세스간 커뮤니케이션
패스트캠퍼스 강의 보면서 정리하고 있습니다
프로세스간 커뮤니케이션
- 프로세스는 다른 프로세스의 공간을 접근할 수 없다
- 여러 프로세스 동시 실행을 통한 성능 개선, 복잡한 프로그램을 위해 프로세스간 통신 필요
IPC(InterProcess Communication)
- 프로세스간 통신 방법을 제공
다양한 IPC 기법
- 2번부터는 커널 공간(물리메모리에 존재)을 사용함 (커널 공간 공유)
- file(저장매체) : 실시간 전달 어려움
- Message Queue
- 양방향 통신
- FIFO 정책으로 데이터 전송
- 부모, 자식 관계가 아니라도 어느 프로세스간에라도 데이터 송수신이 가능
- Shared Memory
- 노골적으로 kernel space에 메모리 공간을 만들고 해당 공간을 변수처럼 사용
- 해당 메모리 주소를 마치 변수처럼 접근하는 방식
- 공유메모리 key를 가지고 여러 프로세스가 접근 가능
- Pipe
- 기본 파이프는 단방향 통신
- fork()로 자식 프로세스 만들었을 때 부모와 자식간의 통신
- Signal
- 유닉스에서 30년 이상 사용된 전통적인 기법
- 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려주는 기법
- 프로세스 관련 코드에 시그널 핸들러를 등록, 해당 시그널 처리 실행
- 시그널 무시
- 시그널 블록 (블록을 푸는 순간 프로세스에서 해당 시그널 전달)
- 등록된 시그널 핸들러로 특정 동장 수행
- 등록된 시그널 핸들러가 없다면 커널에서 기본 동작 수행
- Semaphore
- Socket
- 기본적으로는 클라이언트와 서버등 두 개의 다른 컴퓨터간의 네트워크 기반 통신을 위한 기술
- 소켓을 하나의 컴퓨터 안에서 두 개의 프로세스간에 통신 기법으로 사용 가능