欢迎光临 高端调试
登录
|
注册
|
FAQ
搜索论坛
内核调试
ACPI调试
Linux内核调试
Windows内核调试
调试方法学
调试战役
调试原理
新工具观察
操作系统
Linux
Windows Vista
Windows
驱动开发
Linux驱动
WDF
WDM
总线
PCI Express
PCI/PCI-X
USB
无线通信协议
中央处理器
64位CPU
ARM
IA-32
CPU Info Center
计算机机系统
ACPI标准
系统认证
Desktop
服务器
嵌入式系统
Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
特别链接
格蠹调试套件(GDK)
格蠹学院
小朱书店
老雷的微博
《软件调试》
《格蠹汇编》
《软件调试(第二版)》
沪ICP备11027180号-1
Windows内核
帖子发起人:
Thomson
发起时间:
2010-12-11 23:11 下午
回复:
3
高端调试
»
内核探秘
»
Windows内核
»
Re: PFN的reference count和share count实际分别指什么?
搜索论坛
帖子排序:
Oldest to newest
Newest to oldest
2010-12-11, 23:11 下午
Thomson
注册: 2008-07-03
发 贴: 211
PFN的reference count和share count实际分别指什么?
看了里面的描述,感觉还是不是很清楚。
IP 地址: 已记录
报告
2010-12-12, 03:45 上午
王宇
注册: 2007-05-08
发 贴: 306
Re: PFN的reference count和share count实际分别指什么?
长夜漫漫,无心睡眠... 我来打个酱油呗~
托马森同学是说看的这两段解释?
//
// ShareCount transitions are protected by the PFN lock.
//
//
// ReferenceCount transitions are generally done with InterlockedXxxPfn
// sequences, and only the 0->1 and 1->0 transitions are protected
// by the PFN lock. Note that a *VERY* intricate synchronization
// scheme is being used to maximize scalability.
//
还是你东家的大杀器里有更好且见不得光的说明? ;) :P
Pfn1->u2.ShareCount 就是指有多少 PTE 指向这个页面 ( 如多进程共享 )。这个域经常需要根据 PTE 的变化加加减减。如:
"Down the sharecount on the finished page table page."
"Up the sharecount so the page directory page will not get trimmed even if it has no currently valid entries."
等等等等。
Pfn1->u3.e2.ReferenceCount 感觉范围更广,是指这个页面被引用的总计数。可以想见这有多频繁...
Mark 前辈举例说:when a page is first added to a working set、when the page is locked in memory for I/O ( 例如 MDL 锁定 ) 等等 ReferenceCount 都会增加。与此相对,when the share count becomes 0 ( 注意这句,已经能说明关系了 )、when pages are unlocked from memory,ReferenceCount 都会递减。
最后一点,当 share count 减为零,页面不属于工作集且 reference count 也递减到零时,这时 PFN 就要转这个页面的状态了 —— 如转到空闲、备用等。
说的还算清楚吧? 呵呵。
IP 地址: 已记录
报告
2010-12-12, 14:14 下午
Thomson
注册: 2008-07-03
发 贴: 211
Re: PFN的reference count和share count实际分别指什么?
多谢你的解释,这下清楚了不少。从解释来看,好像有可能存在这种状态。share count 为0,但是reference count 不为0。 既然都没有PTE指向这个物理页,为什么还能被reference呢?是给DMA什么用的吗?
IP 地址: 已记录
报告
2010-12-13, 09:46 上午
王宇
注册: 2007-05-08
发 贴: 306
Re: PFN的reference count和share count实际分别指什么?
很有可能。具体没有研究了。 :(
感觉可被进程指向的物理页面只是一个子集,微软设计的时候或许要考虑设备I/O映射,显存联合编址什么的一个大模型,瞎猜的...
IP 地址: 已记录
报告
高端调试
»
内核探秘
»
Windows内核
»
Re: PFN的reference count和share count实际分别指什么?
请选择
论坛首页
|- 论坛搜索
|- 热门主题
|- 未回复的主题
用户选项
|- 登录
|- 注册
|- 找回密码
软件调试
|- Windows内核调试
|- C/C++本地代码调试
|- .Net程序调试
|- 脚本程序调试
|- Java程序调试
|- Linux内核调试
|- 《程序员》杂志调试专栏
|- WinDbg
|- GDB
|- 远程调试
|- 调试ACPI和BIOS
|- 特殊的调试任务
|- 转储分析
|- GDK7
内核探秘
|- Windows内核
|- Linux内核
系统架构
|- CPU架构
|- PCI/PCI Express架构
程序人生
|- 软件物语
|- 社区活动
|- 名人逸事
联盟论坛
|- 欢迎使用CnForums
没有银弹
|- BUG也精彩
|- 豆腐工程
|- 软件圈里十大怪
Windows Vista
|- 用调试利剑剖析VISTA内幕
|- 老专家如何破解新问题
|- 我的电脑谁说了算?
|- 资源
Office开发
|- Visio
驱动程序开发
|- Windows驱动开发
|- Linux驱动开发
|- Windows CE驱动开发
用户态开发
|- Windows本地代码(native)高级开发
|- Web应用开发
|- WinFX和.Net
|- Office开发
本站建设
|- 高端调试团队
|- 版面布局
|- 活动建议
|- 网站维护
64位计算
|- 64-bit Windows
|- 64-bit CPU
图书
|- 《软件调试》的示例程序
|- 《软件调试》的工具
|- 《软件调试》书友
|- 《软件调试》答疑
|- 《软件调试》勘误和意见
|- 《格蠹汇编》
|- 《软件调试》第二版卷1
|- 《软件调试》第二版卷2
云计算
|- IaaS
|- 云存储
|- 大数据
|- PaaS和SaaS
GPU
|- CUDA
|- OpenCL
|- HSA
|- 游戏开发与调试
(C)2004-2020 ADVDBG.ORG All Rights Reserved.