[OS] 동기화 (프로세스, 스레드)
* 동기화: 공동의 목적을 위해 동시에 수행되는 프로세스 즉, 프로세스들의 수행 시기를 맞추는 것을 의미함.
e.g. 워드 프로세서 프로그램: 맞춤법 검사 프로세스, 입력 내용을 화면에 출력하는 프로세스 등등
* 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기
고전적인 문제) reader writer problem
: reader와 writer프로세스는 무작정 아무렇게나 실행되어선 안된다. 실행의 순서가 있기 때문.
reader 프로세스는 'Book.txt 안에 값이 존재한다'는 특정 조건이 만족되어야만 실행 가능하다.
따라서 writer가 먼저 선행되어야함.
* 상호 배제: 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기
고전적임 문제1) Bank accont problem
고전적임 문제2) Producer & Consumer problem