- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 存 储 管 理 3.1 虚拟存储器 3.2 内存管理方式 3.3 80386段页机制 3.4 Linux存储管理 3.5 小结 习题 每一个要运行的程序,必须首先进入内存,然而,每一台计算机的内存容量都是有限而宝贵的。存储管理的任务是方便用户使用存储资源,在有限的物理空间内使更多的用户进程高效地获得和使用尽可能多的存储空间,从而提高系统的整体性能。 现代操作系统中普遍采用基于虚拟存储器的概念来统一管理内存和外存,实现逻辑上的大容量存储空间。 本章首先介绍虚拟存储器的基本概念及使用虚拟存储器的依据和出发点——局部性原理,即在程序的运行过程中,总是集中地访问某一个程序段。根据这样的原理,可以把物理内存按照一定的规则划分为小部分,每次只装入某个进程必要的一部分内容就开始运行,在运行过程中,再根据需要装入新的内容。不同的划分规则形成不同的存储管理技术,我们简单介绍分区、页式、段式和段页式管理的基本思想。接着介绍Intel 80386硬件存储管理机制,最后学习Linux系统在这种硬件平台的基本存储管理机制。 3.1 虚拟存储器 计算机系统的存储器分为内存(主存)和外存(硬盘)。内存的价格昂贵,速度高,存储容量有限;外存价格便宜,速度慢,存储容量很大,适合于存放大量数据。为了使更多的用户进程合理、充分地使用存储资源,操作系统统一管理内存和外存,即把内存中暂时不用的内容放在硬盘上,内存中就可以腾出一部分空间,可以从硬盘装入其他迫切需要的内容。因此,从效果上看,计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器。人们称这个存储器为虚拟存储器。 3.1.1 局部性原理 实验证明,在几乎所有进程的执行过程中,某一个特定的时间段中,CPU不是随机地访问整个程序或数据,而是集中地访问程序或数据的某一个部分。进程的这种访问特性称为局部性原理。 与CPU访问该局部内的数据和代码的次数相比,局部段的变化很缓慢,正是基于这样的原理,我们才有可能实现虚拟存储管理。把进程的所有内容划分为一个个小的部分,首先只把系统所必需的部分数据装入内存,其余部分就放在外存中,开始运行之后,再把所需要的其他部分换入内存,同时把不再需要的部分从内存中换到硬盘或者清除掉。当然,与之相配合,实际的内存也要划分为对应的小部分。 这种内外存之间的数据交换对用户进程来讲是透明的。从用户进程的角度来看,系统好像提供了一个很大的内存一样,整个进程都能装进去而且正常运行,这种逻辑上的大容量存储空间就可以称为虚拟存储器。实际上,是操作系统的存储管理起了作用,用多次内外存数据交换的时间换来了大容量的并不真正存在的(虚拟的)内存。因此,可以想象,访问虚拟存储器的速度要比访问真正内存的速度要慢。 3.1.2 虚拟地址和虚拟地址空间 内存中同时存在多个进程,每个进程的地址都是以0地址作为起始地址的虚拟地址空间,这个虚地址空间可以是线性的(一维的),也可以是多维的,这要取决于系统采用的存储管理方式。进程中的每一个指令和数据在这样的虚地址空间中都有一个惟一确定的地址,即虚拟地址。 每一个进程都具有各自独立的虚拟地址空间,而整个系统只有一个物理地址空间。任何一个要执行的进程,都必须进入真正的内存中,在内存的物理空间中存在,这就需要在虚拟地址空间和物理地址空间之间建立适当的映射关系。通过这种映射关系,逐部分地把存在于虚拟地址空间中的进程要执行的 部分放在物理地址空间中,而其他暂时不执行的部分放在外部存储器中,内外存动态地传递数据,最终完成整个进程所执行的任务。这种映射,也称为地址变换,是操作系统在硬件的配合下实现的。 系统中的每一个进程,都有一个惟一的地址映射关系,也就是说,虚拟地址空间到物理地址空间是一个多对一的映射关系。这样,不同的进程有不同的虚拟地址空间和映射变换,可以方便地实现进程之间的存储保护,避免数据和程序遭受其他进程无意或者恶意的访问,同时,它们都映射到惟一的物理空间,可以通过多个进程同时映射同一个物理地址的方式实现数据和程序的共享。 3.2 内存管理方式 虚拟存储的每一个要运行的程序,都必须首先进入内存,但是,每一台计算机的内存容量都是有限而宝贵的。管理技术,通常是基于局部性原理的,即把整个进程的虚拟地址空间划分为小的部分,同时把内存也划分为小的部分,在虚拟地址空间和物理地址空间之间建立特定的映射关系,进程的内容分批分期进入内存中特定的位置,其余部分在外存中,在需要的时候再传递到内存,用内存和外存的统一管理来实现内存扩充。 在虚拟存储技术的发展过程中,使用了不同的地址空间划分方法和映射关系,这些不同的划分和映射对应于不同的存储管理方式,本节介绍几种能够实现虚拟存储的地址空间划分方式。 3.2.1 页 把进程的虚拟地址空间划分为相等
文档评论(0)