[질문] mmap의 사이즈 결정에 관한 방법

pangjun의 이미지

외부 디바이스에 들어오는 스트림을 드라이버에서 메모리 저장한후,
mmap을 통해서 유저프로세스가 그 영역의 스트림을 수학적인 계산을
처리한 후에 다른 드라이버의 메모리 영역으로 그 결과를 저장하려고 합니다.
물론 다른 드라이버의 메모리 영역 역시 mmap으로 처리해서 저장하려고요.

그런데, 외부 디바이스에서 들어오는 스트림을 저장할 만한
커널 영역의 메모리를 얼만큼 확보 하는게 현명한 선택일까요?
그냥 대충 try&error 방법으로 시도해 보는것도 괜찮겠지만,
좀 더 수치적인 결과를 도출할 방법은 없을까요?
가장 최적의 선택을 하고 싶어서요.

리눅스가 리얼타임을 보장하는것도 아니기에
현재에 try&error로 된다구 하더라도 언제 버퍼 풀이 날지도
모르는것이고...

한가지 더 질문... 입니다.
위의 상황에서... 이쪽 드라이버의 메모리 영역을 수치적 계산후
다른 드라이버의 메모리 영역으로 mmap을 통해서 저장하는데,
오버헤드는 고려를 해야할 정도로 큰 일인가요?
제가 알기론 드라이버 영역에서 유저 영역으로 데이타가 이동될때는
시스템 콜이 불러 지는 등의 오버헤드가 상당하다고 들었는데...
그래서.. .mmap 같은것을 사용하는것으로 아는데요..

한쪽 드라이버 영역에 있는 데이타를 유저 프로세서가 계산을 하고,
다른 드라이버의 영역에 저장하는것이 mmap을 사용함으로써,
오버헤드가 줄어드는데 도움이 될까요?

제가 아는것은 mmap 밖에 없어서요...
혹시 이것보다.. 훨씬 좋은 방법이 있다면,
추천해 주셨으면 합니다.

hb_kim의 이미지

일단 버퍼 오버플로우가 발생해도 치명적인 에러는 발생하지 않도록 전체 시스템을 설계를 한후에, 버퍼 크기는 설정가능하게 만들고 사용하는 유저가 응용프로그램으로 변경할수 있도록 하는것이 맞을듯합니다.

아래 스레드에 보시면 스니퍼를 빠르게 구현하기 위해 mmap 과 링 버퍼를 사용한 프로젝트에 대한 링크가 나오니 이런 아이디어를 참조하시면 좋을듯 합니다.

http://bbs.kldp.org/viewtopic.php?t=38516

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.