'병행프로세스'에 해당되는 글 1건

  1. 2008.08.19 병행프로세스와 상호배제

1. 병행 프로세스

병행 프로세스(Concurrent Process)는 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미한다.

* 여러 프로세스들이 독립적으로 실행되는 것을 독립적 병행 프로세스, 서로 협력하며 동시에 실행되는 것을 협동적 병행 프로세스라고 한다.

* 병행 프로세스는 다중 처리 시스템이나 분산 처리 시스템에서 중요한 개념으로 사용된다.


2. 임계 구역

임계 구역(Critical Section)은 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역)을 의미한다.

* 임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터를 사용할 수 있다.

* 임계 구역은 특정 프로세스가 독점할 수 없다.

* 임계 구역의 자원이나 데이터는 여러 프로세스가 사용해야 하므로 임계 구역 내에서의 작업은 신속하게 이루어져야 한다.

* 프로세스가 임계 구역에 대한 진입을 요청하면 일정 시간 내에 진입을 허락해야 한다.

* 현재 임계 구역에서 실행되는 프로세스가 없다면 임계 구역 사용을 기다리고 있는 잔류 영역에 있는 프로세스의 사용을 허락해야 하며, 그 이외에 있는 프로세스는 임계 구역에 진입할 수 없다.


>임계 구역의 개념에 대한 문제 출제됨. 영문으로 Critical Section이라는 것을 기억할 것.

>공유 자원

공유 자원에는 CPU, 메모리, 디스크, 입ㆍ출력 장치, 버퍼 등이 있다.


3. 상호 배제 기법

상호 배제(Mutual Exclusion)는 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법을 의미한다.

* 여러 프로세스가 동시에 공유 자원을 사용할 때 각 프로세스가 번갈아가며 공유 자원을 사용하도록 하는 것으로, 임계 구역을 유지하는 기법이다.

* 상호 배제 기법을 구현하기 위한 방법에는 소프트웨어적 구현과 하드웨어적 구현이 있다.


>상호 배제 개념과 영문표기법을 기억할 것.


소프트웨어적 구현 방법

* 두 개의 프로세스 기준: 데커(Dekker) 알고리즘, 피터슨(Peterson) 알고리즘

* 여러 개의 프로세스 기준: Lamport의 빵집 알고리즘


>Lamport의 빵집 알고리즘

고객이 빵집에 들어갈 때 번호를 부여하여 순서대로 고객에게 빵을 제공하는 방법과 같이, 각 프로세스에게 번호를 부여하여 자원을 사용하도록 하는 방법.


하드웨어적 구현 방법

Test_And_Set 기법과 Swap 명령어 기법이 있다.


4. 동기화 기법

동기화 기법(Synchronization)은 두 개 이상의 프로세스를 한 시점에서는 동시에 처리할 수 없으므로 각 프로세스에 대한 처리 순서를 결정하는 것으로, 상호 배제의 한 형태이다.

* 동기화를 구현할 수 있는 방법에는 세마포어와 모니터가 있다.


>세마포어와 모니터를 묻는 구체적인 문제가 출제됨. 각각의 의미와 특징을 파악 할 것.


세마포어(Semaphore)

* 세마포어는 '신호기', '깃발'을 뜻하며, 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법이다.

* 세마포어는 다익스트라(E.J.Dijkstra)가 제안하였으며, P와 V라는 두 개의 연산에 의해서 동기화를 유지하고 상호 배제의 원리를 보장한다.

* S는 P와 V 연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1 혹은 0과 양의 값을 가질 수 있다.

[그림 및 설명]


모니터

* 모니터는 동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성된다.

* 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있다.

* 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 한다.

* 외부의 프로시저는 직접 액세스 할 수 없다.

* 모니터의 경계에서 상호 배제가 시행된다.

* 모니터에는 한순간에 하나의 프로세스만 진입하여 자원을 사용할 수 있다.

* 모니터에서는 Wait와 Signal 연산이 사용된다.

[그림]


>정보 은폐

모니터 내부의 프로시저와 데이터의 정보를 은폐시켜서 다른 외부의 프로시저가 접근하거나 변경하지 못하도록 하는 기법.

 

'Algorithm' 카테고리의 다른 글

스케쥴링  (0) 2008.08.19
선점,비선점 스케쥴링  (1) 2008.08.19
주소지정방식  (0) 2008.08.19
RISC 기본원리  (0) 2008.08.19
deadlock 4가지  (0) 2008.08.01
Posted by 으랏차
,