欢迎来到天天文库
浏览记录
ID:13134711
大小:63.00 KB
页数:7页
时间:2018-07-20
《操作系统资料 第3章 存储管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章存储管理内部存储器:内存或主存(MainMemory),半导体材料,寻址到每个存储单元(Byte或Word),用来存放进程的程序和数据。内存的特点:速度快、容量小、价格昂贵,掉电后数据全部丢失。外部存储器:外存或辅存(SecondaryMemory),磁盘、磁带、光盘等机械部件,寻址到存储块,用于长期保存数据。外存的特点:速度慢、容量大、价格便宜,掉电后数据仍然存在。外部存储器属于外部设备,不在本章的讨论范围。计算机系统的核心:CPU和内存。程序要执行,必须首先装入内存。CPU只能访问内存上的数据,外设(包括外存)上的数据只有读入内存,才能被CPU访问。3.1存储管理的任务3.
2、1.1存储分配1,内存分配1)分配基本内存空间:程序装入内存时,根据程序的调入参数,为程序分配基本的内存空间。2)增加新的内存空间:事实上,程序设计者也无法准确估计程序在运行过程中究竟需要多少内存空间,而且程序在运行过程中需要的内存空间是动态变化的。因此,操作系统一次就给进程分配足够大的内存空间既不现实也不经济。实际情况是,程序装入内存时,系统首先为程序分配基本内存空间(程序设计者的预估值)。程序在运行过程中,可以根据需要动态申请或释放内存空间。2,内存回收1)回收程序运行过程中动态释放的内存空间。2)程序运行结束后,回收其占用的所有内存空间,包括基本内存空间和程序运行过程中动态申请
3、而没有主动释放的内存空间。3.1.2地址映射1,物理地址和逻辑地址物理地址:内存中每个存储单元的地址,也是程序在执行过程中的实际地址。程序在执行跳转指令或在指令中访问某个存储单元的数据时,都要用到物理地址。逻辑地址:相对地址,即程序中某条指令相对于第一条指令的偏移地址。例如,某程序起始地址为100(在8086汇编语言中,可用ORG语句指定起始地址),第n条指令距第1条指令的距离为60(即第1、2、…、n-1条指令总共占据了60Byte的内存空间),则第n条指令的逻辑地址为160。程序每次装入内存,所占用的内存空间可能都不一样。因此,程序设计者无法预知程序的物理地址,只能在程序中使用逻
4、辑地址。程序装入内存后,为了保证程序的正确执行,操作系统必须将指令中的逻辑地址转换为物理地址。2,地址映射地址映射:又称为重定位(Relocation),程序被装入内存后,操作系统根据装入的起始地址,修改程序中的逻辑地址,即将逻辑地址加上起始地址(连续存储),得到实际的物理地址。7静态映射:地址转换在程序装入时一次性完成,程序运行过程中不再改变程序的物理地址。静态映射很少使用,因为它不允许程序在运行过程中改变物理地址,因此碎片整理、虚拟存储(将程序在内存和外存之间换出或换入,每次换入的物理地址可能不一样)这样的技术不能使用。动态映射:程序装入内存后,不立即进行地址转换,而是在CPU执
5、行每一条指令时进行地址转换。为了提高效率,CPU中设置了专门的高速硬件(地址管理部件)自动完成地址转换。3.1.3存储保护1,防止地址越界地址越界是指进程访问不属于自己的地址空间,或者说进程在运行过程中产生的物理地址超越了自身的地址范围。地址越界,可能侵犯其他进程乃至OS的内存空间,严重时将导致系统崩溃。2,防止操作越权操作越权是指进程对共享存储区的操作违反了系统规定的权限。例如,只读进程对共享存储区进行写操作。越权操作会干扰其他进程的正常工作,严重时将导致系统崩溃。存储保护的主要工作由地址管理部件完成,软件只起辅助作用。3.1.4存储共享存储共享:两个或多个进程共用内存中相同的分区
6、,即它们的物理空间有相交的部分。存储共享可分为共享代码和共享数据。1,共享代码:节约存储空间。2,共享数据:进程之间相互通信,交换数据。3.1.5存储扩充存储扩充:操作系统采用软件手段,在硬件的配合下,将部分外存空间虚拟为内存空间。虚拟的内存空间只能暂时存放某些用不到的程序或数据,CPU如果要执行这些程序或访问这部分数据,仍然需要将它们换入内存。3.2内存分配3.2.1静态划分与分配1,静态划分的概念操作系统预先将内存空间划分为一个个固定的分区(分区的大小和数目以后不再改变),创建新进程时,OS在内存中找到一个合适的分区分配给该进程,称为静态划分与分配。静态划分可以将内存划分为大小相
7、同的分区,也可以划分为大小不同的分区。2,固定分区式划分(FixedPartitioning)固定分区式划分是最早使用的一种多道程序存储管理方式,它根据系统管理员的经验和一些统计规律,预先将内存空间划分为若干固定大小的区域(称为分区)。当进程申请存储空间时,系统为之分配一个大小合适的空闲分区。在固定分区式划分中,内存空间可以划分为等长分区或异长分区。等长分区的特点是所有分区的长度(大小)相同,其优点是分配简单,只要进程大小不超过分区长度,就可以将进程装入到
此文档下载收益归作者所有