경쟁 상태
공유하는 자원에 대해서 여러 프로세스가 접근하면서 결과값에 영향을 줄 수 있는 상태
-> 동시 접근 시 자료의 일관성을 해치는 결과가 발생함
경쟁 상태가 발생하는 경우
- 커널 작업 수행 중 인터럽트 발생
- 문제점: 커널 모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트로 인해 같은 데이터를 조작하는 경우
- 해결법: 커널 모드에서 작업을 수행하는 동안 CPU 제어권을 가져가지 못하도록 인터럽트를 Disable 시킨다.
- 프로세스가 System call하여 커널 모드로 진입하여 작업 중 Context Switching이 발생할 때
- 문제점: P1이 커널 모드에서 데이터를 조작하는 중 시간이 초과되어 CPU 제어권이 P2로 넘어가고 같은 데이터를 조작하는 경우
- 해결법: 시간이 초과되어도 CPU 제어권이 다른 프로세스에 넘어가지 않도록 함
- 멀티 프로세서 환경에서 공유 메모리 내의 커널 데이터에 접근 할 때
- 문제점: 멀티 프로세서 환경에서 2개의 CPU가 동시에 커널 내부 공유 데이터에 접근하여 조작하는 경우
- 해결법: 커널 내부 데이터에 접근할 때마다 데이터에 대해 Lock/unLock을 시킴