第四章 存储器管理
1、解释下列术语:逻辑地址、绝对地址、重定位、程序浮动、存储保护
答:逻辑地址:用户程序中使用的从“0”地址开始的连续地址。
绝对地址:主存储器以字节为单位编址单位,每个字节都有一个地址与其对应,这些主存储器的地址编号就是绝对地址。
重定位:为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放进行重定位,这种把逻辑地址转换成绝对地址的工作称为“重定位”或“地址转换”。重定位的方式有“静态重定位”和“动态重定位”两种。
程序浮动:若作业执行时,被改变了存放区域仍能正确执行,则称程序是可浮动的。采用动态重定位的系统支持“程序浮动”
存储保护:存储管理中为了防止各作业相互干扰和保护各区域内的信息不被破坏而采取的对各作业的存储区域进行保护的措施。
3、在可变分区管理方式下,采用移动技术有什么特点?移动一道作业时操作系统要做哪些工作?
答:采用移动技术的主要优点是:
1)可以使分散的空闲区集中起来,可以容纳新的作业,提高主存空间的利用率
2)方便作业执行过程中扩充主存空间,一道作业在执行中要求增加主存量时,只要移动邻近作业就可以增加它所点的分区长度。
移动一道作业时操作系统要进行的处理:
1)判断被移动的作业是否在与外围设备交换信息,如是则不能移动,否则可以移动。
2)操作系统在移动作业信息时先移动作业信息的存储位置。
3)修改主存分配表中和保存在进程控制块中的分区起始地址和长度信息。
4)采取必要措施,尽量减少移动的作业数和信息量,提高系统效率。
4、解释页式存储管理中为什么要设置页表和快表?
答:在页式存储管理中,主存被分成大小相等的若干块,同时程序逻辑地址也分成与块大小一致的若干页,这样就可以按页面为单位把作业的信息放入主存,并且可以不连续存放,为了在作业执行过程中准确地查表逻辑地址与绝对地址的的对应关系,就需要为每个作业建立一张页表,表示逻辑地址中的页号与主存中块号的对应关系。
页表一般存放在主存中,当要按给定的逻辑地址访问主存时,要先访问页表,计算出绝对地址,这样两次访主存延长了指令执行周期,降低了执行速度,而设置一个高速缓冲寄存器将页表中的一部分存放进去,这部分页表就是快表,访问主存时二者同时进行,由于快表存放的是经常使用的页表内容,访问速度很快,这样可以大大加快查找速度和指令执行速度。
5、什么叫虚拟存储器?怎样确定虚拟存储器的容量?
虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。如计算机的地址总线位数为32位,则最大的虚存容量为2^32=4294967296B=4GB
6、叙述页式虚拟存储器的基本原理。
答:页式虚拟存储器是在页式存储的基础上实现虚拟存储器的,其工作原理是:
• 首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存,并在页表中对相应的页面是否装入主存作出标志。
• 作业执行时若所访问的页面已经在主存中,则按页式存储管理方式进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。
• 若在装入页面时主存中无空闲块,则由操作系统根据某种“页面调度”算法选择适当的页面调出主存换入所需的页面。
7、用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为32K、10K、5K,228K,100K.现有五个作业J1,J2,J3,J4,J5.它们各需主存1K,10K,108K,28K和115K.若采用最先适应分配算法能把这五个作业按J1--J5的次序全部装入主存?你认为按怎样的次序装入这五个作业可使主存空间利用率最高?
答:按最先适应算法时32K空闲区可装入J1、J2,剩下21K。228K空闲区中装入J3,J4,剩下92K,结果是J5无法装入。仍按最先适应算法,若调整作业装入次序为J4、J1、J2、J3、J5。即在32K空闲区中依次装入J4(28K),J1(1K)(或先J1再J4),剩下3K,在10K空闲区中装入J3刚好,在228K空闲区中装入J3和J5, 剩下5K。这时的主存空间利用率最高。
9、有一个程序要把100*100数组置初值“0”,现假定有两个主存块可用来存放数组信息,主存块的大小为可存放200个数组元素,数组中的元素按行编址。两个主存块的初始状态都为空,若程序编制如下:
(a) Var A:array[1..100] of array[1..100] of integer;
for j:=1 to 100 do
for i:=1 to 100 do
A[i,j]=0
(b) Var A:array[1..100] of array[1.100] of integer;
for i:=1 to 100 do
for j:=1 to 100 do
A[i,j]=0
当采用LRU页面调度算法时各会产生多少次缺页中断?
答:由于主存地址是连续的,二维数组按行的顺序进行排列,在每个主存块可以存放二行数组,初始状态下主存中有两页、四行数组。
(a)方案编制的程序,第一次访问的是A[1,1],即第一个单元;第二次访问的是A[2,1],在主存中也就是访问第101个单元,这样,第一次调入的两个页只能命中四次,当访问[5,1]时就产生缺页中断,这时调入一个页面,包括两行,则访问[6,1]时命中。依次下去当访问[7,1],[9,1]...[99,1]时均产生缺页中断。内循环结束后,进入外循环,访问[1,2]...[100,2]...直到访问完每个数据。每隔一次访问均产生一次中断。因此本方案的总的缺页中断次数是:
50*100-2=4998 次。
(B)方案时,因为在主存中按[1,1],[1,2],[1,3]...[1,100]的顺序访问,则第一次访问的四行均没有中断,访问到[5,1]时,产生一次中断,调入一页,依此类推,访问到[7,1],[9,1]...[99,1]时产生中断,总共的中断次数为:
100/2-2=48 次
(根据LRU算法,每次调入的页面是一个页面)
(温馨提示:如果关于"江苏省自学考试报名及考试"问题不是很了解,还有什么疑问,请及时联系咨询老师:15755063059或者咨询在线老师
。)