IPC(Inter Process Communication)
프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 매커니즘
공유 메모리
여러 프로세스에 동일한 메모리 블록에 대한 접근 권한이 부여되어 프로세스가 서로 통신할 수 있도록 공유 메모리를 생성하여 통신
- 특징
- 가장 빠름 : 메모리 자체를 공유하기에 불필요한 데이터 복사의 오버헤드가 발생하지 않음
- 동기화 필요 : 같은 메모리 영역을 여러 프로세스가 공유
- 하드웨어 관점에서공유 메모리는 CPU가 접근할 수 있는 큰 랜덤 접근 메모리인 RAM을 가리키기도 함
파일
디스크에 저장된 데이터 또는 파일 서버에서 제공한 데이터. 이를 기반으로 프로세스 통신을 함
소켓
동일한 컴퓨터의 다른 프로세스나 네트워크의 다른 컴퓨터로 네트워크 인터페이스를 통해 전송하는 데이터(TCP, UDP)
익명 파이프
프로세스 간에 FIFO 방식으로 읽히는 임시 공간인 파이프를 기반으로 데이터를 주고받으며, 단방향 방식의 읽기 전용, 쓰기 전용 파이프를 만들어서 작동. 부모, 자식 프로세스 간에만 사용 가능.
명명된 파이프
파이프 서버와 하나 이상의 파이프 클라이언트 간의 통신을 위한 명명된 단방향 또는 양방향 파이프. 클라이언트/서버 통신을 위한 별도의 파이프를 제공하며, 여러 파이프 동시 사용 가능. 컴퓨터의 프로세스끼리 또는 다른 네트워크 상의 컴퓨터와도 통신 가능
메시지 큐
메시지를 큐 데이터 구조 형태로 관리하는 것.
- 특징
- 커널에서 전역적으로 관리
- 다른 IPC 방식에 비해서 사용 방법이 매우 직관적이고 간단
- 다른 코드 수정 없이 단지 몇 줄의 코드를 추가시켜 간단하게 메시지 큐에 접근 가능
'CS > 운영체제' 카테고리의 다른 글
9. 스케줄링 (0) | 2024.08.03 |
---|---|
8.좀비 프로세스와 고아 프로세스 (0) | 2024.07.12 |
6.교착 상태 (0) | 2024.07.12 |
5.프로세스 동기화 (0) | 2024.07.12 |
4. 멀티 프로세스와 멀티 스레드 (0) | 2024.07.12 |