SSAFY-CSStudy / OS

SSAFY CS 운영체제 스터디입니다.
12 stars 0 forks source link

[6. 병행제어2] 동기화 문제 #39

Open qkrtjdwo5662 opened 6 months ago

qkrtjdwo5662 commented 6 months ago

1Depth

Question

세마포에서 발생할 수 있는 문제점은 무엇이 있을까요?

Answer 교착상태 : 두 개 이상의 스레드가 서로가 소유한 세마포를 기다리는 상황에서 데드락 발생가능성 있음
기아 : 세마포를 사용하여 스레드의 우선순위를 제어하는 경우, 우선순위가 낮은 스레드가 계속해서 세마포를 획득하지 못하고 대기하는 상황이 발생하면 기아가 발생할 수 있음

2Depth

Question

멀티스레딩 환경에서 발생할 수 있는 동기화 문제는 무엇이 있을까요?

Answer 생산자-소비자 문제 : 공유된 버퍼나 큐와 같은 자원을 생산자(Producer) 스레드가 생성하고, 소비자(Consumer) 스레드가 소비하는 상황에서 발생한다.
1. 상호배제의 문제(생산자들과 소비자들의 동시적 공유버퍼 사용에 대한 상호배제)
2. 비어있는 공유버퍼 문제 - 소비자가 비어있는 공유버퍼를 읽는 경우
3. 가득찬 공유버퍼에 생산자가 데이터를 공급하는 경우
위와 같은 경우에 발생할 수 있으며 뮤텍스, 세마포 등을 통해 해결할 수 있다.

Additional Explain