Presentation is loading. Please wait.

Presentation is loading. Please wait.

03. 병행 프로세스 (Parallel Process)

Similar presentations


Presentation on theme: "03. 병행 프로세스 (Parallel Process)"— Presentation transcript:

1 03. 병행 프로세스 (Parallel Process)
학번 : 이름 : 고향은

2 03. 병행 프로세스 병행프로세서란 ? 두 개 이상의 프로세서들이 동시에 존재하며 실행 상태에 있는 것을 의미한다.
03. 병행 프로세스 병행프로세서란 ? 두 개 이상의 프로세서들이 동시에 존재하며 실행 상태에 있는 것을 의미한다. 병행프로세서의 특징 프로세서들이 서로 관계없이 독립적으로 수행할 수 있고 다른 프로세서들과 협력을 필요로 하면서 기능을 수행한다.

3 03. 병행 프로세스 병행 프로세서의 예시 S1 S2 S3 S4 S6 S5 S7 Parbegin/parend제어문
03. 병행 프로세스 병행 프로세서의 예시 S1 Parbegin/parend제어문 :순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 동시 수행되는 것들이 하나로 모여서 순차적 수행으로 돌아가도록 지시하는 명령어가 있다. Parbegin statiment 1; statiment 2; statiment 3; parend S2와 S3은 S1이 끝난 후 수행한다. S4는 S2가 끝난 후 수행한다. S5는 S6은 S4가 끝난 후 수행한다. S7은 S5, S6,S3가 끝난 후 수행된다. S2 S3 S4 S6 S5 S7

4 03. 병행 프로세스 임계영역(Critical Section) 하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의
03. 병행 프로세스 임계영역(Critical Section) 다중프로그래밍 운영체제에서 여러 개의 프로세스가 공유 하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역) 임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터를 사용할 수 있음

5 03. 병행 프로세스 상호배제(Multual Exclusion) 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법
03. 병행 프로세스 상호배제(Multual Exclusion) 특정프로세스가 공유자원을 사용하고 있을 경우 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법 여러 프로세스가 동시에 공유 자원을 사용하려 할 때 각 프로세스가 번갈어 가며 자원을 사용 하도록 하는 것으 로 임계 구역을 유지하는 기법

6 03. 병행 프로세스 상호배제 프리미티브 1 begin var pnumber : integer ;
03. 병행 프로세스 상호배제 프리미티브 1 begin while pnumber = 1 do ; CStwo ; pnumber := 1 ; end end ; parbegin pone ; ptwo ; parend var pnumber : integer ; procedure pone ; begin while true do while pnumber = 2 do ; CSone ; pnumber := 2 ; end end ; procedure ptwo ;

7 03. 병행 프로세스 상호배제 프리미티브2 var p1, p2 : boolean ; procedure pone ; begin
03. 병행 프로세스 상호배제 프리미티브2 var p1, p2 : boolean ; procedure pone ; begin while true do while p2 do p1 := true ; CSone ; p1 := false ; end procedure ptwo ; begin while p1 do ; p2 := true ; CStwo ; p2 := palse; end p1 := false ; p2 := false ; parbegin pone ; ptwo ; parend

8 03. 병행 프로세스 상호배제 프리미티브3 var p1, p2 : boolean ; procedure pone ; begin
03. 병행 프로세스 상호배제 프리미티브3 var p1, p2 : boolean ; procedure pone ; begin while true do p1 := true ; while p2 do CSone ; p1 := false ; end procedure ptwo ; begin p2 := true ; while p1 do ; CStwo ; p2 := palse; end p1 := false ; p2 := false ; parbegin pone ; ptwo ; parend

9 03. 병행 프로세스 상호배제 프리미티브4 var p1, p2 : boolean ; procedure pone ; begin
03. 병행 프로세스 상호배제 프리미티브4 var p1, p2 : boolean ; procedure pone ; begin while true do p1 := true ; while p2 do p1 := false ; delay (random, fewcycles) ; end CSone ; procedure ptwo ; begin p2 := true ; while p1 do ; p2 := false ; delay (random, fewcycles) ; end CStwo ; p1 := false ; parbegin pone ; ptwo ; parend

10 03. 병행 프로세스 상호배제 프리미티브 Dekker 알고리즘 begin p2 := true ; while p1 do ;
03. 병행 프로세스 상호배제 프리미티브 Dekker 알고리즘 var pavorP (first, second); p1, p2 ; boolean; procedure pone ; begin while true do p1 := true ; while p2 do if favorP = second then p1 := false ; while favorP = second do end CSone ; favorP := second; procedure ptwo ; begin p2 := true ; while p1 do ; if favorP = first then p2 := false ; while favorP = first do ; end CStwo ; favorP := first ; p1 := false ; favorP := first; parbegin pone ; ptwo ; parend

11 03. 병행 프로세스 세마포어(Semaphore) -각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
03. 병행 프로세스 세마포어(Semaphore) -각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법 -E.J.Dijkstra가 제안하였으며, p와 v라는 2개의 연산에 의해 서 동기화를 유지시키고, 상호 배제의 원리를 보장함. -S는 p와 v 연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1혹은 0과 양의 값을 가질 수 있음 -P연산: 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(s)를 통해 결정하는 것으로, wait 동작이라 함 -V연산: 대기 중인 프로세스를 깨우는 신호로서 signal동작 이라 함

12 03. 병행 프로세스 모니터(Monitor) -모니터란 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져 이다. -임계영역 코드의 집합으로 정의 할 수 있다. -동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공 유 자원을 프로세스에게 할당하는 필요한 데이터와 이 데이 터를 처리하는 프로시저로 수성됨 -자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있음 -모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 함 -외부의 프로시저는 직접 액세스 할 수 없으며, 모니터의 경계에서 상호 배제가 시행됨 -한 순간에 하나의 프로세스만 진입하여 자원을 사용할 수 있음


Download ppt "03. 병행 프로세스 (Parallel Process)"

Similar presentations


Ads by Google