Download presentation
Presentation is loading. Please wait.
1
병행 프로세서 과목 : 운영체제 학번 : 이름 : 조장호
2
병행 프로세스(Parallel Process)
3.1 개요 순차적인 수행으로부터 여러개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러개의 동시 수행되는 것들이 하나로 모여서 순차적 수행으로 돌아가도록 지시하는 명령어가 있다. 이것을 Parbegin/ parend 제어문이라고 하는데 일반적인 형태는 다음과같다. 여기서 하나의 선형 그래프의 예 선형 그래프는 각 문장에 대응되는 노드들이 유향 비순환 그래프(directed acyclicgraph)를 이루는 것이다. 노드 Si에서 노드Sj로 가는 에지(edge)는 문장 si가 완전히 수행된 다음에 문장 sj가 수행됨을 의미한다. Parbegin statement 1; statement 2; statement n; Parend s1 s2 s3 s4 s6 s5 s7
3
병행 프로세스(Parallel Process)
3.2 상호배제(Mutual Exclusion)와 임계영역 (Critical Seclion) 상호 배제란 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법이다. 그리고 여러 프로세스가 동시에 공유 자원을 사용하려 할 때 각 프로세스가 번갈아 가며 공유 자원을 사용하도록 하는 것으로 임계 구역을 유지하는 기법이다. 임계영역이란 여러개 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원으로, 임계영역은 특정 프로세스가 독점할 수 없다.
4
병행 프로세스(Parallel Process)
3.3 세마포어(Semaphore) 세마포어란 단지 P와V, 그리고 세마포어 초기치를 설정해 주는 오퍼레이션에 의해서만 액세스될 수 있는 통제된 변수이다. 이진 세마포어는 0과 1의 두 가지 값만을 가질 수 있고, 산술 세마포어는 0과 양의 정수를 값으로 가질 수 있다. 사용 세마포어는 n개 프로세스의 임계영역 문제를 다루는데 사용된다. N개의 프로세스는 1로 초기화된 공통 세마포어인 mutex를 공유한다.
5
병행 프로세스(Parallel Process)
3.3 세마포어(Semaphore) 구현 세마포어의 가장 큰 단점은 바쁜 대기를 요구하는 것이다. 어떤 프로세스가 임계영역 내에 있는 동안 그 임계영역에 들어가려고 하는 다른 프로세스는 진입코드에서 계속해서 돌게 된다. 이 문제는 하나의 CPU가 많은 프로세스에 의해 공유되는 실시간 다중 프로그래밍 시스템에서 특히 심각해진다. 바쁜 대기로 다른 프로세스가 생산적으로 사용할 수 있는 CPU시간을 낭비하기 때문이다. 세마포어의 중요한 특징은 단위적으로 수행된다는 점이다. 두 개의프로세스가 동시에 같은 세마포어에 대하여 P와 V 조작을 할 수 없게 해야 한다. 이 상황은 임계 영역 문제의 한 예이고, 두 가지 방법 중의 하나로써 해결할 수 있다. 단일 프로세서인 경우에는 ( 단 하나의 CPU만 존재 ), p와
6
병행 프로세스(Parallel Process)
3.3 세마포어(Semaphore) 구현 P와V 조작이 수행 중에는 인터럽트를 금지시키면 된다. 이 방법은 일단 인터럽트가 금지되면 다른 프로세서로부터의 명령어의 실행이 중단에 끼어들지 않으므로 단일 프로세서 환경에서 활용된다. 다중 프로세서인 경우에는 인터럽트의 금지가 운용될 수 없다. 다른 프로세서로부터의 명령어는 어떤 임의의 방법으로서 끼어들 수 있다. 하드웨어가 어떤 특별한 명령을 제공하지 않으면 임계 영역 문제에 대한 정확한 소프트웨어 해결 방법을 사용해야 하는데, 여기서 임계 영역은 P와V, 프로시쥬어로 구성된다.
7
병행 프로세스(Parallel Process)
3.3 세마포어(Semaphore) 구현 이러한 P와V 조작으로써는 바쁜 대기를 완전히 제거할 수 없다는 것을 인정해야 한다. 그보다는 응용 프로그램의 진입점으로부터 임계 영역으로 바쁜 대기를 이동시켰다. 더욱이 이를 P, V 조작의 임계 영역 내에서만 제한 했는데, 그것은 아주 짧은 시간 동안이다. 그러므로 임계 영역은 거의 항상 비어 있고, 바쁜 대기가 거의 일어나지 않는 것 처럼 보이게 된다. 바쁜 대기가 일어났을 때는 아주 짧은 시간 동안만이다. 어떤 응용 프로그램에서는 임계 영역이 아주 길거나 거의 항상 점유되어 있는 상황이 발생할 수 있다. 이 경우 에는 바쁜 대기가 매우 비효율 적이다.
8
병행 프로세스(Parallel Process)
3.4 요약정리 -임계구역(Critcal Section) 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원(영역). 임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터를 사용할 수 있음. -상호배제(MutualExclusion) 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 해당공유자원을 사용하지 못하게 제어하는 기법 여러프로세스가 동시에 공유 자원을 사용하려 할 때 각 프로세스가 번갈아 가며 공유 자원을 사용하도록 하는 것으로 임계 구역을 유지하는 기법
9
병행 프로세스(Parallel Process)
3.4 요약정리 -세마포어(Semaphore) 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법. E.J.Dijkstra가 제안하였으며, P와V라는 2개의 연산에 의해서 동기화를 유지시키고, 상호 배제의 원리를 보장함. S는 P와 V 연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1 혹은 0과 양을 값을 가질 수 있음. P연산 : 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(s)를 통해 결정하는 것으로, wait 동작이라 함. V연산 : 대기 중인 프로세스를 깨우는 신호(Wake Up)로서, signal 동작이라 함.
10
병행 프로세스(Parallel Process)
3.4 요약정리 -모니터(Monitor) 모니터란 여러 프로세스 사이에 공유 데이터와 이 공유 데이터에 접근하는 여러 프로시져(Procedure)이다. 즉 임계 영역 코드의 집합으로 정의 할 수 있다. 동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성됨. 자료추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있음. 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 함. 외부의 프로시저는 직접 액세스할 수 없으며, 모니터의 경계에서 상호 배제가 시행됨. 한순간에 하나의 프로세스만 진입하여 자원을 사용 할 수 있음.
Similar presentations