贡献者: xzllxls
第 1~40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项最符合试题要求。
1。若栈 $S_1$ 中保存整数,栈 $S_2$ 中保存运算符,函数 $F()$ 依次执行下述各步操作:
(1) 从 $S_1$ 中依次弹出两个操作数 $a$ 和 $b$;
(2) 从 $S_2$ 中弹出一个运算符 $op$;
(3) 执行相应的运算 $b$ $op$ $a$;
(4) 将运算结果压人 $S_1$ 中。
假定 $S_1$ 中的操作数依次是 $5$, $8$, $3$, $2$($2$ 在栈顶),$S_2$ 中的运算符依次是 $*$, $-$, $+$($+$ 在栈顶)。调用 $3$ 次 $F()$ 后,$S_1$ 栈顶保存的值是。
A. -15 $\quad$ B. 15 $\quad$ C. -20 $\quad$ D. 20
2. 现有队列 $Q$ 与栈 $S$,初始时 $Q$ 中的元素依次是 $1$, $2$, $3$, $4$, $5$, $6$($1$ 在队头),$S$ 为空。若仅允许下列 $3$ 种操作:①出队并输出出队元素;②出队并将出队元素人栈;③出栈并输出出栈元素,则不能得到的输出序列是。
A . 1, 2, 5, 6, 4, 3 $\quad$ B. 2, 3, 4, 5, 6, 1
C. 3, 4, 5, 6, 1, 2 $\quad$ D. 6, 5, 4, 3, 2, 1
3. 设有一个 $12\times12$ 的对称矩阵 M,将其上三角部分的元素 $m_{i, j}$($1\leqslant i\leqslant j\leqslant12$)按 $12$ 行优先存人 $C$ 语言的一维数组 $N$ 中,元素 $m_{6,6}$ 在 $N$ 中的下标是。
A . 50 $\quad$ B. 51 $\quad$ C. 55 $\quad$ D. 66
4. 设一棵非空完全二叉树 $T$ 的所有叶结点均位于同一层,且每个非叶结点都有 $2$ 个子结点。若 $T$ 有 $k$ 个叶结点,则 $T$ 的结点总数是。
A . 2k-1 $\quad$ B. 2k $\quad$ C. k2 $\quad$ D. 2k-1
5. 已知字符集{a, b, c, d, e, f},若各字符出现的次数分别为 6, 3, 8, 2, 10, 4,则对应字符集中
各字符的哈夫曼编码可能是。
A . 00, 1011, 01, 1010, 11, 100 B. 00, 100, 110, 000, 0010, 01
C. 10, 1011, 11, 0011, 00, 010 D. 0011, 10, 11, 0010, 01, 000
6. 已知二叉排序树如下图所示,元素之间应满足的大小关系是。
A. $x_1< x_2< x_5$ $\quad$ B. $x_1< x_4< x_5$ $\quad$ C. $x_3< x_5< x_4$ $\quad$ D. $x_4< x_3< x_5$
7. 下列选项中,不是如下有向图的拓扑序列的是
A. 1, 5, 2, 3, 6, 4 $\quad$ B. 5, 1, 2, 6, 3, 4
C. 5, 1, 2, 3, 6, 4 $\quad$ D. 5, 2, 1, 6, 3, 4
8. 高度为 5 的 3 阶 B 树含有的关键字个数至少是。
A. 15 $\quad$ B. 31 $\quad$ C. 62 $\quad$ D. 242
9. 现有长度为 $7$、初始为空的散列表 $HT$,散列函数 $H(k)=k\%7$,用线性探测再散列法解决冲突。将关键字 $22$,$43$,$15$ 依次插人到 $HT$ 后,查找成功的平均查找长度是。
A. 1.5 $\quad$ B. 1.6 $\quad$ C. 2 $\quad$ D. 3
10. 对初始数据序列(8, 3, 9, 11, 2, 1, 4, 7, 5, 10, 6)进行希尔排序。若第一趟排序结果为(1,
3, 7, 5, 2, 6, 4, 9, 11, 10, 8),第二趟排序结果为(1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9),则两趟排序采用的增量(间隔)依次是。
A. 3, 1 $\quad$ B. 3,2 $\quad$ C. 5,2 $\quad$ D. 5,3
11. 在将数据序列(6, 1, 5, 9, 8, 4, 7)建成大根堆时,正确的序列变化过程是。
A. 6,1,7,9,8,4,5 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
B. 6,9,5,1,8,4,7 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
C. 6,9,5,1,8,4,7 → 9,6,5,1,8,4,7 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
D. 6,1,7,9,8,4,5 → 7,1,6,9,8,4,5 → 7,9,6,1,8,4,5 → 9,7,6,1,8,4,5 → 9,8,6,1,7,4,5
12. 冯?诺依曼结构计算机中数据采用二进制编码表示,其主要原因是。
Ⅰ .二进制的运算规则简单
Ⅱ .制造两个稳态的物理器件较容易
Ⅲ .便于用逻辑门电路实现算术运算
A. 仅Ⅰ、Ⅱ $\quad$ B. 仅Ⅰ、Ⅲ $\quad$ C. 仅Ⅱ、Ⅲ $\quad$ D.Ⅰ、Ⅱ和Ⅲ
13. 假定带符号整数采用补码表示,若 int 型变量 x 和 y 的机器数分别是 FFFF FFDFH 和 00000041H,则 x、y 的值以及 x - y 的机器数分别是。
A. x = -65, y = 41, x -y 的机器数溢出
B. x = -33, y = 65, x-y 的机器数为 FFFF FF9DH
C. x = -33, y = 65, x-y 的机器数为 FFFF FF9EH
D. x = -65, y = 41, x-y 的机器数为 FFFF FF96H
14. $IEEE$ $754$ 单精度浮点格式表示的数中,最小的规格化正数是。
A . $1.0\times2^{-126}$ $\quad$ B. $1.0\times2^{-127}$ $\quad$ C. $1.0\times2^{-128}$ $\quad$ D. $1.0\times2^{-149}$
15. 某 32 位计算机按字节编址,采用小端(Little Endian)方式。若语令 “ int i = 0; ” 对应指令的机器代码为 “C7 45 FC 00 00 00 00,” 则语句 “int i = - 64;” 对应指令的机器代码是。
A . C7 45 FC C0 FF FF FF $\quad$ B. C7 45 FC 0C FF FF FF
C. C7 45 FC FF FF FF C0 $\quad$ D. C7 45 FC FF FF FF 0C
16. 整数 $x$ 的机器数为 $1101$ $1000$,分别对 $x$ 进行逻辑右移 $1$ 位和算术右移 $1$ 位操作,得到的机器数各是。
A . 1110 1100、1110 1100 $\quad$ B. 0110 1100、1110 1100
C. 1110 1100、0110 1100 $\quad$ D. 0110 1100、0110 1100
17. 假定 DRAM 芯片中存储阵列的行数为 r、列数为 c,对于一个 2K×1 位的 DRAM 芯片,为保证其地址引脚数最少,并尽量减少刷新开销,则 r、c 的取值分别是。
A . 2048、1 $\quad$ B. 64、32 $\quad$ C. 32、64 $\quad$ D. 1、2048
18. 按字节编址的计算机中,某 double 型数组 A 的首地址为 2000H,使用变址寻址和循环结构访问数组 A,保存数组下标的变址寄存器初值为 0,每次循环取一个数组元素,其偏移地址为变址值乘以 sizeof(double),取完后变址寄存器内容自动加 1。若某次循环所取元素的地址为 2100H,则进入该次循环时变址寄存器的内容是。
A . 25 B. 32 C. 64 D. 100
19. 减法指令 “sub R1, R2, R3 的功” 能为 “(R1)-(R2)→ R3”,该指令执行后将生成进位 /借位标志 CF 和溢出标志 OF。若(R1)= FFFF FFFFH,(R2)= FFFF FFF0H,则该减法指令执行后,CF 与 OF 分别为。
A . CF=0, OF=0 $\quad$ B. CF=1, OF=0
C. CF=0, 0F=1 $\quad$ D. CF=1, OF=1
20. 若某计算机最复杂指令的执行需要完成 5 个子功能,分别由功能部件 A~E 实现,各功能部件所需时间分别为 80ps、50ps、50ps、70ps 和 50ps,采用流水线方式执行指令,流水段寄存器延时为 20ps,则 CPU 时钟周期至少为。
A . 60 ps $\quad$ B. 70 ps $\quad$ C. 80 ps $\quad$ D. 100 ps
21. 下列选项中,可提高同步总线数据传输率的是。
Ⅰ .增加总线宽度Ⅱ.提高总线工作频率
Ⅲ .支持突发传输Ⅳ.采用地址/数据线复用
A . 仅Ⅰ、Ⅱ $\quad$ B. 仅Ⅰ、Ⅱ、Ⅲ
C. 仅Ⅲ、Ⅳ $\quad$ D.Ⅰ、Ⅱ、Ⅲ和Ⅳ
22. 下列关于外部 I/O 中断的叙述中,正确的是。
A . 中断控制器按所接收中断请求的先后次序进行中断优先级排队
B. CPU 响应中断时,通过执行中断隐指令完成通用寄存器的保护
C. CPU 只有在处于中断允许状态时,才能响应外部设备的中断请求
D. 有中断请求时,CPU 立即暂停当前指令执行,转去执行中断服务程序
23. 下列关于多任务操作系统的叙述中,正确的是。
Ⅰ . 具有并发和并行的特点
Ⅱ . 需要实现对共享资源的保护
Ⅲ . 需要运行在多 CPU 的硬件平台上
A. 仅Ⅰ $\quad$ B. 仅Ⅱ $\quad$ C. 仅Ⅰ、Ⅱ $\quad$ D. Ⅰ、Ⅱ、Ⅲ
24. 某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为 1μs。在 T 时刻就绪队列中有 3 个进程 P1、P2 和 P3,其在就绪队列中的等待时间、需要的 CPU 时间和优先权如下表所示。
进程 | 等待时间 | 需要的 CPU 时间 | 优先权 |
$P_1$ | 30μs | 12μs | 10μs |
$P_2$ | 15μs | 24μs | 30μs |
$P_3$ | 18μs | 36μs | 20μs |
若优先权值大的进程优先获得 CPU,从 T 时刻起系统开始进程调度,则系统的平均周转时间为
A. 54μs $\quad$ B. 73μs $\quad$ C. 74μs $\quad$ D. 75μs
25. 属于同一进程的两个线程 thread1 和 thread2 并发执行,共享初值为 0 的全局变量 x。thread1 和 thread2 实现对全局变量 x 加 1 的机器级代码描述如下。
thread1 | thread2 |
$mov \quad R1,x \qquad // (x) \rightarrow R1$ | $mov \quad R2, x \qquad // (x) \rightarrow R2$ |
$inc \quad R1 \qquad // (R1)+1 \rightarrow R1$ | $inc \quad R2 \qquad // (R2)+1 \rightarrow R2$ |
$mov \quad x,R1 \qquad // (R1) \rightarrow x$ | $mov \quad x,R2 \qquad // (R2) \rightarrow x$ |
在所有可能的指令执行序列中,使 x 的值为 2 的序列个数是。
A. 1 $\qquad$ B. 2 $\qquad$ C. 3 $\qquad$ D. 4
26. 假设系统中有 4 个同类资源,进程 P1、P2 和 P3 需要的资源数分别为 4、3 和 1,P1、P2 和 P3 已申请到的资源数分别为 2、1 和 0,则执行安全性检测算法的结果是。
A. 不存在安全序列,系统处于不安全状态
B. 存在多个安全序列,系统处于安全状态
C. 存在唯一安全序列 P3、P1、P2,系统处于安全状态
D. 存在唯一安全序列 P3、P2、P1,系统处于安全状态
27. 下列选项中,可能导致当前进程 P 阻塞的事件是。
Ⅰ . 进程 P 申请临界资源
Ⅱ . 进程 P 从磁盘读数据
Ⅲ . 系统将 CPU 分配给高优先权的进程
A. 仅Ⅰ $\qquad$ B. 仅Ⅱ $\qquad$ C. 仅Ⅰ、Ⅱ $\qquad$ D. Ⅰ、Ⅱ、Ⅲ
28. 若 x 是管程内的条件变量,则当进程执行 x.wait() 时所做的工作是。
A. 实现对变量 x 的互斥访问
B. 唤醒一个在 x 上阻塞的进程
C. 根据 x 的值判断该进程是否进人阻塞状态
D. 阻塞该进程,并将之插入 x 的阻塞队列中
29. 当定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是。
Ⅰ .内核中时钟变量的值
Ⅱ .当前进程占用 CPU 的时间
Ⅲ .当前进程在时间片内的剩余执行时间
A. 仅Ⅰ、Ⅱ $\qquad$ B. 仅Ⅱ、Ⅲ $\qquad$ C. 仅Ⅰ、Ⅲ $\qquad$ D. Ⅰ、Ⅱ、Ⅲ
30. 系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁臂黏着。下列磁盘调度算法中,不会导致磁臂粘着的是。
A . 先来先服务(FCFS)B. 最短寻道时间优先(SSTF)
C. 扫描算法(SCAN)D. 循环扫描算法(CSCAN)
31. 下列优化方法中,可以提高文件访问速度的是。
Ⅰ . 提前读Ⅱ . 为文件分配连续的簇
Ⅲ . 延迟写Ⅳ .采用磁盘高速缓存
A . 仅Ⅰ、Ⅱ $\quad$ B. 仅Ⅱ、Ⅲ
C. 仅Ⅰ、Ⅲ、Ⅳ $\quad$ D.Ⅰ、Ⅱ、Ⅲ、Ⅳ
32. 在下列同步机制中,可以实现让权等待的是。
A . Peterson 方法 $\quad$ B. swap 指令
C. 信号量方法 $\quad$ D. TestAndSet 指令
33. 下列 TCP/IP 应用层协议中,可以使用传输层无连接服务的是。
A . FTP $\quad$ B. DNS $\quad$ C. SMTP $\quad$ D. HTTP
34. 下列选项中,不属于物理层接口规范定义范畴的是。
A . 接口形状 $\quad$ B. 引脚功能 $\quad$ C. 物理地址 $\quad$ D. 信号电平
35. IEEE 802.11 无线局域网的 MAC 协议 CSMA/CA 进行信道预约的方法是。
A . 发送确认帧 $\quad$ B. 采用二进制指数退避
C. 使用多个 MAC 地址 $\quad$ D. 交换 RTS 与 CTS 帧
36. 主机甲采用停-等协议向主机乙发送数据,数据传输速率是 3 kbps,单向传播延时是 200ms,忽略确认帧的传输延时。当信道利用率等于 40%时,数据帧的长度为。
A . 240 比特 $\quad$ B. 400 比特 $\quad$ C. 480 比特 $\quad$ D. 800 比特
37. 路由器 R 通过以太网交换机 S1 和 S2 连接两个网络,R 的接口、主机 H1 和 H2 的 IP 地址与 MAC 地址如下图所示。若 H1 向 H2 发送 1 个 IP 分组 P,则 H1 发出的封装 P 的以太网帧的 目的 MAC 地址、H2 收到的封装 P 的以太网帧的源 MAC 地址分别是。
A . 00-a1-b2-c3-d4-62、00-1a-2b-3c-4d-52
B. 00-a1-b2-c3-d4-62、00-a1-b2-c3-d4-61
C. 00-1a-2b-3c-4d-51、00-1a-2b-3c-4d-52
D. 00-1a-2b-3c-4d-51、00-a1-b2-c3-d4-61
38. 某路由表中有转发接口相同的 4 条路由表项,其目的网络地址分别为 35.230.32.0/21、35.230.40.0/21、35.230.48.0/21 和 35.230.56.0/21,将该 4 条路由聚合后的目的网络地址为。
A. 35.230.0.0/19 $\quad$ B. 35.230.0.0/20
C. 35.230.32.0/19 $\quad$ D. 35.230.32.0/20
39. UDP 协议实现分用(demultiplexing)时所依据的头部字段是。
A. 源端口号 $\quad$ B. 目的端口号 $\quad$ C. 长度 $\quad$ D. 校验和
40. 无需转换即可由 SMTP 协议直接传输的内容是。
A. JPEG 图像 $\quad$ B. MPEG 视频 $\quad$ C. EXE 文件 $\quad$ D. ASCII 文本
第 41~47 小题,共 70 分。
41. (13 分)给定一个含 $n$($n\geqslant1$ 个) 整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5, 3, 2, 3} 中未出现的最小正整数是 1;数组{1, 2, 3} 中未出现的最小正整数是 4。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
42. (12 分)拟建设一个光通信骨干网络连通 BJ、CS、XA、QD、JN、NJ、TL 和 WH 等 8 个城市,题 42 图中无向边上的权值表示两个城市间备选光缆的铺设费用。
请回答下列问题。
(1)仅从铺设费用角度出发,给出所有可能的最经济的光缆铺设方案(用带权图表示)计算相应方案的总费用。
(2)题 42 图可采用图的哪一种存储结构?给出求解问题(1)所使用的算法名称。
(3)假设每个城市采用一个路由器按(1)中得到的最经济方案组网,主机 H1 直接连接在 TL 的路由器上,主机 H2 直接连接在 BJ 的路由器上。若 H1 向 H2 发送一个 TTL=5 的 IP 分组,则 H2 是否可以收到该 IP 分组?
43. (8 分)假定计算机的主频为 500MHz,CPI 为 4。现有设备 A 和 B,其数据传输率分别为 2MB/s 和 40MB/s,对应 I/O 接口中各有一个 32 位数据缓冲寄存器。请回答下列问题,要求给出计算过程。
(1)若设备 A 采用定时查询 I/O 方式,每次输入/输出都至少执行 10 条指令。设备 A 最多间隔多长时间查询一次才能不丢失数据?CPU 用于设备 A 输入/输出的时间占 CPU 总时间的百分比至少是多少?
(2)在中断 I/O 方式下,若每次中断响应和中断处理的总时钟周期数至少为 400,则设备 B 能否采用中断 I/O 方式?为什么?
(3)若设备 B 采用 DMA 方式,每次 DMA 传送的数据块大小 1000B,CPU 用于 DMA 预处理和后处理的总时钟周期数为 500,则 CPU 用于设备 B 输人/输出的时间占 CPU 总时间的百分比最多是多少?
44. (15 分)某计算机采用页式虚拟存储管理方式,按字节编址。CPU 进行存储访问的过程如题 44 图所示。
根据题 44 图回答下列问题。
(1)主存物理地址占多少位?
(2)TLB 采用什么映射方式?TLB 用 SRAM 还是 DRAM 实现?
(3)Cache 采用什么映射方式?若 Cache 采用 LRU 替换算法和回写(Write Back)策略,则 Cache 每行中除数据(Data)、Tag 和有效位外,还应有哪些附加位?Cache 总容量是多少?Cache 中有效位的作用是什么?
(4)若 CPU 给出的虚拟地址为 0008 C040H,则对应的物理地址是多少?是否在 Cache 中命中?说明理由,若 CPU 给出的虚拟地址为 0007 C260H,则该地址所在主存块映射到的 Cache 组号是多少?
45. (8 分)请根据题 44 图给出的虚拟储管理方式,回答下列问题。
(1)某虚拟地址对应的页目录号为 6,在相应的页表中对应的页号为 6,页内偏移量为 8,该虚拟地址的十六进制表示是什么?
(2)寄存器 PDBR 用于保存当前进程的页目录起始地址,该地址是物理地址还是虚拟地址?进程切换时,PDBR 的内容是否会变化?说明理由。同一进程的线程切换时,PDBR 的内容是否会变化?说明理由。
(3)为了支持改进型 CLOCK 置换算法,需要在页表项中设置哪些字段?
46. (7 分)某文件系统采用索引节点存放文件的属性和地址信息,簇大小为 4KB。每个文件索引节点占 64B,有 11 个地址项,其中直接地址项 8 个,一级、二级和三级间接地址项各 1 个,每个地址项长度为 4B。请回答下列问题。
(1)该文件系统能支持的最大文件长度是多少?(给出计算表达式即可)
(2)文件系统用 1M(1M=2 20)个簇存放文件索引节点,用 512M 个簇存放文件数据。若一个图像文件的大小为 5600B,则该文件系统最多能存放多少个这样的图像文件?
(3)若文件 F1 的大小为 6KB,文件 F2 的大小为 40KB,则该文系统获取 F1 和 F2 最后一个簇的簇号需要的时间是否相同?为什么?
47. (7 分)某公司网络如题 47 图所示。IP 地址空间 192.168.1.0/24 被均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了 IP 地址,销售部子网的 MTU=1500B,技术部子网的 MTU=800B。
(1)销售部子网的广播地址是什么?技术部子网的子网地址是什么?若每个主机仅分配一个 IP 地址,则技术部子网还可以连接多少台主机?
(2)假设主机 192.168.1.1 向主机 192.168.1.208 发送一个总长度为 1500B 的 IP 分组,IP 分组的头部长度为 20B,路由器在通过接口 F1 转发该 IP 分组时进行了分片。若分片时尽可能分为最大片,则一个最大 IP 分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?
1。B $\quad$ 2。C $\quad$ 3。A $\quad$ 4。A $\quad$ 5。A $\quad$ 6。C $\quad$ 7。D $\quad$ 8。B
9。C $\quad$ 10。D $\quad$ 11。A $\quad$ 12。D $\quad$ 13。C $\quad$ 14。A $\quad$ 15。A $\quad$ 16。B
17。C $\quad$ 18。B $\quad$ 19。A $\quad$ 20。D $\quad$ 21。B $\quad$ 22。C $\quad$ 23。C $\quad$ 24。D
25。B $\quad$ 26。A $\quad$ 27。C $\quad$ 28。D $\quad$ 29。D $\quad$ 30。A $\quad$ 31。D $\quad$ 32。C
33。B $\quad$ 34。C $\quad$ 35。D $\quad$ 36。D $\quad$ 37。D $\quad$ 38。C $\quad$ 39。B $\quad$ 40。D
41。解析:
1)题目要求算法时间上尽可能高效,因此采用空间换时间的办法。分配一个用于标记的数组 B[n],用来记录 A 中是否出现了 1~n 中的正整数,B[0] 对应正整数 1,B[n-1] 对应正整数 n,初始化 B 中全部为 0。由于 A 中含有 n 个整数,因此可能返回的值是 1~n+1,当 A 中 n 个数恰好为 1~n 时返回 n+1。当数组 A 中出现了小于等于 0 或者大于 n 的值时,会导致 1~n 中出现空余位置,返回结果必然在 1~n 中,因此对于 A 中出现了小于等于 0 或者大于 n 的值可以不采取任何操作。
$\qquad$ 经过以上分析可以得出算法流程:从 A[0] 开始遍历 A,若 0<A[i]<=n,则令 B[A[i]-1]=1;否则不做操作。对 A 遍历结束后,开始遍历数组 B,若能查找到第一个满足 B[i]==0 的下标 i,返回 i+1 即为结果,此时说明 A 中未出现的最小正整数在 1~n 之间。若 B[i] 全部不为 0,返回 i+1(跳出循环时 i=n,i+1 等于 n+1),此时说明 A 中未出现的最小正整数是 n+1。
int findMissMin(int A[],int n)
{
int i,*B; // 标记数组
B=(int *)malloc(sizeof(int)*n); // 分配空间
memset(B,0,sizeof(int)*n); // 赋初值为0
for(i=0;i<n;i++)
if(A[i]>0&&A[i]<=n) // 若A[i]的值介于1~n,则标记数组B
B[A[i]-1]=1;
for(i=0;i<n;i++) // 扫描数组B,找到目标值
if (B[i]==0) break;
return i+1; // 返回结果
}
3)时间复杂度:遍历 A 一次,遍历 B 一次,两次循环内操作步骤为 O(1) 量级,因此时间复杂度为 O(n)。空间复杂度:额外分配了 B[n],空间复杂度为 O(n)。
42。解析:
1)为了求解最经济的方案,可以把问题抽象为求无向带权图的最小生成树。可以采用手动 prim 算法或 kruskal 算法作图。注意本题最小生成树有两种构造,如下图所示。
方案的总费用为 16。
2)存储题中的图可以采用邻接矩阵(或邻接表)。构造最小生成树采用 Prim 算法(或 kruskal 算法)。
3)TTL=5,即 IP 分组的生存时间(最大传递距离)为 5,方案 1 中 TL 和 BJ 的距离过远,TTL=5 不足以让 IP 分组从 H1 传送到 H2,因此 H2 不能收到 IP 分组。而方案 2 中 TL 和 BJ 邻近,H2 可以收到 IP 分组。
43。解析:
1)程序定时向缓存端口查询数据,由于缓存端口大小有限,必须在传输完端口大小的数据时访问端口,以防止部分数据没有被及时读取而丢失。设备 A 准备 32 位数据所用时间为 4B/2MB=2us,所以最多每隔 2us 必须查询一次,每秒的查询次数至少是 1s/2us=5 ×105,每秒 CPU 用于设备 A 输入/输出的时间至少为 5×105×10×4=2×107 个时钟周期,占整个 CPU 时间的百分比至少是 2×107/500M=4%。
2)中断响应和中断处理的时间为 400×(1/500M)=0.8us,这时只需判断设备 B 准备 32 位数据要多久,如果准备数据的时间小于中断响应和中断处理的时间,那么数据就会被刷新、造成丢失。经过计算,设备 B 准备 32 位数据所用时间为 4B/40MB=0.1us,因此,设备 B 不适合采用中断 I/O 方式。
3)在 DMA 方式中,只有预处理和后处理需要 CPU 处理,数据的传送过程是由 DMA 控制。设备 B 每秒的 DMA 次数最多为 40MB/1000B=40000,CPU 用于设备 B 输入/ 输出的时间最多为 40000 ×500=2 ×107 个时钟周期,占 CPU 总时间的百分比最多为 2×107/500M=4%。
44。解析:
1)物理地址由实页号和页内地址拼接,因此其位数为 16+12=28;或直接可得 20+3+5=28。
2)TLB 采用全相联映射,可以把页表内容调入任一块空 TLB 项中,TLB 中每项都有一个比较器,没有映射规则只要空闲就行。TLB 采用静态存储器 SRAM,读写速度快,但成本高,多用于容量较小的高速缓冲存储器。
3)图中可以看到,Cache 中每组有两行,故采用 2 路组相联映射方式。因为是 2 路组相联并采用 LRU 替换算法,所以每行(或每组)需要 1 位 LRU 位;因为采用回写策略,所以每行有 1 位修改位(脏位),根据脏位判断数据是否被更新,如果脏位为 1 则需要写回内存。
28 位物理地址中 Tag 字段占 20 位,组索引字段占 3 位,块内偏移地址占 5 位,故 Cache 共有 23=8 组,每组 2 行,每行有 25=32B;故 Cache 总容量为 8×2×(20+1+1+1+32×8)=4464 位=558 字节。Cache 中有效位用来指出所在 Cache 行中的信息是否有效。
4)虚拟地址分为两部分:虚页号、页内地址;物理地址分为两部分:实页号、页内地址。利用虚拟地址的虚页号部分去查找 TLB 表(缺失时从页表调入),将实页号取出后和虚拟地址的页内地址拼接,就形成了物理地址。虚页号 008CH 恰好在 TLB 表中对应实页号 0040H(有效位为 1,说明存在),虚拟地址的后 3 位为页内地址 040H,则对应的物理地址是 0040040H。
$\qquad$ 物理地址为 0040040H,其中高 20 位 00400H 为标志字段,低 5 位 00000B 为块内偏移量,中间 3 位 010B 为组号 2,因此将 00400H 与 Cache 中的第 2 组两行中的标志字段同时比较,可以看出,虽然有一个 Cache 行中的标志字段与 00400H 相等,但对应的有效位为 0,而另一 Cache 行的标志字段与 00400H 不相等,故访问 Cache 不命中。
$\qquad$ 因为物理地址的低 12 位与虚拟地址低 12 位相同,即为 0010 0110 0000B。根据物理地址的结构,物理地址的后八位 01100000B 的前三位 011B 是组号,因此该地址所在的主存映射到 Cache 组号为 3。
45。解析:
1)由图可知,地址总长度为 32 位,高 20 位为虚页号,低 12 位为页内地址。且虚页号高 10 位为页目录号,低 10 位为页号。展开成二进制则表示为:
故十六进制表示为 0180 6008H
$\qquad$ 2)PDBR 为页目录基址地址寄存器(Page-Directory Base Register),其存储页目录表物理内存基地址。进程切换时,PDBR 的内容会变化;同一进程的线程切换时,PDBR 的内容不会变化。每个进程的地址空间、页目录和 PDBR 的内容存在一一对应的关系。进程切换时,地址空间发生了变化,对应的页目录及其起始地址也相应变化,因此需要用进程切换后当前进程的页目录起始地址刷新 PDBR。同一进程中的线程共享该进程的地址空间,其线程发生切换时,地址空间不变,线程使用的页目录不变,因此 PDBR 的内容也不变。
$\qquad$ 3)改进型 CLOCK 置换算法需要用到使用位和修改位,故需要设置访问字段(使用位)和修改字段(脏位)。
46。解析:
$\qquad$(1)簇大小为 4KB,每个地址项长度为 4B,故每簇有 4KB/4B=1024 个地址项。最大文件的物理块数可达 8+1×1024+1×10242+1×10243,每个物理块(簇)大小为 4KB,故最大文件长度为(8+1 ×1024+1 ×10242+1×10243)×4KB=32KB+4MB+4GB+4TB
$\qquad$(2)文件索引节点总个数为 1M×4KB/64B=64M,5600B 的文件占 2 个簇,512M 个簇可存放的文件总个数为 512M/2=256M。可表示的文件总个数受限于文件索引节点总个数,故能存储 64M 个大小为 5600B 的图像文件
$\qquad$ 3)文件 F1 大小为 6KB<4KB×8=32KB,故获取文件 F1 的最后一个簇的簇号只需要访问索引节点的直接地址项。文件 F2 大小为 40KB,4KB×8<40KB<4KB×8+4KB×1024,故获取 F2 的最后一个簇的簇号还需要读一级索引表。综上,需要的时间不相同。
47。解析:
$\qquad$ 1)广播地址是网络地址中主机号全 1 的地址(主机号全 0 的地址,代表网络本身)。销售部和技术部均分配了 192.168.1.0/24 的 IP 地址空间,IP 地址的前 24 位为子网的网络号。于是在后 8 位中划分部门的子网,选择前 1 位作为部门子网的网络号。令销售部子网的网络号为 0,技术部子网的网络号为 1,则技术部子网的完整地址为 192.168.1.128;令销售部子网的主机号全 1,可以得到该部门的广播地址为 192.168.1.127。
$\qquad$ 每个主机仅分配一个 IP 地址,计算目前还可以分配的主机数,用技术部可以分配的主机数,减去已分配的主机数,技术部总共可以分配计算机主机数为 27-2=126(减去全 0 和全 1 的主机号)。已经分配了 208-129+1=80 个,此外还有 1 个 IP 地址分配给了路由器的端口(192.168.1.254),因此还可以分配 126-80-1=45 台。
$\qquad$ 2)判断分片的大小,需要考虑各个网段的 MTU,而且注意分片的数据长度必须是 8B 的整数倍。由题可知,在技术部子网内,MTU=800B,IP 分组头部长 20B,最大 IP 分片封装数据的字节数为 $\lfloor(800-20)/8\times8\rfloor=776$。至少需要的分片数为 $\lceil(1500-20)/776\rceil=2$。第 1 个分片的偏移量为 0;第 2 个分片的偏移量为 776/8=97。