본문 바로가기
OS

프로세스 동기화

by 오렌지코딩 2023. 2. 5.

ch 12-1 프로세스 동기화

 

프로세스 동기화란?

- 정보통신 분야에서의 동기화란 작업들 사이의 수행 시기를 맞추는 것 ( 실행순서제어, 상호배제)

 

상호배제를 설명하기위한 대표적인 예제인 '생산자와 소비자 문제'

 

총합 = 10

 

생산자() {

    버퍼에 데이터 삽입

    '총합' 변수 1 증가

}

 

소비자() {

    버퍼에서 데이터 빼내기

    '총합' 변수 1 감소

}

 

프로세스 실행 후 실행 결과 총합은 10개로 머물러 있을 것이라 기대 했지만, 실행 결과 10개가 아닌 다른 결과 값 발생!

동시에 접근해서는 안되는 자원인 '총합'에 동시에 접근했기에 발생한 문제

 

이렇게 동시에 실행하면 문제가 발생하는 자원 (위의 예제에서는 '총합')에 접근하는 코드 영역을 '임계구역'이라고 한다.

 

상호배제를 위한 동기화는 이와 같은 일이 발생하지 않도록 두 개 이상의 프로세스가 '임계구역'에 동시에 접근하지 못하도록 관리하는 것

 

 

ch 12-2 동기화기법

 

프로세스 동기화를 위한 대표적인 도구 3가지

 

1. 뮤텍스 락

2. 세마포

3. 모니터