X

경쟁 조건/자원 경합 (Race Condition)

I. 동시 수행의 위험, 자원 경합의 의미

가. 자원 경합의 정의

  • 공유 자원에 대해 여러 개의 프로세스가 동시에 접근을 시도하여 일관성 보장이 어려운 상태

나. 자원 경합의 특징

특징 설명
예측 불가 – 발생 현상, 빈도 등 예측이 전혀 불가능
비 균등 – 성능 변화가 불균등하여 일관성이 없음
분석 난해 – 연관 요인에 의해 원인분석 어려움
  • 일반적이지 않은 현상이 나타나므로 발생 조건 및 해결방안 찾기 어려움

II. 자원 경합의 발생 조건

가. 구조적 측면의 자원 경합 발생 조건

항목 설명
발생 조건 – 처리하는 내용에 관계없이 프로세스의 동작이 단일 자원을 할당 받으려는 경우 발생
발생 사례 – 복수 프로세스가 동시에 파일 할당 요청
– 복수 프로세스 동일 메모리 주소 할당 요청

나. 처리적 측면의 자원 경합 발생 조건

발생 조건 설명
발생 조건 – 복수 프로세스가 명령을 처리하기 위해 동시에 단일 자원을 사용하려는 경우 발생
발생 사례 – 복수 프로세스가 외부 I/O 사용 시 발생
– 복수 프로세스가 시리얼 포트 접근 시 발생

 

III. 자원 경합 발생 시 해결 방안

구분 방안 설명
상호 배제 피터슨 알고리즘 – 피터슨 알고리즘으로 임계 구역의 상호 배제, 진행 조건, 한계 대기 충족
HW 방법 – 시스템에서 제공하는 명령어 사용하여 자원 의 상태를 점검하고 변경
동기화 세마 포어 – 임계 구역과 P, V 명령에 의한 자원 할당의 독립성 부여
Spin Lock – 지속적으로 Lock을 시도하면서 CPU를 점유하기 위한 기법
  • 공유 자원 할당의 독립성을 부여하여 자원경합 발생 방지
Categories: CA/운영체제
도리: