Computer Science/Operating System
9.경쟁 상태(Race Condition)
성장에 몰입중인 개발자
2021. 8. 23. 15:47
∙경쟁 상태
∘공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 결과값에 영향을 줄 수 있는 상태
➀커널 작업 수행 중 인터럽트가 발생하여 같은 데이터를 조작하는 경우
->커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지
못하게 한다.
➁프로세스가 시스템 콜을 하여 커널 모드로 진입하여 작업을 수행하는 도중 Context Switch가 발생
->프로세스가 커널모드에서 작업을 하는 경우 CPU 제어권이 다른 프로세스에게 넘어가지
않도록 한다.
➂멀티 프로세스 환경에서 2개 이상의 CPU가 공유 메모리 내의 커널 데이터에 동시에 접근할 때
->커널 내부 공유 데이터에 접근할 때마다, 그 데이터에 대한 lock/unlock을 한다.
출처