
[OS] 프로세스, 스레드에서 발생하는 경쟁상태와 해결책에 대해
rlaehddnd0422
시스템 안에서 여러 프로세스, 스레드가 실행될 때 함께 접근할 수 있는 자원이 있습니다. 이 자원을 공유 자원(Shared Resource)이라고 부르는데, 모니터, 프린터, 메모리, 파일, 데이터 등이 이에 해당합니다. 이 공유 자원에 대해 여러 프로세스나 스레드가 접근을 시도하면, 실행 순서나 타이밍에 따라 결괏값에 영향을 줄 수 있게 되는데 이를 경쟁상태(Race Condition)이라고 말합니다. 추가로 이 공유자원에 접근하는 프로그램 코드 부분을 임계 영역(Critical Area)이라고 함. 즉, 공유자원에 여러 프로세스가 동시에 접근하게 되면 자료의 일관성을 해치는 결과가 나타날 수 있습니다. 예를 들어, 두 개의 스레드가 하나의 공유 자원인 전역 변수의 값을 증가시키는 상황을 가정해봅시..