1. 동기화 1.1 동기화의 의미 동시에 실행되는 많은 프로세스들은 데이터를 주고받으며 실행될 수 있다. 이때의 올바른 실행을 위해서는 동기화가 필요하다. 프로세스 세계에서 동기화란 올바른 순서대로 실행되고 한 자원에 동시에 접근하지 않는 것이다. 특정 조건이 완료되어야 실행을 이어나가는 프로세스들이 있기 때문에 프로세스에서의 실행순서는 중요하다. 또, 한 프로세스가 연산을 다 끝내기 전에 접근해서 다른 연산을 하면 연산이 꼬여서 원하는 결과가 나오지 않을 수 있다. 1.2 생산자와 소비자 문제 왜 한 자원에 동시에 접근하지 않는 것이 중요한지 더 알아보자. 생산자와 소비자는 '총합' 이라는 데이터를 공유한다고 해보자. 생산자는 버퍼에 데이터를 넣고 총합을 1 증가 시키고, 소비자는 버퍼에서 물건을 빼고..