리눅스 mmu, 페이징 질문..

icjk1003의 이미지

제가 지금까지 이해하고 있는게 맞는건가 싶고 또 뭔가 잘못알고 있는부분도 있는것 같아 질문드립니다.

pgd pud pte를 통해서 가상주소를 물리주소로 바꾸는것은 해당 가상주소가 존재하는 페이지가 물리메모리에 페이지로 존재한다는 전제하에 변환해주는것으로 알고 있습니다.

1)
만약 2프로세스가 같은 가상주소에 접근(공유X)을 해서 값을 쓰라고 한다면

프로세스가 다르니까 서로 다른 pte테이블에 접근해야하는것 같은데.. 접근하려는 가상주소가 같기 때문에 결국 같

은 pte에 참조되고.. 결국 물리메모리에 있는 같은 페이지에다가 값을 쓰게 되는데.. 그러면 안되잖아요..

제가 뭘 잘못알고 있는건지 모르겠습니다..

2)
가상주소 pte비트가 9비트면 엔트리가 총 512개가 나오잖아요? 그럼 페이지 폴트가 발생하면 이 pte페이지 엔트리를

하나 버리고 디스크에서 하나 땡겨와서 넣어주는것 맞나요??..

AustinKim의 이미지

제가 질문 내용을 정확히 이해한 것인지 모르겠지만..

어떤 프로세스가 페이지 디스크립터에 어떤 값을 쓰기 전에 락을 먼저 획득합니다.
page_lock()

다른 프로세스가 동시에 같은 페이지 디스크립터에 접근하지 못하게 방지하기 위함이죠.

(개인블로그)
http://rousalome.egloos.com

bushi의 이미지

1) 프로세스마다 전부 개별적인 매핑 테이블을 가지고 있습니다.
정확히 말하면, 커널은 모든 유저 프로세스에 대해 서로 다른 페이지 테이블을 운용합니다.

2) disk swap 을 말씀하시는 건가요 ? swap-out 된 page 에 대해 fault 가 발생하면 그에 대응하는 핸들러가 호출되겠죠.
보진 않았지만, 대강 다음과 같은 일을 할 겁니다.
물리 메모리 할당 -> 테이블의 엔트리 업데이트 -> disk 에서 읽은다음 할당된 메모리에 복사

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.