Presentation is loading. Please wait.

Presentation is loading. Please wait.

A 200512028 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법.

Similar presentations


Presentation on theme: "A 200512028 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법."— Presentation transcript:

1 A 200512028 장형태

2  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법

3 (1) 병행 프로세스란 여러 프로세스들이 동시에 수행상태에 있는 것을 말하며 독립적 또는 다른 프로세스와 협력하면서 기능을 수행한다. (2) 비동기성 (Asynchronous) 란 프로세스간의 상호협력 하는 것 (3) 병행 프로세스의 비동기성으로 인해 발생하는 문제점 ① 상호배제 (Mutual Exclusion) ② 동기화 (synchronization) ③ 결정적인 (Determinacy) 문제 ④ 통신 (Communication) 문제 ⑤ 교착상태 (Dead Lock)

4 S1 S2S3 S4 S8 S7 S6  노드 Si 에서 노드 Sj 로 가는 에지 (edge) 는 문장 Si 가 완전히 수행된 다음에 문장 Sj 가 수행됨을 의미함.  S2 와 S3 은 S1 이 끝난 후 수행됨.  S4 는 S2 가 끝난 후 수행됨.  S5 와 S6 은 S4 가 끝난 후 수행됨..  S7 은 S5, S6, S3 가 끝난 후 수행됨.

5 * 상호배제란 여러 프로세스가 하나의 공유 데이터를 액세스 하면서 작업이 수행될 때 한 프로세스가 그 데이터를 액세스 할 때 다른 프로세스는 그 데이터를 액세스하지 못하도록 하는 기법. ① 소프트 웨어적인 상호배제 기법 - 2 개 프로세스 대상 : Dekker 알고리즘, Peterson 알고리즘 - n 개 프로세스 대상 : Dijstra 알고리즘, Knuth 알고리즘 & Mcguire 알고리즘, Lamport 알고리즘 ② 하드웨어적인 상호배제 기법 - Test and Set 명령어 - Swap 명령어 ③ 순환 반복대기 (Busy Waiting) 기법 - 세마포어 (Semaphore) - Eventcount/Sequencer( 시크벤저 ) 상호배제 기법

6 Dekker, Peterson, Dijstra 알고리즘은 소프트웨어적인 상호배제 해결방법 으로 실행시간이 길며, 프리미티브 (Primitives) 의 실행 중 블록 될 가능성이 있는 문제점이 있다. 이를 해결하기 위해 하드웨어적인 상호배제 해결 방법 으로 IBM 에서 제안한 Test and set 명령어가 있다. 하드 웨어 적인 상호배제 기법 * Test and set 알고리즘의 방법 먼저 변수를 읽고 그것의 값을 저장 영역 (Save Area) 에 기억시킨 후 그 변수에 다른 값을 Set 시키는 방법이다. → 임계구역 진입, 해제 전후에 다른 프로세스가 개입할 수 없게 만든다. 즉 아예 인터럽트를 걸지 못하게 한다. 다른 프로세스 개입 불가.

7 상호배제 기법 1965 년 Dijkstra 가 상호배제를 위한 enterCS( ) 프리미티브 (Primitives) 에서 존재하던 순환 반복되기 문제를 해결하기 위해 세마포어라는 개념 을 제안했다. 세마포어는 P 와, V, 초기화 연산에 의해서만 접근 가능한 통제된 변수이다. 종류 ① 세마포어 변수가 0 과 1 의 2 가지 종류 값만 갖는 이진 세마포어 ② 세마포어가 0 이상의 모든 정수 값을 갖는 카운팅 세마포어 - 이진 세마포어 : 상호배제 또는 프로세스 동기화 목적으로 사용 - 카운팅 세마포어 : 프로세스간에 통신 등을 해결하기 위해 사용

8 모니터란 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져 (Procedure) 이다. 즉, 임계영역 코드들의 집합으로 정의 한다. 프로시져 (Procedure) 란 자주 실행해야 하는 업무 흐름을 이 문법에 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행 할 수 있는 PL/SQL 블록이다. PL/SQL 은 APPLICATION LOGIC 을 추가하여 SQL 을 확장한 ORACLE 의 절차적인 언어입니다. 모니터에 프로시져가 몇 개 있는지에 따라 그 개수만큼 모니터 진입 큐 (entry queue) 가 존재 한다. 모니터 내의 프로시져를 호출하는 프로세스는 해당 프로시져에 대한 진입 큐를 통해 모니터 내로 진입하며 그 과정에서 이미 모니터 내에 진입해 있는 프로세스가 존재하는 경우 진입 큐에 대기한다. 즉, 모니터 내에는 항상 하나 이하의 프로세스만이 진입하도록 상호 배제 메커니즘이 자동으로 보장한다.

9 프로세스 사이에 통신을 하기 위한 방법은 공유 변수를 이용하여 통신을 하거나 메시지 전달을 이용하여 통신 ( 동기화 ) 할 수 가 있다. (1) 공유메모리 변수 시스템 송수신 프로세스가 공동으로 접근 가능한 메모리 공간을 할당 하며 공유변수를 이용하여 정보를 교환 한다. → 운영체제는 메모리만 제공하고 통신기능은 응용프로그래머 에게 주어진다. (2) 메시지 시스템 프로세스들이 메시지를 이용하여 정보를 교환하며, 통신 기능을 제공하는 책임이 운영체제에게 주어 진다. → 큐 )Queue) 의 기본원리를 이용하여 송수신 프로세스가 정보 를 메시지 큐를 통해 전달.

10 ♣ 통신 방법의 사용 예 ① 중앙 집중식 시스템 공유변수를 이용하여 통신하며, 세마포오어 같은 메커니즘을 이용하여 동기화 및 상호배제의 문제를 해결. ② 분산 처리 시스템 통신 네트워크를 통한 메시지 전달을 이용하여 동기화를 할 수 있다. 1) 공유변수를 이용한 동기화 문제해결 방법의 단점 여러 프로세스가 하나의 공유변수를 이용함으로써 병목 현상이 발생되며 또한 공유변수가 파괴되었을 경우 전체 시스템의 성능이 현저하게 떨어지는 결과를 가져온다. → 이 방법은 공유 변수를 사용하는 중앙집중식 시스템에 유용함.

11 2. 메시지 전달 방법 분산처리 시스템에 적합하며 비교적 안정된 메시지 전달을 이용한 동기화 (Synchronization) 문제 해결 방법이다. → 많은 다중 프로그래밍 운영체제들이 몇 가지 종류의 프로세스 간 통신을 지원하기 위해 사용. ※프로세스 동기화 (Synchronization) 란 ? Critical Section( 임계 영역 ) 에 대해서 프로세스들이 어떠한 순서로 작업을 수행하더라도 올바른 결과를 기대할 수 있도록 하는 데이터 의 정확성 (correctness) 과 데이터의 일관성 (consistency) 을 보장 하 것. ♣ 메시지 란 ? 송신측 프로세스와 수신측 프로세스간에 교환될 수 있는 정보의 집합으로써 둘 or 그 이상의 프로세스 간에 전송될 데이터 또는 실행명령 등을 의미 한다.

12


Download ppt "A 200512028 장형태.  병행프로세스 개요  상호배제 (Mutual Exclusion)  상호배제 ( 세마포어 )  모니터 (monitor)  프로세스간 2 가지 통신방법."

Similar presentations


Ads by Google