Post

스레드 동기화3

생산자 소비자 문제

생산자 소비자 문제 사례

생산자소비자문제사례

생산자-소비자 관계에서 비디오 버퍼는 임계구역이다.

생산자, 소비자 스레드가 접근할 때, 임계구역에서 상호 배제가 일어나야 한다.

밑에는 1:3 관계이다. 촬영장 카메라, 프레임 단위로 읽고 디코딩 해서 적절한 네트워크 통해서 전송

약간의 복잡한 메커니즘..? 위에꺼와 비교해서

생산자 소비자 문제란?

생산자소비자문제

  • 공유버퍼를 사이에 두고, 공유버퍼에 데이터를 공급하는 생산자들과, 데이터를 읽고 소비하는 소비자들이, 공유버퍼를 문제 없이 사용하도록 생산자와 소비자를 동기화시키는 문제

생산자 소비자 문제의 3가지 문제

  1. 상호 배제 해결(생산자, 소비자들의 공유버퍼에 대한 상호 배제)
  2. 비어있는 공유 버퍼 문제(비어 있는 공유버퍼를 소비자가 읽을 때)
  3. 꽉 찬 공유버퍼 문제(꽉 찬 공유버퍼에 생산자가 쓸 때)

비어있는 버퍼 문제 해결

  • 세마포 R 활용(읽기 가능한 버퍼 개수) : 버퍼가 비어 있는지 살피는 P/V 연산으로 해결

비어있는버퍼문제해결

  • 세마포 W 활용(쓰기 가능한 버퍼 개수) : 버퍼가 꽉 차 있을 때 처리하는 P/V 연산으로 해결

가득찬공유버퍼문제해결

생산자와 소비자 알고리즘

생산자소비자알고리즘

This post is licensed under CC BY 4.0 by the author.