资源描述
第二章 数据表示与指令系统
1.数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本标准是什么?
答: 数据表示是能由硬件直接识别和引用的数据类型。数据结构反应各种数据元素或信息单元之间的结构关系。
数据结构要通过软件映象变换成机器所具备的各种数据表示实现,因此数据表示是数据结构的组成元素。不一样的数据表示可为数据结构的实现提供不一样的支持,表目前实现效率和以便性不一样。数据表示和数据结构是软件、硬件的交界面。
除基本数据表示不可少外,高级数据表示的引入遵照如下标准:
(1)看系统的效率有否提升,是否养活了实现时间和存储空间。
(2)看引入这种数据表示后,其通用性和利用率是否高。
2.标志符数据表示与描述符数据表示有何区分?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不一样?
答: 标志符数据表示与描述符数据表示的差异是标志符与每个数据相连,合存于同一存储单元,描述单个数据的类型特性;描述符是与数据分开存储,用于描述向量、数组等成块数据的特性。
描述符数据表示为向量、数组的的实现提供了支持,有利于简化高级语言程序编译中的代码生成,能够比变址法更快地形成数据元素的地址。但描述符数据表示并不支持向量、数组数据结构的高效实现。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不但能迅速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。
3.堆栈型机器与通用存储器型机器的重要区分是什么?堆栈型机器系统结构为程序调用哪些操作提供了支持?
答: 通用存储器型机器对堆栈数据结构实现的支持是较差的。表目前:(1)堆栈操作的指令少,功效单一;(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈一般只用于保存于程序调用时的返回地址,少许用堆栈实现程序间的参数传递。
而堆栈型机器则不一样,表目前:(1)有高速存储器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是存储器的,容量是主存的;(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。
堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。在程序调用时将返回地址、条件码、核心存储器的内容等所有压入堆栈,待子程序返回时,再从堆栈中弹出。
4.设某机阶值6位、尾数48位,阶符和数符不在其内,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。
解: 依题意知:p=6 m=48 rm=2, 8, 16,m'=m/log2(rm),列下表:
p=6,m=48,rm=2(m'=48)
p=6,m=48,rm=8(m'=16)
p=6,m=48,rm=16(m'=12)
最小阶(非负阶,最小为0)
0
0
0
最大阶(2^p-1)
2^6-1
2^6-1
2^6-1
最小尾数值(rm^(-1))
1/2
1/8
1/16
最大尾数值(1-rm^(-m'))
1-2^(-48)
1-8^(-16),即(1-2^(-48))
1-16^(-12),即(1-2^(-48))
可表示的最小值
1/2
1/8
1/16
可表示的最大值
2^63*(1-2^(-48))
8^63*(1-8^(-16))
16^63*(1-16^(-12))
阶的个数(2^p)
2^6
2^6
2^6
可表示的尾数的个数
2^48*(2-1)/2
8^16*(8-1)/8
16^12*(16-1)/16
可表示的规格化数的个数
2^6*2^48*(2-1)/2
2^6*8^16*(8-1)/8
2^6*16^12*(16-1)/16
note:
可表示的最小值=rm^(最小阶)*最小尾数值=rm^0*rm^(-1)=rm^(-1);
可表示的最大值=rm^(最大阶)*最大尾数值=rm^(2^p-1)*(1-rm^(-m'));
可表示的尾数的个数=rm^m'*(rm-1)/rm;
可表示的规格化数的个数=阶的个数*尾数的个数=2^p*rm^m'*(rm-1)/rm。
5.(1)浮点数系统使用的阶基rp=2,阶值位数p=2,尾数基值rm=10,以rm为基的尾数位数m''=1,按照使用的倍数来说,等价于m=4, 试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。
(2)对于rp=2,p=2,rm=4,m'=2,重复以上计算。
解: 依题意列下表:
p=2,rm=10,m'=1
p=2,rm=4,m'=2
最小尾数值
10^-1=0.1
4^-1=0.25
最大尾数值
1-10^-1=0.9
1-4^-2=15/16
最大阶值
2p^-1=3
3
可表示的最小值
0.1
0.25
可表示的最大值
10^3*0.9=900
4^3*15/16=60
可表示数的个数
36
48
题中“按照使用的倍数来说,等价于m=4,” 这个m=4,因为2^3<10<2^4,等价为实际要4个二进制位,表示RM=10为基的一位
6.由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成3位成果,设计使下溢处理平均误差接近于零的ROM表,列出ROM编码表地址与内容的对应关系。
解: ROM编码表地址与内容的对应关系
地址
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
内容
000
001
001
010
010
011
011
100
100
101
101
110
110
111
111
111
7.变址寻址和基址寻址各适合用于何种场所?设计一个只用6位地址码就可指向一个大地址空间中任意64个地址之一的寻址机构。
答: 基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。变址寻址是对数组等数据块运算的支持,以利于循环。将大地址空间64个地址分块,用基址存储器指出程序所在块号,用指令中6位地址码表示该块内64 个地址之一,这么基址和变址相结合可访问大地址任意64个地址之一。例如地址空间很大,为0-1023,只用6位地址码就能够指向这1024个地址中的任意64个。
剖析: 例如地址空间很大,1024,就是提成16个块,块号放在存储器中,块内地址放在地址位中,存储器内容和地址位结合,就能达成要求了。
8.经统计,某机器14条指令的使用频度分别为:0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03。分别求出用等长码、Huffman码、只有两种码长的扩展操作码3种编码方式的操作码平均码长。
解: 等长操作码的平均码长=4位;Huffman编码的平均码长=3.38位;只有两种码长的扩展操作码的平均码长=3.4位。
9.若某机要求:三地址指令4条,单地址指令255条,零地址指令16条。设指令字长为12位.每个地址码长为3位。问能否以扩展操作码为其编码?假如其中单地址指令为254条呢?阐明其理由。
答: ①不能用扩展码为其编码。
∵指令字长12位,每个地址码占3位;
∴三地址指令最多是2^(12-3-3-3)=8条, 现三地址指令需4条,
∴可有4条编码作为扩展码,
∴单地址指令最多为4×2^3×2^3=2^8=256条,
现要求单地址指令255条,∴可有一条编码作扩展码
∴零地址指令最多为1×2^3=8条
不满足题目要求
∴不也许以扩展码为其编码。
②若单地址指令254条,能够用扩展码为其编码。
∵依据①中推导,单地址指令中可用2条编码作为扩展码
∴零地址指令为2×2^3=16条,满足题目要求
note:
三地址指令格式: 操作码 地址码 地址码 地址码
3位 3位 3位 3位
单地址指令格式: 操作码 地址码
9位 3位
所此前面9位因为三地址指令用了最前面3位,尚有中间6位可作为编码(也就是总共能够有9位作为单地址指令的指令操作码的编码)。减去3地址指令的4条,有4*2^6=256条,但因为韪目要求要有255条,因此剩余一个编码,已经用了9位的所有编码,最后零地址指令(所有12位都可作为操作码的编码)尚有1*2^3=8 (这是12位编码中最后三位的)若只要求254种,则能够有(256-254)*2^3=16条
10.某机指令字长16位。设有单地址指令和双地址指令两类。若每个地址字段为6位.且双地址指令有X条。问单地址指令最多能够有多少条?
答: 单地址指令最多为(16-X)×2^6
P.S.双地址指令最多是2^(16-6-6)=2^4=16条, 现双地址指令有X条,
∴可有(16-X)条编码作为扩展码,
∴单地址指令最多为(16-X)×2^6=256条
11.何谓指令格式的优化?简明列举包括操作码和地址码两部分的指令格式优化可采取的各种途径和思绪。
答: 指令格式的优化指怎样用最短位数表示指令的操作信息和地址信息,使程序中指令的平均字长最短。
①操作码的优化
采取Huffman编码和扩展操作码编码。
②对地址码的优化:
采取多个寻址方式;
采取0、1、2、3等多个地址制;
在同种地址制内再采取多个地址形式,如存储器-存储器型、存储器-主存型、主存-主存型等;
在维持指令字在存储器内按整数边界存储的前提下,使用多个不一样的指令字长度。
12.某模型机9条指令使用频率为:
ADD(加) 30% SUB(减) 24% JOM(按负转移) 6%
STO(存) 7% JMP(转移) 7% SHR(右移) 2%
CIL(循环) 3% CLA(清加) 20% STP(停机) 1%
要求有两种指令字长,都按双操作数指令格式编排,采取扩展操作码,并限制只能有两种操作码码长。设该机有若干通用存储器,主存为16位宽,按字节编址,采取按整数边界存储。任何指令都在一个主存周期中取得,短指令为存储器-存储器型,长指令为存储器-主存型,主存地址应能变址寻址。
(1)仅依照使用频率,不考虑其他要求,设计出全Huffman操作码,计算其平均码长;
(2)考虑题目所有要求,设计优化实用的操作形式,并计算其操作码的平均码长;
(3)该机允许使用多少可编址的通用存储器?
(4)画出该机两种指令字格式,标出各字段之位数;
(5)指出访存操作数地址寻址的最大相对位移量为多少个字节?
解:
第(1)和(2)中Huffman和扩展操作码的编码及平均码长如下表:
指令Ii
使用频度Pi
Huffman编码
扩展操作码编码
I1
I2
I3
I4
I5
I6
I7
I8
I9
30%
24%
20%
7%
7%
6%
3%
2%
1%
10
00
01
1100
1101
1110
11110
111110
111111
00
01
10
11000
11001
11010
11011
11100
11101
西个马pili
2.61
2.78
(3)8个。
(4)两种指令格式如下图所示:
2位 3位 3位
OP R1 R2
操作码 存储器1 存储器2
5位 3位 3位 5位
OP R1 X d
操作码 存储器1 变址存储器 相对位移
主存逻辑地址
(5)访存操作数地址寻址的最大相对位移量为32个字节。
13.设计RISC机器的一般标准及可采取的基本技术有那些?
答: 一般标准:
(1)确定指令系统时,只选择使用频度很高的指令及少许有效支持操作系统,高级语言及其他功效的指令;
(2)减少寻址方式种类,一般不超出两种;
(3)让所有指令在一个机器周期内完成;
(4)扩大通用存储器个数,一般不少于32个,尽也许减少访存次数;
(5)大多数指令用硬联实现,少数用微程序实现;
(6)优化编译程序,简单有效地支持高级语言实现。
基本技术:
(1)按RISC一般标准设计,即确定指令系统时,选最常用基本指令,附以少数对操作系统等支持最有用的指令,使指令精简。编码规整,寻址方式种类减少到1、2种。
(2)逻辑实现用硬联和微程序相结合。即大多数简单指令用硬联方式实现,功效复杂的指令用微程序实现。
(3)用重叠存储器窗口。即:为了减少访存,减化寻址方式和指令格式,简单有效地支持高级语言中的过程调用,在RISC机器中设有大量存储嚣,井让各过程的存储器窗口部分重叠。
(4)用流水和延迟转移实现指令,即可让本条指令执行与下条指令预取在时间上重叠。另外,将转移指令与其前面的一条指令对换位置,让成功转移总是在紧跟的指令执行之后发生,使预取指令不作废,节约一个机器周期。
(5)优化设计编译系统。即尽力优化存储器分派,减少访存次数。不但要利用常规伎俩优化编译,还可调整指令执行次序,以尽也许减少机器周期等。
14.简明比较CISC机器和RISC机器各自的结构特点,它们分别存在哪些不足和问题?为何说此后的发展应是CISC和RISC的结合?
答: CISC结构特点:机器指令系统庞大复杂。
RISC结构特点:机器指令系统简单,规模小,复杂度低。
CISC的问题:
(1)指令系统庞大,一般200条以上;
(2)指令操作繁杂,执行速度很低;
(3)难以优化生成高效机器语言程序,编译也太长,太复杂;
(4)因为指令系统庞大,指令的使用频度不高,减少系统性能价格比,增加设计人员负担。
RISC的问题;
(1)因为指令少,在原CISC上一条指令完成的功效目前需多条RISC指令才能完成,加重汇编语言程序设计负担,增加了机器语言程序长度,加大指令信息流量。
(2)对浮点运算和虚拟存储支持不很强。
(3)RISC编译程序比CISC难写。
因为RISC和CISC各有优缺陷,在设计时,应向着二者结合,取长补短方向发展。
第三章 总线、中断与输入输出系统
1.简明举出集中式串行链接,定期查询和独立祈求3种总线控制方式的优缺陷。同时分析硬件产生故障时通讯的可靠性。
答:
控制方式
优点
缺陷
串行链接
(1)选择算法简单。
(2)控制线数少,只需要3根,且不取决于部件数量。
(3)可扩充性好。
(1)对“总线可用”线及其有关电路失效敏感。
(2)灵活性差,假如高优先级的部件频繁要求使用总线,离总线控制器远的部件就难以取得总线使用权。
(3)“总线可用”信号次序脉动地通过各个部件,总线的分派速度慢。
(4)受总线长度的限制,增减和移动部件受限制。
定期查询
(1)灵活性强,部件的优先次序由程序控制。
(2)可靠性高,不会因某个部件失效而影响其他部件使用总线。
(1)总线的分派速度不能很高。
(2)控制较为复杂。
(3)控制线数多,需要2+log2N根。
(4)可扩充性差。
独立祈求
(1)灵活性强,部件的优先次序由程序控制。
(2)能以便地隔离失效部件的祈求。
(3)总线的分派速度快。
(1)控制较为复杂。
(2)控制线数多,要控制N个设备,需要有2N+1根控制线。
2.设中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如下:
中断处理程序级别
中断级屏蔽位
1级
2级
3级
4级
第1级
0
0
0
0
第2级
1
0
1
0
第3级
1
0
0
0
第4级
1
0
1
0
(1)当中断响应优先次序为1→2→3→4时,其中断处理次序是什么?
(2)假如所有的中断处理都各需3个单位时间,中断响应和中断返回时间相对中断处理时间少得多。当机器正在运行用户程序时,同时发生第2,3级中断祈求,过两个单位时间,又同时发生第1,4级中断祈求,试画出程序运行过程示意图。
答:
(1)当中断响应优先次序为1→2→3→4时,其中断处理次序为1→3→4→2。
(2)
3.若机器共有5级中断,中断响应优先次序为1→2→3→4→5,要求其实际的中断处理次求序1→4→5→2→3。
(1)设计各级中断处理程序的中断级屏蔽位(令“1”对应于开放,“0”对应于屏蔽);
(2)若在运行用户程序时,同时出现第4,2级中断祈求,而在处理第2级中断未完成时,又同时出现第1,3,5级中断祈求,请画出此程序运行过程示意图。
答: (1)中断级屏蔽位设置如下图:
中断处理程序级别
中断级屏蔽位
1级
2级
3级
4级
5级
第1级
1
1
1
1
1
第2级
0
1
1
0
0
第3级
0
0
1
0
0
第4级
0
1
1
1
1
第5级
0
1
1
0
1
(2)中断过程示意图:如图
2、4中断同时出现,进行排队器。
首先响应第2
级中断祈求,屏蔽字为01100,表白其对第4级中断祈求开放,因此转去响应第4级中断祈求并进行处理。
响应4,中断4运行结束,回2。
1、3、5进入排队器。
第2级中断祈求的处理祈求被中断,转去响应第1级中断祈求并进行处理。
响应第5级中断祈求并进行处理。
继续响应并处理第2级中断处理祈求,结束后返回用户程序。
最后处理第3级中断祈求。
4.简述字节多路,数组多路和选择通道的数据传送方式。
答: 字节多路通道适合用于连接大量的像光电机等字符类低速设备。这些设备传送一个字符(字节)的时间很短,但字符(字节)间的等候时间很长。通道“数据宽度”为单字节,以字节交叉方式轮番为多台设备服务,使效率提升。字节多路通道可有多个子通道,同时执行多个通道程序。
数组多路通道适合于连接多台象磁盘等高速设备。这些设备的传送速率很高,但传送开始前的寻址辅助操作时间很长。通道“数据宽度”为定长块,多台设备以成组交叉方式工作,以充足利用并尽也许重叠各台高速设备的辅助操作时间。传送完K个字节数据,就重新选择下个设备。数组多路通道可有多个子通道,同时执行多个通道程序。
选择通道适合于连接象磁盘等优先级高的高速设备,让它独占通道,只能执行一道通道程序。通道“数据宽度”为可变长块,一次将N个字节所有传送完,在数据传送期只选择一次设备。
5.假如通道在数据传送期中,选择设备需9.8μs,传送一个字节数据需0.2μs。某低速设备每隔500μs发出一个字节数据传送祈求,问至多可接几台这种低速设备?对于如下A~F6种高速设备,一次通讯传送的字节数不少于1024个字节,问哪些设备能够挂在此通道上?哪些则不能?其中A—F设备每发出一个字节数据传送祈求的时间间隔分别为(单位为μs):
表3-5
设备
A
B
C
D
E
F
发申请间隔(μs)
0.2
0.25
0.5
0.19
0.4
0.21
答: (1)至多可连接50台低速的外设。
剖析:
依照题意可知:低速设备应挂接在字节多路通道上,字节多路通道的通道极限流量为:
fmax.byte=1/(TS+TD)>=fbyte
通道极限流量应不小于或等于设备对通道要求的流量fbyte。
假如字节多路通道上所挂设备台数为m,设备的速率为fi,为了不丢失信息,应满足:
1/(TS+TD)>=m*fi
fi也就是设备发出字节传送祈求间隔时间(500μs)的倒数,因此:
m<=1/((TS+TD)*f)=500/(9.8+0.2)=50(台)
(2)设备B,C,E,F能够挂在此通道上,设备A,D则不能。
剖析:
思绪一:从传送字节速率上入手。
A~F是高速设备,应挂接在选择通道上,选择通道的极限流量为:
fmax.select=N/(TS+N*TD)=1/((TS/N)+TD)=1/((9.8/1024)+0.2)=1/0.21(约)
通道上所挂设备的最大速率fi.max应小于或等于通道的极限流量。
由表3-5可得出
设备
A
B
C
D
E
F
传送速率(B/μs)
1/0.2
1/0.25
1/0.5
1/0.19
1/0.4
1/0.21
因此,B、C、E、F可挂在该通道上。A、D不能。
思绪二:从传送字节时间上入手。
对于高速设备,因为一次传送字节数不少于1024byte
∴该通道一次传送数据的时间为9.8μs+1024×0.2μs=214.6μs
由表3-5可得出每台设备发送1024字节的时间间隔分别为:
设备
A
B
C
D
E
F
传送时间(μs)
204.8
256
512
194.56
409.6
215.04
∴为使数据不丢失,B、C、E、F可挂在该通道上。A、D不能。
6.某字节多路通道连接6台外设,某数据传送速率分别如表中所列。
设备
1
2
3
4
5
6
传送速率(KB/s)
50
15
100
25
40
20
(1)计算所有设备都工作时的通道实际最大流量:
(2)假如设计的通道工作周期使通道极限流量恰好与通道最大流量相等,以满足流量设计的基本要求,同时让速率越高的设备被响应的优先级越高。当6台设备同时发出祈求开始,画出此通道在数据传送期内响应和处理各外设祈求的时间示意图。由此你发觉了什么问题?
(3)在(2)的基础上,在哪台设备内设置多少个字节的缓冲器就能够防止设备信息丢失?那么,这是否说书中有关流量设计的基本要求是没有必要的了呢?为何?
解: (1)实际最大流量=50+15+l00+25+40+20=250KB/S。
(2)通道响应和处理各设备祈求的时间示意图
由此发觉因为高速设备的响应优先级高,使低速设备2导致数据丢失。
(3)在2中各设两个字节的缓冲区即可。这并不阐明流量设计的基本条件是无须要的,因为若基本条件不满足,无论设备优先级怎样确定总有设备的信息会丢失。
剖析:
(2)由各设备的传送字节速率可解其连续发出传送祈求的时间间隔分别为:
设备
1
2
3
4
5
6
发申请间隔(μs)
20
67(约)
10
40
25
50
7.通道型I/O系统由一个字节多路通道A(其中包括两个子通道Al和A2),两个数组多路通道B1和B2及一个选择通道C组成,各通道所接设备和设备的数据传送速率如表所示。
(1)分别求出各通道应具备多大设计流量才不会丢失信息;
(2)设I/O系统流量占主存流量的1/2时才算流量平衡,则主存流量应达成多少?
通道号
所接设备的数据传送速率(KB/s)
字节多路通道
子通道A1
50 35 20 20 50 35 20 20
子通道A2
50 35 20 20 50 35 20 20
数组多路通道B1
500 400 350 250
数组多路通道B2
500 400 350 250
选择通道C
500 400 350 250
解: (1)要不丢失信息,各通道需要达成的流量:字节多路通道子通道A1:0.25KB/S;字节多路通道子通道A2:0.25KB/S;数组多路通道B1:500KB/s;数组多路通道B2:500KB/s;选择通道C:500KB/s。
(2)主存流量应达成4MB/S。
剖析:
(1)设备要求字节多路通道或其子通道的实际最大流量,是该通道所接各设备的字节传送速率之和;
设备要求数组多路通道或选择通道的实际最大流量,是该通道所接各设备的字节传送速率中的最大者。
(2)I/O系统中,各种通道和子通道能够并行工作,因此,I/O系统的最大流量应等于各通道最大流量之和。
第四章 存储体系
1.设二级虚拟存储器的TA1=10-7s、TA2=10-2s,为使存储层次的访问效率e达成最大值的80%以上,命中率H最少要求达成多少?实际上这么高的命中率是极难达成的,那么从存储层次上怎样改进?
解: e=TA1/TA=TA1/(H*TA1+(1-H)*TA2)≥80%,H≥(10^5-5/4)/(10^5-1)。
这么的命中率极难达成。为了减少对H的要求,能够选择高命中率的算法,能够减少相邻两级的访问速度差和容量差(这么做不利于减少存储器的平均每位价格),可在主、辅存储器间加一层电子磁盘,使存储体系中相邻两级的访问时间比不太大。
2、程序存储在模32单字交叉存储器中,设访存申请队的转移概率λ为25%,求每个存储周期能访问到的平均字数。当模数为16呢?由此你可得到什么结论? 解:B=[ 1-(1-λ)^m] /λ
解: 由λ=0.25,m=32 求得:B=4-4*(3/4)^32
同理,m=16时 ,B=4-4*(3/4)^16
可得出,在λ=0.25时,m=32的平均访问字数不小于m=16时的平均访问字数。
3、设主存每个分体的存取周期为2μs,宽度为4个字节。采取模m多分体交叉存取,但实际频宽只能达成最大频宽的0.6倍。现要求主存实际频宽为4MB/S,问主存模数m应取多少方能使二者速度基本适配?其中m取2的幂。
解: m=4
剖析:
依照题意,模m多分体交叉的最大频宽为:分体数*单体频宽=m*分体的宽度/分体的存取周期=m*4B/2μs,因此有0.6*m*4/2>=4。
4.某虚拟存储器共8个页面,每页1024个字,实际主存为4096个字,采取页表法进行地址映象。映象表的内容如下表所示。
虚页号
0
1
2
3
4
5
6
7
实页号
3
1
2
3
2
1
0
0
装入位
1
1
0
0
1
0
1
0
注:我把虚页号加上了。
(1)列出会发生页面失效的所有虚页号;
(2)按如下虚地址计算主存实地址:0,3728,1023,1024,2055,7800,4096,6800。
解:
(1)会发生页面失效的所有虚页号为:2,3,5,7。
(2)
虚地址
虚页号
页内位移
装入位
实页号
页内位移
实地址
0
0
0
1
3
0
3072
3278
3
656
0
页面失效
页面失效
无
1023
0
1023
1
3
1023
4095
1024
1
0
1
1
0
1024
2055
2
7
0
页面失效
页面失效
无
7800
7
632
0
页面失效
页面失效
无
4096
4
0
1
2
0
2048
6800
6
656
1
0
656
656
剖析:
(1)依照页表法列出表2,当装入位为0时,即为页面失效,再找出相对应的虚页号即可。
(2)虚页号=虚地址/页面大小
页内位移量=虚地址-虚页号*页面大小
实地址=实页号*页面大小+页内位移量
因为能够用替代算法处理页面失效的问题,因此,发生页面失效的虚页2,3,5,7仍然能够有对应的实地址,但这么要在页表中建立新的虚实地址对应关系,新的虚实地址对应关系和本来的对应关系相同的也许性就很小了。
5、一个段页式虚拟存储器。虚地址有2位段号、2位页号、11位页内位移(按字编址),主存容量为32K字。每段可有访问方式保护,其页表和保护位如下表所示。
段号
0
1
2
3
访问方式
只读
可读/执行
可读/写/执行
可读/写
虚页0所在位置
实页9
在辅存上
页表不在主存内
实页14
虚页1所在位置
实页3
实页0
页表不在主存内
实页1
虚页2所在位置
在辅存上
实页15
页表不在主存内
实页6
虚页3所在位置
实页12
实页8
页表不在主存内
在辅存上
(1)此地址空间中共有多少个虚页?
(2)当程序中遇到下列情况时
方式
段
页
页内位移
取数
取数
取数
存数
存数
存数
转移至此
取数
取数
转移至此
0
1
3
0
2
1
1
0
2
3
1
1
3
1
1
0
3
2
0
0
1
10
2047
4
2
14
100
50
5
60
写出由虚地址计算出实地址。阐明哪个会发生段失效、页面或保护失效失效。
解答: (1)该地址空间中共有16个虚页。
(2)程序中遇到上表中各情况时,是否会发生段失效、页失效或保护失效及对应的主存实地址的情况如下表所示:
方式
段
页
页内位移
段失效
页失效
实页号
实地址
保护失效
取数
取数
取数
存数
存数
存数
转移至此
取数
取数
转移至此
0
1
3
0
2
1
1
0
2
3
1
1
3
1
1
0
3
2
0
0
1
10
2047
4
2
14
100
50
5
60
无
无
无
无
有
无
无
无
有
无
无
无
有
无
/
有
无
有
/
无
3
0
无
3
无
无
8
无
无
14
6145
10
无
6184
无
无
16484
无
无
28732
无
无
/
有
/
/
无
/
/
有
剖析:
(1)虚地址中段号有2位,页号有2位,也就是每个程序最多只能有2^2=4个段,每个段至多只能有2^2=4页,因此该地址空间中共有4*4=16个虚页。
(2)先从题意得知:
实地址:15位,其中实页号4位,页内位移11位
页大小为2K字(由页内位移得知)
6.设某程序包括5个虚页,其页地址为4,5,3,2,5,1,3,2,2,5,1,3。当使用LRU算法替代时,为取得最高命中率,最少应分派给该程序几个实页?其也许的最高命中率为多少?
7.采取页式管理的虚拟存储器,分时运行两道程序。其中,程序X为
DO 50 I=1,3
B(I)=A(I)-C(I)
IF(B(I)·LE·0)GOTO 40
D(I)=2*C(I)-A(I)
IF(D(I)·EQ·0)GOTO 50
40 E(I)=0
50 CONTINUE
Data: A=(-4,+2,0)
C=(-3,0,+1)
每个数组分别放在不一样的页面中;而程序Y在运行过程中,其数组将依次用到程序空间的第3,5,4,2,5,3,1,3,2,5,1,3,1,5,2页。假如采取LRU算法,实存却只有8页位置可供存储数组之用。试问为这两首程序的数组分别分派多少个实页最为适宜?为何?
解答: 分别分派给程序X和Y的数组4个实页最为适宜。
依照题意,程序X依次调用数组A,C,B,B,E, A,C,B,B,C,A,D,D,E, A,C,B,B,E中的数据。
设程序X中的数组A,B,C,D,E分别存储于程序空间的第1,2,3,4,5页,则程序的页地址流为:1,3,2,2,5, 1,3,2,2,3,1,4,4,5, 1,3,2,2,5。
分析使用LRU算法对程序X的页地址流进行堆栈处理的过程可知,分派给程序X的数组5个实页最为适宜;分析使用LRU算法对程序Y的页地址流进行堆栈处理的过程可知,分派给程序Y的数组4个实页最为适宜。
但实存只有8页位置可供存储数组之用,因此,分别分派给程序X和Y的数组4个实页。
note:
分时运行在微观上是串行的,就是说,分时运行时把时间划分为若干时间片,每个程序轮番占用时间片;在宏观上是并行的,就是说,每个程序在一个时间片内并不能运行完。总的来看,是同时运行的,因此两个程序分派的实页和不能不小于8。
我不了解FORTRAN,找朋友把上面的源代码转成C了:
main()
{
int A[]={-4,2,0};
int C[]={-3,0,1};
for (i=0,i<>0)
E[i]=0;
};
};
}
8.设一个按位编址的虚拟存储器,它应可对应1K个任务,但在一段较长时间内,一般只有4个任务在使用,故用容量为4行的相联存储器组硬件来缩短被变换的虚地址中的用户位位数;每个任务的程序空间最大可达4096页,每页为512个字节,实主存容量为2^20位;设快表用按地址访问存储器组成,行数为32,快表的地址是经散列形成;为减少散列冲突,配有两套独立相等比较电路。请设计该地址变换机构,内容包括:
(1)画出其虚、实地址经快表变换之逻辑结构示意图;
(2)相联存储器组中每个存储器的相联比较位数;
(3)相联存储器组中每个存储器的总位数;
(4)散列变换硬件的输入位数和输出位数;
(5)每个相等比较器的位数;
(6)快表的总容量(以位为单位)。
解:
(1)依题意得知:
虚地址为34位,其中用户号为10位(对应1K的任务)、虚页号12位(每个任务4096页)、页内位移12位(每页512字节,512字节=512*8=1024*4=2^12)
实地
展开阅读全文