정보관리기술/CA,OS

Race Condition / ①

아이티신비 2024. 3. 7. 09:00

문제3) Race Condition

답)

 

1. 일관성 위협, 공유자원 사용을 위한 프로세스간 경합, Race Condition 의 개요

가. Race Condition 의 개념

 
  • 공유 자원에 대해 여러 개의 프로세스(스레드)가 동시에 접근을 시도할 때 접근의 타이밍이나 순소 등이 결과값에 영향을 줄 수 있는 상태

 

2. Race Condition 시나리오 및 제어 문제

가. Race Condition 시나리오

 
  • P1, P2 가 공유자원 접근 순서에 따라, 결과 값이 변경됨

 

나. Race Condition 제어 문제

 
Mutual Exclusion
(상호배제)
  • 두 개 이상의 프로세스가 공용 데이터에 동시에 접근하는 것을 막아야 한다. 다른 프로세스가 그 자원을 사용하지 못하면 문제를 피할 수 있다.
Deadlock
(교착상태)
  • 상호배제를 시행하면, 추가적으로 발생하는 제어 문제, 프로세스가 각자 프고그램을 실행하기 위해 두 자원 모두에 엑세스 해야 한다고 가장할 때, 두 자원 모두를 필요로 하므로 필요한 두 리소스를 사용하여 프로그램을 수행할 때가지 이미 소유한 리소스를 해제하지 않는다.
Starvation
(기아상태)
  • 프로세스들이 더 이상 진행을 하지 못하고 영구적으로 불록되어 있는 상태로, 시스템 자원에 대한 경쟁, 프로세스 간의 통신 과정에도 발생 할 수 있는 문제
  • Race Condition 을 예방할 수 있는 방법에는 세마포어(Semaphore)와 뮤텍스(Mutex)

 

3. Race Condition 예방 방법

 
예방 방법
항목
설명
Semaphore
(세마포어)
임계 구역과 P,V 명령에 의한 자원 할당의 독립성을 부여하여 경합 예방
Mutex
(뮤텍스)
공유된 자원의 데이터를 여러 스레드가 접근하는 것을 막는 방법, 상호배제를 함으로써 두 쓰레드가 동시에 사용할 수 없다
  • T(x) 는 쓰레드(Thread) / 세마포어와 뮤텍스의 차이는 공유자원에 단일, 다중 스레드의 진입여부의 차이점
 

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥

 

 

'정보관리기술 > CA,OS' 카테고리의 다른 글

DAS, NAS, SAN  (66) 2024.03.08
NoSQL / ①  (75) 2024.03.07
스레싱(Thrashing) / ①  (53) 2024.03.06
빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) / ①  (75) 2024.03.06
메모리 인터리빙(Memory Interleaving)  (90) 2024.03.05