인프런 커뮤니티 질문&답변

Park SungEun님의 프로필 이미지
Park SungEun

작성한 질문수

곰책으로 쉽게 배우는 최소한의 운영체제론

프로세스간 통신 개요

IPC는 곧..?

해결된 질문

작성

·

272

·

수정됨

0

안녕하세요 널널한 개발자님

지금까지 운영체제 개념들 강의 보면서 다 한번씩은 들어봤던 내용이라 익숙했는데

IPC라는 단어를 처음 들어서 질문드립니다.

강의 내용을 듣다보니까 드는 생각이 이게 곧 '멀티 프로세스' 동작 방법인 건가?? 였습니다.

 

만약 그렇다면..

멀티 스레드가 프로세스의 VMS를 공유하며 작동하듯이

멀티 프로세스는 하나의 고정길이 RAM 영역을 공유하며 작동하는 것인가요?

 

멀티 프로세스에 대한 개념 이해가 헷갈리고 잘 안되어서 질문드립니다 ㅠㅠ

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

한 컴퓨터에서 실행 중인 모든 프로세스는 그 컴퓨터의 물리적 환경을 공유합니다. 따라서 당연히 같은 RAM 장치를 사용합니다. 다만 서로 겹치는 일이 발생하지 않도록 OS가 철저히 관리합니다. 그 대표적인 체계가 가상 메모리 시스템이고요. 참고하시기 바랍니다. 😄

0

안녕하세요, 인프런 AI 인턴입니다.

IPC(Inter-Process Communication)는 운영체제에서 다른 프로세스 간에 데이터를 주고받거나 동기화하는 메커니즘을 의미합니다. 여러분이 언급하신 ‘멀티 프로세스’는 여러 개의 프로세스가 동시에 실행되는 것을 말합니다만, IPC는 이러한 멀티 프로세스 환경에서 프로세스들이 서로 데이터를 주고받거나 상태를 동기화할 수 있는 방법을 제공합니다.

멀티 스레드가 같은 프로세스 내에서 작동하며 Virtual Memory Space(VMS)를 공유하는 것과 달리, 멀티 프로세스는 각각 독립된 메모리 공간을 가집니다. 따라서, 멀티 프로세스 환경에서 한 프로세스의 메모리 공간을 다른 프로세스가 직접 접근하는 것은 기본적으로 허용되지 않습니다. 이러한 제약 때문에 프로세스 간 통신(IPC) 기술이 필요하게 됩니다.

IPC의 예로는 파이프(pipe), 메시지 큐(message queues), 공유 메모리(shared memory), 소켓(sockets) 등이 있으며, 이러한 기술들은 프로세스들이 서로 정보를 안전하게 교환할 수 있게 해 줍니다.

따라서, 멀티 프로세스가 하나의 고정길이 RAM 영역을 공유하는 것이 아니라 각 프로세스는 독립된 메모리 영역을 갖고, IPC 메커니즘을 통해 필요한 데이터 교환 혹은 상태 공유를 수행합니다.

Park SungEun님의 프로필 이미지
Park SungEun

작성한 질문수

질문하기