<aside>
📌 데이터의 접근, Race Condition, OS에서의 race condition, If you preempt CPU while in kernel mode…, Synchronization 문제, Example of a Race Condition, The Critical-Section Problem, Initial Attempts to Solve Problem
</aside>
데이터의 접근

- 컴퓨터 시스템 안에서 데이터가 접근되는 패턴
- 데이터를 찾고
- 읽어와서
- 연산하고
- 1의 자리에 다시 저장
- 누가 먼저 데이터를 읽었는가에 따라 Synchronization 문제가 발생할 수 있음
Race Condition

- Race Condition(경쟁 상태)
- 자주 발생할 수 있는 문제일까?
(CPU가 Memory를 읽고 저장하는 일이 많지만 CPU가 하나라면 문제되지 않음,
Process는 자신의 주소 공간만 사용하기 때문에 문제되지 않음,
하지만 멀티 프로세서 시스템에서는 문제가 됨, 또한 공유 메모리에서 문제 발생 가능성 있음,
커널 데이터를 건드리던 도중에 인터럽트가 들어오면 또 커널을 건들기 때문에 큰 문제가 될 수 있음)
- 이를 조율해주는 방법이 필요
OS에서 race condition은 언제 발생하는가?
1. kernel 수행 중 인터럽트 발생 시
2. Process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우