1,试述计算机系统中的存储器层次。为什么要配置层次式的存储器?
计算机系统的存储器层次结构自上至下依次分为:寄存器、缓存、内存、祠旁、磁带5层。存储介质的访问速度由下而上越来越快,容量越来越小,价格越来越高。寄存器、缓存和内存均属于操作系统存储管理的管辖范畴,掉电后它们存储的信息将不复存在;磁盘和磁带均属于文件管理和设备管理的管辖对象,它们所存储的信息将被持久性保存。配置层次式结构的存储子系统,是为了在容量带线啊哦、速度快慢、价格高低等因素中取得平衡点,获得较好的性能价格比。
2,简述不同编译、链接、装载与地址定位过程。
程序编译:源程序经过编译程序或汇编程序的处理生产目标模块。一个程序可有独立编写且不同功能的多个源程序模块组成,由于模块包含外部引用,即指向其他模块中的数据或者指令地址,或包含对库函数的引用,编译程序负责引用发生位置,其处理结果将产生相应的多个目标模块,每个目标模块都附在有共引用使用的内部符号表和外部符号表。
程序链接:链接程序的作用是根据目标模块之间的调用和依赖关系,将主调模块、被调模块以及所用到的库函数装配和链接成一个完整的可卸载执行模块。有三种方式:静态链接、动态链接、运行时链接。
程序装载:绝对装载,装载模块中的指令地址始终与其内存中的地址相同。可重定位装载,根据内存当时使用情况,决定将装载代码模块放入内存的物理地址位置.
动态运行装载:为提高内存利用率,装入内存的程序可换出在磁盘上,适当时候再换入到内存中,对换前后程序在内存中的位置可能不同,即允许进程真的内存映像在不同室友处于不同位置,此时模块内使用的地址比为相对地址.
3,什么是逻辑地址、物理地址?什么是静态地址重定位、动态地址重定位?
逻辑地址:指由程序产生的与段相关的偏移地址部分。有时我们也把逻辑地址称为虚拟地址
物理地址:物理内存,真实存在的插在主板内存槽上的内存条的容量的大小。内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可唯一标识一个存储单元,称为内存地址(或物理地址)。我们可以把内存看成一个从0字节一直到内存最大容量逐字节编号的存储单元数组,即每个存储单元与内存地址的编号相对应。
静态地址重定位:由装载程序实现装载代码模块的加载和地址转换,把它装入分配给进程的内存指定区域,其中的所有逻辑地址修改成内存物理地址,称静态地址重定位
动态地址重定位:由装载程序实现装载代码模块的加载,把它装入分配给进程的内存指定区域,但对链接程序处理过的应用程序的逻辑地址则不做任何修改,程序内存起始地址被置入硬件专用寄存器——重定位寄存器。程序执行过程中,每当CPU引用内存地址时,由硬件截取此逻辑地址,并在它被发送到内存之前加上重定位寄存器的值,以便实现地址转换,称动态地址重定位
4,固定分区管理的缺点是什么?
由于预先已规定分区大小,使得大作业无法装入,用户不得不采用覆盖等技术加以补救,这样不但加重用户负担,而且极不方便。
内存空间利用率不高,作业很少会恰好填满分区。
如果一个作业在运行过程中要求动态扩充内存空间,采用固定分区是相当困难的。
分区数目是在系统初启时确定的,这就会限制多道运行程序的道数,特别不适应分时系统交互型用户及内存需求变化很大的形情。
5,简述固定分区存储管理和可变分区存储管理的区别
固定分区存储管理:分区大小是事先固定的,因而可容纳作业的大小受到限制,而且当用户作业的地址空间小于分区的存储空间时,造成存储空间浪费。
可变分区存储管理:不是预先将内存划分分区,而是在作业装入内存时建立分区,使分区的大小正好与作业要求的存储空间相等。这种处理方式使内存分配有较大的灵活性,也提高了内存利用率。但是随着对内存不断地分配、释放,操作会引起存储碎片的产生
6,某系统采用可变分区方式管理主存储器,在主存分配情况如图所示时,有4个作业要求装入主存,它们各自所需的主存空间为:J1:8KB,J2:15KB,J3:30KB,J4:115KB,系统不允许移动。用最先适应分配算法,按2341的作业顺序装入,描述作业装入内存的过程。