프로세스 동기화: 프로세스/쓰레드는 같은 데이터에 접근해야 하는 경우가 있다. 이때 일정한 규칙없이 데이터의 수정을 허용한다면 데이터의 신뢰성을 보장하지 못한다. 이때 데이터의 일관성을 유지하는 방법을 프로세스 동기화라고 한다.
임계구역 : 다른 프로세스(쓰레드)와 공유하는 코드 내용중 공통으로 접근 하는 데이터를 수정할 수 있는 부분
임계구역문제 : 임계구역에 접근하는 프로세스들이 문제없이 데이터를 공유하도록 동기화를 진행하는 방법
임계구역문제를 해결하기 위해서는 다음 3가지를 만족해야함
임계구역 문제를 해결하는 방법으로 피터슨의 방법, Mutext Lock, 세마포, 모니터 등이 있다.
do{
flag[i] = true; /*My intention is to enter.....*/
turn = j; /*Set to his turn*/
while (flag[j] && turn == j); /*wait only if ...*/
critical section
flag[i] = false;
remainder section
} while (1);
P연산: 임계구역의 권한을 획득하는 과정
V연산: 임계구역의 권한을 반납하는 과정
참고
운영체제(Operating System Concepts)
반효경교수님 강의 동기화1 https://core.ewha.ac.kr/publicview/C0101020140404144354492628?vmode=f
반효경교수님 강의 동기화2 https://core.ewha.ac.kr/publicview/C0101020140404151340260748?vmode=f