408-2014

一、单项选择题

        1.下列程序段的时间复杂度是_______。

count=0;
for(k=1;k<=n;k=k*2)for(j=1;j<=n;j++)count++;

        A.O(\log_{2}n)        B.O(n)        C.O(n\log_{2}n)        D.O(n*n)

        解答:C

        外层循环的时间复杂度为 O(\log_{2}n)   ,内层循环的时间复杂度为 O(n),因此结果为C。

        

        2.假设栈初始为空,将中缀表达式 a/b+(c*d-e*f)/g 转换为等价的后缀表达式的过程中,当扫描到 f 时,栈中的元素依次是_____。

        A.+(*-        B.+(-*        C./+(*-*        D./+-*

        解答:B

        根据优先级计算, a/b+,当前符号是 +, / 优先级比 + 高,且后面是 + ,无更高优先级,因此计算 a/b

        a/,/ 入栈

        a/b+, /出栈, 计算 a/b,+ 入栈

        a/b+(,(入栈

        a/b+(c*,* 入栈

        a/b+(c*d-, *出栈,计算 c*d,-入栈

        a/b+(c*d-e*f  *入栈

        因此选B

        3.循环队列放在一维数组 A[0...M-1] 中,end1 指向队头元素,end2 指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳 M-1 个元素。初始时为空。下列判断队空和队满的条件中,正确的是_______。

        A.队空:end1==end2         队满:end1== (end2+1)mod m

        B.队空:end1==end2        队满:end2==(end1+1) mod m-1

        C.队空:end2==(end1+1)mod m        队满:end1==(end2 +1)mod m

        D.队空:end1==(end2 +1) mod m         队满:end2==(end1+1)mod (m-1)

        解答:A

        假设队头为 A0,只在 end1 处出队,只在 end2 处入队。 end1 指向队头元素,因此出队时 end1 是在出队后后移一个单位;end2 指向队尾元素的后一个位置,因此 end2 是在入队后后移一个位置。因此初始时,end1=end2。

        若只在 end2 处入队直至队满。此时 end1 指向 A[0],end2 指向 A[m-1],end1== (end2+1)mod m。

        综上所述,选 A

        4.若对如下二叉树进行中序线索化,则节点 x 的左、右线索分别是_____.

        

        A.e、c        B.e、a        C.d、c        D.b、a

        解答:D

        中序遍历得到序列 debxac,因此左右节点的线索分别是 b、a,选D

        5.将森林 F 转换为对应的二叉树 T,F 中叶节点的个数等于______。

        A.T 中叶节点的个数        B.T 中度为 1 的节点的个数

        C.T 中左孩子指针为空的节点个数        D.T 中右孩子节点为空的个数

        解答:

        森林 F 转换为对饮二叉树 T 时,左子节点指向左边第一个孩子,右子节点指向兄弟节点,故选 C。

        6. 5 个字符有如下四种编码方案,不是前缀编码的是_____.

        A.01,0000,0001,001,1        B.011,000,001,010,1

        C.000,001,010,011,100        D.0,100,110,1110,1100

        解答:D

        前缀编码:如果在一个编码方案中,任何一个编码都不是其他任何一个编码的前缀(最左子串),则该编码称为前缀编码。

       选项 D  中 110 是 1100 的前缀,因此该方案不是前缀编码

        7.对如下所示有向图进行拓扑排序,得到的拓扑序列可能是____。       

        A.3,1,2,4,5,6        B.3,1,2,4,6,5        C.3,1,4,2,5,6        D.3,1,4,2,6,5

        解答:D

        A 项 和 B 项 ,4 应该在 2 之前

        C 项,6 应当在 5 之前

        8.用哈希(散列)方式处理冲突(碰撞)时可能出现堆积(聚集)现象。下列选项中,会受堆积现象直接影响的是_____。        

        A.存储效率        B.散列函数        C.装载(装填)因子        D.平均查找长度        

        解答:D

        哈希表的存储效率:哈希表中的元素和存储空间的比例。不会收到堆积现象的直接影响。

        散列函数明显不会收到直接影响。

        装载因子指的哈希表中已使用的元素个数与哈希表的大小之比。

        平均查找长度:找到一个特定元素的期望关键字比较次数。

        9.在一颗具有 15 个关键字的 4 阶 B 树中,含关键字的节点个数最多是_______。

        A.5         B.6        C.10        D.15

        解答:D

        一颗 M 阶 B 树的定义如下:

        (1)每个节点最多有 m-1 个关键字

        (2)根节点最少可以有 1 个关键字

        (3)非根节点至少有 Math.ceil(m/2)-1个关键字

        (4)每个节点中的关键字都按照从小到大排序,每个关键字的左子树中的所有关键字均小于他,每个关键字的右子树的所有关键字均大于他

        (5)所有叶子节点都位于同一层。

        节点数目最多时,每个节点的关键字最少,根节点含有 2 个关键字,非根节点至少有Math.ceil(4/2) -1=1 个关键字。

        第一层,根节点。本层需要至少 1 个关键字

        第二层,2 个节点。本层需要至少 2 个关键字

        第三层,4 个节点。本层需要至少 4 个关键字

        第四层,8 个节点。本层需要至少 8 个关键字。本层及以上需要至少 15 个关键字。故最多有8 +4+2+1=15 个节点。

        10.用希尔排序方法对一个数据序列进行排序时,若第一趟的排序结果为  9,1,4,13,7,8,20,23,15,则该趟排序所采用的增量(间隔)可能是_____。

        A.2        B.3        C.4        D.5

        解答:

        间隔为 2 时,9,4,7,20,15 无序,排除。

        间隔为 3 时,9,13,20有序,1,7,24 有序,4,8,15 有序,因此可能是 2。选 B。

        11.下列选型中,不可能是快速排序第 2 趟排序结果的是______。

        A.2,3,5,4,6,7,9        B.2,7,5,6,4,3,9        C.3,2,5,4,7,6,9        D.4,2,3,5,7,6,9

        解答:C

        A 项, 第一趟选 3,第二趟选 6

        B 项,第一趟选 2,第二趟选 9

        C 项,第一趟选 9,第二趟选无可选,因此选 C

        12.程序 P 在机器 M 上的执行时间是 20 秒,遍历优化后,P 执行指令数减少到原来的 70%,而 CPI 增加到原来的 1.2 倍,则 P 在 M 上的执行时间为______。

        A.8.4s        B.11.7s        C.14s        D.16.8s

        解答:D

        20*0.7*1.2=0.84*20=16.8s

        13.若 x=103,y=-25,则下列表达式采用 8 位定点补码运算是实现时,会发生溢出的是______。

        A.x+y        B.-x+y        C.x-y        D.-x-y

        解答:C

        8 位定点补码表示范围是 -128~127。故选 C

        14.float 型数据常用 IEEE754 单精度浮点格式表示。假设两个 float 型变量 x 和 y 分别存放在 32 位寄存器 f1 和 f2 中 ,若 (f1)=CC90 0000H,(f2)=B0C0 0000H,则 x 和 y 之间的关系是____。

        A.x<y  且符号相同        B.x<y 且符号不同

        C.x>y 且符号相同        D.x>y 且符号不同

        解答:A

        IEEE754 单精度浮点格式表示:

        1 位符号位,8 位指数位(真正指数值位 E-127),23 位尾数。

        f1=CC90 0000H 对应二进制为 1100 1100 1001 0000 0000 0000 0000 0000B

        f2=B0C0 0000H 对应二进制为 1011 0000 1100 0000 0000 0000 0000 0000B

        f1 于 f2 符号位均为 1,因此符号相同。

        f1 的指数部分为 1001 1001B即 153 ,真正指数位为 153-127= 26,尾数部分为 0010B,因此 f1 为 -1.001*2^26。

        f2 的指数部分为 0110 0001B,真正指数为 0110 0001B-0111 1111B=1110 0010B 即 -30,因此 f2 为 -1.1*2^-30

        综上所述,f1<f2 即 x<y,故选 A

        15.某容量为 256MB 的存储器由若干 4M*8 位的 DRAM 芯片构成,该 DRAM 的地址引脚和数据引脚总数是_____.

        A.19        B.22        C.30        D.36        

        解答:A

        DRAM (Dynamic Random Access Memory)即动态随机存取存储器。

        地址引脚主要用于传输内存地址信号,控制芯片的读写操作。        

        数据引脚主要用于传输数据信号,负责传输数据的输入于输出。

        芯片容量为 4M*8 即 2^22 * 8。因此需要 22 条地址线,8 条数据线。DRAM 芯片采用地址复用技术(地址分两次发送,是地址线条数降低)的,因此仅需 22/2=11 条地址线和 8 条数据线。总数为 19。

        16.采用指令 Cache 和 数据 Cache 分离的主要目的是_______。

        A.降低 Cache 的缺失损失        B.提高 Cache 的命中率

        C.降低 CPU 平均访存时间        D.减少指令流水线资源冲突

        解答:D

        指令 Cache 和数据 Cache 分离后,取值和取数在不同的Cache 中寻找,那么指令流水线中的取值部分和取数部分可以很好的避免冲突。

        17.某计算机有 16 个通用寄存器,采用 32 位定长指令字,操作码字段(含寻址方式位)为 8 位,Store 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则 Store 指令中的偏移量的取值范围是_____。

        A.-32768~+32767        B.-32767~+32768        C.-65536~+65535        D.-65535~+65536

        解答:

        基址寻址方式

        操作码字段占 8 位,因此操作数占 32-8=24 位,源操作数采用寄存器直接寻址,有 16=2^4 个通用寄存器,因此需要 4 位来表明源操作数的寄存器和基址寄存器,剩余 24-4-4=16 位来表明偏移量。16 位补码表示范围为 B。

        18.某计算机采用微程序控制器,共有 32 条指令,公共的取指令微程序包含 2 条微指令,各指令对应的微程序平均由 4 条微指令产生,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段至少为____。

        A.5        B.6        C.8        D.9

        解答:

        下地址字段法:下断地址指明下一条执行的微指令地址。

        有 32 条指令,每个指令由 4 条微指令产生,因此需要 32*4=2^7= 128条指令。公共的取指令微程序包含 2 条 微指令。因此一共需要 130 条微指令,至少要有 8 位。

        19.某同步总线采用数据线和地址线复用方式,其中地址/数据线有 32 根,总线时钟频率为 66MHz,每个时钟周期传输两次数据(上升沿和下降沿各传送一次数据),则该总线的最大数据传输速率(总线带宽)为______

        A.132MB/s        B.264MB/s        C.528MB/s        D.1056MB/s

        解答:C

        地址/数据线有 32 根,则每次传送 4B。总线时钟频率为 66MHz,每个时钟周期传输两次,因此1 s 内传输 132M 次。则总线带宽为 132M*4B/s=528MB/s。

        20.一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元读出或吸入多个数据。这种总线事务方式称为______。        

        A.并行传输        B.串行传输        C.突发传输        D.同步传输

        解答:C

        并行传输,传输中有多个数据位同时在设备之间进行的传输.

        串行传输,数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式.

        突发传输,在一个总线周期内,可以传输多个存储地址连续的数据,即一次传输一个地址和一批地址连续的数据.

        同步传输,传输的过程由统一的时钟控制.

        21.下列有关 I/O 接口的叙述中,错误的是____.

        A.状态端口和控制端口可以合用一个寄存器

        B.I/O 接口中 CPU 可访问的寄存器称为 I/O 端口

        C.采用独立编址方式时,I/O 端口地址和主存地址可能相同

        D.采用统一编址方式时,CPU 不能用访存指令访问 I/O 端口

        解答:

        A项,I/O 端口的状态端口是用来存放外设或者接口部件本身状态的寄存器,通过接口,状态信息可以从外设传送到CPU. I/O 端口的控制端口是用来控制外设或者接口部件的.通过接收来自 CPU 的信号来控制外设的工作状态.由于 控制端口和状态端口的传输方向相反以及 CPU 对他们的访问时间通常是错开的,因此可以合用一个寄存器.

        B 项 正确

        C 项,独立编址方式,I/O 地址空间和存储器地址空间分别编址.I/O 端口地址和主存地址可能相同

        D 项,统一编址方式,I/O 地址空间和存储器地址空间统一编址.此时,将外设结构中的 I/O 寄存器与主存单元一样看待,每个端口占据一个存储单元地址.因此 CPU 可以使用访存指令访问 I/O 端口.

        22.若某设备中断请求的响应和处理时间为 100ns,每 400ns 发出一次中断请求,中断响应所允许的最长延迟时间为 50ns, 则在该设备持续工作过程中,CPU 用于该设备的 I/O 时间占整个 CPU 时间的百分比至少是_____.

        A.12.5%        B.25%        C.37.5%        D.50%

        解答:B

        每 400ns 发出一次中断请求,这意味着 400ns 内可以处理一个中断,且处理时间为 100ns,因此是 100ns/400ns=25%

        23.下列调度算法中,不可能导致饥饿现象的是______.

        A.时间片轮转        B.静态优先数调用        C.非抢占式短作业优先        D.抢占式短作业优先

        解答:A

        饥饿现象:某个进程无限等待或因等待导致该进程完成时该进程已失去意义.

        B项,优先级低的可能产生饥饿现象

        C项和D项 ,长作业可能产生饥饿现象.

        24.某系统有 n 台互斥使用的同类设备,三个并发进程分别需要 3,4,5 台设备,可确保系统不发生死锁的设备数 n 至少为_____.

        A.9        B.10        C.11        D.12

        解答:B

        至少需要 2+3+4+1=10 台设备,故选B

        25.下列指令中,不能再用户态执行的是______.

        A.trap 指令        B.跳转指令        C.压栈指令        D.关中断指令

        解答:D

        trap 指令用于处理信号,当特定的信号被接收时,trap 命令可以执行特定的命令

        D 项是特权指令只能在核心态执行.

        26.一个进程的读磁盘操作完成后,操作系统针对该进程必做的是_____.

        A.修改进程状态为就绪态        B.降低进程优先级       

        C.给进程分配用户内存空间        D.增加进程时间片大小

        解答:A

        读操作未完成时,该进程是阻塞态,读操作完成后,该进程应变更为就绪态.

        27.现有一个容量为 10GB 的磁盘分区,磁盘空间以簇(cluster)为单位进行分配,簇的大小为 4KB,采用位图法管理该分区的空闲空间,即用一位(bit) 标识一个簇是否被分配,则存放该位图所需簇的个数是_____.

        A.80        B.320        C.80K        D.320K

        解答:A

        容量为 10GB 即10*2^20KB,簇的大小为 4KB 即 2^15b,因此一共有 10*2^20/4=5*2^19 个簇,即共需要 5*2^19 位, 因此需要 (5*2^19)/(2^15)=5*2^4=80 个簇.

        28.下列措施中,能加快虚实地址转换的是_____.

        I.增大块表(TLB)的容量        II.让页表常驻内存        III.增大交换区(swap)

        A.I        B.II        CI,II        D.II,III

        解答:C

        增大块表容量,块表的表项增多,平均转换时间变低

        让页表常驻内存可以省去将不在内存中的页表从磁盘中调入的过程.

        交换区:当系统的物理内存不够用时,可以把硬盘内存中的一部分空间释放以供当前程序运行.而那些被释放的空间来自一些很长时间都不曾操作过的程序,这些程序会被移至交换区,等要运行时,再从交换区中恢复保存的数据到内存中.

        29.在一个文件被用户进程首次打开的过程中,操作系统需要做的是_____

        A.将文件内容读到内存中        B.将文件控制块读入内存

        C.修改文件控制块的读写权限        D.将文件的数据缓冲区首指针返回给用户进程

        解答:B

        A项,在进行读写操作时,才会将文件内容读到内容中

        C项明显错误

        D项一般在文件读,写和定位操作时将文件缓冲区首指针返回给用户进程

        30.在页式虚拟存储管理系统中,采用某些置换算法,会产生 Belady 现象,即进程的缺页次数会随着分配给该进程的页框个数的增加而增加.下列算法中,可能会出现 Belady 现象的有_____

        I.LRU 算法        II.FIFO 算法        III.OPT 算法

        A.II        B.I,II        C.I,III        D.II,III       

        解答:A

        LRU (last recently used) 算法,最近最少使用算法

        OPT(Optimal Scheduling Algorithm)算法,最佳页面替换算法

        31.一个关于管道(pipe)通信的叙述中,正确的是____

        A.一个管道可实现双向数据传输       

        B.管道的容量仅受磁盘容量大小限制

        C.进程对管道进行读操作和写操作都可能被阻塞

        D.一个管道只能有一个读进程或一个写进程对其操作

        解答:C

        A项,一个管道可以实现双向数据传输,但不能两个方向同时进行

        B项,管道的容量通常为内存上的一页,其大小并不受磁盘容量大小限制

        C项,当管道满时,写进程会被阻塞;当管道为空时,读进程会被阻塞

        D项,可以同时有多个读进程比如该进程的多个子进程

        32.下列选项中,属于多级页表优点的是____.

        A.加快地址变换速度        B.减少缺页中断次数

        C.减少页表项所占字节数        D.减少页表所占连续空间

        解答:D

        A项,多级页表会减慢地址变换速度.

        B项,不会减少缺页中断次数,可能会增多

        C项,页表项所占字节数可能增多

        D项,多级页表在页表太大时,通过分级控制页表大小,减少所占连续空间

        33.在 OSI 参考模型中,直接为会话层提供服务的是_____

        A.应用层        B.标识层        C.传输层        D.网络层

        解答:C

        OSI 七层参考模型从下到上依次为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

        34.某以太网拓扑及交换机当前转发表如下图所示,主机 00-e1-d5-00-23-a1 向主机 00-e1-d5-00-23-c1 发送一个数据帧,主机 00-e1-d5-00-23-c1 在收到该帧后, 向主机 00-e1-d5-00-23-a1 发送一个确认帧,交换机对这两个帧的转发端口分别是_____.        

        A.{3} 和 {1}        B.{2,3} 和 {1}        C.{2,3}和{1}        D.{1,2,3}和{1}

        解答:B

        转发数据帧时,由于不知道主机 00-e1-d5-00-23-c1 所在,会通过除 1 外所有端口转发;转发确认帧时,由于在转发数据帧时,得到了主机 00-e1-d5-00-23-a1 所在,直接转发即可.

        35.下列因素中,不会影响信道数据传输速率的是______

        A.信噪比        B.频率宽带        C.调制速率        D.信号传播速率

        解答:D

        信噪比:信噪比用来表示接收到的有用信号强度与接收到的干扰信号(噪声)强度的比值.

        香农定理:在有随机热噪声的信道上传输数据信号时,数据传输率 Rmax 与信道带宽 B,信噪比 S/N 的关系为 Rmax=B*\log_{2}(1+S/N)

        由香农定理可知, A,B会影响信道传输速率

        C 项调制速率指的是信号在调制过程中变化的速率即单位时间内信号变化次数.调制速率会限制数据的传输速率.

        D 项信道数据传输速率为信号的上传速率,与信号传播速率无关

        36.主机甲与主机乙之间使用后退 N 帧协议(GBN)传输数据,甲的发送窗口尺寸为 1000,数据帧长为 1000 字节,信道带宽为 100Mbps,乙每收到一个数据帧立即利用一个短帧(忽略其传输时延),进行确认,若 甲乙之间的单向传播时延是 50ms,则甲可以达到的最大平均传输速率为_____

        A.10Mbps        B.20Mbps        C.80Mbps        D.100Mbps

        解答:C

        GBN (Go-Back-N) 协议,发送方发送 N个分组,无需确认,但发送方未被确认的分组数不能超过 N.

        发送窗口尺寸未 1000,单个数据帧长度为 1000B,因此单次最多未被确认的字节数为 1000*1000B=1MB.甲发送 1000b 的数据需要 1000*8/100*1000*1000=0.08 ms, 收到该帧的确认帧需要经过 100.08ms.因此甲100ms内最多发送 1MB 数据,因此其最大传输速率为  10MBps=80Mbps

        37.站点 A,B,C 通过 CDMA 共享链路,A,B,C的码片序列(chipping sequence)分别是(1,1,1,1),(1,-1,1,-1) 和(1,1,-1,-1). 若 C 从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到 A 发送的数据为_____.

        A.000        B.101        C.110        D.111

        解答:        B

        CDMA (code division multiple access)码分多址

        (1)

        2 0 2 0              0 -2 0 -2             0 2 0 2

A        1 1 1 1             -1 -1 -1 -1           1  1 1 1

B       1 -1 1 -1          1 -1  1   -1           -1 1 -1 1

        因此 A发送的是 101

        (2)将其分为三组,四个一组,做内积运算

        (2,0,2,0)*(1,1,1,1)/4=1

        (0,-2,0,-2)*(1,1,1,1)/4=-1

        (0,2,0,2)*(1,1,1,1)/4=1

        所以A发送的是 101

        38.主机甲和主机乙已经建立了 TCP 连接,甲始终以 MSS=1KB 大小发送数据,并一直有数据发送;乙每接收到一个数据段就会发出一个接收窗口为 10KB 的确认段.若甲在 t 时刻发生超时时的拥塞窗口为 8KB ,则从 t 时刻起,不再发生超时的情况下,经过 10 个 RTT后,甲的发送窗口是_____.

        A.10KB        B.12KB        C.14KB        D.15KB

        解答:A

        MSS(maximum segment size) 最大段大小

       RTT=0, 发送窗口:1KB

       RTT=1, 发送窗口:2KB

       RTT=2, 发送窗口:4KB

        RTT=3, 发送窗口:5KB

         RTT=4, 发送窗口:6KB

         ...

         RTT=8, 发送窗口:10KB RTT=3

        此后由于接收窗口大小为 10KB,一直保持 10KB 

        39.下列关于 UDP 的叙述中,正确的是_____

        I.提供无连接服务        II.提供复用/分用服务        III.通过差错校验,保障可靠数据传输

        A.I        B.I,II        C.II,III        D.I,II,III

        解答:B

        UDP 提供无连接,不可靠的服务.

        复用/分用服务是传输层协议必须提供的服务.复用是指多个应用层进程可同时使用下面运输层的服务.分用是指把收到的信息分别交付给上面应用层中相应的进程.

        40.使用浏览器访问某大学的 Web 网页时,不可能使用到的协议是_____

        A.PPP        B.ARP        C.UDP        D.SMTP

        解答:D

        PPP 协议,点对点协议,是一种广泛应用于网络接入的协议.

        ARP 地址解析协议,在不知道某主机的MAC 地址时,可能会用到.

        DNS 协议基于UDP 协议,因此可能会用到 UDP 协议

        SMTP 协议只有在向邮件服务器发送发送邮件时才会用到.

        二、综合应用题

        41.二叉树的带权路径长度(WPL)是二叉树中所有叶节点的带权路径长度之和。给定一颗二叉树 T,采用二叉链表存储,节点结构如下:

leftweightright

其中叶节点的 weight 保存该节点的非负权值。设 root 为指向 T 的根节点的指针,请设计求 T 的 WPL 的算法,要求:

        (1)给出算法的基本设计思想

        (2)使用 C 或 C++语言,给出二叉树节点的数据类型定义

        (3)根据设计思想,采用 C 或 C++ 语言描述算法,关键之处给出注释。

        解答:(1)递归遍历二叉链表。对于某个节点,若该节点左子节点与右子节点为空,返回当前层数与非负权值之积,否则返回左子节点下叶节带权路径长度与右边子节点带权路径长度之和。

        (2)

struct TreeNode{int weight;TreeNode *left;TreeNode *right;
};

        (3)

class Solution{
public:int sumOfWPL(TreeNode *head){if(head==null){return 0;}return assistSum(head.left,1)+assistSum(head.right,1); //左右子树的叶节点的带权路径长度之和   }int assistSum(TreeNode *node,int layer){if(node==null){    return 0;}else if(node.left==null && node.right==null){    //左右子节点均为空时,该节点为叶节点return layer*node.weight;}else{return assistSum(node.left,layer+1)+assistSum(node.right,layer+1);}}}

        42. 某网络中的路由器运行 OSPF 路由协议,题 42 表是路由器 R1 维护的主要链路状态信息(LSI),题 42 图是根据题 42 表及 RI 的接口名构造出的网络拓扑。

        请回答一下问题:

        (1)本题中的网络可以抽象为数据结构中的哪种逻辑结构?

        (2)针对题 42 表中的内容,设计合理的链式存储结构,以保存题 42 表中的链路状态信息(LSI),要求给出链式存储结构的数据类型定义,并画出对应题 42 表的链式存储结构示意图(示意图可以仅用 ID 表示节点)

        (3)按照迪杰斯特拉算法(Dijkstra)算法的策略,依次给出 R1 到题 42 图中子网 192.1.x.x 的最短路径及费用

        解答:(1)无向图

        (2)

链式存储结构:

typedef struct{unsigned int ID,IP;    
}LinkNode;    //link 的结构typedef struct{unsigned int prefix,mask;    
}NetNode;        //Net 的结构typedef struct Node{int Flag;//flag为 1 时是 Link,flag为 2 时是Netunion{ListNode Lnode;NetNode Nnode;}LinkOrNet;unsigned int Metric;structNode *next;
}ArcNode;    //弧节点typedef struct HNode{unsigned int RouterID;Arc *LN_link;struct HNode *next;
}HNode;    //表头节点

        (3)

目的网络路径代价
步骤一192.1.1.0/24直达1
R2192.1.5.0/24R1->R3->192.1.5.0/243
R3192.1.6.0/24

R1->R2->192.1.6.0/24

4
R4192.1.7.0/24

R1->R2->R4->192.1.5.0/24

8

        43.请根据题 42 描述的网络,继续回答以下问题。

        (1)假设路由表结构如下所示,请给出题 42 图中 R1 的路由表,要求包括到达题 42 图中子网 192.1.x.x 的路由,且表中的路由项尽可能少。

目的网络下一跳接口

        (2)当主机 192.1.1.130 向主机 192.1.7.211 发送一个 TTL =64 的 IP 分组时, R1 通过哪个接口转发该 IP 分组?主机 192.1.7.211 收到的 IP 分组 TTL 是多少?

        (3)若 R1 增加一条 Metric 为 10 的链路连接 Internet,则题 42 表中 R1 的 LSI 需要增加哪些信息?

        解答:(1)

目的网络下一跳接口
192.1.1.0/24-E0
192.1.6.0/2310.1.1.2L0
192.1.5.0/2410.1.1.10

L1

        (2)接口 L0,TTL 为 61

        (3)增加一条 Prefix 为 0.0.0.0/0 ,Metric 为 10 的特殊直连网络。

        44.某程序中有如下循环代码段 P :“for(int i=0;i<N;i++)sum+=A[i]”。假设编译时变量 sum 和 i 分别分配在 寄存器 R1 和 R2 中。变量 N 在寄存器 R6 中,数组 A 的首地址在寄存器 R3 中。程序段 P 起始地址为 0804 8100H,对应的汇编代码和机器

        代码如下表所示。

        执行上述代码的计算机 M 采用 32 位定长指令字,其中分支指令 bne 采用如下格R式。        

OP 为操作码;Rs 和 Rd 为寄存器编号;OFFSET 为偏移量,用补码表示。请回答以下问题,并说明理由。

        (1)M 的存储器编址单位是什么?

        (2)已知 sll 指令实现左移功能,数组 A 中每个元素占多少位?

        (3)表中 bne 指令的 OFFSET 字段的值是多少?已知 bne 指令采用相对寻址方式,当前 PC 内容为 bne 指令,通过分析表中指令地址和 bne 指令内容,推断出 bne 指令的转移目标地址计算公式。

        (4)若 M 采用如下 “按序发射,按序完成” 的 5 级流水指:IF(取值),ID(译码及取值)、EXE(执行)、MEM(访存)、WB(写回寄存器),且硬件不会采取任何转发措施,分支指令的执行均引起 3 个时钟周期的阻塞,则 P 中哪些指令的执行会由于数据相关而发生流水线阻塞?哪条指令的执行会发生控制冒险?为什么指令 1 的执行不会因为与指令 5 的数据相关而发生阻塞?

        知识点:数据冒险:当指令在流水线中重叠执行时,后面的指令需要用到前面指令的执行结果,而前面的指令尚未写回而造成的冲突。

        控制冒险:现在想要执行哪条指令是由之前指令的运行结果决定,而现在那条指令之前的指令结果还未产生,就产生控制冒险。

        解答:(1)一条指令长度为 32 位,相邻两个地址相差 4,则单个地址长度为 8 位。因此存储器编址单位是 字节。

        (2)编号 1 中将 R2 的内容(i 的值)左移两位得结果存放在 R4 中;编号 2 将 R3 的内容(数组 A 首地址)与 R4 的内容求和结果放置在 R4 中;编号 3 将取 R4 的内容指向地址放入 R5 中;编号 4 将 R5 中的内容和 R1 中的内容求和放置在 R1 中。因此 编号 4 是 sum+=A[i],编号 3 是取 A[i] 的值,编号 2 是求 A[i] 地址,编号 1 是计算当前 A[i] 需要的偏移量,左移两位,即*4 ,因此 每两个 数组元素间相差 4 个编址单位,即数组 A 中每个元素占 32 位 。

        (3)OFFSET 字段为 FFFAH,因此其值为 -6。

          当指令执行到 bne 指令时,首先,PC 中的内容自动加 4(指向下一条指令),内容为 08048118H 与目标地址相差 18H 即 24,而 24/6=4,因此 bne 指令的转移目标地址计算公式为 (PC)+4+OFFSET*4。

        (4)编号为 2,3,4,6 的指令会由于数据相关而发生流水线阻塞。

        编号为 6 的指令会发生控制冒险。

        指令 6 属于分支指令,会引起 3 个时钟周期的阻塞,消除了数据相关,因此指令 1 的执行不会因为与指令 5 的数据相关而发生阻塞。

        45.假设对于 44 题中的计算机 M 和程序 P 的程序代码,M 采用页式虚拟存储管理系统;P 开始执行时,(R1)=(R2)=0,(R6)=1000,其机器代码已调入主存但不在 Cache 中;数组 A 未调入主存,且所有的数组元素在同一页,并存储在磁盘同一个扇区。请回答下列问题并说明理由。

        (1)P 执行结束时,R2 的内容是多少?

        (2)M 的指令 Cache 与数据 Cache 分离。若指令 Cache 共有 16 行,Cache 与主存交换的块的大小为 32 字节,则其数据区的容量为多少?若仅考虑程序段 P 的执行,则指令 Cache 的命中率是多少?

        (3)P 在执行过程中,哪条指令的执行可能发生溢出异常?哪条指令的执行可能产生缺页异常?对于数组 A 的访问,需要读磁盘和 TLB 各多少次?

        R1(SUM)=0,R2(i)=0,N=1000

        解答:(1)当 i=1000 时,不满足条件,退出循环,因此 R2 的值为1000。

        (2)指令 Cache 与数据 Cache 的大小一致。指令 Cache 共有 16 行,每行 32 字节,因此指令 Cache 的大小为 16*32B=512B。

      程序 P 共有 6 条指令,每条指令占4B,总大小为 24B,大小小于一个块的大小 32B。因此可以一次将全部内容调入Cache 中。程序 P 有 6 条指令,循环会执行 1000 次,因此会执行 1000*6条指令,除了第一条指令执行时,不在 Cache 中,其余指令均命中,因此命中率为 5999/6000=99.98%。

        (3)指令 4 可能发生溢出异常,求 sum+=A[i] 时可能溢出。

        指令 3 执行时可能发生缺页异常,A[i] 可能不在 Cache 中。

        读磁盘 1 次,将数组元素所在页面调入内存中。读 TLB 1001 次,每访问一次内存数据,就会查 TLB 一次,除元素 A[0] 会因为缺页访问 TLB 2 次外,其余元素均访问 TLB 一次。

        46.文件 F 由 200 条记录组成,记录从 1 开始编号。用户打开文件后,欲将内存中的一条记录插入到 F 中,作为其第 30 条记录。请回答一下问题,并说明理由。

        (1)若文件系统采用连续分配方式,每个磁盘块存放一条记录,文件 F 存储区域前后均有足够的磁盘空间,则完成上述插入操作最少需要访问多少次磁盘块?F 的文件控制块内容会发生哪些改变?

        (2)若文件系统采用链式分配方式,每个磁盘块存放一条记录和一个链接指针 ,则完成上述插入操作最少需要访问多少次磁盘块?若每个存储块大小为 1KB,其中 4 字节存放链接指针,则该文件系统支持的文件最大长度是多少?

        解答:(1) 将前 29 条记录前移时访问磁盘块次数最少。若读出和存放一条记录各算一次访问,则共需 29*2+1=59 次访问。

        文件控制块的起始块号和文件长度会发生改变。

        (2)遍历前  29 条记录需要读出 29 次,修改第 29 条记录和写入该条记录各需一次,因此修改最少需要访问 31 次磁盘块。

        4 字节存放链接指针,则最多有 2^32=4G 个存储块,每个存储块数据部分有 1024B-4B=1020B,因此文件最大长度为 4080GB。

        47.系统中有多个生产者和消费者进程,共享一个能存放 1000 件产品的环形缓冲区(初始为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区非空时,消费者可以从缓冲区取走一件产品,否则等待。要求一个消费者进程从缓冲区连续取走 10 件产品时,其他消费者进程才能取产品。请使用信号量 P,V(或 wait(), signal())操作实现进程间的同步与互斥,要求写出完整过程,并说明所使用信号量的意义。

解答:

semaphore  mutex1=1; //一个周期内访问缓冲区时互斥
semaphore  mutex2=1; //单次访问缓冲区时互斥
semaphore  empty=1000;//缓冲区内能装入产品数
semaphore  full=0;    //缓冲区内产品数producer(){while(1){生产产品;P(empty); //判断缓冲区是否有空位P(mutex2);    //互斥访问缓冲区放入产品;V(mutex2);   //互斥访问缓冲区V(empty);    //产品数量加一 }
}consumer(){while(1){P(mutex1);    //一个周期内互斥访问缓冲区for(int i=0;i<10;i++){P(full);    //判断缓冲区内是否有产品P(mutex2);    //单次互斥访问缓冲区取产品;V(mutex2);    //单次互斥访问缓冲区V(full);    //产品数量减一}P(mutex1);    //一个周期内互斥访问缓冲区}}

      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2219603.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

gma 2 教程(三)坐标参考系统:1.坐标系和坐标参考系统模块简介

安装 gma&#xff1a;pip install gma 坐标参考系统是地理空间数据表示和位置定位的基础&#xff0c;它是一种用于描述和测量地球表面位置的标准化框架。其定义了坐标系统、基准面和坐标单位等要素&#xff0c;以确保地球上不同地方的位置可以一致、准确地表示和比较。 本章以g…

拥抱产业发展机遇 兑现5G商业价值

[阿联酋&#xff0c;迪拜&#xff0c;2023年10月10日] 今天&#xff0c;以“将5G-A带入现实”为主题的2023全球移动宽带论坛在迪拜举行。本次大会上&#xff0c;华为轮值董事长胡厚崑与GSMA总干事Mats Granryd围绕“5G产业进程与发展”连线对话。胡厚崑指出&#xff0c;“技术发…

计算机论文 指导老师评语,毕业设计指导老师评语(精选5篇)

毕业设计指导老师评语(精选5篇) 在现实生活或工作学习中,许多人都有过写评语的经历,对评语都不陌生吧,通过评语的导向作用,我们可以引导某项工作或教育活动朝正确方向发展。那什么样的评语才好的评语呢?以下是小编帮大家整理的毕业设计指导老师评语(精选5篇),欢迎阅读与收…

计算机系本科毕业论文评阅评语,毕业论文评阅教师评语

毕业论文评阅教师评语 一段忙碌又充实的大学生活要即将结束,大学生们毕业前都要通过最后的毕业论文,毕业论文是一种有计划的检验学生学习成果的形式,写毕业论文需要注意哪些格式呢?以下是小编帮大家整理的毕业论文评阅教师评语,仅供参考,欢迎大家阅读。 1、 本文选题符合…

计算机专业开题报告指导老师意见评语,开题报告指导教师评语

开题报告指导教师评语 在现在社会&#xff0c;报告与我们的生活紧密相连&#xff0c;报告中涉及到专业性术语要解释清楚。相信许多人会觉得报告很难写吧&#xff0c;下面是小编为大家收集的开题报告指导教师评语&#xff0c;仅供参考&#xff0c;希望能够帮助到大家。 开题报告…

教师对php作品评语通用,期末教师给学生的评语

期末教师给学生的评语 张xx&#xff1a; 你是个懂事的女孩&#xff0c;与同学交往中&#xff0c;懂得谦让&#xff0c;看到师长&#xff0c;总能主动热情地打招呼。上课能认真听讲&#xff0c;积极举手发言。本学期&#xff0c;你学会了跳长绳&#xff0c;也能用百变魔尺折出一…

Congestion Control for Large-Scale RDMA Deployments

文章目录 IntroductionDCQCNBuffer Setting Introduction PFC是粗粒度的流量控制机制&#xff0c;在端口层面发挥作用&#xff0c;不区别不同的流。这会导致很多弊端&#xff0c;比如不公平&#xff0c;受害流等。 解决PFC限制的解决方法是flow-level的拥塞控制&#xff0c;D…

华为OD机试 - 数组组成的最小数字(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

大白菜清除开机密码

1. 下载U盘启动工具 http://www.dabaocai.com/download/ 2. 下载好后&#xff0c;双击安装包&#xff0c;制作启动盘 3. 启动盘制作完成后&#xff0c;重启电脑&#xff0c;在出现电脑图标时开始不断的按快捷键&#xff1b; 4.选择U盘项进入 5.打开桌面所有程序 ---系…

win11下制作u盘pe系统(电脑店,大白菜),提示程序组件不完整

有可能是杀毒软件的原因,我的是因为系统自带的杀毒软件的原因 可以这样关闭 依次打开 设置->隐私和安全性->windows安全中心->打开windows安全中心 打开windows安全中心后选择左侧的病毒和威胁防护 再选择管理设置 然后关闭实时保护即可 关闭后就可以重新制作pe盘了 …

用大白菜装centos7_大白菜安装centos7 踩坑记

1.准备一个U盘,安装大白菜。这个去大白菜官网下载安装就可以了 安装大白菜的时候最好选择FAT32(2021.1.7记录) 2.U盘装完大白菜后U盘会被分为两个主分区 一个盘是大白菜系统的,另外一个盘放一些工具的。 DBC里面就是放的一些工具 比如磁盘管理工具 3.把Centos7的镜像放入到DB…

Linux系统切换用户后只显示$问题解决

问题描述&#xff1a; unbantu操作系统切换为es用户后没有tab键没有补全功能 问题分析 创建用户的时候未指定shell类型&#xff0c;默认的shell为/bin/sh&#xff0c;而不是/bin/bash。 cat /etc/passwd查询结果 es:x:1001:1001::/home/es:/bin/sh解决方案 把对应用户的…

AEB落地:摄像头与毫米波雷达的融合

☛ 我们的生活中&#xff0c;总有各种场合需要证明自己。 内心不够坚定的时候&#xff0c;总是活在不断证明自己的循环中。新人刚入职&#xff0c;会努力证明自己是有能力的&#xff1b;遇到心动的男神&#xff0c;会努力证明自己值得被爱&#xff1b;受到质疑否定&#xff0…

历史上的重大软件BUG启示录 第6篇---蠕虫“冲击波”

&#xff08;图片来源于网络&#xff09; RPC&#xff08;远程过程调用&#xff09;是一种进程间通讯机制&#xff0c;最初由 Sun 公司提出&#xff0c;目前为 IETF 标准协议。RPC 协议允许一台计算机上的程序执行另一台远程系统上的代码。Windows的RPC服务也是以RPC为基础开发…

技术活-一阶后向差分

众所周知&#xff0c;角度是比较容易测量的物理量&#xff0c;但是角速度通常难以直接测量&#xff0c;而此时通常采用的方法是一阶差分来近似求解。 本例程用来讲解基于Siemens S7-1200 PLC实现角度速的测量。所用到的硬件&#xff1a; 1200PLC&#xff1a; CPU 1214 AC/DC/Rl…

MVVM?继续搞一波

前言 又是好久不见了&#xff0c;真的不是因为我懒&#xff0c;是因为公司目前活确实有点着急&#xff0c;所以每天在忙公司的事情。 在五月下旬的时候写过一篇MVVM的文章&#xff1a;MVVM&#xff1f;瞎搞一波&#xff1f;。当时写的时候内心其实很慌&#xff0c;怕写的不好…

华为:活下来!或将卖掉 X86 服务器业务?

点击关注公众号&#xff0c;回复“1024”获取2TB学习资源&#xff01; 2021 年 8 月 6 日&#xff0c;华为公司公布上半年公司整体经营业绩数据&#xff0c;净利润是实现增长的。 数据显示&#xff0c;2021 年上半年&#xff0c;华为实现销售收入 3204 亿元&#xff0c;同比下降…

FFT快速傅立叶变换在示波器中的用法

大多数示波器上都有个FFT功能,也叫快速傅立叶变换,但很多人不了解这个功能是做什么用的,百度以后又会遇到各种各样的高数公式,看的一头雾水,遂而放弃这块知识。 我们来看百度百科的解释: FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、…

一大波硕士即将来袭

前几天有一个读者朋友,也是程序员,在微信和我说:研究生扩招了,他要不要把专科学历提高一下? 我查了一下新闻,确实:2020 年硕士研究生扩招 18.9 万人,扩招向临床医学、公共卫生、人工智能等专业倾向。 今天和大家说说硕士研究生扩招这事。 1. 一直在扩招 硕士研究生(…

高斯滤波在图像处理中的应用

卷积&#xff1a; 相信很多时候&#xff0c;当我们在看到“卷积”时&#xff0c;总是处于一脸懵逼的状态&#xff0c;不但因为它的本义概念比较难理解&#xff0c;还因为它在不同的应用中发挥出的变幻莫测的作用也时常让人迷糊。但这些应用其实本质上都是同一种东西&#xff0…