ComputerSience

CS

[CS]경쟁 상태(Race Condition)과 교착 상태(Dead Lock)

경쟁 상태(Race Condtion) 이란? 경쟁 상태는 두 개 이상의 스레드 또는 프로세스가 공유 자원에 동시에 접근하고 수정을 시도할 때 발생 할 수 있는 문제이다. 즉 병행 프로그래밍 또는 동시성 프로그래밍 환경에서 발생하는 문제로써, 스레드 간의 실행 순서가 예상과 다를 경우 의도와 다른 결과가 발생하며 프로그램의 정확성과 안정성을 저해하는 결과 유발한다. 경쟁 상태가 발생하는 기본적인 원인은 다음과 같다. 1. 동시성 접근 : 여러 스레드 또는 프로세스가 동시에 공유자원(변수, 파일, 데이터베이스)에 접근하려 할 때 발생한다. 2. 비원자성(Non-atomic) 연산 : 공유 자원을 수정하는 연산이 원자적이지 않을 경우, 즉 여러 단계로 나눠서 수행되는 경우 발생할 수 있다. *원자적 : 수행 ..

turtleDev
'ComputerSience' 태그의 글 목록