Background
- Cooperating 프로세스들은 서로 영향을 주거나 받을 수 있다.
- Cooperating 프로세스들은 논리적 메모리 주소 공간을 공유하거나 데이터를 할당 받을 수 있다.
이 때, 공유 데이터에 동시 접근하면 데이터 일관성이 깨질 수 있다(데이터 무결성).
- 동시 실행(Concurrent execution)
- 프로세스의 명령어 실행 흐름 중 인터럽트가 발생할 수 있다.
- 할당된 코어는 다른 프로세스에 의해 선점될 수 있다.
- 병렬 실행(Parallel execution)
- 두 개 이상의 명령어 흐름(instruction streams)
- 서로 다른 코어에서 동시에 실행
따라서 Coopereating 프로세스 실행에서는 아래 내용이 확실하게 보장되어야 한다.