티스토리 뷰

운영체제/이론

(33) Synchronization Problems

geonwoopaeng@gmail.com 2020. 9. 24. 21:15

### Synchronization Problems ###

<Synchronization tools>

- Disabling interrupt

: process가 shared data에 접근하는 동안에는 interrupt/systemcall이 걸리지 않게 비활성화 시키는 것

- Atomic instruction(test-and-set, compare-and-swap)

: 값을 수정하는 동안에 다른 instruction이 수행이 되지 않게 하는 것(cpu 차원 지원-하드웨어 기반)

: 다른 기법과 연관되서 사용한다.

- Mutex lock

: process가 critical section에 접근하면 lock을 걸어 다른 process가 접근 하지 못하게 하는 것

- Semaphore

: 일반화된 mutex lock(2진 lock) + 정수 lock(count)

 

- Monitor

: mutex lock 이나 semaphore을관리 하기 힘들 때 api 관장에서 critical section에 대한 mutual exclusion(상호배제) 보장하는 방법

### Classical problems in synchronization ###

- Bounded-buffer problem

: 유한 buffer문제

: 생산자 소비자 사이에서 data를 주고 받을 때 bounded buffer을 사용하는데 buffer와 관련된 문제를 critical section issue를 고려하는 것

- Readers and writers problem

: database영역에서 발생

: shared data에 여러개의 writer process, reader process가 접근 할때 생기는 문제점(mutual exclusion으로 해결)

- Dining-philosophers problem

: deadlock issue와 관련 있다.

반응형
공지사항
최근에 올라온 글