운영체제 Factorial 합을 병렬로 계산하는 프로그램 구현후 thread 동기화
- 최초 등록일
- 2021.11.01
- 최종 저작일
- 2020.09
- 5페이지/
한컴오피스
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
1, 과제설명 ( 사용자 요구사항 기술: 과제에 대한 설명 및 목표 )
2, 사용자 요구사항을 정형적 방법으로 기술 (UML, Pseudo code, 그림등을 이용하여 기슬)
3. 알고리즘 및 자료구조 설계 내용
4. 소스코드 설명 ( 직접 작성한 소스코드중에 핵심 부분을 발췌하여 설명 )
5. 실행결과 및 설명 ( 실행 결과를 캡쳐하여 첨부한 후 설명 )
6. 고찰 ( 과제를 진행하면서 배운점 이나, 시행 착오 내용, 기타 느낀점 )
7. 전체 소스코드 ( 글자크기 9에 줄간격을 120%로 유지하고 한 줄이 너무 길지 않게 작성 )
본문내용
2, 사용자 요구사항을 정형적 방법으로 기술 (UML, Pseudo code, 그림등을 이용하여 기슬)
Dev를 이용하여 미리 작성해보았고 값이 잘 나오는 것을 확인하였습니다.
함수를 실행하면 원하는 값을 입력하면 그 값을 인자로 받아 pthread 함수를 생성하였습니다.
함수는 인자를 하나씩 줄이면서 팩토리얼을 구성하였고 그때의 값을 return하였습니다.
함수 인자는 이러한 방식으로 하나씩 줄여나가면서 0이되기전까지 무한히 반복시켰습니다.
mutex를 이용하여 동기화문제 역시 해결하였습니다. 함수에서 return된 값들은 바로바로 status라는
인자로 받아 sum이라는 변수에 계속 저장을 시켜 마지막에 최종값을 출력되도록
프로그래밍을 하였고 잘 작동됨을 확인하였습니다.
작성한 함수를 실습과 같은 방식으로 gcc –lpthread방식으로 컴파일하였고 출력한 결과
사이의 과정들이 출력되지 않고 또한 그 값이 마지막 최종값에 더해지지 않음을 확인하였습니다.
코드를 수정해보고 다른 방식으로 컴파일도 해보았지만 수정하지는 못하였습니다.
3. 알고리즘 및 자료구조 설계 내용
원하는 숫자를 인지 -> 그 값을 인자로 받은 pthread함수 생성 -> 그 함수안에 있는 팩토리얼 함수
진행 -> 결과값을 return하여 함수가 종료되는 시점에 바로 다른 변수에 저장 -> 원하는 숫자값이
하나 감소 -> 같은방식으로 0이될때까지 진행 -> 확인
참고 자료
없음