-
Process synchronization전공 지식/OS 2018. 8. 9. 22:40
Race condition
여러 프로세스가 같은 데이터를 접근 했을 때, 접근의 순서가 결과 값에 영향을 줄 수 있는 상태
Critical Section (임계구역)
공유 데이터가 접근하는 코드의 일부를 의미함
Solution
1. Mutual Exclusion
- Critical Section 부분은 단 1개의 프로세스만이 접근할 수 있게 한다. (Atomic)
2. Progress
- 기다리고 있는 Process가 있을 때, 특정 프로세스는 Critical Section에 진입할 수 있게 함
3. Bounded Waitting
- 기다리는 횟수의 Bound를 둔다.
Peterson's Solution
- Busy Waiting = Spin Lock
Test And Set
Semaphore / Mutex
Semaphore : 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것
Mutual Exclusion은 보장하지 않지만 정수값으로 범위가 되어 여러 프로세스가 접근 할 수도 있다. (동기화 대상이 여러개)
소유가 불가능함
파일 시스템상으로 존재
Mutex : 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것
locking과 unlocking을 사용하여 공유 리소스 접근을 조율함
Binary Semaphore 임
소유가 가능하며 소유주는 그에 대한 책임을 진다. 따라서 소유주만이 unlock 을 할 수 있음.
프로세스가 종료될 때, 자동으로 CleanUp
'전공 지식 > OS' 카테고리의 다른 글
Memory Management Stategies (0) 2018.08.16 Deadlocks (0) 2018.08.16 Process scheduling (0) 2018.08.09 Multithreaded Programming (0) 2018.08.09 Process Concept (0) 2018.08.09 댓글