存储管理
- 试述计算机系统中的存储器层次。为什么要配置层次式的存储器?
计算机系统的存储器层次结构自上而下以此分为:寄存器、缓存、内存、磁盘、磁带5层。
可执行程序必须被保存在内存中,与设备交换的信息也依托在内存地址空间,为了提高系统的效率。由于CPU的速度极快,然而CPU在执行的时候需要内存中的数据,但是内存的速度远远跟不上CPU的速度,导致CPU老是等内存,严重影响CPU的效率,所以我们必须加入cache来解决这一问题,cache的数据存取速度比内存快很多。
2.简述不同编译、链接、装载与地址定位过程。
程序编译:源程序经过编译程序或汇编程序的处理生产目标模块。一个程序可有独立编写且不同功能的多个源程序模块组成,由于模块包含外部引用,即指向其他模块中的数据或者指令地址,或包含对库函数的引用,编译程序负责引用发生位置,其处理结果将产生相应的多个目标模块,每个目标模块都附在有共引用使用的内部符号表和外部符号表。
程序链接:链接程序的作用是根据目标模块之间的调用和依赖关系,将主调模块、被调模块以及所用到的库函数装配和链接成一个完整的可卸载执行模块。有三种方式:静态链接、动态链接、运行时链接。
程序装载:绝对装载,装载模块中的指令地址始终与其内存中的地址相同。
可重定位装载,根据内存当时使用情况,决定将装载代码模块放入内存的物理地址位置
动态运行装载:为提高内存利用率,装入内存的程序可换出在磁盘上,适当时候再换入到内存中,对换前后程序在内存中的位置可能不同,即允许进程真的内存映像在不同室友处于不同位置,此时模块内使用的地址比为相对地址
3.什么是逻辑地址、物理地址?什么是静态地址重定位、动态地址重定位?
静态地址重定位:有装载程序实现装载代码模块的加载和地址转换,把它装入分配给进程的内存指定区域,其中的所有逻辑地址修改成为内存物理地址
动态地址重地位:有装载程序实现装载代码模块的加载,把它装入分配给进程的内存指定区域,但对链接程序处理过的应用程序的逻辑地址则不用做任何修改。
4.固定分区管理的缺点是什么?
一、大作业无法装入,所以用户不得不采用覆盖等技术加以补救
二、内存利用率不高,作业很少会恰好被填满分区
三、如果一个作业在运行过程中要求动态扩充内存空间,采用固定分区是相当困难的
四、分区数目实在系统初启是确定的,这就会限制多道运行程序的道数
5.简述固定分区存储管理和可变分区存储管理的区别
固定分区存储管理是换分为固定不变的分区,各分区大小不等,每个分区只能装入一个作业。
可变分区是按照作业大小划分分为,但划分的时间、大小、位置都是动态的。