ch4-4.8windows虚存管理

ch4-4.8windows虚存管理

ID:45037268

大小:185.50 KB

页数:31页

时间:2019-11-08

ch4-4.8windows虚存管理_第1页
ch4-4.8windows虚存管理_第2页
ch4-4.8windows虚存管理_第3页
ch4-4.8windows虚存管理_第4页
ch4-4.8windows虚存管理_第5页
资源描述:

《ch4-4.8windows虚存管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、4.8Windows2003虚拟存储管理4.8.1进程地址空间布局4.8.2用户空间主存分配4.8.3主存管理的实现4.8.1主存管理的功能和地址空间布局1主存管理的组成和功能存储管理系统服务程序转换无效和访问错误的陷阱处理程序一组系统线程·工作集管理器·进程/堆栈交换程序·已修改页面写入器·映射页面写入器·废弃段线程·零页线程2进程地址空间布局固定页面区页交换区操作系统驻留区(直接映射区)页交换区系统存储区用户存储区C0000000H80000000H00000000HC0000000HFFFFFFFFH4.8.2用户空间主存分配系统管理应用

2、程序主存有两个数据结构:虚址描述符和区域对象;三种主存管理方法:虚页主存分配主存映射文件主存堆分配1虚址描述符对每个进程,主存管理器都维护一组VAD,用来描述进程地址空间哪些虚拟地址已被保留,而哪些没有,这个数据结构叫“虚地址描述符”VAD。VAD的使用•线程首次访问一个地址,主存管理器为此地址的页面创建一个页表项,它找到一个包含被访问地址的VAD,并利用所得信息填充页表项。•如果访问地址落在VAD覆盖的地址范围外,或所在的地址范围仅被保留而未提交,将产生一次访问违规。2区域对象及作用“区域对象”(Sectionobject)在Win32子系统

3、中被称为“文件映射对象”,表示可被两个或多个进程所共享的主存块。其作用有:系统利用区域对象将可执行映象装入主存;高速缓存管理器利用区域对象访问高速缓存文件中的数据;使用区域对象将文件映射到进程地址空间,可像访问主存中数组一样访问这个文件,而不是对文件进行读写。区域最大尺寸页保护限制盘交换区/映射文件基本/非基本区域创建区域打开区域扩展区域映射/取消映射视口查询区域对象类型对象属性对象服务区域对象的结构区域对象的使用一个区域对象代表可由两个或多个进程共享的主存块。一个进程的线程可创建区域对象,为它起名字,以便其他进程的线程能打开这个区域对象的句柄

4、。区域对象句柄被打开后,线程就能把这个区域对象映射到自己或另一个进程的虚地址空间中。3应用程序主存管理方法1)虚页主存分配系统中使用虚拟主存,分三个阶段:•保留主存(reservedmemory)•提交主存(committedmemory)•释放主存(releasememory)2)主存堆分配堆(heap)是保留地址空间中一个或多个页组成的区域,并由堆管理器按更小块划分和分配主存的技术。缺省进程堆。HeapCreate创建私有堆,HeapDestroy释放私有堆。GetprocessHeap得到指向堆的句柄,HeapAlloc和HeapFree

5、从堆中分配和回收主存块。3)主存映射文件(1)Memory-mappedFile允许进程分配一段虚地址空间或某一个盘文件相关联,当把盘文件映射到该地址空间后,多个进程可以方便地访问。主存映射文件用于三种场合:(1)执行体使用主存映射把可执行文件.exe和动态连接库.dll文件装入主存,节省应用程序启动时间。(2)进程使用主存映射文件存取磁盘文件信息,减少文件I/O和对文件进行缓存。(3)多个进程使用主存映射文件来共享主存中的数据和代码。主存映射文件(2)使用步骤步1使用CreateFile打开文件步2使用CreateFileMapping建立文

6、件映射步3使用MapViewOfFile读写文件视窗步4使用OpenFileMapping打开文件映射对象步5使用UnmapViewOfFile解除映射4.8.3主存管理的实现1进程页表与地址映射•在x86硬件平台上采用二级页表结构来实现进程的逻辑地址到物理地址的转换。•32位逻辑地址解释成三个分量,页目录索引(10位)页表页索引(10位)和位置索引(12位),页面大小为4KB。2页框号数据库(1)所有主存物理页框组成了页框数据库(PageFrameDatebase),每个页框占一项,每项称为一个PFN结构(PageFrameNumber)。工

7、作集索引页表项地址共享计数标识类型访问计数初始页表项的内容页表项的页框号工作集中页面的PFN前向链接页表项地址后向链接标识类型访问计数初始页表项的内容页表项的页框号后备或修改链表中页面的PFN事件地址页表项地址共享计数标识类型访问计数初始页表项的内容页表项的页框号正在I/O页面的PFN前向链接页表项地址后向链接标识类型访问计数初始页表项的内容页表项的页框号零或空闲链表中页面的PFN页框号数据库(2)页框号数据库(3)PFN可能状态有效(Vaild)过渡(transition)后备(Standby)修改(Modified)修改不写入(modiqi

8、ednowrite)空闲(free)零初始化(zeroed)坏(bad)页框号数据库(4)请求零页面错误从盘或内核读出页(页错误)缩小工作集缺页错误处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。