임베디드 리눅스에서 프로그램을 실행하면 이상한 메세지가.. ^^;;
oom-killer: gfp_mask=0x1d2
DMA per-cpu:
cpu 0 hot: low 8, high 24, batch 4
cpu 0 cold: low 0, high 8, batch 4
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages: 512kB (0kB HighMem)
Active:13585 inactive:6 dirty:0 writeback:0 unstable:0 free:128 slab:1011 mapped:13585 pagetables:64
DMA free:512kB min:256kB low:512kB high:768kB active:54340kB inactive:24kB present:65536kB
protections[]: 128 128 128
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB
protections[]: 0 0 0
HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB present:0kB
protections[]: 0 0 0
DMA: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 512kB
Normal: empty
HighMem: empty
Swap cache: add 0, delete 0, find 0/0, race 0+0
Out of Memory: Killed process 1781 (createView).
Terminated
=================================================================================================
출력되는 내용은 위와 같습니다. 임베디드 EDB9315A 보드를 사용하고 있는데요..
위 메세지가 메모리가 부족하여 나오는건가요?? ^^;
프로그램을 처음 실행하면 위와 같이 출력되고 두번째 실행하면 "세그멘테이션 오류"가 출력됩니다 ^0^;
일반 리눅스 환경(페도라 6)에서는 잘돌아가는데요.. 지도부탁드립니다 (--)(__)
메모리가 부족해서
메모리가 부족해서 나오는 메시지가 맞는 것 같은데요.
프로세스에 할당할 메모리가 부족하게 되면 커널이 oom-killer를 돌리게 됩니다.
oom-killer는 현재 실행되고 있는 프로세스들 중에 어떤(?) 알고리즘에 의해 선택된 후보 프로세스들(하나가 될 수도 있고, 다수가 될 수도...)을 죽이는 걸로 알고 있습니다.
보통 임베디드 시스템에서는 SWAP영역을 안잡고 사용하고 메모리 사이즈 역시 PC와 비교해서 훨씬 작기 때문에 저도 종종 이런 경험을 했었습니다. -_-;
저도 문제가 있는 프로그램 또는 프로세스를 처음에 실행했을 때 oom-killer가 돌고나면, 보통은 다시 실행해도 segmentation fault가 났던 것 같습니다.
답변 감사합니다^^*
임베디드 시스템에 스왑메모리를 2G가 잡고 돌려두 안되네요 아이공.. ㅜ.ㅜ
프로그램이 실행 안되는곳을 잡으러 가야할듯 합니다 ㅠ.ㅠ
경험담 감사합니다... ^^*
================================================================
하면 된다! 꼭 하고 말것이다. 즐거운 하루 되세요 (--)(__) 꾸벅!
================================================================
하면 된다! 꼭 하고 말것이다. 즐거운 하루 되세요 (--)(__) 꾸벅!
댓글 달기