12. 동기화 문제의 해결책

개발 99·2025년 4월 7일

공룡책

목록 보기
12/22

Peterson Algorithm

  • guarantee가 없다.

  • 2개의 process가 critical section과 remainder section을 왔다갔다 거림.

  • turn값을 switch를 해서 2개의 process중 누가 실행이 되어야 하는지 알려준다.

그런데 0이 아니라, -1,2와 같은 엉뚱한 값이 나온다.

따라서 기계어로 이해를 해야한다.

while문이 있는 두번째 구문에서 context switch가 발생해서 생기는 문제.

상호배제, 데드락, 기아를 해결할 수 있다 <- 피터슨 핵심

Atomicity

atomic operation = uninterruptible unit
2개의 명령어(swap 알고리즘)를 1개로 변환.
HW instruction으로 만듦.

Atomic Variable(실제)

동기화는

  1. 상호배제

  2. 데드락 회피

  3. bounded waiting 회피

를 해야한다.

profile
구구구구구!

0개의 댓글