Interprocess Communication

(a) 커널을 매개체로 PCB(A), PCB(B)끼리 정보를 주고 받는 방식
(b) 프로세스들 끼리 메세지를 교환

(a) 커널을 매개체로 PCB(A), PCB(B)끼리 정보를 주고 받는 방식 (b) 프로세스들 끼리 메세지를 교환

Producer-Consumer Problem

Paradigm for cooperating processes 반드시 1 : 1 대응 관계는 아닙니다(1:N의 대응 관계도 많음)

<aside> ❓ Producer는 초당 M개를 생산하고, Consumer는 초당 N개를 소비한다고 가정해보자 이상적인 시나리오는 M=N의 경우 낭비의 경우는 M>N의 경우, 부족한 경우는 M<N의 경우

대부분의 경우는 낭비하거나 부족한 상황이므로 우리는 버퍼를 중간에 넣어줌으로써 처리해합니다.

이제 Consumer가 여러 개 사용하겠다고 가정해봤을때, 버퍼가 차례대로 소비할 수 있도록 해주고 Producer에게 업데이트된 정보를 알려줍니다.

</aside>

버퍼(Buffer) 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역

  1. Unbounded(제한 없는)-Buffer

    버퍼의 용량에 제한이 없는 소리

    그러니, Producer가 계속 생산

    그러나, 이건 말도 안되는 소리(매우 이상적인 상황)

  2. Bounded(제한된)-Buffer

    버퍼의 용량에 따라 대기시간이 발생


Producer-Consumer Problem(2)

여러 개의 프로세스들을 어떻게 동기화시킬 것인가에 대한 문제

Bounded-Buffer

공유 버퍼