- 1、本文档共97页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分页虽然也是采用页号+页内偏移表示逻辑地址,但是在虚地址空间中是连续的,只是人为划分,和段式的不一样,段式是有段号+段内地址表示,地址是不连续的。 * 类似于页式管理采用页表来表示逻辑地址和物理地址的对应关系,段式管理采用段表来表示逻辑地址到物理地址的映射。 * l:段长,b:段的基址 * 1、段的共享不要求“共享段”在各个进程的虚地址空间中是一致的。 2、段表长度寄存器:段号不能超过段表长度,段表表目中的段长:段内地址不能超过该值。 * 用户需求:模块化编程的要求。 * 相比于实分段的段表,虚拟段式存储器的段表多了一些信息。 * 使用的时候链接,不用的时候,清除出内存 * 1、Multics,全名MULTiplexed Information and Computing System,是1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统。 先来看一些概念: 2、段名-段号对照表:每个进程一个,所有对段名的访问,都要转换为对段号的访问,此时,需要去查段名-段号对照表。 3、符号表:段的符号名和段内地址的对应表,所有对段内符号名的访问都要转换为对段内偏移的访问。 对于静态链接,链接程序使用段名-段号表、符号表进行链接,连接完后就不用了; 对于动态链接:由OS在动态链接段时使用。 * L:是否已经连接,如没连接D指向的是符号地址;如果已连接,转换为(段号,段内地址) * * [X]段此时没有调入内存 * 太小:需要很大的页表来表示页号和块号的对应关系,如上图,需要1M个页表 太大:页内的碎片可能比较大。 * 访问速度慢:两次内存访问 1)第一次是访问页表,获取虚页和实页的对应关系; 2)第二次是访问内存,以访问真正的数据 * * 1、先访问快表,如果快表中没有,才查询页表; 2、在页表中查到后,同时也要将该表项写入到快表: 1)如果快表中有空闲表项,则写入; 2)否则,需要采用某个淘汰算法,淘汰某个表项,而将当前对应关系写入到该表项中。 * 64位每一个子页表仍然需要4096M个页表项,所以一般采用多级页表方式,进一步减少页表所占的连续内存空间。 在windows系统中,一般将直接寻址的空间减少到45位长度(因为使用64位的空间目前没有必要),一般采用三级页表。 * 上图为分成256块,使用33个字节来表示。最后一个字节用于表示当前空闲块数。 * 回收仅仅是修改位示图,这里不再阐述。 * 不易共享: 1、分页一般采用静态链接,一般要求每个进程对应该共享页的虚页号一致,参见图3-9 2、一般要共享多个分页,共享单个分页没有什么意义; * * 动态增长: 1、程序的虚页空间一般是在编译、链接之后就确定了; 2、可能需要在程序执行过程中,增加程序的虚页空间,如数据段,比较困难。 所需的硬件:页表长度寄存器、快表等; * 虚拟存储技术的依据:程序局部性原理 * 1968年美国MIT的Denning提出程序局部性原理是对虚拟存储器有力的理论支持。 * 1、页或段是分别针对页式存储管理和段式存储管理而言的。因为虚拟存储器普遍采用页式或段式进行存储管理 * * 1、当调入内存时,如无空闲内存,可能需要调用置换程序 “故障”是中断的一种,必须立即得到响应和处理。而一般中断是在一条指令执行完毕之后响应和处理,如果仍这样,指令就无法完成了。 * 如果无空闲内存空间,缺页中断会调用页面置换程序,进行页面置换。 * 在为进程分配 * 1)固定分配局部置换:难度在于难于确定为进程分配多少物理块数,若分配太少,可能频繁发生缺页,若分配太多,能同时运行的进程数减少,可能导致CPU或其他资源严重浪费。 2)可变分配局部置换: * * 2、从哪里调入(汤小丹,P149) 在请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的对换区。通常,由于对换区是采用连续分配方式,而文件区是采用离散分配方式,故对换区的磁盘I/O速度比文件区的高。这样,每当发生缺页请求时,系统应从何处将缺页调入内存,可分成如下三种情况:(1) 系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。为此,在进程运行前,便须将与该进程有关的文件从文件区拷贝到对换区。? (2) 系统缺少足够的对换区空间,这时凡是不会被修改的文件都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出,以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时,再从对换区调入。(3) UNIX方式。由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时
文档评论(0)