목차
1. 문제 제기
2. 관련연구
3. 문제 해결 방법
4. 실행결과
5. 추가 및 개선할 부분과 결론
참고문헌 및 실행 소스
2. 관련연구
3. 문제 해결 방법
4. 실행결과
5. 추가 및 개선할 부분과 결론
참고문헌 및 실행 소스
본문내용
1. 문제 제기
1) POSIX Thread에 대한 조사.
2) 쓰레드를 이용한 행렬 곱셈
(세개의 행렬을 곱하여 결과를 얻기위해 쓰레드를 사용한다.)
* 요구사항
• POSIX thread 라이브러리(pthread library)를 사용한다.
• 세 개의 행렬 모두 40 X 40 행렬이다.
• 곱셈의 순서는 순차적이라고 가정한다. ( A*B*C -> (A*B)*C 라는 의미 )
• 실제 계산될 행렬은 파일(A.dat, B.dat, C.dat)로 입력받는다.
• 행렬 곱셈 계산시 사용되는 스레드의 개수를 (1) 2개, (2) 40개, (3) 80개의 경우로 나누어서 구현한다.
(1),(2),(3)에서 각각 실행 시, 각 수행 시간을 구한다.
처음 연산(A*B)전에 모든 스레드를 생성한다.
• A*B의 모든 행이 완료되지 않더라도 A*B의 완료된 행은 C행렬의 열과 동시에 연산되도록 한다.
• 수행 시간은 (첫번째 스레드가 실행되기전) ~ (마지막 스레드가 종료한 후)로 정의한다.
즉 (마지막 스레드가 종료한 시간) - (첫번째 스레드가 실행되기 전 시간)로 수행시간을 구할 수 있다.
• 화면에 출력해야할 사항으로는 다음과 같다.
o (1),(2),(3)의 경우 각각의 계산결과(물론 결과는 다 같아야한다)
o 수행스레드 개수에 따른 수행시간
2. 관련 연구
2.1 쓰래드 개념
쓰래드란 한 프로세스 내에서 동작하는 여러 실행의 흐름으로, 프로세스내의 주소 공간이나 자원들을 대부분 공유하면서 실행된다. 다음 그림을 보면 알수 있듯이 쓰래드간에는 프로세스의 대부분을 공유하며 각 쓰래드를 위한 공간은 스택공간 뿐이다.
위의 그림에서 알 수 있듯이 쓰레드는 프로세스 내에서 각각의 스택 공간을 제외한 나머지 공간과 시스템 자원을 함께 공유하므로 프로세스를 이용하여 동시에 처리하던 일을 쓰레드로 구현한다면 메모리 공간은 물론 시스템 자원 소모도 현격히 줄어들 것이다.
이와 같이 프로세스를 생성하는것보다 쓰레드를 생성하는 것이 효율적이다. 특히 멀티 프로세서 환경에서는 더욱 효과가 탁원하다. 쓰레드간의 통신이 필요한 경우 별도의 자원을 이용하는 것이 아니라 전역변수의 공간을 이용하여 데이터를 주고 받을 수 있다. 쓰레드의 장점을 정리하면 다음과 같다.
시스템의 Throughout 이 향상 된다.
시스템의 자원 소모가 줄어든다.
프로그램의 응답시간이 단축된다.
프로세스간 통신 방법에 비해 쓰레드간의 통신 방법이 훨씬 간단하다.
1) POSIX Thread에 대한 조사.
2) 쓰레드를 이용한 행렬 곱셈
(세개의 행렬을 곱하여 결과를 얻기위해 쓰레드를 사용한다.)
* 요구사항
• POSIX thread 라이브러리(pthread library)를 사용한다.
• 세 개의 행렬 모두 40 X 40 행렬이다.
• 곱셈의 순서는 순차적이라고 가정한다. ( A*B*C -> (A*B)*C 라는 의미 )
• 실제 계산될 행렬은 파일(A.dat, B.dat, C.dat)로 입력받는다.
• 행렬 곱셈 계산시 사용되는 스레드의 개수를 (1) 2개, (2) 40개, (3) 80개의 경우로 나누어서 구현한다.
(1),(2),(3)에서 각각 실행 시, 각 수행 시간을 구한다.
처음 연산(A*B)전에 모든 스레드를 생성한다.
• A*B의 모든 행이 완료되지 않더라도 A*B의 완료된 행은 C행렬의 열과 동시에 연산되도록 한다.
• 수행 시간은 (첫번째 스레드가 실행되기전) ~ (마지막 스레드가 종료한 후)로 정의한다.
즉 (마지막 스레드가 종료한 시간) - (첫번째 스레드가 실행되기 전 시간)로 수행시간을 구할 수 있다.
• 화면에 출력해야할 사항으로는 다음과 같다.
o (1),(2),(3)의 경우 각각의 계산결과(물론 결과는 다 같아야한다)
o 수행스레드 개수에 따른 수행시간
2. 관련 연구
2.1 쓰래드 개념
쓰래드란 한 프로세스 내에서 동작하는 여러 실행의 흐름으로, 프로세스내의 주소 공간이나 자원들을 대부분 공유하면서 실행된다. 다음 그림을 보면 알수 있듯이 쓰래드간에는 프로세스의 대부분을 공유하며 각 쓰래드를 위한 공간은 스택공간 뿐이다.
위의 그림에서 알 수 있듯이 쓰레드는 프로세스 내에서 각각의 스택 공간을 제외한 나머지 공간과 시스템 자원을 함께 공유하므로 프로세스를 이용하여 동시에 처리하던 일을 쓰레드로 구현한다면 메모리 공간은 물론 시스템 자원 소모도 현격히 줄어들 것이다.
이와 같이 프로세스를 생성하는것보다 쓰레드를 생성하는 것이 효율적이다. 특히 멀티 프로세서 환경에서는 더욱 효과가 탁원하다. 쓰레드간의 통신이 필요한 경우 별도의 자원을 이용하는 것이 아니라 전역변수의 공간을 이용하여 데이터를 주고 받을 수 있다. 쓰레드의 장점을 정리하면 다음과 같다.
시스템의 Throughout 이 향상 된다.
시스템의 자원 소모가 줄어든다.
프로그램의 응답시간이 단축된다.
프로세스간 통신 방법에 비해 쓰레드간의 통신 방법이 훨씬 간단하다.
추천자료
교육과정의 운영체제
운영체제의 개념과 그 이해
조선 개국 초기의 왕권 강화와 국정운영체제와 유교정치
운영체제란?
우리나라 유아교육기관의 운영체제
[운영체제] 운영체제론 용어정리
운영체제 용어정리
[기술기반][ECC기술][ERP기술][XML기술][무선랜기술][SecureOS기술]ECC기술기반제품, ERP(전...
학교교육과정의 의미, 학교교육과정의 특성, 학교교육과정의 편성운영체제, 학교교육과정의 ...
모든 유닉스 계열의 운영체제장단점을 비교분석
SCSI(스카시)와 BUS, SCSI(스카시)의 개념, SCSI(스카시)의 등장 배경, SCSI(스카시)의 장점,...
지방정부의 BSC(Balanced Score Card) 운영체제 및 BSC의 실무적 체계와 운영상의 이슈
소개글