-
동시 자원 할당 요구 상태, Race Condition(경쟁 조건)OS 2022. 2. 21. 16:22728x90반응형
1. Race Condition의 개요
가. Race Condition의 개념
- 다중 프로세스(Multi-processing) 환경에서 특정 자원에 대하여
여러 프로세스가 동시에 자원을 획득하려고 경쟁하는 상황
나. Race Condition의 특징
1) 예측 어려움
2) 일관성 결여
3) 원인 분석 어려움2. Race Condition의 발생원인 및 해결방안
가. Race Condition의 발생원인 사례
1) 프로세스 A : 공유자원 count 70을 읽고, +1 수행 공유자원(count)에 쓰지 않음
2) 프로세스 B : 공유자원 count 70을 읽고, -1 수행 공유자원(count)에 쓰지 않음
3) 프로세스 A : 공유자원 count에 71쓰기 수행
4) 프로세스 B : 공유자원 count에 69쓰기 수행
- 프로세스 A의 쓰기가 무시되고 공유자원 count는 69가 됨.
나. Race Condition의 해결방안
1)동기화 기법 [스물(뮤)셋(세)모임]
- 스핀락(Spin Lock)
- 뮤텍스(Mutex; Mutual Exclusive)
- 세마포어(Semaphor)
- 모니터(Monitor)
- 임계영역(Critical Section)
2)소프트웨어 기법 [DLP; Data Loss Prevention]
- Dekker : 나 먼저 쓰고 양보할께
- Lamport : 번호표 순서대로 쓰자
- Peterson : 너 먼저 써, 난 다음에 쓸께
3)하드웨워 기법 [ICT; 정보통신기술]
- Interrupt 금지 : Interrupt Disable();
- Compare & Swap : 하드웨어 명령어 2개의 상태를 동시에 변경
- Test & Set : 하드웨어 명령어 상태 테스트 & 수정
3. 동기화를 이용한 Race Condition 해결방안, 세마포어 설명
가. 세마포어의 개념
- OS 내에서 상호배제를 지원하는 메커니즘
- 세마포어 변수(S) 및 두 개의 연산(P, V)으로 임계영역에 접근하는 잠금장치에 대한 이론적 기반나. 세마포어 구현 코드
Semaphres S;
P (S) ; // 검사역할검사역할, S
임계구역
()
V (S): // 증가역할증가역할, S++728x90반응형'OS' 카테고리의 다른 글
Wait-Die, Wound-Wait (0) 2021.12.24