《最新(自考02325李学干版)计算机系统结构课后习题.doc》由会员分享,可在线阅读,更多相关《最新(自考02325李学干版)计算机系统结构课后习题.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料(自考02325李学干版)计算机系统结构课后习题.第二章数据表示与指令系统1.数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么? 答: 数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。 数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。 除基本数据表示不可少外,高级数据表示的引入遵循以下原则: (1)看系统的效率有否提高,是否养活了实现时间和存储空间。 (2)
2、看引入这种数据表示后,其通用性和利用率是否高。 2.标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同? 答: 标志符数据表示与描述符数据表示的差别是标志符与每个数据相连,合存于同一存储单元,描述单个数据的类型特性;描述符是与数据分开存放,用于描述向量、数组等成块数据的特征。 描述符数据表示为向量、数组的的实现提供了支持,有利于简化高级语言程序编译中的代码生成,可以比变址法更快地形成数据元素的地址。但描述符数据表示并不支持向量、数组数据结构的高效实现。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵
3、列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。 3.堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用哪些操作提供了支持? 答: 通用寄存器型机器对堆栈数据结构实现的支持是较差的。表现在:(1)堆栈操作的指令少,功能单一;(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。 而堆栈型机器则不
4、同,表现在:(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。 堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。在程序调用时将返回地址、条件码、关键寄存器的内容等全部压入堆栈,待子程序返回时,再从堆栈中弹出。 4.设某机阶值6位、尾数48位,阶符和数符不在其内,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及
5、可表示的规格化数的总个数。 解: 依题意知: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)000最大阶(2p-1)26-126-126-1最小尾数值(rm(-1)1/21/81/16最大尾数值(1-rm(-m)1-2(-48)1-8(-16),即(1-2(-48)1-16(-12),即(1-2(-48)可表示的最小值1/21/81/16可表示的最大值263*(1-2(-48)863*(1-8(-16)1663*(1-16(
6、-12)阶的个数(2p)262626可表示的尾数的个数248*(2-1)/2816*(8-1)/81612*(16-1)/16可表示的规格化数的个数26*248*(2-1)/226*816*(8-1)/826*1612*(16-1)/16note: 可表示的最小值=rm(最小阶)*最小尾数值=rm0*rm(-1)=rm(-1); 可表示的最大值=rm(最大阶)*最大尾数值=rm(2p-1)*(1-rm(-m); 可表示的尾数的个数=rmm*(rm-1)/rm; 可表示的规格化数的个数=阶的个数*尾数的个数=2p*rmm*(rm-1)/rm。 5.(1)浮点数系统使用的阶基rp=2,阶值位数p=
7、2,尾数基值rm=10,以rm为基的尾数位数m=1,按照使用的倍数来说,等价于m=4, 试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。 (2)对于rp=2,p=2,rm=4,m=2,重复以上计算。 解: 依题意列下表: p=2,rm=10,m=1p=2,rm=4,m=2最小尾数值10-1=0.14-1=0.25最大尾数值1-10-1=0.91-4-2=15/16最大阶值2p-1=33可表示的最小值0.10.25可表示的最大值103*0.9=90043*15/16=60可表示数的个数3648题中“按照使用的倍数来说,等价于m=4,
8、” 这个m=4,因为2310=fbyte 通道极限流量应大于或等于设备对通道要求的流量fbyte。 如果字节多路通道上所挂设备台数为m,设备的速率为fi,为了不丢失信息,应满足: 1/(TS+TD)=m*fi fi也就是设备发出字节传送请求间隔时间(500s)的倒数,所以: m=4。 4.某虚拟存储器共8个页面,每页1024个字,实际主存为4096个字,采用页表法进行地址映象。映象表的内容如下表所示。 虚页号01234567实页号31232100装入位11001010注:我把虚页号加上了。 (1)列出会发生页面失效的全部虚页号; (2)按以下虚地址计算主存实地址:0,3728,1023,102
9、4,2055,7800,4096,6800。 解: (1)会发生页面失效的全部虚页号为:2,3,5,7。 (2) 虚地址虚页号页内位移装入位实页号页内位移实地址0001303072327836560页面失效页面失效无102301023131023409510241011010242055270页面失效页面失效无780076320页面失效页面失效无40964012020486800665610656656剖析: (1)根据页表法列出表2,当装入位为0时,即为页面失效,再找出相对应的虚页号即可。 (2)虚页号=虚地址/页面大小 页内位移量=虚地址虚页号*页面大小 实地址实页号*页面大小页内位移量
10、由于可以用替换算法解决页面失效的问题,所以,发生页面失效的虚页2,3,5,7仍然可以有相应的实地址,但这样要在页表中建立新的虚实地址对应关系,新的虚实地址对应关系和原来的对应关系相同的可能性就很小了。 5、一个段页式虚拟存储器。虚地址有2位段号、2位页号、11位页内位移(按字编址),主存容量为32K字。每段可有访问方式保护,其页表和保护位如下表所示。 段号0123访问方式只读可读/执行可读/写/执行可读/写虚页0所在位置实页9在辅存上页表不在主存内实页14虚页1所在位置实页3实页0页表不在主存内实页1虚页2所在位置在辅存上实页15页表不在主存内实页6虚页3所在位置实页12实页8页表不在主存内在
11、辅存上(1)此地址空间中共有多少个虚页? (2)当程序中遇到下列情况时 方式段页页内位移取数取数取数存数存数存数转移至此取数取数转移至此013021102311311032001102047421410050560写出由虚地址计算出实地址。说明哪个会发生段失效、页面或保护失效失效。 解答: (1)该地址空间中共有16个虚页。 (2)程序中遇到上表中各情况时,是否会发生段失效、页失效或保护失效及相应的主存实地址的情况如下表所示: 方式段页页内位移段失效页失效实页号实地址保护失效取数取数取数存数存数存数转移至此取数取数转移至此013021102311311032001102047421410050
12、560无无无无有无无无有无无无有无/有无有/无30无3无无8无无14614510无6184无无16484无无28732无无/有/无/有剖析: (1)虚地址中段号有2位,页号有2位,也就是每个程序最多只能有22=4个段,每个段至多只能有22=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.采用页式管理的虚拟存储
13、器,分时运行两道程序。其中,程序X为 DO 50 I=1,3B(I)=A(I)-C(I)IF(B(I)LE0)GOTO 40D(I)=2*C(I)-A(I)IF(D(I)EQ0)GOTO 5040E(I)=050CONTINUEData: 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个实页最为合适。 根据
14、题意,程序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: 分时运行在微观上是串
15、行的,就是说,分时运行时把时间划分为若干时间片,每个程序轮流占用时间片;在宏观上是并行的,就是说,每个程序在一个时间片内并不能运行完。总的来看,是同时运行的,所以两个程序分配的实页和不能大于8。 我不了解FORTRAN,找朋友把上面的源代码转成C了: main() int A=-4,2,0; int C=-3,0,1; for (i=0,i0) Ei=0; ; ;8.设一个按位编址的虚拟存储器,它应可对应1K个任务,但在一段较长时间内,一般只有4个任务在使用,故用容量为4行的相联寄存器组硬件来缩短被变换的虚地址中的用户位位数;每个任务的程序空间最大可达4096页,每页为512个字节,实主存容量
16、为220位;设快表用按地址访问存储器构成,行数为32,快表的地址是经散列形成;为减少散列冲突,配有两套独立相等比较电路。请设计该地址变换机构,内容包括: (1)画出其虚、实地址经快表变换之逻辑结构示意图; (2)相联寄存器组中每个寄存器的相联比较位数; (3)相联寄存器组中每个寄存器的总位数; (4)散列变换硬件的输入位数和输出位数; (5)每个相等比较器的位数; (6)快表的总容量(以位为单位)。 解: (1)依题意得知: 虚地址为34位,其中用户号为10位(对应1K的任务)、虚页号12位(每个任务4096页)、页内位移12位(每页512字节,512字节=512*8=1024*4=212) 实地址为20位,其中实页号8位,页内位移12位(与虚页页内位移对应) 相联寄存器的作用:把10位的用户号转换为2位的ID(因为一般只有4个任务在使用),并把ID与虚地址的虚页号合并到快表中查实页号。 快表的作用:相当于页表,即虚页号对实页号的对应关系。但又有所简化(原因是如果用用户号和虚页号与实页号对应,前者就有22位,现改进后虚页号只有14位了) (2)相联寄存器组中每个寄存器的相联比较位数为10(与虚地址中的用户号宽度对应) (3)相联寄存器组中每个寄存器的总数为12(用户号宽度+ID宽度) (4)散列变换硬件的输入位数为14位(虚页号宽度+相联寄存器中ID的