(理论篇)操作系统之存储管理

1、存储管理的功能

	存储器是计算机系统的重要资源之一。因为任何程序和数据以及各种控制用的数据结构都必须要占用一定的存储空间,所以存储管理直接影响系统性能。

存储器的组成:

	存储器由内存和外存组成。那么什么是外存和内存呢?内存也可以叫做主存储器(内存储器),指的是主板上的存储部件,是CPU直接与其沟通并且用来存储数据的部件。而外存可以叫做辅助存储器(外存储器),外存通常是磁性介质或者光盘,像硬盘,软盘,磁带和CD等,能够长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比的话会显得慢很多。
	内存是用例存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的“动态”,指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
	内存由顺序编址的块组成,每块包含相应的物理单元,CPU要通过启动相应的输入输出设备后才能使外存与内存交换信息,这里主要讨论的是内存管理问题。

虚拟存储器

	内存价格昂贵,不可能用大容量的内存存储所有被访问的或者不被访问的程序和数据段,这时候外存就出现了,外存的价格便宜,可以存储大量的信息,但是访问速度会比较慢。在一个进程的执行过程中,大部分的程序和数据其实并不会被访问到,所以存储管理系统会把进程中不经常被访问的数据段和数据放入外存中,而等到需要用的时候再调入内存。这时候就有问题了,对于这一部分数据和程序段在内存而另一部分在外存的进程,怎么安排地址会比较好呢?
	
	通常用户编写的源程序,会由编译程序编译成CPU可以执行的目标代码,然后链接程序把一个进程的不同程序段链接起来完成所要求的功能。显然,对于不同的程序段,应该有不同的地址,不然你怎么连接起来呢?这里有两种方法来安排编译后的目标代码的地址
	1-按照物理存储器中的位置赋予实际物理位置。
	2-编译链接程序把用户源程序编译后连接到一个以0地址为始地址的线性或者多维的虚拟地址空间。每个指令在这个空间的地址中都拥有确定的地址,这个地址称为虚拟地址,进程在该空间的地址排列可以是非连续的。
	进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。它并不关心物理存储器的大小和信息存放的实际位置,值规定了每个进程中相互关联的信息的相对位置。虚拟存储器的容量是由计算机的地址结构和寻址方式确定的。

地址变换

	关于地址变换,其实就是我们怎么从虚拟地址空间找到实际的物理位置。内存地址的集合称为内存空间或者物理地址空间,在内存中,每一个存储单元都有与其相对应的称为内存地址的编号相对应。
	如何能够吧几个虚存的一维线性空间或者多维线性空间变换到内存的唯一的一维物理线性空间呢?这涉及了两个问题。
	1-虚拟空间的划分问题
	2-把虚拟空间中已连接和划分好的内容装入内存,并将虚拟地址映射为内存地址的问题,称为地址重定位或地址映射。地址映射就是要建立虚拟地址与内存地址的关系,而这里有两种方法来实现
	1-静态地址重定位:在虚拟空间执行之前就完成地址映射工作,优点是不需要硬件支持,但是无法实现虚拟存储器
	2-动态地址重定位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值