반응형

1. 배경 : 병행 프로세스의 문제

 

1) 결정성 : 상대적인 실행 속도와 관계없이 항상 같은 결과를 도출하는지

-> 입력이 같으면 같은 결과가 나와야 한다. 병행 프로세스에서 순서가 꼬이면 다른 결과를 도출할 수도 있다.

2) 상호 배제와 동기화 

- 상호 배제 : 어떤 자원에 대해 한 번에 한 프로세스만이 접근가능

- 동기화 : 프로세스의 진행이 다른 프로세스에 의존

3) 교착 : 프로세스들이 서로 다른 프로세스가 점유한 자원을 요구하며, 아무도 진행되지 못하는 상태

 

 

 

 

 

2. 결정성

: 프로세스들 간의 실행 순서는 독립적 또는 선행 관계이다.

: 선행 관계의 경우, 선행 그래프로 표현 가능하다.

 

-> 프로세스별로 순서가 있으므로 그에 따라 진행하여야 한다.

 

 

 

 

 

 

3. 상호배제

: 특정 공유 자원을 한 순간에 한 개의 프로세스만이 사용할 수 있는 경우에

: 프로세스 하나가 공유 데이터에 접근해 있는 동안, 다른 프로세스가 접근할 수 없도록 하는 것

 

-> 교착 상태와 기아 상태가 발생하게하는 원인이다.

 

 

 

 

 

 

4. 동기화

: 빨리 끝나는 프로세스가 늦게 끝나는 프로세스를 어떻게 기다려줄지가 문제이다.

: 비동기 프로세스의 대기 시점을 결정한다.

 

 

 

 

 

5. 상호배제 및 동기화의 예시

- 제한 버퍼의 생산자/소비자 문제

 

 

 

6. 경쟁 상태 : 여러 프로세스가 공유 데이터에 동시에 접근할 때, 접근 순서에 따라 결과가 달라지는 상황

 

< 경쟁 상태를 위한 병행 프로세스들의 동기화 방법 >

1) 임계 영역 : 공유 변수를 어느 한 순간에 한 프로세스만 조작할 수 있도록 한다.

2) 상호 배제 : counter를 조작하는 부분을 임계영역으로 설정하여 상호 배제한다.

 

 

반응형

+ Recent posts