bshc.log
로그인
bshc.log
로그인
IPC가, 단일 프로세스 내 communication 보다 느린 이유?
About_work
·
2024년 2월 14일
팔로우
0
0
process, thread
목록 보기
13/23
한줄 요약
IPC는 데이터의 직렬화/역직렬화(
https://velog.io/@jk01019/pickling-VS-serialize
), 컨텍스트 스위칭(
https://velog.io/@jk01019/context-switching
), 데이터 복사 등이 필요해서, 더 느립니다.
1. 하나의 프로세스 내 데이터 교환
메모리 공유
: 하나의 프로세스 내의 스레드들은 같은 메모리 공간을 공유합니다. 따라서 스레드 간의 데이터 교환은 메모리를 직접 읽고 쓰는 것으로 간단
오버헤드 최소화
: 메모리 접근 및 데이터 교환 과정에서 발생하는 오버헤드가 매우 적습니다.
별도의 컨텍스트 스위칭이나 데이터 복사 과정이 필요하지 않거나, 매우 제한적
2. 여러 프로세스 간 IPC를 통한 데이터 교환
메모리 격리
: 각 프로세스는 독립된 메모리 공간을 가집니다. 따라서 한 프로세스의 데이터를 다른 프로세스와 공유하려면, IPC 메커니즘(예: 소켓, 공유 메모리, 파이프, 메시지 큐 등)을 사용해야 합니다.
오버헤드 증가
:
데이터를 전송하려면, 운영 체제의 커널(
https://velog.io/@jk01019/운영체제OS
)을 통해 데이터를 복사하고 전송하는 과정이 필요
이 과정에서 데이터의 직렬화 및 역직렬화, 컨텍스트 스위칭, 데이터 복사 등 추가적인 오버헤드가 발생
복잡성
:
프로세스 간 통신은 설정과 관리가 복잡하며, 데이터 동기화와 일관성을 유지하기 위한 추가적인 메커니즘이 필요
About_work
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.
팔로우
이전 포스트
[multiprocessing] SharedMemory / Pipe / Queue / Manager / Event
다음 포스트
context switching
0개의 댓글
댓글 작성