CSSAFTUDY / CS_STUDY

CS 스터디 공간
8 stars 2 forks source link

[Process & Thread] IPC에 대해 설명하고 IPC의 구현 방법에 대해 말해주세요. #60

Open DDongYul opened 2 months ago

DDongYul commented 2 months ago

IPC(Inter-Process Communication)

IPC는 운영 체제의 프로세스들 사이에서 데이터를 교환하는 방법이다. 대표적으로 3가지 방법으로 구현된다.

파이프(Pipes)

가장 기본적인 IPC 방식 중 하나로, 한 프로세스의 출력을 다른 프로세스의 입력으로 연결. 즉 단방향 통신이며, 일반적으로 부모 프로세스와 자식 프로세스 사이에 사용된다.

메시지 큐(Message Queue)

메시지 큐는 프로세스 간에 데이터를 교환하기 위해 사용되는 FIFO(First In, First Out) 방식의 데이터 스트림이다. 메시지 큐를 사용하면 프로세스는 비동기적으로 메시지(데이터 블록)를 교환할 수 있다. 즉 메시지를 보내는 프로세스가 메시지를 받는 프로세스가 메시지를 처리할 준비가 될 때까지 기다릴 필요가 없다. 이와 같이 메시지 큐는 통신을 위한 중앙 서버 없이도 두 프로세스 간의 메시지 전송이 가능하다.

공유 메모리(Shared Memory

공유 메모리는 두 개 이상의 프로세스가 동일한 메모리 영역에 접근하여 데이터를 공유할 수 있게 해주는 IPC 방법이다. 한 프로세스가 메모리에 데이터를 쓰면 다른 프로세스가 즉시 그 데이터를 읽을 수 있다. 이처럼 공유 메모리는 매우 빠른 데이터 교환을 가능하게 한다. 하지만 동시 접근을 관리하기 위한 동기화 메커니즘이 필요하다. 세마포어(Semaphore)나 뮤텍스(Mutex)와 같은 동기화 도구를 사용하여 프로세스 간의 접근을 조절해야 한다.

sw0501 commented 2 months ago

정처기 실기 기출