|
|
|
|
교착상태방지방법과상1
|
|
|
|
교착상태 방지방법과 상호배제의 기법
1. 임계구역에서 프로세스간에 상호배제가 필요한 이유와 이 상호배제를 구현하는 기
법들에 관해 기술하라.
(1)상호배제가 필요한 이유
병행수행 중에 있는 어떤 프로세스가 공용 데이터를 access하고 있을 때 그 프로세스는 임계구역에 있다고 하는데 여러 프로세스가 임계구역을 수행하고 있다면 lost update 문제가 발생하여 공용 데이터가 파손될 수 있습니다. 상호배제 기법은 이러한 문제를 해결하기 위하여 어떤 프로세스가 공용 데이터를 access하고 있을 때, 다른 프로세스가 이 공용 변수를 access하지 못하도록 막는 기법. 즉, 한 프로세스가 임계구역 내에 있으면 다른 프로세스들은 임계구역 내에 진입하지 못하도록 막는 기법을 의미합니다
상호배제를 위한 요구조건 다음과 같은 조건이 있습니다.
① 상호배제조건 : 두개 이상의 프로세스들이 동시에 임계영역에 있어서는 안됨
② 진행조건 : 임계구역 바깥에 있는 프로세스가 다른 프로세스의 임계구역 진입을 막 아서는 안됨
③ 한계대기조건 : 어떤 프로세스도 임계구역으로 들어가는 것이 무한정 연기되 어서 는 안됨
④ 프로세스들의 상대적인 속도에 대해서는 어떠한 가정도 하지 않는다
(2) 상호배제를 구현하는 기법
1) 2개 프로세스의 상호배제
① 소프트웨어적 해결과정
[알고리즘 1] - 프로세스 Pi의 구조
while (1) {
. . .
while (turn != i) ;
// 임계영역 (critical section)
. . .
turn = j ;
// 나머지 코드
.... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|