Chapter 12-1  |  동기화란

동기화 : 협력적으로 실행되는 프로세스들을 올바르게 실행하기 위한 것

프로세스 동기화 : 프로세스들 사이의 수행 시기를 맞추는 것

프로세스 동기화

실행 순서 제어를 위한 동기화 : 프로세스를 올바른 선서대로 실행하기

상호 배제를 위한 동기화 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기

생산자와 소비자 문제

생산자와 소비자가 총합이라는 동일한 데이터를 다룰 때 있어서 동시에 접근하면 안 되는 자원에 동시에 접근했기 때문에 총합의 데이터가 잘못되는 문제가 발생한다.

공유 자원과 임계 구역

공유 자원 : 동시에 실행되는 프로세스들이 공동으로 두고 작업을 하는 자원 (전역 변수, 파일, 입출력장치, 보조기억장치)

임계 구역 : 자원에 접근하는 코드 영역으로 여러 개의 프로세스가 임계 구역에 진입하고자 하면 둘 중 하나는 먼저 진입한 프로세스의 작업이 마무리될 때까지 기다려야 한다.

레이스 컨디션 : 잘못된 실행으로 인해 여러 프로세스가 동시 다발적으로 임계 구역의 코드를 실행하여 문제가 발생하는 경우

상호 배제를 위한 동기화를 위한 원칙


Chapter 12-2  |  동기화 기법

뮤텍스 락

동시에 접근하면 안 되는 자원에 동시에 접근하지 않도록 만드는 도구 (상호 배제를 위한 동기화 도구)