• 운영체제 - Process Synchronization (3)

    2021. 3. 19.

    by. KimBangg

     

    동기화가 다루는 문제들

     

    [1] Bounded Buffer problem ( = Producer & Consumer Problem )

     

    [생산자]

    대표사진 삭제

    사진 설명을 입력하세요.

    [소비자]

    대표사진 삭제

    사진 설명을 입력하세요.

    2. Reader - Writer Problem

    - 독자는 오직 읽는 것만이 가능하며, 변경은 불가하다.

    - 저자는 읽고 쓰는것을 모두 할 수 있다.

     

    이 때, 여러명의 독자가 동시에 읽고 저자가 쓰는 작업을 동시에 한다면?

    [Shared Data : Data set / Semaphore Mutex ( initial : 1 ) / Semaphore wrt ( initil : 1 ) / integer readcount ( innitial : 0 ]

     

    저자&독자는 starvation 현상을 겪을 수 있다.

    1: 어떠한 독자도 저자를 기다려주지 않는 경우

    2 : 어떠한 저자도 독자를 기다려주지 않는 경우

     

    [저자]

    사진 삭제

    사진 설명을 입력하세요.

    [독자]

    사진 삭제

    사진 설명을 입력하세요.

    3) Dining-Philosophers Problem

     

    생각과 식사만을 하며 사는 5명의 철학자들이 존재한다.

    그들은, 다섯개의 의자로 둘러쌓인 원형의 테이블을 사용하며, 테이블에는 다섯 쌍의 젓가락이 존재한다.

    만약 철학자가 생각을 하게 된다면, 그사람은 누구와 소통도 하지 않으며 식사도 하지 않는다.

    만약 철학자가 식사를 하고 싶다면, 자신의 양쪽에 젓가락이 모두 존재해야하고 식사도중에는 내려놓지 않는다.

     

    * 발생 가능한 문제

    모든 철학자들이 하나의 젓가락을 들고 있다면 => Deaklock 상태에 빠지게 된다.

     

    해결책

    1. 양쪽 젓가락 모두를 사용할 수 있는 경우에만 철학자는 젓가락을 든다.

    2. 홀수 자리의 철학자는 왼쪽의 젓가락 & 짝수의 철학자는 오른쪽의 젓가락을 우선적으로 들게한다.

     

     

    댓글