文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言分页管理机制
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·DENX U-Boot及Linux使用手册
·EZ-USB 68013A开发指南
·图象处理中的边缘检测------canny算子
·Visual C++ ADO数据库编程入门
·利用 wordXP 实现自动排班
·UDT协议-基于UDP的可靠数据传输协议
·XPCOM--LINUX下的组件开发技术
·MyEclipse JSF 快速入门中文版(上)
·samba和openldap结合实战
·AIX 5L 学习大纲/简易教程(1)(未经许可,请勿COPY)
·Microsoft Windows XP Embedded 开发工具概述
·eMbedded Visual C++开发入门
·在VC6中创建wxWidgets项目[附图]
·数值计算程序大放送-线性代数方程组
·列表视图控件
·visual studio 2005 简体中文团队开发版 SQL server 2005简体中文版下载
·Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件
·多文档界面(MDI)
·汇编语言工具下载

分页管理机制

日期:2007年7月23日 作者: 查看:[大字体 中字体 小字体]


3.线性地址到物理地址的转换

    分页管理机制通过上述页目录表和页表实现32位线性地址到32位物理地址的转换。控制寄存器CR3的高20位作为页目录表所在物理页的页码。首先把线性地址的最高10位(即位22至位31)作为页目录表的索引,对应表项所包含的页码指定页表;然后,再把线性地址的中间10位(即位12至位21)作为所指定的页目录表中的页表项的索引,对应表项所包含的页码指定物理地址空间中的一页;最后,把所指定的物理页的页码作为高20位,把线性地址的低12位不加改变地作为32位物理地址的低12位。
    为了避免在每次存储器访问时都要访问内存中的页表,以便提高访问内存的速度,80386处理器的硬件把最近使用的线性—物理地址转换函数存储在处理器内部的页转换高速缓存中。在访问存储器页表之前总是先查阅高速缓存,仅当必须的转换不在高速缓存中时,才访问存储器中的两级页表。页转换高速缓存也称为页转换查找缓存,记为TLB。
    在分页机制转换高速缓存中的数据与页表中数据的相关性,不是由80386处理器进行维护的,而必须由操作系统软件保存,也就是说,处理器不知道软件什么时候会修改页表,在一个合理的系统中,页表只能由操作系统修改,操作系统可以直接地在软件修改页表后通过刷新高速缓存来保证相关性。高速缓存的刷新通过装入处理器控制寄存器CR3完成,实际过程可能用如下的两条指令实现:
    mov     eax,cr3
    mov     cr3,eax
    一个重要的修改页表项的特殊情况不需要对页转换高速缓存刷新,这种情况是指修改不存在表项的任一部分,即使P位本身从P=0改变为P=1时也一样,因为无效的表项不会存入高速缓存。因此,当无效的表项被改变时,不需要刷新高速缓存。这表明在从磁盘上读入一页使其存在时,不必刷新高速缓存。
    在一个多处理器系统中,必须特别注意是否在一个处理器中执行的程序,会改变可能由另外的处理器同时访问的页表。在80386处理器中,每当要更新页表项并设置D位和A位时,通过使用不可分的读/修改/写周期支持多处理器的配置。对于页表项的软件更新需要借助于使用LOCK前缀,从而保证修改页表的指令工作在不可分的读/修改/写周期中。在改变一个可能由另外的处理器使用的页表之前,最好使用一条加锁的AND指令在一个不可分的操作中将P位清除为0,然后,该表项可根据要求进行修改,并随后把P位置成1而使表项成为可用。当修改页表项时必须及时通知(通常使用中断方式)系统中该表项已被高速缓存的所有处理器刷新各自的页转换高速缓存,以撤消该表项的旧拷贝。在表项的旧拷贝被刷新之前,各处理器仍可继续访问旧的页,并可以设置正被修改的表项的D位。如果这样做引起表项修改失败,则分页机制高速缓存最好在标记为不存在之后,并在对表项进行另外的修改之前进行刷新。

 

