✔︎ 경쟁 상태(Race Condition)란 ? 공유 자원에 대해 여러 프로세스가 동시에 접근할 때 결과값에 영향을 줄 수 있는 상태 동시 접근 시 자료의 일관성을 해치는 결과가 나타날 수 있다. 경쟁 상태도 교착 상태의 종류 중에 하나이다. ✔︎ Race Condition이 발생하는 경우 1. 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널 모드에서 데이터를 로드해 작업을 수행하다가 인터럽트가 발생해 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 2. 프로세스가 'System Call'을 하여 커널 모드로 진입하고 작업을 수행하는 도중 문맥 교환이 발생할 때 문제점 : 프로세스1이 커널모드에서 ..
✔︎ DeadLock (데드락)이란 ? 프로세스가 원하는 자원을 얻지 못해 다음 작업 처리를 하지 못하는 상태를 말한다. '교착 상태'라고 부르며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 발생 상황 멀티 프로그래밍 환경에서 한정된 자원을 사용하기 위해 서로 경쟁하는 상황에서 발생 가능 어떤 프로세스가 자원을 요청했을 때에 그 자원을 사용할 수 없는 상황이 발생할 수 있다. 이 때, 프로세스가 대기 상태로 들어가게 된다. 대기 상태로 들어간 프로세스들이 실행 상태로 변경될 수 없을 때 '교착 상태' 발생 ✔︎ DeadLock 발생 조건 발생 조건 4가지가 모두 성립해야 데드락이 발생하며 하나라도 성립하지 않으면 해결 가능하다. 1. 상호 배제 (Mutual exclusion) 자..