• LF몰 이벤트
  • 캠퍼스북
  • 파일시티 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

리눅스 쓰레드 2차원 행렬의 곱 프로그램 소스 (C)

*경*
최초 등록일
2008.12.03
최종 저작일
2008.12
5페이지/한글파일 한컴오피스
가격 1,000원 할인쿠폰받기
다운로드
장바구니

소개글

thread 개념을 활용한 리눅스 프로그래밍입니다.
C언어로 구현되었고 리눅스의 쓰레드 시스템함수를 사용하였습니다.
pthread_create()함수를 이용하여 쓰레드 생성으로
각각의 항에 대해 쓰레드가 생성되어 작업을 수행합니다.
예를 들어 두 2x2 행렬의 곱으로 생성되는 행렬은 2x2행렬이며 항의수는
4개가 됩니다. 이때 4개의 쓰레드를 생성하게 되고 각각의 항을 알아서 계산합니다

목차

1. 개요 (2차원 행렬의 곱연산 과정)
2. 알고리즘 (연산과정 및 함수표현)
3. 소스 (설명 포함)
4. 결과분석 (예제포함)

본문내용

2차원 행렬의 곱을 구하는 프로그램을 생각해보자 A행렬의 한 행과 B행렬의 한 열의 수가 차례로 곱해져 C행렬의 한 항이 결정된다. 이를 Thread를 이용하여 구현하자.
개요
행령의 연산이 어떻게 되는지 확인해보자. 행령 A와 B 의 곱은 다음과 같이 표현된다.
A = B = C =
a11
a12
a21
a22
x
b11
b12
b21
b22
=
a11b21+a12b21
a11b12+a12b22
a21b11+a22b21
a21b12+a22b22
행렬C의 각각의 항을 따로 계산하기 위해서는 다음과 같은 x,y 인자가 필요하다
(0, 0), (0, 1), (1, 0), (1, 1)
예를 들어 행렬 C의 첫 번째 항을 구한다고 하자. 이때에는 행렬 A의 첫 번재 행(x=0)과 행렬 B의 첫 번째 열(y=0)가 필요하다. 다음 예로 행렬 C의 두 번재 항을 구한다고 하면 행렬 A의 첫 번째 행(x=0)와 행렬 B의 두 번째 열인(y=1)이 필요하게 된다. 결국 각 항마다 그 항을 결정해주는 위와 같은 인자가 필요하게 된다. 이를 통해서 각각의 thread가 어느 항을 계산해야 할지 판단하게 되는 것이다.
알고리즘
1. 사용자로부터 행렬 A,B를 입력받아 초기화 한다.
2. C행렬의 항의 개수만큼 thread를 생성하고 각각의 연산을 수행한다.
3. 완성된 C행렬을 화면으로 출력한다.
*함수표현
float **initiation(int,int,int) // 각각의 행렬을 초기화 해준다.
void *thread(void*)// 생성된 thread()함수로 작자의 작업을 수행한다.
소스코드
* 전역 선언부
함수의 인자로 넘어갈 MAT구조체를 선언하였으나 편의를 위해서 전역변수로 MAT 객체를 생성하였습니다. 각가에 대해서는 a,b,c는 행렬을 가르킬 포인터로 각각 A,B,C행렬을 가르키게 됩니다. dim_row_a 이하는 행렬의 크기를 입력받습니다. cnt_a 이하는 개요에서 설명한 thread를 위한 인자이며 내부적으로 (0, 0), (0, 1), (1, 0), (1, 1) 의 형태를 가지게 됩니다.
#include
#include
#include
float **initiation(int,int,int);
void *thread(void*);
typedef struct mat
{
float ** a;
float ** b;
float ** c;
int dim_row_a;
int dim_row_b;

참고 자료

없음

자료후기(1)

*경*
판매자 유형Bronze개인

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

최근 본 자료더보기
탑툰 이벤트
리눅스 쓰레드 2차원 행렬의 곱 프로그램 소스 (C)
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업