Upload
dong-kyu-lee
View
53
Download
4
Embed Size (px)
Citation preview
고급 시스템 프로그래밍
과제 1 – Stage 2
두 파일을 하나의 파일로 합치기line by line 으로…
각 line 을 뒤집어서…국민대학교 컴퓨터공학부
20093319 이동규
수정 사항 ( 소스 : https://github.com/ledgku/adv-sys-programming/blob/master/merge_reverse_final.c)
1. stat() 을 fstat() 으로 변경2. malloc 예외처리 추가3. merge 할 파일에 사용한 fopen(), fclose(), fread() 를 open(),
close(), read() 로 변경4. setvbuf() 사용하여 파일 출력 버퍼링 사용5. strrev() 의 xor 연산 방식에서 temp 를 사용한 swap 으로 변경6. 최대 file merge size 를 200MB 로 변경
최종 결과 비교 – 100MB + 100MB
Template Stage 1 Stage 2실행 시간 평균 130.276058 sec 46.400518 sec 34.7356 sec
성능( 최종 버전 ) / (Tem-
plate). 0.356171 0.266631
수정 사항 - stat() 을 fstat() 으로 변경
수정 사항 - malloc 예외처리 추가
수정 사항 - merge 할 파일에 open(), close(), read() 사용
수정 사항 - setvbuf() 를 사용한 파일 출력 버퍼링
수정 사항 - strrev() 함수 변경 , merge file max size 를 200MB 로 변경
시도만 한 것 - openmp
순서대로 두 파일의 라인을 merge 하는 프로그램의 흐름상 반복문에서#pragma omp for 적용은 불가능
strtok_r(…file1…) 과 strtok_r(…file2…) 에 #pragma omp section 적용오히려 성능 저하
감사합니다 .