병행 프로세스(Parallel Process)

Slides:



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

컴퓨터와 인터넷.
운영체제 Chapter 3 병형 프로세스 박요안.
운영체제 3주차 정리 박 남 규.
네트워크 기술을 통한 현재와 미래 소개.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
제 9 장 구조체와 공용체.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
Windows Server 장. 사고를 대비한 데이터 백업.
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
NJM Messenger 박상원 박연호.
23장. 구조체와 사용자 정의 자료형 2.
10 장 데이터 링크 제어(Data Link Control)
병렬 처리/컴퓨터 기초.
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
4. LAN의 배선체계 (3장. LAN: Local Area Network)
Sungkyunkwan University OS Project Dongkun Shin
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
03. 병행 프로세스 (Parallel Process)
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
자바 5.0 프로그래밍.
프로그래밍 개요
Chap 6.Assembler 유건우.
Bakery Algorithm Lamport’s 람포트의 제과점 알고리즘 Designed by 이기헌
메모리 관리 & 동적 할당.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
병행 프로세스 이나현.
3장 운영체제 2C 김주성.
뇌를 자극하는 Windows Server 2012 R2
Lesson 2. 기본 데이터형.
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
제4강 처리장치 1.
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
ARM Development Suite v1.2
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
10 장 데이터 링크 제어(Data Link Control)
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
10 장 데이터 링크 제어(Data Link Control)
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
( Windows Service Application Debugging )
병행프로세스의개요 주세호.
알고리즘 알고리즘이란 무엇인가?.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
병행 프로세스 병행처리는 프로세스들이 서로 관계없이 독립적으 로 수행 가능하고 다른 프로세스들과 협력을 필요로 하면서 기능 수행 3.1 개요 parbegin/parend 제어문 : 순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러 개의 동시.
모바일(폰)메일 서비스 정흠수 최동훈.
논리회로 설계 및 실험 4주차.
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
03. 병행 프로세스(Parallel Process)
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
CHAP 15. 데이터 스토리지.
CODE INJECTION 시스템B 김한슬.
아날로그 신호를 디지털 신호로 변환하는 A/D 변환기 A/D 변환 시 고려하여 할 샘플링 주파수 D/A 변환기
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
2. 프로세스 B 안우진 - 운영체제 -.
3장 – 병행 프로세스 A 김정문.
Presentation transcript:

병행 프로세스(Parallel Process) 200614121 2-C 박상수

병행 프로세스 개요 Parbegin Statement 1; Statement 2; Statement n; parend 병행처리는 프로세스들이 서로 관계없이 독립적으로 수행할 수 있고 다른 프로세스들과 협력을 필요로 하면서 기능을 수행 parbegin/parend 제어문은 순차적인 수행으로부터 여러 개의 동시 수행으로 갈라짐을 지시하는 명령어와 여러 개의 동시 수행되는 것들이 하나로 모여서 순차적 수행으로 돌아가도록 지시하는 명령어이다. Parbegin Statement 1; Statement 2; Statement n; parend

병행 프로세스 개요 <선형 그래프> 각문장에 대응되는 노드들이 유향 비순환 그래프를 이루는 것으로 노드 si에서 sj로 가는 에지(Edge)는 문장 si가 완전히 수행된 다음에 문장sj가 수행됨을 의미한다. <순환 선형 그래프> R (Si)={a1, a2, ···, am} (Si의 판독 집합) 문장 Si가 수행되는 도중에 Si에 의해 값이 참조되는 모든 변수들의 집합 W (Si)={b1, b2, ···, bn} (Si의 기록 집합) 문장 Si의 수행에 의해 값이 변하게 되는 모든 변수들의 집합 s3 s1 s2 s4 s6 s7 s5 s1 s2 s3

병행 프로세스 비동기성으로 인한 문제점 상호배제 - 프로세스 2개가 동시에 임계 지역에 진입하지 못하도록 하는 것. 동기화 - 임계 영역에서 프로세스가  작업을 수행하더라도 올바른 결과를 기대할 수 있도록 하는 데이터의 정확성과 데이터의 일관성을  보장하는 것. 결정적인 문제 - 여러 프로세서가 실행순서와 관계 없이 언제나 일정한 결과를 얻어야 한다. 통신문제 -상호배제와 동기화 문제 해결을 위해 데이터 교환 방법이 필요. 일반적으로 메시지 교환 방법 사용. 교착상태 -무한정 기다리는 상태를 말 한다.

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

임계영역(critical section) 임계 영역이란 공유메모리가 참조하는 프로그램의 부분을 말한다. 어떤 프로세스가 공유 데이터를 액세스 할 때 그 프로세스는 임계영역 내에 있다고 말한다. 프로세스 P1 프로세스 P2 . pdata . Pdata <= Pdata + 1; Pdata <= Pdata + 1; X 주기억장치

임계영역(critical section) 상호배제 기법 dekker p0 p1 2개의 프로세스가 모두 자신의 flag[]값을 true로 설정 임계영역에 진입하는 경우 그 당시의 turn 값에 따라 진입 순서를 결정한다. (P0=turn ←1;, P1=turn←0;) 그리고 한 프로세서가 임계 영역에 진입하기 위해서는 반드시 상대방 프로세스의 flag[]값이 false 인지 확인 Repeat … Repeat … Frag[0]<-true; While (frag[1]) do If (turn =1) then Begin Frag[0]<-false; While (turn=1)do Endwhile; Flag[0]<-true; End; Turn<-1; Flag[0]<-false; Frag[1]<-true; While (frag[0]) do If (turn =0) then Begin Frag[1]<-false; While (turn=0)do Endwhile; Flag[1]<-true; End; Turn<-0; Flag[1]<-false; Flag[0] Flag[1] turn 임계영역(critical section) … Until (false); … Until (false);

임계영역(critical section) 상호배제 기법 peterson p0 p1 프로세스 P0는 turn의 값을 1로, P1은 t urn 값을 0으로 설정 한다. 그 뒤에 while 루프에 진입하여 상대 프로세스가 진입을 시도하는지 여부를 검사하여 이 때 2개의 프로세스가 모두 진입을 시도한다면 flag[0]와 flag[1]의 값이 모두 true이면 true 값에 따라 turn이 가리키는 순서의 프로세스가 임계영역에 진입 한다. turn의 값을 먼저 설정한 프로세서가 임계영역에 진입. Repeat … Repeat … Flag[0] Flag[1] Frag[0]<-true; turn =1; While(flag[1]and turn=1)do Endwhile; Flag[0]<-false; Frag[1]<-true; turn =0; While(flag[0]and turn=0)do Endwhile; Flag[1]<-false; turn 임계영역(critical section) … Until (false); … Until (false);

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

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

프로세스간 통신방법 -공유메모리 변수 시스템 송수신 프로세스가 공동으로 접근 가능한 메모리 공간을 할당 하며 공유변수를 이용하여 정보를 교환 한다. (운영체제는 메모리만 제공하고 통신기능은 응용프로그래머에게 주어진다.) - 메시지 시스템 프로세스들이 메시지를 이용하여 정보를 교환하며, 통신 기능을 제공하는 책임이 운영체제에게 주어 진다. (큐(Queue)의 기본원리를 이용하여 송수신 프로세스가 정보를 메시지 큐를 통해 전달.) 통신방법 사용 예) 중앙 집중식 시스템 공유변수를 이용하여 통신하며, 세마포오어 같은 메커니즘을 이용하여 동기화 및 상호배제의 문제를 해결. 분산 처리 시스템 통신 네트워크를 통한 메시지 전달을 이용하여 동기화를 할 수 있다.