ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 동시 자원 할당 요구 상태, Race Condition(경쟁 조건)
    OS 2022. 2. 21. 16:22
    728x90
    반응형

    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
Designed by Tistory.