在读<<undering the kernel of linux>>,关于Page Fault Exception Handler一问
时间:2003-05-28
来源:互联网
以下这段话的每个句子都看得懂,但是整个意思怎么也看不懂,麻烦哪们大侠解释一下:
Let us make a short digression to explain how stacks are mapped into memory regions. Each region that contains a stack expands toward lower addresses; its VM_GROWSDOWN flag is set,thus the value of its vm_end field remains fixed while the value of its vm_start field may be decreased. The region boundaries include, but do not delimit precisely, the current size of the User Mode stack. The reasons for the fuzz factor are:
• The region size is a multiple of 4 KB (it must include complete pages) while the stack size is arbitrary.
• Page frames assigned to a region are never released until the region is deleted; in particular, the value of the vm_start field of a region that includes a stack can only decrease; it can never increase. Even if the process executes a series of pop instructions, the region size remains unchanged.
It should now be clear how a process that has filled up the last page frame allocated to its stack may cause a "Page fault" exception: the push refers to an address outside of the region (and to a nonexistent page frame). Notice that this kind of exception is not caused by a
programming error; it must thus be handled separately by the page fault handler.
Let us make a short digression to explain how stacks are mapped into memory regions. Each region that contains a stack expands toward lower addresses; its VM_GROWSDOWN flag is set,thus the value of its vm_end field remains fixed while the value of its vm_start field may be decreased. The region boundaries include, but do not delimit precisely, the current size of the User Mode stack. The reasons for the fuzz factor are:
• The region size is a multiple of 4 KB (it must include complete pages) while the stack size is arbitrary.
• Page frames assigned to a region are never released until the region is deleted; in particular, the value of the vm_start field of a region that includes a stack can only decrease; it can never increase. Even if the process executes a series of pop instructions, the region size remains unchanged.
It should now be clear how a process that has filled up the last page frame allocated to its stack may cause a "Page fault" exception: the push refers to an address outside of the region (and to a nonexistent page frame). Notice that this kind of exception is not caused by a
programming error; it must thus be handled separately by the page fault handler.
作者: ubyyj 发布时间: 2003-05-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28