4.不存在的页表

    采用上述页映射表结构,存储全部1K张页表需要4M字节,此外还需要4K字节用于存储页目录表。这样的两级页映射表似乎反而比单一的整张页映射表多占用4K字节。其实不然,事实上不需要在内存中存储完整的两级页映射表。两级页映射表结构中对于线性地址空间中不存在的或未使用的部分不必分配页表。除必须给页目录表分配物理页外,仅当在需要时才给页表分配物理页,于是页映射表的大小就对应于实际使用的线性地址空间大小。因为任何一个实际运行的程序使用的线性地址空间都远小于4G字节,所以用于分配给页表的物理页也远小于4M字节。
    页目录表项中的存在位P表明对应页表是否有效。如果P=1,表明对应页表有效,可利用它进行地址转换;如果P=0,表明对应页表无效。如果试图通过无效的页表进行线性地址到物理地址的转换,那么将引起页故障。因此,页目录表项中的属性位P使得操作系统只需给覆盖实际使用的线性地址范围的页表分配物理页。
    页目录表项中的属性位P页可用于把页表存储在虚拟存储器中。当发生由于所需页表无效而引起的页故障时,页故障处理程序再申请物理页,从磁盘上把对应的页表读入,并把对应页目录表项中的P位置1。换言之,可以当需要时才为所要的页表分配物理页。这样页表占用的物理页数量可降到最小。

5.页的共享

    由上述页映射表结构可见,分页机制没有全局页和局部页的规定。每一个任务可使用自己的页映射表独立地实现线性地址到物理地址的转换。但是,如果使每一个任务所用的页映射表具有部分相同的映射,那么也就可以实现部分页的共享。
    常用的实现页共享的方法是线性地址空间的共享,也就是不同任务的部分相同的线性地址空间的映射信息相同,具体表现为部分页表相同或页表内的部分表项的页码相同。例如,如果任务A和任务B分别使用的页目录表A和页目录表B内的第0项中的页码相同,也就是页表0相同,那么任务A和任务B的00000000H至003FFFFFH线性地址空间就映射到相同的物理页。再如,任务A和任务B使用的页表0不同,但这两张页表内第0至第0FFH项的页码对应相同,那么任务A和任务B的00000000H至000FFFFFH线性地址空间就映射到相同的物理页。
需要注意的是,共享的页表最好由两个页目录中同样的目录项所指定。这一点很重要,因为它保证了在两个任务中同样的线性地址范围将映射到该全局区域。

<三>页级保护和虚拟存储器支持

1.页级保护

    80386不仅提供段级保护,也提供页级保护。分页机制只区分两种特权级。特权级0、1和2统称为系统特权级,特权级3称为用户特权级。在上图所示页目录表和页表的表项中的保护属性位R/W和U/S就是用于对页进行保护。
    表项的位1是读写属性位,记作R/W。R/W位指示该表项所指定的页是否可读、写或执行。若R/W=1,对表项所指定的页可进行读、写或执行;若R/W=0,对表项所指定的页可读或执行,但不能对该指定的页写入。但是,R/W位对页的写保护只在处理器处于用户特权级时发挥作用;当处理器处于系统特权级时,R/W位被忽略,即总可以读、写或执行。
    表项的位2是用户/系统属性位,记作U/S。U/S位指示该表项所指定的页是否是用户级页。若U/S=1,表项所指定的页是用户级页,可由任何特权级下执行的程序访问;如果U/S=0,表项所指定的页是系统级页,只能由系统特权级下执行的程序访问。下表列出了上述属性位R/W和U/S所确定的页级保护下,用户级程序和系统级程序分别具有的对用户级页和系统级页进行操作的权限。


上一页 [1] [2] [3] [4] [5] 下一页 




上一篇:只能在保护模式下执行的指令

下一篇:Casl汇编语言辅导(1)

分页管理机制 相关文章:
·学生成绩管理系统实习
·VB+Access设计图书管理系统
·仅用U盘就可以去除XP管理员密码
·如何给XP设置超级管理员密码
·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
·我的oracle笔记四(DBA管理)
·改编 的 C版 职工管理系统
·局域网IP地址的分配、管理和设置
·一个Struts实现分页,增删改查,Tiles,国际化的DEMO
·网络管理中的常用命令
分页管理机制 相关软件:
·时代光华 销售管理课程(1-5)
·学校源码管理系统超靓版V2008
·时代光华-卓越的现场管理 5S推行实务(刘敏欣)(下)
·使用GPMC随心所欲管理组策略
·时代光华-卓越客户管理(11-15)
·公司企业网站管理系统模板功能强大版
·企业标准化管理制度大全
·工作流管理系统 V1.1
·建筑工程管理方面合同大全
·管理学 S.P.Robbins

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot