kernel level에서의 memcpy와 mmap를 통한 user level에서의 mem
글쓴이: leonhan / 작성시간: 화, 2004/06/15 - 10:02오전
char a[100]={.....}
a라는 메모리 영역에 데이터가 있습니다.
이것을 char *b 라는 영역으로 memcpy를 합니다.
1. 이때 kernel level에서 위 프로그램을 돌립니다.
2. user level에서 b는 physical memory 라서 mmap로 하여 memcpy를 합니다.
1과 2의 경우 1이 cpu 점유율(top을 쳐서 봤을때)이 훨씬 낫습니다. 물론 많은 데이터를 for 문으로 하면서 for 문안에 memcpy를 수행하지요 .header를 붙여야 하기 때문에 ..
왜 이럴까요 ?
mmap는 직접 buf에 접근하는 것이라면 이론상은 1과 2가 cpu 점유율이 같아야 하는것이 아닐까요 ?
*1에서는 a의 소스는 user app영역에 2에서는 a의 소스는 kernel 영역에서 당연히 컴파일 되겠지요 .
Forums:
댓글 달기