选择题
第 1 题 已知带头结点的非空单链表 L 的头指针为 h,指针 p 指向 L 中间的一个链表结点(不是第一个和最后一个结点)。q=p->next,p->next=q->next,q->next=h->next,h->next=q。这段代码的功能是()。
A 把 q 指向的结点插入到 p 的后面 B 把 p 指向的结点插入到 q 的后面 C 把 p 指向的结点插入到 h 的后面 D 把 q 指向的结点插入到 h 的后面
查看答案与解析 正确答案: D
代码分解分析:
现在 q 指向的是 p 的下一个结点。
这一步将 q 从链表中“摘除”:原本是 p -> q -> q->next,现在变成了 p -> q->next,也就是说 q 不再出现在链表的原位置。
这一步将 q->next 指向当前链表的第一个有效结点 (注意是 h->next,即第一个结点,不是头结点)。
把 q 接到头结点之后,也就是插入到链表头部(第一个有效结点之前)。
操作的效果是:
从链表中间删除了 q,然后把它插入到了头结点之后,也就是插入到链表第一个有效结点之前。
所以这段代码的功能是:
把 q 指向的结点插入到 h 的后面
正确答案选择 D 。
选择题
第 2 题 表达式 x+y*(z-u)/v 的等价后缀是( )
A xyzu-*v/+ B xyzu-v/*+ C +x/*y-zuv D +x*y/-zuv
查看答案与解析 正确答案: A
本题有两种解法:第一种是使用栈 将中序转后序 。
第二种方式是先将中序表达式转换为二叉树,然后再对二叉树进行后序遍历,得到后续表达式。
这里建议使用第二种方式,对于选择题比较高效。
选择题
第 3 题 p、q、v 都是二叉树 T 中的结点,二叉树 T 的中序遍历为 ···, p,v,q,··· ,其中 v 有两个孩子结点,则下列说法正确的是( )。
A p 没右孩子,q 没左孩子 B p 没右孩子,q 有左孩子 C p 有右孩子,q 没左孩子 D p 有右孩子,q 有左孩子
查看答案与解析 正确答案: A
根据中序遍历结果和 v 是子树的根节点这些信息,则可以判定 p,q 分别在 v 的的左右子树上,对
于左子树而言,根据中序遍历结果为…p,则没有右孩子,同理,q 没有左孩子。或者假设 p 有右孩子
,q 有左孩子,则中序遍历结果中 p,v 之间一定还有序列,v,q 之间也一定还有序列,和题意冲突。
选择题
第 4 题 A 0, 2 B 2, 4 C 3, 2 D 2, 3
查看答案与解析 正确答案: B
根据邻接多重表还原图,由下图可知,b 的度为 2,d 的图为 4。
选择题
第 5 题 下列数据结构中,不适合直接使用折半查找的是()
I 有序链表 II 无序数组 III 有序静态链表 IV 无序静态链表
A 仅 1、II B 仅 II、IV C 仅、II、IV D I、II、III、IV
查看答案与解析 正确答案: D
折半查找需要数据结构支持随机访问才能发挥作用,对于链表,无法随机访问其中某个下标的元素。
选择题
第 6 题 KMP 算法使用修正后的 next 数组进行模式匹配,模式串 S = “aabaab”,当主串中某字符与 S 中某字符失去配对时,S 将向右滑动的最长距离是( )
A 5 B 4 C 3 D 2
查看答案与解析 正确答案: A
本题参考 修正后的 next 数组 ,传统 KMP 使用 next 数组,不过会存在 j=next[j]的情况,因此采用 next_val[] 来优化,处理
好 next[] 和 next_val[] 后,举例即可,比如倒数第二个元素 a 匹配失败,会回到 -1 的位置,从 -1 的位
置走到 4 的位置需要右滑的距离为 5 位。
下标 0 1 2 3 4 5 元素 a a b a a b next -1 0 1 0 1 2 next_val -1 -1 1 -1 -1 1
选择题
第 7 题 一棵二叉搜索树如下图所示,K1、K2、K3 分别是对应结点中保存的关键字、三角形表示子树。则子树 T 中任一结点中保存的关键字 X 满足的是( )。
A X
B X>K2 C K1
D K3
查看答案与解析 正确答案: D
根据二叉搜索树的性质,
K 2
的左子树的节点关键字均小于
K 2
,可以得出
K 3 < K 2
,
T
中所有节点小于
K 2
,同理也可以得出
K 3
的右子树节点均大于
K 3
,即
T
中所有节点
> K 3
,
X
是
T
中节点,由此可以得出
K 3 < X < K 2
。
选择题
第 8 题 使用快速排序算法对含 N(N ≥ 3) 个元素的数组 M 进行排序,若第一趟排序将除枢轴外的 N-1 个元素划分为 P 和 Q 两个部分,则下列叙述中,正确的是( )。
A P 和 Q 块间有序 B P 和 Q 均块内有序 C P 和 Q 的元素个数大致相等 D P 和 Q 中均不存在相等的元素
查看答案与解析 正确答案: A
本题考察快排的原理,快排第一趟找到枢轴之后,枢轴的左边的元素即 P 块都是小于枢轴的,枢轴的右边的元素即 Q 块是大于枢轴的,所以 P 和 Q 块间有序,然而块内未必是有序的,所以还需要继续对 P 和 Q 两块进行递归快排。
选择题
第 9 题 已知关键字序列 28, 22, 20, 19, 8, 12, 15, 5 是大根堆(最大堆),对该堆进行两次删除操作后,得到的新堆是( )。
A 20, 19, 15, 12, 8, 5 B 20, 19, 15, 5, 8, 12 C 20, 19, 12, 15, 8, 5 D 20, 19, 8, 12, 15, 5
查看答案与解析 正确答案: B
本题考察 堆的删除操作 ,先根据初始序列建堆,然后依次删除堆项元素,过程如下图:
选择题
第 10 题 初始有三个升序序列 (3, 5)、(7, 9)、(6),若按从左至右的次序选择有序序列进行二路归并排序,则关键字之间的总比较次数是()。
A 3 B 4 C 5 D 6
查看答案与解析 正确答案: C
本题考察 多路归并 的原理,二路归并排序将相邻的有序子序列两两合并,得到合并后有序子序列。重复此过程,直到所有子序列合并为一个有序序列。
第一轮归并:将升序序列两两分组,(3,5) 和 (7,9) 分为一组,(6) 分为一组。(3,5) 和 (7,9) 的归并过程如下:
输入序列 比较首个元素 输出元素 输出序列 剩余输入序列 (3,5) 和 (7,9) 3 < 7 3 3 (5) 和 (7,9) (5) 和 (7,9) 5 < 7 5 3,5 (7,9) (7,9) 7 3,5,7 (9) (9) 9 3,5,7,9
第二轮归并:将升序序列两两分组,(3,5,7,9) 和 (6) 分为一组。(3,5,7,9) 和 (6) 的归并过程如下:
输入序列 比较首个元素 输出元素 输出序列 剩余输入序列 (3,5,7,9) 和 (6) 3 < 6 3 3 (5,7,9) 和 (6) (5,7,9) 和 (6) 5 < 6 5 3,5 (7,9) 和 (6) (7,9) 和 (6) 7 > 6 6 3,5,6 (7,9) (7,9) 7 3,5,6,7 (9) (9) 9 3,5,6,7,9
到此,二路归并排序执行完毕。
上述过程中第一轮归并关键字之间比较 2 次,第二轮归并关键字之间比较 3 次,因此,关键字之间的总比较次数为 2 + 3 = 5。
本题选 C。
选择题
第 11 题 在外排序中,利用败者树对初始为升序的归并段进行多路归并,败者树中记录"冠军"的结点保存的是( )
A 最大关键字 B 最小关键字 C 最大关键字所在的归并段号 D 最小关键字所在的归并段号
查看答案与解析 正确答案: D
在外排序的多路归并中,败者树 (Loser Tree)是一种优化的数据结构,用于快速找出多个归并段中当前最小的关键字。它是一个完全二叉树,每个非叶子节点保存的是“败者”,而整棵树的根节点保存的是当前“冠军” —— 即:
当前最小关键字所在的归并段号。
所以答案选择 D。
选择题
第 12 题 C 语言代码如下:
int i = 32777 ;
short si = i ;
int j = si ;
执行上述代码段后, j 的值为( )。
A -32777 B -32759 C 32759 D 32777
查看答案与解析 正确答案: B
int i=32777,赋值给 short 后,由于 short 只有 16 位,则只会保留 i 的低 16 位,同时,short 的上限为
2 15 − 1
即 32767,所以 32777 在 short 类型的变量中会出现数据溢出问题,32777=32767+9,则溢出后的二进制补码为 1000000000001001。再将此数转为 int,此时将进行符号扩展,补高 16 位的时候取决于当前 short 的符号位,若符号位为 1,则高 16 位补 16 个 1,若符号位为 0,则高 16 位补 16 个 0,所以本题补 16 个 1,结果为补码 1111 …. 1000 0000 0000 1001,换算成原码再计算,选 B。或者使用排除法,最终通过补码的最高位 1 可以断定该数为负数,A、B 里面选,32777 对于 short 已经溢出,转为 short 再符号扩展,并不只是单纯地改变子符号,故排除 A,选 B。
选择题
第 13 题 将汇编语言程序中实现特定功能的指令序列定义成一条伪指令。下列选项中,CPU 能理解并直接执行的是
Ⅰ. 伪指令 Ⅱ. 微指令 Ⅲ. 机器指令 Ⅳ. 汇编指令
A 仅Ⅰ和Ⅳ B 仅Ⅱ和Ⅲ C 仅Ⅲ和Ⅳ D 仅Ⅰ、Ⅲ和Ⅳ
查看答案与解析 正确答案: B
伪指令:伪指令不是真正的 CPU 指令,而是由汇编器识别和执行的一些特殊指令。
微指令:微指令是计算机硬件级别指令,一条机器指令所完成的操作划分成若干条微指令来完成。
机器指令:CPU 可以直接解析和执行的二进制代码。
汇编指令:低级别的编程语言,与机器指令一一对应,不过需要汇编器转换为机器指令,CPU 才能执行。
这些概念的关系参考 该节 。
选择题
第 14 题 某科学实验中,需要使用大量的整型参数,为了在保证表数精度的基础上提高运算速度,需要选择合理的数据表示方法。若整型参数
α
和
β
的取值范围分别为
− 2 20 ∼ 2 20
、
− 2 40 ∼ 2 40
,则下列选项中,
α
和
β
最适宜采用的数据表示方法分别是 ( )
A 32 位整数、32 位整数 B 单精度浮点数、单精度浮点数 C 32 位整数、双精度浮点数 D 单精度浮点数、双精度浮点数
查看答案与解析 正确答案: C
a 最适宜采用 32 位整数,32 位整数可以表示
− 2 31 ∼ 2 31 − 1
的范围,对于 a 的取值范围,可以用 32 位整数表示,不会发生溢出或者精度损失,而且整数运算比浮点数运算更快,更省空间,所以优先使用 32 位整数而不是单精度浮点数。排除 B、D,根据 B 的取值范围,可以使用双精度浮点数存储,双精度浮点数存储范围为
− 2 1023 ∼ 2 1024
,不会发生溢出问题,双精度浮点的小数精度为 15-16 位,比起单精度浮点,基本上不会发生精度损失。
选择题
第 15 题 A 用阵列乘法器实现乘运算可以在一个时钟周期完成 B 用 ALU 和移位器实现的乘运算无法在一个时钟周期内完成 C 变量与常数的乘运算可编译优化为若干条移位及加/减运算指令 D 两个变量的乘运算无法编译为移位及加法等指令的循环实现
查看答案与解析 正确答案: D
参考 该节 ,我们逐项分析:
A. 用阵列乘法器实现乘运算可以在一个时钟周期完成 ✅
阵列乘法器(array multiplier)是一种并行结构 ,硬件资源充足的情况下,确实可以在一个时钟周期内完成乘法运算(代价是面积大)。因此这个说法是正确的 。
B. 用 ALU 和移位器实现的乘运算无法在一个时钟周期内完成 ✅
这种方式对应的是串行乘法器 ,通过不断地移位与加法模拟乘法过程,至少需要多个时钟周期完成,因此正确 。
C. 变量与常数的乘运算可编译优化为若干条移位及加/减运算指令 ✅
例如 x * 10 可编译为 (x << 3) + (x << 1),这是常见的编译器优化技术,因此此项正确 。
D. 两个变量的乘运算无法编译为移位及加法等指令的循环实现 ❌
这项是错误的 。事实上,若没有硬件乘法器,编译器或低级代码确实可以将变量之间的乘法(如 a * b)转换为循环移位加法实现。比如使用 Booth 算法 、加移法(shift-and-add) 等。因此选项 D 的说法是错误的。
选择题
第 16 题 对于页式虚拟存储管理系统,下列关于存储器层次结构的叙述中,错误的是( )。
A Cache-主存层次的交换单位为主存块,主存-外存层次的交换单位为页 B Cache-主存层次替换算法由硬件实现,主存-外存层次由软件实现 C Cache-主存层次可采用回写法写策略,主存-外存层次通常采用回写法 D Cache-主存层次可采用直接映射,主存-外存层次通常采用直接映射
查看答案与解析 正确答案: D
主存 - 外存层次的映射方式通常采用页式映射,而不是直接映射。页式映射是一种将虚拟地址空间分割为固定大小的单元(页)的映射方式,它将页映射到物理地址的空间的相应单元(页框)中。页式映射的优点是减少了内外存之间的交换次数,提高了空间利用率,缺点是增加了地址转换的开销,需默维护页表。
想一想,如果主存 - 外存页面采用直接映射的话,那么替换算法都直接没用了,所以 D 肯定是错误的。
选择题
第 17 题 某计算机按字节编址,采用页式虚拟存储管理方式,虚拟地址为 32 位,主存地址为 30 位,页大小为 1 KB。若 TLB 共有 32 个表项,采用 4 路组相联映射方式,则 TLB 表项中标记字段的位数至少是( )。
A 17 B 18 C 19 D 20
查看答案与解析 正确答案: C
根据题意可知,虚拟地址为 32 位,主存地址为 30 位,页大小为 1KB,因此,虚拟页号为 32-10=22 位,物理页号为 30-10=20 位。TLB 共有 32 个表项,采用 4 路组相联映射方式。因此,TLB 共有 32/4=8 组,每组有 4 路。索引字段为
l o g 2 8 = 3
位。标记字段位数 = 虚拟页号位数 - 索引字段位数=22-3=19 位。
具体原理可以参考 TLB 一节。
选择题
第 18 题 下列事件中,不是在 MMU 地址转换过程检测的是()
A 访问越权 B Cache 缺失 C 页面缺失 D TLB 缺失
查看答案与解析 正确答案: B
MMU 负责将虚拟地址转化为物理地址,所以会检测以下事件:访问越权、页面缺失、TLB 缺失。Cache 缺失不是在 MMU 地址转换过程中检测的,而是在 CPU 访问主存数据检测的,访问主存的前提是有物理地址,所以该过程是在 MMU 完成地址翻译之后。
选择题
第 19 题 在采用“取指、译码/取数、执行、访存、写回”5 段流水线的 RISC 处理器中,下列关于指令流水线数据冒险处理的叙述中,错误的是( )。
A 相邻两条指令中的操作数相关可能引起数据冒险 B 在数据相关的指令间插入“气泡”能避免数据冒险 C 所有数据冒险都可以通过加入转发(旁路)电路解决 D 所有数据冒险都能通过调整指令顺序和插入 nop 指令解决
查看答案与解析 正确答案: C
本题考查 数据冒险 。
A 选项正确,比如第一条指令写寄存器,下一条马上读同一个寄存器,就可能发生数据冒险。 B 选项正确,“气泡”本质上是插入一条空操作(nop),让数据有时间准备好,避免错误读取。 C 选项错误,Load-use hazard(加载 - 使用冒险):加载指令的数据在内存访问阶段(MEM)才准备好,而后续指令可能在执行阶段(EX)就需要使用数据,这种情况即使有旁路电路也可能无法避免,通常还需要插入一个“气泡”。 D 选项正确,插入气泡即推迟指令后续阶段执行,可以避免所有数据冒险。
选择题
第 20 题 某存储器总线的时钟频率为 420 MHz,总线宽度为 64 位,每个时钟周期传送 2 次数据;其总线事务支持突发传送方式,最多传送 8 次数据,第 1 个时钟周期传送地址和读/写命令,从第 4 个至第 7 个时钟周期连续传送 8 次数据。该总线的总线带宽(最大传输速率)为( )。
A 3.84GB/s B 6.72GB/s C 30.72 GB/s D 53.76GB/s
查看答案与解析 正确答案: B
已知:
时钟
f = 420 MHz 总线宽度
w = 64 bit 每个时钟传2次数据(DDR),所以每周期传输次数
= 2 瞬时峰值带宽(只看数据线、连续传数据时)
每秒传输次数
= 420 × 1 0 6 × 2 = 840 × 1 0 6
次/秒, 每次 64 bit。
带宽(比特)
= 840 × 1 0 6 × 64 = 53.76 × 1 0 9 bit/s = 53.76 Gb/s
。
换算字节:
53.76/8 = 6.72 GB/s
。所以瞬时峰值:53.76 Gbit/s = 6.72 GB/s 。
按题目给出的事务时序(每次事务第1周期发地址/命令,第4~7周期传 8 次数据)计算的有效/持续带宽
每次事务传输数据量:
8 × 64 = 512 bit = 64 bytes
。
每个事务占用时钟周期数为 7 周期(第1~第7周期),周期时长为
1/420 MHz
。
时间
t = 7/ ( 420 × 1 0 6 )
s, 因此有效带宽(字节/s):7/ ( 420 × 1 0 6 ) s 64 bytes = 3.84 × 1 0 9 bytes/s = 3.84 GB/s
比特/s 即
3.84 × 8 = 30.72 Gb/s
。
所以按该事务时序的平均最大传输速率(持续带宽)为:30.72 Gbit/s = 3.84 GB/s 。
结论(按题意的推荐答案) :
正确答案选择 B ,题目中问的是 最大传输速率 ,指的是 物理线的理论峰值 ,所以正确答案是 6.72 GB/s(53.76 Gbit/s) 。 如果题目要求考虑第1周期的地址/命令开销,则答案是 3.84 GB/s(30.72 Gbit/s) ; 这题属于是出题人故意埋坑,插入了一堆无用信息,属于很令人无语的一道题,正确答案是 B 而不是 A。
选择题
第 21 题 下列关于中断 I/O 方式的叙述中,错误的是( )。
A 中断屏蔽字用于确定中断响应的优先级 B 保存断点和程序状态字在中断响应阶段完成 C 保存通用寄存器和设置新中断屏蔽字由软件实现 D 单重中断方式下,中断处理时 CPU 处于关中断状态
查看答案与解析 正确答案: A
中断是指外部设备或者程序需要 CPU 的服务时,向 CPU 发出一个信号,请求 CPU 暂停当前的任务,转而处理中断请求的情况。
中断响应顺序是指当同时有多个中断请求时,CPU 按照一定的优先级顺序来选择响应哪个中断的规则。
中断屏蔽字只能控制中断的开关,而不能控制中断的顺序,中断的顺序由中断的优先级决定,优先级高的中断先被响应,优先级低的中断后被响应。
选择题
第 22 题 DMA 方式中,DMA 控制器控制的数据传输通路位于( )。
A CPU 和主存之间 B CPU 和 DMA 控制器之间 C 设备接口和主存之间 D 设备接口和 DMA 控制器之间
查看答案与解析 正确答案: C
在 DMA 方式中,DMA 控制器控制的数据传输通路位于设备接口和主存之间。这是因为 DMA(Direct Memory Access,直接存储器访问)的主要功能是在外设和存储器之间或者存储器和存储器之间提供高速数据传输。
选择题
第 23 题 A 中断或异常发生时,CPU 处于内核态 B 每个系统调用都有对应的内核服务例程 C 中断处理程序开始执行时,CPU 处于内核态 D 系统添加新类型设备时,需注册相应的中断服务例程
查看答案与解析 正确答案: A
本题考查 中断和异常 。
A 错误。中断或异常发生时,CPU 处于用户态。当中断或异常发生时,CPU 会从用户态切换到内核态,然后开始执行相应的中断处理程序或异常处理程序。 B 正确。操作系统为每种系统调用提供了对应的内核服务例程,这些例程负责处理用户程序发起的系统调用,以及管理内核资源和执行相应的操作。当用户程序发起系统调用时,处理器会从用户态切换到内核态,并执行与该系统调用对应的内核服务例程。 C 正确。当中断发生时,CPU 会从用户态切换到内核态,并开始执行相应的中断处理程序。因为中断处理程序需要访问和操作受保护的内核资源,如管理设备、执行特权指令等,所以中断处理程序必须在内核态下执行。 D 正确。系统添加新类型设备时,需注册相应的中断服务例程。因为许多设备在发生特定事件时会触发中断,需要相应的中断处理程序来进行处理,该中断处理程序就是中断服务例程。
选择题
第 24 题 下列选项中,操作系统在终止进程时不一定执行的是()。
A 终止子进程 B 回收分配的内存资源 C 撤销进程 PCB D 回收进程占用的设备
查看答案与解析 正确答案: A
当用户终止进程时,不一定终止子进程。因为子进程的生命周期并不总是与父进程紧密相关联,在某些情况下,即使父进程被终止,子进程也可以继续运行,如
孤儿进程 和
僵尸进程 。
选择题
第 25 题 在支持页式存储管理的系统中,进程切换时 OS 要执行()。
I. 更新 PC(程序计数器)值 II. 更新栈基址寄存器值(ebp) III. 更新页表基址寄存器值
A 仅 III B 仅 I、II C 仅 I、III D I、II、III
查看答案与解析 正确答案: D
I. 更新程序计数器的值:程序计数器存储了下一条要执行的指令的地址。当进程切换时
,操作系统需要更新程序计数器的值,以便于新的进程能从正确的位置开始执行。
II. 更新栈基址寄存器的值:栈基址寄存器存储了当前进程栈的基址。当进程切换时,操作系统
需要更新栈基址寄存器的值,以确保新的进程使用正确的栈。
III. 更新页表基址寄存器值:页基址寄存器存储了当前进程的页表基址。当进程切换时,操作系
统需要更新页基址寄存器的值,以确保新的进程能正确地访问其内存空间。
选择题
第 26 题 文件系统需要额外的外存空间记录空闲块的位置,占用外存空间大小与当前空闲块数量无关的是()。
A 位示图 B 空闲表 C 成组链接 D 空闲链表
查看答案与解析 正确答案: A
A. 文件系统需要额外的外存空间记录空闲块的位置,占用外存空间大小与当前空闲块数
量无关的是位示图。位示图是一种常用的记录空闲块位置的方法,它使用一个位来表示一个块是
否空闲。位示图的大小取决于磁盘的总块数,而与当前的空闲块数量无关。
B. 空闲表:空闲表是一种记录磁盘空闲块位置的方法它使用一个表来记录空闲块的位置。空闲
表的大小会随着空闲块的数量的变化而变化。
C. 成组链接:成组链接是一种记录该组中其他块的位置。成组链接的大小会随着空闲块数量的变
化而变化。
D. 空闲链表:空闲链表是一种记录酸盘空闲块位置的方法,它使用一个链表来记录所有空闲块的
位置。空闲链表的大小会随着空闲块数量的变化而变化。
选择题
第 27 题 回收分区时,仅合并大小相等的空闲分区的算法是()。
A 伙伴算法 B 最佳适应算法 C 最坏适应算法 D 首次适应算法
查看答案与解析 正确答案: A
A. 伙伴算法 是一种特殊的内存分配算法,他在分配和回收内存时,只合并大小相等的空
闲分区。这种算法的优点是简单且执行速度快,但可能会导致内存碎片:
B. 最佳适应算法:它在分配内存时,会选择大小最接近所需的空闲分区。这种算法的优点是可以
减少内存的浪费,但可能会导致大量的小碎片。
C. 最坏适应算法:它在分配内存时,会选择最大的空闲分区。这种算法的优点是可以减沙内存的
碎片,但可能会导致大量的大碎片。
D.首次适应算法:它在分配内存时,会选择第一个满足所需的空闲分区。这种算法的优点是简单
且执行速度快,但可能会导致内存的碎片。
动态分区分配算法具体参考该节 。
选择题
第 28 题 若进程 P 中有一个线程 T,打开文件后获得 fd,再创建线程 Ta、Tb,则线程 Ta、Tb 可共享的资源是()。
I. 进程 P 的地址空间 II. 线程 T 的栈 III. fd
A 仅 I B 仅 I、III C 仅 II、III D I、II、III
查看答案与解析 正确答案: B
I. 进程 P 的地址空间:在同一进程中的所有线程共享该进程的地址空间。这意味着,线程 Ta 和 Tb 可以访问进程 P 的全局变量,因为这些变量存储在进程的地址空间中。此外,如果线程 T 在堆上分配了内存,那么线程 T 和 Tb 也可以访问这些内存,因为堆是存储在进程的地址空间中的。
II. 线程 T 的栈:每个线程都有自己的栈,这是线程的私有资源,不会被其他线程共享。栈用于存储函数调用的局部变量和返回地址。由于每个线程可能有不同的函数调用序列,因此每个线程需要由自己的栈,因此,线程 Ta 和 Tb 不能访问线程 T 的栈。
III. 文件描述符 fd:同进程中的所有线程共享该进程打开的文件描述符。文件描述符是一个整数,用于表示进程打开的文件。当线程打开一个文件时,操作系统会返回一个文件描述符,然后线程 T、T 和 Tb 都可以使用这个文件描述符来读写该文件,这是因为,尽管每个线程有自己的栈,但是它们共享其余的进程资源,包括文件描述符。
选择题
第 29 题 以下系统调用中,包含文件按名查找功能的系统调用是()。
A open() B read() C write() D close()
查看答案与解析 正确答案: A
A. open() 系统调用用于打开一个文件。它需要一个文件名作为参数,因此它包含了按名
查找文件的功能。如果文件存在并且进程有足够的权限,open() 会成功打开文件并返回一个文件
描述符,否则,它会返回一个错误。
B. read() 系统调用用于从已打开的文件中读取数据。
C. write() 系统调用用于向已打开的文件中写入数据。
D. close() 系统调用用于关闭已打开的文件。
选择题
第 30 题 假设某系统使用时间片轮转调度算法进行 CPU 调度,时间片大小为 5 ms,系统共有 10 个进程,初始时均处于就绪队列,执行结束前仅处于执行态或就绪态。若队尾的进程 P 所需 CPU 时间最短,时间为 25 ms。在不考虑系统开销的情况下,则进程 P 的周转时间为( )。
A 200ms B 205ms C 250ms D 295ms
查看答案与解析 正确答案: C
由于使用的是轮转调度算法,进程即在每次执行一个时间片后,都需要重新回到就绪队列的末尾等待下一次的时间片。所以,实际上,进程 P 的每一个时间片之间都有一个完整的轮转周期的等待时间:10×5ms=50ms,进程 P 需要执行 25/5 个时间片,所有中间有 4 个完整的轮转周期再加上 P 的周转时间为,总共需要 5 个轮转周期:5×50ms=250s。
选择题
第 31 题 键盘中断服务例程执行结束时,所输入的数据存放位置是() 。
A 用户缓冲区 B CPU 的通用寄存器 C 内核缓冲区 D 键盘控制器的数据缓冲区
查看答案与解析 正确答案: C
当键盘输入数据时,首先会将数据发送到键盘控制器的数据寄存器中。当键盘控制器的数据寄存器接收到数据后,它会触发一个中断请求 (IRQ1),通知 CPU 有数据等待处理。CPU 响应中断请求后,会执行键盘中断服务例程。在中断服务例程中,CPU 从键盘控制器的数据寄存器读取输入数据,并将其存放到内核缓冲区中。
A 错误。用户缓冲区通常指的是应用程序为接收输入数据而分配的缓冲区。在键盘中断服务例程执行结束时,输入数据并不会直接存放在用户缓冲区中,而是先存放在内核缓冲区中。应用程序可以通过系统调用或其他机制从内核缓冲区读取输入数据,并将其复制到用户缓冲区中。
B 错误。CPU 中的通用寄存器并不是输入数据的最终存放位置。在键盘中断服务例程执行过程中,输入数据可能会暂时存放在 CPU 的通用寄存器中,但最终会被存放到内核缓冲区中。
C 正确。内核缓冲区是操作系统用于暂存输入数据的内存区域。在键盘中断服务例程执行过程中,输入数据被读取并存入内核缓冲区,以便后续的系统调用或应用程序访问。内核缓冲区通常由操作系统管理,确保数据的正确性和一致性。
D 错误。键盘控制器的数据寄存器是输入数据的初始存放位置,但并不是中断服务例程执行结束时的最终存放位置。
本题选 C。
选择题
第 32 题 某磁盘的磁道数为 400(磁道号为 0~399),采用循环扫描算法 (CSCAN) 进行磁盘调度,完成对 200 号磁道的请求后,磁头向磁道号减小的方向移动,若还有 7 个请求,对应的磁道号分别为 300, 120, 110, 0, 160, 210, 399,则完成上述磁盘请求后磁头移动的距离是( )。
A 599 B 619 C 788 D 799
查看答案与解析 正确答案: C
在 CSCAN 中,磁头会在一个方向上移动,直到达到磁道的一端,然后立即返回到另一端,再次开始扫描。
首先磁头会移动到 160 号磁道,然后依次是 120 号、110 号、0 号,接着磁头移动到开头,然后向磁道号减少的方向移动:依次移动到 399 号、300 号、210 号,完成所有请求后,磁头移动的总距离为:
200-160=40;160-110=50;110-0=110;399-0=399;399-300=90;300-210=90;
磁头移动的总距离为 40+50+110+399+99+90=788
选择题
第 33 题 若分组交换网络及每段链路的带宽如下图,则 H1 到 H2 的最大吞吐量约为()。
A 1Mbps B 10Mbps C 100Mbps D 1000Mbps
查看答案与解析 正确答案: B
H1 和 H2 两端的最大传输速率为 10Mbps,虽然中间的路由器最大传输速率为 1000Mbps,
但是根据网路最大流算法,HI 和 H2 的最大吞吐量等价于最大流,最大流为 1OMbps。
选择题
第 34 题 在下列二进制数字调制方法中,需要 2 个不同频率载波的是()。
A ASP B PSK C FSK D DPSK
查看答案与解析 正确答案: C
本题考查 调制方法 :
选项 A:ASK (Amplitude Shift Keying) 幅移键控,这种调制方式是利用载波幅度的变化来传送数字信息的。因此排除选项 A。
选项 B:PSK (Phase Shift Keying) 相移键控,这种调制方式是利用载波振荡相位的变化来传送数字信息的。因此排除选项 B。
选项 C:FSK (Frequency Shift Keying) 频移键控,这种调制方式是利用载波频率的变化来传送数字信息的。在二进制数字调制中,常见的是二进制 0 和 1 对应不同的频率。因此选项 C 为正确选项。
选项 D:DPSK (Differential Phase Shift Keying) 差分相移键控,它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。因此排除选项 D。
本题选 C。
选择题
第 35 题 如题 35 图所示的支持 VLAN 划分的交换机,已按端口划分了 3 个 VLAN,部分端口连接主机的 IP 地址和 MAC 地址如图中所示,ARP 表结构为<IP 地址,MAC 地址,TTL> ,下列选项中,不会出现在 H4 的 ARP 表中的是()
H1 192.168.3.91
00-3E-C2-39-12-B5
H2 192.168.3.81
00-18-A2-3B-36-21
H3 192.168.3.125
00-E5-78-4A-09-B2
H4 192.168.3.12
00-35-6A-B1-4C-92
H5 192.168.3.251
00-1A-39-5B-E4-45
H7 192.168.3.190
00-51-48-C9-63-A3
H6 192.168.3.129
00-08-6E-05-A7-82
A 192.168.3.81, 00-18-A2-3B-36-21, 14:32:00 B 192.168.3.91, 00-3E-C2-39-12-B5, 14:37:00 C 192.168.3.125, 00-E5-78-4A-09-B2, 14:35:00 D 192.168.3.129, 00-08-6E-05-A7-82, 14:52:00
查看答案与解析 正确答案: D
VLAN (Virtual Local Area Network) 虚拟局域网技术可以把同一物理局域网内的不同用户逻辑地划分成不同的广播域。位于同一 VLAN 的主机之间可以相互通信,位于不同 VLAN 的主机之间不能直接通信。
ARP (Address Resolution Protocol) 地址解析协议,是根据 IP 地址获取物理地址的一个 TCP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源。
因此,ARP 协议可以在同一 VLAN 中起作用。
由图可知,VLAN1 中包含 H1、H2、H3 和 H4;VLAN2 中包含 H5;VLAN3 中包含 H6 和 H7。
A 和 H2 有关,H2 和 H4 都位于 VLAN1 中,因此该项会出现在 H4 的 ARP 表中。
B 和 H1 有关,H1 和 H4 都位于 VLAN1 中,因此该项会出现在 H4 的 ARP 表中。
C 和 H3 有关,H3 和 H4 都位于 VLAN1 中,因此该项会出现在 H4 的 ARP 表中。
D 和 H6 有关,H6 位于 VLAN3 中,而 H4 都位于 VLAN1 中,两者不在同一个 VLAN 中,因此该项不会出现在 H4 的 ARP 表中。
本题选 D。
选择题
第 36 题 在采用 CSMA/CA 的 802.11 无线局域网中,DIFS = 120 μs,SIFS = 28μs,RTS、CTS 和 ACK 帧的传输时延分别是 3 μs、2 μs 和 2 μs,忽略信号传播时延。若主机 A 欲向 AP 发送一个总长度为 1998 B 的数据帧,无线链路带宽为 54 Mb/s,则隐藏站 B 收到 AP 发送的 CTS 帧时,设置的网络分配向量 NAV 的值是()
A 326us B 354us C 385us D 513us
查看答案与解析 正确答案: B
在 CSMA/CA 的 802.11 无线局域网中,网路分配向量(NAV)是用来告诉其他节点预计要占用无线媒体多长时间的一种机制。在发送 RTS(请求发送)和 CTS(清除发送)帧时,发送节点会在帧头中包含一个持续时间字段,这个字段表示从发送当前帧到接收到最后一个 ACK 帧所需的时间。其他节点在接收到 RTS 或 CTS 帧后,会根据这个持续时间字段设置自己的 NAV,从而避免在这段时间内发送数据,防止发生冲突。
NAV 的时间就是其他节点推迟访问的时间,约等于 SIFS 时间 + 数据发送时间 + SIFS 时间 + ACK 帧传播时延。
根据题目中的信息,我们可以计算出设置 NAV 的值。首先,我们需要计算发送数据顿所需的时间数据帧的总长度为 1998B,无线链路带宽为 54bps,所以发送数据帧所需的时间为:1998B/54Mbps=296μs,则总时间=28μs+296μs+28μs+2μs=354μs
选择题
第 37 题 主机甲通过选择重传(SR)滑动窗口协议向主机乙发送帧的部分过程如下图所示。F 为数据帧,ACKx
为确认帧,x 是位数为比特的序号。乙只对正确接收的数据帧进行独立确认。发送窗口与接收窗口大小相
同且均为最大值。甲在
t 1
时刻和
t 2
时刻发送的数据帧分别是 ( )
F0 F1 F2 F3 ACK0 ACK2 ACK3 t1 t2 ? ? 主机甲 主机乙 F1 超时 时间 丢失 丢失 A F1、F3 B F1、F4 C F3、F1 D F4、F1
查看答案与解析 正确答案: D
在
t 1
时刻主机甲接收到了主机乙发送的 ACKO,暂时没有出错的帧,所以继续发送下一
个数据帧 F4。在
t 2
时刻主机甲收到了 F1 超时的错误,根据
选择性重传 ,发送方只需要重传出错的帧,而不是所有的帧,所以只需要重新发送 F1。
选择题
第 38 题 假设主机 H 通过 TCP 向服务器发送长度为 3000B 的报文,往返时间 RTT=10ms,最长报文段寿命
MSL=30s,最大报文段长度 MSS=1000B,忽略 TCP 段的传输时廷,报文传输结束后 H 首先请求断开连接,
则从 H 请求建立 TCP 连接时刻起,到 H 进入 CLOSED 状态为止,所需时间至少是( )
A 30.03s B 30.04s C 60.03s D 60.04s
查看答案与解析 正确答案: D
在 TCP 连接中,从建立连接到关闭连接的过程包括以下步骤:
建立链接:这个过程通常为称为 三次握手 ,SYN、SYN-ACK、ACK,需要一个往返时间 RTT。 数据传输:主机 H 向服务器发送长度为 3000B 的报文。由于最大报文段长度 MSS=1000B,第一
次拥塞窗口为 1 发送 1000B,第二次拥塞窗口为 2 发送 2000B,所以一共消耗 2 个最长报文段寿
命,2 个 RTT。 关闭连接:这个过程通常称为 四次挥手 FIN、ACK、FIN、ACK。 第一次挥手和第三次挥手构成一个 RTT,第二次和第三次是连续发送的,第四次发出去的时候和客户端等待的 2SL 时间重叠,所以需要 1 个 RTT。
所需时间 1RTT+2RTT+1RTT+2MSL=4RTT+2 MSL。
将 RTT=10ms=0.01s 和 MSL=30s 代入上式,得到 60.04s。
选择题
第 39 题 若 UDP 协议在计算校验和过程中,计算机得到中间结果为 1011 1001 1011 0110 时,还需要加上最后
一个 16 位数 0110 0101 1100 0101,则最终计算得到的校验和是()
A 0001 1111 0111 1011 B 0001 1111 0111 1100 C 1110 0000 1000 0011 D 1110 0000 1000 0100
查看答案与解析 正确答案: C
UDP 是一种传输层协议,UDP 校验和 计算的步骤如下:
将 UDP 首部和 UDP 数据字段合并成一个伪首部和一个伪数据字段。伪首部的内容包括源 IP 地址、目
的 IP 地址、协议类型、UDP 数据长度。伪数据字段的内容 UDP 首部和数据字段本身。
对伪首部和伪数据字段进行 16 位的字节级求和,得到一个结果。
对结果进行反码运算,得到最终的校验和。
1011 1001 1011 0110
+ 0110 0101 1100 0101
---------------------
10001 1111 0111 1011
最高位产生进位所以需要在末尾加 1,可得:0001111101111100。
取反可得:1110 0000 1000 0011
选择题
第 40 题 若浏览器不支持并行 TCP 连接,使用非持久的 HTTP/1.0 协议请求浏览 1 个 web 页,该页中引用同一
个网站上 7 个小图像文件,则从浏览器传输 web 页请求建立 TCP 连接开始,到接收完所有内容为止,所
需要的往返时间 RTT 数至少是()
A 4 B 9 C 14 D 16
查看答案与解析 正确答案: D
参考
长连接和短连接 ,在 HTTP/1.0 协议中,如果浏览器不支持并行 TCP 连接,那么每个请求(包括主页面和每个图像文件)都需要单独建立一个 TCP 连接。每个 TCP 连接的建立都需要 1 个往返时间 RTT,因此,对于主页面和 7 个图像文件的请求,总共需要 8 个 RTT。此外,每个 TCP 连接在数据传输完成后都需要关闭,每个关闭连接也需要一个 RTT,共 8 个 RTT。所以从浏览器为传输 Web 页请求建立 TCP 连接开始,到接收完所有内容为所需要的往返时间 RTT 数至少是 8(建立连接)+8(关闭连接)= 16。
提交试卷 重新做题