병행제어
-
4. 프로세스 병행 제어와 동기화Computer Science/Operating System 2022. 3. 13. 18:01
메모리 또는 디스크에서 데이터를 가져와 CPU에서 여러 프로세스들이 동시에 데이터를 처리해야 하는 경우. 즉, 하나의 공유 데이터를 여럿이 동시에 접근할 때 생기는 것을 "경쟁 상태(race condition)"라고 한다. 이로인해 데이터 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라져 의도치 않은 결과가 발생할 수 있다. 이러한 경쟁 상태를 막기 위해 병행 프로세스는 동기화되어야 한다. 프로세스 동기화는 쉽게 말해 여러 개의 프로세스가 공유하고 있는 자원에 대해서 프로세스마다 순서를 정해 자원의 일관성을 유지해주는 것이다. 그렇다면 경쟁상태가 발생하는 여러 이유와 발생하지 않는 경우에 대해 알아보자. 경쟁상태가 발생하는 경우 - 커널 수행 중 인터럽트 발생 시 커널모드 실행 중 인터..