검색어 입력폼

[프로그래밍언어] 병렬 프로그래밍

등록일 2004.05.17 한글파일한글 (hwp) | 11페이지 | 가격 1,000원

소개글

수고하세요^^

목차

■ 주요내용 및 목차

1. 병렬 처리 소개
(1) 공유 메모리 구조
(2) 분산 메모리 구조
2. 병렬 처리와 프로그래밍 언어
(1) 명시적인 언어 기능을 사용하지 않는 병렬 프로그래밍
(2) 프로세스 생성과 소멸
(3) 명령어 수준의 병렬성
(4) 프로시저 수준의 병렬성
(5) 프로그램 수준의 병렬성
3. 세마포어
4. 모니터
(1) CSP/K
(2) Concurrent-Pascal
5. 메시지 전달 기법
6. 실시간 언어

[Reference]

본문내용

■ 병렬 처리 소개
병렬 처리(parallel processing)란 다수의 프로세서들이 여러 개의 프로그램들 또는 한 프로그램의 분활된 부분들을 동시에 처리하는 기술을 의미한다. 병렬 처리는 한 프로그램을 여러 개의 작은 부분들로 분할해서 병렬로 실행시킨 결과가 전체 프로그램을 순차적으로 실행한 경우와 동일한 결과를 얻을수 있다는 것을 보장해야 한다.
병렬 처리의 구현을 위한 병렬 프로그래밍에 대한 연구는 두 가지로 분류할 수 있다. 첫 번째는 병렬 프로그래밍 언어 자체에 대한 연구이다. 즉, 병렬 처리가 가능한 병렬 프로그래밍 언어를 이용하여 사용자가 병렬 프로그램을 작성하는 방법이다. 이러한 병렬 프로그래밍 언어에는 Ada, Occam, Concurrent Pascal 등이 존재한다. 이 개념은 병행 프로그램(concurrent programming)으로 간주되기도 한다. 병행 프로그래밍이란 언어 표기에서 병렬성을 지원하는 것을 의미하며, 실제 하드웨어가 병렬로 처리하지 않을 수도 있음을 의미한다. 두 번째는 병렬 컴파일러에 관한 연구이다. 기존의 순차적 프로그래밍 언어로 작성된 프로그램을 병렬 컴파일러를 이용하여 병렬 처리가 가능하도록 하는 방법이다. 이 방법은 기존의 순차적 프로그래밍 언어로 작성된 프로그램을 그대로 사용하기 때문에 사용자가 새로운 언어로 작성된 프로그램을 배워야 하는 부담을 덜어줄 수 있는 장점이 있다. 반면 병렬 컴파일러가 병렬화시켜 줄 수 있는 부분이 제한적이고 효율적인 병렬 컴파일러의 구현이 어렵다는 단점이 있다.
컴퓨터 시스템을 분류하는 방식으로는 Flynn의 분류가 가장 널리 사용되고 있다. 이 분류에서는 프로세서들이 처리하는 명령어들과 데이터들의 스트림에 따라 네 가지로 분류하고 있다. 여기에서 스트림이란 하나의 프로세서에 의하여 순서대로 처리되는 일련의 명령어들과 데이터들의 흐름을 의미한다. 즉, 명령어 스트림이란 실행되기 위하여 순서대로 나열된 명령어 코드들의 집합을 의미하고, 데이터 스트림이란 명령어들을 실행하는데 필요한 데이터 집합을 의미한다.
Flynn의 분류
SISD(Single-instruction Single-data)
SIMD(Singgle-instruction Multiple-data)
MISD(Multiple-instruction Single-data)
MIMD(Multiple-instruction Multiple-data)

이러한 분류중에서 병렬 처리 컴퓨터는 SIMD와 MIMD의 두가지이다. 이중 SIMD의 경우 전체의 제어 흐름을 관장하는 하나의 제어 프로세서와 그 제어 흐름에 동기화되어 자신의 자료에 동일한 연산을 시행하는 다수 개의 프로세서들이 배열로 구성된다. 이는 일련의 데이터 집합에 대하여 동일한 연산을 반복하는 경우에 유리한 구조로 과학 계산 응용분야에서 많이 사용된다. MIMD는 제어단위(unit)와 연산 단위(unit)를 내장한 다수를 개의 프로세서들로 구성되는데 이 프로세서들이 각각 독립적으로 연산작업을 실행한다. 이 연산 속도들이 서로 차이가 나기 때문에 비동기적으로 처리된다. 병렬 처리를 위한 프로그램 작성시 MIND 모델하<<font color=aaaaff>..</font>

참고 자료

프로그래밍 언어론」- 원유헌교수(홍익대학교) 정익사
다운로드 맨위로