OS #7 Race Condition

김태준·2023년 3월 31일
0

CS & OS Study

목록 보기
10/12
post-thumbnail

✅ Race Condition

🎈 Race Condition 이란?

  • 두 개 이상의 프로세스, 스레드들이 하나의 공유자원에 접근할 때 마치 경쟁하듯이 동시에 접근하는 상황에서 동시성 문제가 발생할 수 있는 상태
  • DeadLock의 일부로써 여러 프로세스가 공유자원에 동시에 접근하는 상황에 sequence가 서로 상이할 수 있기에 자료 처리에 대한 일관성 역시 떨어진다.

💡 주로 발생하는 경우

  1. 커널 작업 수행 시 인터럽트 발생한 경우
  2. 프로세스가 시스템 콜을 하여 커널모드로 진입해 작업 수행 중 Context Switching 발생한 경우
  3. 멀티 프로세스 환경에서 공유 메모리 내 커널 데이터에 접근 시

🎈 해결책은?

  1. Mutual Exclusion (Semaphore, Mutex)
  • A 프로세스가 임계 영역에서 작업 수행 중이면, 타 프로세스는 해당 영역에 접근 X
  1. Progress (avoid deadlock)
  • 임계 영역에 있는 프로세스 외에 다른 프로세스가 해당 영역에 진입하는 것 방해 X
  1. Bounded Waiting (avoid starvation)
  • starvation 상태 방지하기 위해 프로세스가 임계 영역에 들어가기 위해 요청한 이후부터 타 프로세스들이 해당 영역에 들어가는 횟수에 limit을 걸어줌

참고 사항

링크텍스트 : https://www.techtarget.com/searchstorage/definition/race-condition

profile
To be a DataScientist

0개의 댓글