유저 어플리케이션에서는 할당했던 메모리 영역이 페이징되는걸 전혀 신경쓸 필요가 없습니다 왜냐하면 MMU 가 알아서 페이지폴트 처리를 해주니까요
하지만 커널 디바이스드라이버를 제작할때는 할당된 메모리가 페이징되는걸 걱정해줘야 합니다
왜 커널 디바이스 드라이버를 작성할때는 페이징을 신경써야할까요? MMU 가 이것도 같이 처리 못해주는 이유가 있나요?
커널 디바이스 드라이버 작성 시, 페이지 폴트 처리를 해줘야 한다는 것은 처음듣는 얘기이네요.
.init 섹션에 포함되어 있는 코드영역을 제외한 커널코드는 부팅 시 메모리에 한번 올라가게되면 해제 되지 않고, 가용가능한 메모리로 잡히지도 않습니다.
커널모듈도 insmod 에 전체모듈에 대해서 pagefault의 메카니즘을 이용해서 로딩이 되는 것으로 알고 있으나, insmod 시에 전체가 로딩되며 rmmod 전에는 해제되지 않는 것으로 알고 있습니다.
텍스트 포맷에 대한 자세한 정보
<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]
음..
커널 디바이스 드라이버 작성 시, 페이지 폴트 처리를 해줘야 한다는 것은 처음듣는 얘기이네요.
.init 섹션에 포함되어 있는 코드영역을 제외한 커널코드는 부팅 시 메모리에 한번 올라가게되면 해제 되지 않고,
가용가능한 메모리로 잡히지도 않습니다.
커널모듈도 insmod 에 전체모듈에 대해서 pagefault의 메카니즘을 이용해서 로딩이 되는 것으로 알고 있으나,
insmod 시에 전체가 로딩되며 rmmod 전에는 해제되지 않는 것으로 알고 있습니다.
댓글 달기