[운영체제] 3. 프로세스 동기화 (1) - 상호배제와 Busy Waiting
·
CS/운영체제
프로세스는 단독으로 자원을 경쟁적으로 사용하면서 실행되기도 하지만 서로 통신하고 협력하면서 실행되기도 한다.프로세스 사이에 통신할 때는 크게 3가지 문제점이 있다. 1. 어떻게 하나의 프로세스에서 다른 프로세스로 정보를 넘길 것인가?2. 어떻게 각 프로세스가 중요한 동작을 하고 있을 때 서로를 방해하지 않도록 보장할 것인가?3. 프로세스와 프로세스의 동작 사이에는 의존성이 존재할 수 있는데, 어떻게 올바르게 실행되도록 순서를 조정할 것인가?(프로세스 A가 생성한 데이터를 프로세스 B가 출력한다면, 프로세스 B는 프로세스 A의 동작이 끝날 때까지 기다려야 한다.) 이 문제를 해결하는 것을 가리켜 '프로세스 동기화' 라고 한다. 우선 첫 번째 문제인 하나의 프로세스에서 다른 프로세스로 정보를 넘기는 것은 단..