Race Condition   경쟁 조건

(2024-09-17)

1. 경쟁 조건 (race condition)

  ㅇ 발생 상황 : 주로, 병렬 프로그래밍이나 멀티스레드 환경에서 발생
     - 여러 프로세스,스레드가 동시에 같은 자원(변수,메모리 등)에 접근할 때 발생
     - 적절한 동기화 없이 자원을 동시에 읽거나 쓸 때 발생

  ㅇ 특징 : 실행 순서에 따라 결과가 달라질 수 있음

  ㅇ 해결 방법 : 세마포어, 모니터, 뮤텍스 등
     - 세마포어 (Semaphore) : 특정 자원에 동시에 접근할 수 있는 스레드 수의 제한
     - 뮤텍스 (Mutex) : 공유 자원에 대한 접근을 하나의 스레드만 허용하도록 잠금 설정
     - 모니터 (Monitor) : 객체 단위로 잠금을 관리하여 동기화를 제공

  ㅇ 해결 요소
     - 상호 배제 (Mutual Exclusion) : 한 번에 단 하나의 프로세스 만 자원에 접근토록 함
     - 진행 (Progress) : 자원에 접근할 수 있는 프로세스가 대기 중이 아닐 때, 
        . 대기 중인 다른 프로세스가 자원 접근 가능토록 보장
     - 한정 대기(Bounded Waiting) : 특정 프로세스가 자원에 접근하기 위해 무한정 대기 않도록 보장
        . 자원 접근 기회가 반드시 돌아와야 함

운영체제(일반)
   1. 커널   2. 사용자 모드, 커널 모드   3. API   4. 장치 드라이버   5. 공유 라이브러리   6. 로그   7. 운영체제 용어  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"