병렬 프로그램
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1.병렬 프로그래밍과 병렬 처리
1.1 병렬 처리 소개

2. 병렬 처리와 프로그래밍 언어
2.1 명시적인 언어 기능을 사용하지 않는 병렬 프로그래밍
2.2 프로세스 생성과 소멸
2.3 명령어 수준의 병렬성
2.4 프로시저 수준의 병렬성

3.세마포머(Semaphores)

4.모니터
4.14CSP/K
4.2 Concurrent-Pascal

5.메시지 전달 기법

6.실시간 언어

7.참고 문헌 / 사이트 주소

본문내용

이 시작되어 전달이 성공적으로 끝나면, CSP나 Ada에서 두 프로세스는 각자의 일을 병행해서 계속한다. 그러나 DP에서는 수신 프로세스가 호출될 프로시저를 완전히 실행시킬 때까지 호출(송신) 프로세스는 기다려야 한다는 것이 다른 점이다.CSP와 DP의 유사점은 그들이 프로그램의 비결정 부분을 통제하는데 보호 명령어를 사용한다는 것이다. 보호 명령어는 [Dijkstra 75B]에서 처음 소개되었으며, 이후 Ada를 포함해 많은 병행 프로그래밍 언어에서 채택되어 왔다. 보호 명령어는 프로세스가 변수들의 현재 값들을 가지고 조건을 검사하여 여러 다른 실행문들 중에서 임의의 선택을 하게 한다. 어느 택일도 참이 아닐 때 모든 보호 조건들은 실패했다고 표현하며, 이 때 실행될 대응 문장이 존재하지 않는다. 만일 하나 이상의 보호 조건이 참인 경우에는 이 중 임의의 하나를 선택한다. CSP에서 보호 명령어 형태를 구체적으로 살펴보자. CSP에서는 두 개의 프로세스가 다음과 같이 표현된다.
[p :: commands | q :: commands]
가운데의 세로줄은 p와 q가 프로세스이고 병행해서 수행될 수 있다는 것을 나타낸다. 보호 조건을 사용할 수 있는 문장에는 택일 명령문과 반복 명령문 두 가지가 있다. 택일 명령은 다음과 같은 간단한 예를 보면 쉽게 이해할 수 있다.
[x >0 -> y := +1 | x <0 -> y := -1 | x =0 -> y := 0]
이 CSP 택일 명령문에서는 x>0, x<0, x=0의 세 가지 보호 조건이 있다. 그들이 택일이 라는 것은 세로줄로 표시하였다. 여기서는 어느 보호 조건이 참이든지 y에 x의 부호값이 배정된다.
CSP에서 반복 명령문은 왼쪽 대괄호 바로 앞에 *를 두어서 표시한다.
i := 1 ; * [i <=n; A(i) ≠ 0 -> A(i) := B(i) / A(i) ]
는 i가 1에서 n까지의 배열 A(i)가 0인 경우를 제외한 모든 A(i)의 요소들을 B(i)/A(i)로 배정하는 것이다.
DP에서는 다음과 같이 다른 구문의 보호 명령문들을 사용한다.
when B1 : S1 | B2 : S2 | . . . end
cycle B1 : S1 | B2 : S2 | . . . end
첫 번째 것은 프로그램을 조건 B1, B2, . . . 중 하나가 참이 될 때까지 기다리게 하여 참에 해당하는 Si를 실행한다. cycle문은 하나 또는 그 이상의 보호가 참인 동안 when 문과 같은 실행을 계속 반복한다. 두 문장 모두 하나 이상의 Bi가 동시에 참이면 프로그램 실행해야 할 Si를 선택하는 비결정적 방법이 적용된다.
두 개의 병행 프로세스들이 통신하고자 할 때는 두 단계를 거쳐야 한다. 첫 번째 단계는 동기화이다. 이것은 두 프로세스 모두 정보 교환을 요구하는 프로그램 문장까지 도달하여야 된다는 것을 의미한다.
6. 실시간 언어
실시간 시스템의 가장 중요한 특성은 인터럽트와 같은 외부 입력이나 사건에 실시간으로 반응해야 한다는 것이다. 실시간 프로그래밍이야말로 어셈블리 언어 프로그래머에게 최후의 보루 중에 하나인데,이는 실시간 프로그래밍이 저급 언어 수준의 기계 이용을 요구하기 때문이다. 이러한 기능에는 인터럽트 처리와 외부 장치를 다루기 위해 사용하는 절대 기억 장소의 접근 능력이 포함된다. Ada와 Occam과 같은 소수의 언어가 이러한 기능을 가지고 있으며, C와 Coral 66과 같은 언어는 특별한 시스템 호출을 통하여 이런 기능을 제공한다.
내장 시스템이란 기계 장치 안에 컴퓨터가 내장되어 장치를 제어하는 데 이용되는 것을 의미한다. 이와 같은 시스템의 대표적인 예는 화학 공장에서의 프로세스 제어이다. 일반적으로, 실시간 프로그래밍에 있어서의 고려 사항은 병행 프로그래밍의 고려 사항을 모두 포함하고 있으며, 거기에 덧붙여 시간에 따른 문제점들도 고려해야 된다. 이 같 은 문제들을 해결하기 위하여 Ada와 Occam에서는 여러 개의 프로세스들이 서로 다른 실시간 프로그래밍의 예로서 화학 공장에서의 센서가 비정상적인 압력 수준을 감지하여, 컴퓨터 시스템에 인터럽트를 보낸 경우를 생각해보자. 이 인터럽트는 실행 중인 Ada 프로그램에 entry로써 나타날 것이다. 모든 가능한 하드웨어 인터럽트는 기억 장소 주소와 연계되어 있으며 이 연계는 아래와 같은 정의로 인터럽트를 처리하는 테스크의 사양안에 표현된다.
for . . . use at . . .
이것은 하드웨어 인터럽트가 일반적인 entry 호출과 같은 방법으로 처리될 수 있도록 해주며, 이 같은 태스크의 사양은 다음과 같은 형태를 갖는다.
task top_interrup_hadler is
entry pressuer_warning ;
for pressure_warning use at allocated_location ;
end top_interrupt_handler ;
Ada에서 처리될 인터럽트에서는 pressuer_warning entry 호출과 랑테뷰를 하기 위하여 기다리는 태스크 몸체가 있어야만 한다. Ada 태스크 몸체는 다음과 같은 형태를 가질 것이다.
task body top_interrup_handler is
begin
accept pressuer_warning ;
-- 적절한 행위
end top_interrupt_handler ;
시스템에서 발생한 인터럽트를 수행하려면 해당 accept문이 대기중이여야 한다. select문장을 사용함으로써, 하나의 태스크가 여러 개의 인터럽트를 처리할 수 있다.
Ada 프로그램에 있어서 시간 지연은 delay 문장을 통하여 도입된다. 다음과 같은 문장의 실행은 적어도 4초 동안 테스크를 지연시키는 것이다.
7. 참고 문헌 / 사이트 주소
참고 문헌
원유헌, 프로그래밍 언어론, 정익사, 1999.
김도형 이수현 창병모 공역, 프로그래밍언어: 원리와 실제, 희중당, 1997.
사이트 주소
http://www.joinc.co.kr/modules.php?name=News&file=article&sid=40세마포어의 정의 및 사용예
http://www.alpha11.com/cluster/mpi/mpi_1.html 병렬프로그램의 정의

키워드

병렬,   병렬성,   세마포머,   생성,   소멸,   모니터
  • 가격2,000
  • 페이지수12페이지
  • 등록일2006.06.27
  • 저작시기2006.6
  • 파일형식한글(hwp)
  • 자료번호#356816
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니