본문 바로가기

CS/운영체제

전통적 동기화 예제

Producer and Consumer problem(생산자 소비자 문제)

-생산자가 데이터를 생산하면 소비자는 그것을 소비

-유한 버퍼 문제(Bounded Buffer problem)

-상호 배타 문제: 세마포 1개로 해결(mutual)

-Busy wait(e.g. CPU가 while문을 계속돌림): 세마포 2개로 해결(empty, full) 

Readers - Writers problem

-공유 데이터 베이스 접근

-Reader는 값을 변경하지 않으니 임계구역에 여러개를 허용(cf. Writer는 상호배타로 한개만 접근해야함)

Dining Philosopher problem

-교착상태(Deadlock) 발생하여 기아(Starvation)

교착상태 필요조건(4가지 만족하면 발생할 가능성이 있음)

-Mutual exclusion(상호 배타)

-Hold and wait(보유 및 대기)

-No-preemption(비선점)

-Circula wait(환형 대기): 원의 형태로 꼬리물기(화살표도 같은 방향이어야함)

'CS > 운영체제' 카테고리의 다른 글

모니터(monitor)  (0) 2023.02.12
교착 상태  (0) 2023.02.10
세마포(Semaphores)  (0) 2023.02.08
프로세스 동기화  (0) 2023.02.07
쓰레드(Thread)  (0) 2023.02.06