dikiili
驱动牛犊
驱动牛犊
  • 注册日期2003-06-09
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2153回复:11

谁能帮我解释一下分页内存和非分页内存?

楼主#
更多 发布于:2003-06-20 10:49
谁能帮我解释一下 分页内存 非分页内存

最新喜欢:

zhaihuazhaihu...
我并不属于这个世界! [img]http://mini.sq.sh.cn/images/tu.gif[/img]
dikiili
驱动牛犊
驱动牛犊
  • 注册日期2003-06-09
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-05 12:41
你还想要什么样的解释?


呵呵,我指的是kernel_kernel!
我并不属于这个世界! [img]http://mini.sq.sh.cn/images/tu.gif[/img]
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-07-01 00:27
用户被禁言,该主题自动屏蔽!
dikiili
驱动牛犊
驱动牛犊
  • 注册日期2003-06-09
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-25 11:59
[quote]
我们知道,在处理低优先级的中断时,仍可以发生高优先级的中断。既然缺页过程也是一个中断过程,那么就产生一个问题,即,缺页中断和其他中断的优先级的问题。如果在高于缺页中断的中断优先级上再发生缺页中断,内核就会崩溃。所以在DISPATCH_LEVEL级别以上,绝对不能使用分页内存,一旦使用分页内存,就有发生缺页中断的可能,前面说过,这样会导致内核崩溃。


no [/quote]

为什么不能给点解释呢?
我并不属于这个世界! [img]http://mini.sq.sh.cn/images/tu.gif[/img]
kernel_kernel
驱动小牛
驱动小牛
  • 注册日期2002-12-08
  • 最后登录2009-02-06
  • 粉丝0
  • 关注0
  • 积分435分
  • 威望51点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-21 19:26

我们知道,在处理低优先级的中断时,仍可以发生高优先级的中断。既然缺页过程也是一个中断过程,那么就产生一个问题,即,缺页中断和其他中断的优先级的问题。如果在高于缺页中断的中断优先级上再发生缺页中断,内核就会崩溃。所以在DISPATCH_LEVEL级别以上,绝对不能使用分页内存,一旦使用分页内存,就有发生缺页中断的可能,前面说过,这样会导致内核崩溃。


no
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-06-21 11:46
用户被禁言,该主题自动屏蔽!
escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-20 14:41
分页内存只能在DISPATCH_LEVEL级别以下使用。
驱动开发模型预先设置了你的各个例程的运行级别。
例如,driverentry的运行级别被预设为passive_level。
此外,你可以使用以下函数:
KeRaiseIrql
KeLowerIrql
KeGetCurrentIrql
dikiili
驱动牛犊
驱动牛犊
  • 注册日期2003-06-09
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-20 14:26
感谢WhoAmI的关注:
那么以上几个级别,哪些必须要分配非分页内存呢?
我怎么知道,当前代码段执行在什么级别呢?
我并不属于这个世界! [img]http://mini.sq.sh.cn/images/tu.gif[/img]
escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-20 11:50
 
还有哪位大虾可以解释一下APC_LEVEL,PASSIVE_LEVEL和DISPATCH_LEVEL IRQL?


中断请求最低的几个等级
escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-20 11:45
分页内存是低中断级别的例程可以访问的。
而非分页内存则是各个中断级别的例程都可以使用的。
区别在于:
分页内存是虚拟内存,在物理上未必总是能得到。

dikiili
驱动牛犊
驱动牛犊
  • 注册日期2003-06-09
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-20 10:55
还有哪位大虾可以解释一下APC_LEVELPASSIVE_LEVELDISPATCH_LEVEL IRQL
我并不属于这个世界! [img]http://mini.sq.sh.cn/images/tu.gif[/img]
dikiili
驱动牛犊
驱动牛犊
  • 注册日期2003-06-09
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-20 10:51
他们最主要的区别是什么?
我并不属于这个世界! [img]http://mini.sq.sh.cn/images/tu.gif[/img]
游客

返回顶部