文章目录内存每一个要运行的程序,必须先进入内存然而,每一台计算机的内存容 量都是有限而宝贵的。存储管理的任务是方便用户使用存储资源,在有限的物理空间内使更多的用户进程高效地获得和使用尽可能多的存储空间,从而提高系统 的整体性能。现代操作系统中普遍采用基于虚拟存储器的概念来统一管理内存和外存,实现逻辑上的大容量存储空间。 本节首先介绍虚拟存储器的基本概念及使用虚拟存储器的依据和出发点——局部性原理,即在程序的运行过程中,总是集中地访问某一个程序段。 根据 这样的原理,可以把物理内存按照一定的规则划分为小部分,每次只装入某个进 程必要的一部分内容就开始运行,在运行过程中,再根据需要装入新的内容。 不同的划分规则形成不同的存储管理技术,我们简单介绍分区、页式、段 式和段页式管理的基本思想。接着介绍Intel 80386硬件存储管理机制,最后学 习Linux系统在这种硬件平台的基本存储管理机制。 1虚拟储存区计算机系统的存储器分为内存(主存)和外存(硬盘)。内存的价格昂贵,速度高,存储容量有限;外存价格便宜,速度慢,存储容量很大,适合于存放大量数据。为了使更多的用户进程合理、充分地使用存储资源,操作系统统一管理内存和外存,即把内存中暂时不用的内容放在硬盘上,内存中就可以腾出一部分空间,可以从硬盘装入其他迫切需要的内容。因此,从效果上看,计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器。人们称这个存储器为虚拟存储器. 定义:一种将主存用作辅助存储器高速缓存的技术 2局部性原理实验证明,在几乎所有进程的执行过程中,某一个特定的时间段 中,CPU不是随机地访问整个程序或数据,而是集中地访问程序或数据的某一个部分。进程的这种访问特性称为局部性原理 与CPU访问该局部内的数据和代码的次数相比,局部段的变化很缓 慢,正是基于这样的原理,我们才有可能实现虚拟存储管理。把进程的 所有内容划分为一个个小的部分,首先只把系统所必需的部分数据装入 内存,其余部分就放在外存中,开始运行之后,再把所需要的其他部分 换入内存,同时把不再需要的部分从内存中换到硬盘或者清除掉。当然,与之相配合,实际的内存也要划分为对应的小部分。 3 虚拟地址 和 虚拟地址空间每一个进程都具有各自独立的虚拟地址空间,而整个系统只有一个物理地址空间。 物理地址(physical address):主存储器的地址。 4内存管理方式虚拟存储的每一个要运行的程序,都必须首先进入内存,但是,每一台计算机的内存容量都是有限而宝贵的。管理技术,通常是基于局部性原理的,即把整个进程的虚拟地址空间划分为小的部分,同时把内存也划分为小的部分,在虚拟地址空间和物理地址空间之间建立特定的映射关系,进程的内容分批分期进入内存中特定的位置,其余部分在外存中,在需要的时候再传递到内存,用内存和外存的统一管理来实现内存扩充。在虚拟存储技术的发展过程中,使用了不同的地址空间划分方法和映射关系,这些不同的划分和映射对应于不同的存储管理方式. 5 页(了解)把进程的虚拟地址空间划分为相等大小的部分,每个部分称为页(page),同时把物理内存空间也按照页的大小划分为小的部分,称为页面(page frame,也称为页架或页框)。对于80386体系,页和页面的大小都为4K字节。 页式管理: 页表(左)及相应的页、页面对应关系(右)示意图 内存中同时存在多个进程,每个进程的地址都是以0地址作为起始 地址的虚拟地址空间,这个虚地址空间可以是线性的(一维的),也可 以是多维的,这要取决于系统采用的存储管理方式。进程中的每一个指 令和数据在这样的虚地址空间中都有一个惟一确定的地址,即虚拟地 址。 6 段页※(掌握)段页式存储管理,综合利用段式和页式管理的思想,把整个二维虚拟空 间先分段,然后在段内分页。以页为最小的存储管理单位来实现虚拟存储。 这种管理模式下,虚拟地址要包括三个部分:段号、页号和页内偏移地址,地址变换也要经过两层次映射才能够实现,首先从二维虚拟空 间映射到一个线性虚拟空间,然后再从线性空间映射到物理空间。 定义代码段: 代码段是用来存放可执行文件的操作指令, 也就是说它可以是可 执行程序在内存中的镜像. 代码段需要防止正在运行时被非法修改, 所以 只准许读取操作, 不允许写入操作 数据段: 数据段用来存放可执行文件中 BBS段: BBS段包含程序 堆(heap): 堆是用于存放进程运行中 栈: 栈是.用户存放程序 段页纠错小案例代码:说明各个变量存储的地方
答案注意问题: |
|