2011 年 408 真题
本节正在编写中,敬请期待。
选择题
数据结构
1
设 n 是描述问题规模的非负整数,下面程序片段的时间复杂度是( )。
x = 2;
while (x < n / 2)
x = 2 * x;
在程序中,执行频率最高的语句为
x = x * 2
,设该语句总共执行了 T(n) 次,则 $2^{T(n)+1} \le n/2$,
故 $T(n) = log_{2}(n/2) - 1 = log_{2}n - 2$,得 $T(n) = O(log_{2}n)$2
元素 a,b,c,d,e 依次进入初始为空的栈中,若元素进栈后可停留、可出栈,知道所有元素都出栈,则在所有可能的出现序列中,一元素 d 开头的序列个数是( )。
d 为第 1 个出栈元素,则 d 之前的元素必定是进栈后在栈中停留。因而出栈顺序必为 d_c_b_a_, e 的顺序不定,在任一"_“上都有可能,一共有 4 种可能。
3
已知循环队列存储在一维数组 A[0..n-1]中,且队列非空时 front 和 rear 分别指向队头元素和队尾元素。若初始时队列空,且要求第一个进入队列的元素存储在 A[0]处,则初始时 front 和 rear 的值分别是______。
根据题意,第一个元素进入队列后存储在 A[0] 处,此时 front 和 rear 值都为 0 。入队时由于 要执行(rear+ 1)%n 操作,所以如果入队后指针指向 o, 则 rear 初值为 n-1, 而由千第一个元素在 A[0] 中,插入操作只改变 rear 指针,所以 front 为 0 不变。
4
若一棵完全二叉树有 768 个结点,则该二叉树中叶结点的个数是()
根据完全二叉树的性质,最后一个分支结点的序号为 $\lfloor n/2 \rfloor = \lfloor 768/2 \rfloor = 384$, 故叶子结点的个数为 768 - 384 = 384 。
5
若一棵二叉树的前序遍历序列和后序遍历序列分别为 1,2,3,4 和 4,3,2,1,则该二叉树的 中序遍历序列不会是()
前序序列为 NLR,后序序列为 LRN,由于前序序列和后序序列刚好相反,故不可能存在一 个结点同时存在左右孩子,即二叉树的高度为 4.1 为根结点,由于根结点只能有左孩子(或右 孩子),因此,在中序序列中,1 或在序列首或在序列尾,ABCD 皆满足要求。仅考虑以 1 的孩子 结点 2 为根结点的子树,它也只能有左孩子(或右孩子),因此,在中序序列中,2 或在序列首或 序列尾,ABD 皆满足要求
6
已知一棵有 2011 个结点的树,其叶结点个数为 116,该树对应的二叉树中无右孩子的结点个数是( )。
树转换为二叉树时,树中每一个分支结点的所有子结点中的最右子结点无右孩子,根结点转 换后也没有右孩子,因此,对应的二叉树中无右孩子的结点个数=分支结点数+1=2011-116+ 1= 1896。通常本题应采用特殊法解, 设题意中的树是如右图所示 的结构,则 对应的二叉树中仅有前 115 个叶结点有右孩子,故 无右孩子的结点个数= 2011 - 115 = 1896。
7
对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是 ( )。
在二叉排序树中,左子树结点值小于根结点,右子树结点 值大于根结点。在选项 A 中, 当查找到 91 后再向 24 查找,说 明这一 条路径(左子树)之后查找的数都要比 91 小,而后面却 查找到了 94 (解题过程中,建议配合画图),因此错误。
8
下列关于图的叙述中,正确的是()
Ⅰ. 回路是简单路径
Ⅱ.存储稀疏图,用邻接矩阵比邻接表更省空间
Ⅲ.若有向图中存在拓扑序列,则该图不存在回路
第一个顶点和最后一个顶点相同的路径称为回路;序列中项点不重复出现的路径称为简单路 径;回路显然不是简单路径,故 I 错误;稀疏图是边比较少的情况,此时用邻接矩阵的空间复杂 度为 $O(n)$ ,必将浪费大量的空间,而邻接表的空间复杂度为 $O(n+e)$,应该选用邻接表,故 IⅡ错 误。存在回路的有向图不存在拓扑序列,若拓扑排序输出结束后所余下的顶点都有前驱,则说明 只得到了部分顶点的拓扑有序序列,图中存在回路,故Ⅱ正确。
9
为提高哈希(Hash)表的查找效率,可以采取的正确措施是______。
Ⅰ.增大装填因子
Ⅱ.设计冲突少的哈希函数
Ⅲ.处理冲突时避免产生堆积现象
Hash 表的查找效率取决于散列函数、处理冲突的方法和装填因子。显然,冲突的产生概率与 装填因子(表中记录数与表长之比)的大小成正比,即装填得越满越容易发生冲突,I 错误。Ⅱ 显然正确。采用合适的处理冲突的方式避免产生聚集现象,也将提高查找效率,例如用拉链法解 决冲突时就不存在聚集现象,用线性探测法解决冲突时易引起聚集现象,Ⅲ正确。
10
为实现快速排序算法,待排序序列宜采用的存储方式是()
对绝大部分内部排序而言,只适用于顺序存储结构。快速排序在排序的过程中,既要从后向 前查找,也要从前向后查找,因此宜采用顺序存储。
11
已知序列 25,13,10,12,9 是大根堆,在序列尾部插入新元素 18,将其再调整为大根堆,调整过程中元素之间进行的比较次数是()
插入 18 后,首先将 18 与 10 比较,交换位置,再将 18 与 25 比较,不交换位置。共比较了 2 次, 调整的过程如下图所示。
组成原理
12
下列选项中,描述浮点数操作速度指标的是( )。
MIPS 是每秒执行多少百万条指令,适用千衡量标量机的性能。 CPI 是平均每条指令的时钟 周期数。 IPC 是 CPI 的倒数,即每个时钟周期执行的指令数。MFLOPS 是每秒执行多少百万条浮 点数运算,用来描述浮点数运算速度,适用于衡量向量机的性能。
13
float 型数据通常用 IEEE754 单精度浮点数格式表示。若编译器将 float 型变量 x 分配在一个 32 位浮点寄存器 FR1 中,且 x=-8.25,则 FR1 的内容是( )。
本题题意即考查 IEEE 754 单精度浮点数的表示。先将 x 转换成二进制为 $-1000.01 = -1.00001 \times 2^3$, 其次计算阶码 E, 根据 IEEE 754 单精度浮点数格式,有 E-127=3, 故 E=130, 转换成二进制 为 1000 0010。最后,根据 IEEE 754 标准,最高位的 “1” 是被隐藏的。
IEEE 754 单精度浮点数格式:数符(1 位)+阶码 (8 位)+尾数 (23 位)。
故, FRI 内容为 1; 1000 0010; 0000 10000 0000 0000 0000 000。
即,1100 0001 0000 0100 0000 0000 0000 0000= C104000H。
本题易误选 D, 未考虑 IEEE 754 标准隐含最高位 1 的情况,偏置值是 128。
14
下列各类存储器中,不采用随机存取方式的是( )。
随机存取方式是指 CPU 可以对存储器的任一存储单元中的内容随机存取, 而且存取时间与 存储单元的物理位置无关。选项 A 、 C、 D 均采用随机存取方式, CD-ROM 即光盘,采用串行存 取方式。
15
某计算机存储器按字节编址,主存地址空间大小为 64MB,现用 4M×8 位的 RAM 芯片组成 32MB 的主存储器,则存储器地址寄存器 MAR 的位数至少是( )。
主存按字节编址,地址空间大小为 64MB,MAR 的寻址范围为 64M = $2^{26}$,故为 26 位。实际 的主存容量 32MB 不能代表 MAR 的位数,考虑到存储器扩展的需要,MAR 应保证访问到整个主 存地址空间,反过来,MAR 的位数决定了主存地址空间的大小。
16
偏移寻址将某个寄存器内容与一个形式地址相加而生成有效地址。下列寻址方式中,不属于偏移寻址方式的是( )。
间接寻址不需要寄存器,EA=(A)。基址寻址 EA=A+ 基址寄存器 BR 内容;相对寻址 EA= A+ 程序计数器 PC 内容;变址寻址 EA=A+ 变址寄存器 IX 内容。后三者都是将某个寄存器内容 与一个形式地址相加而形成有效地址,故选 A。
17
某机器有一个标志寄存器,其中有进位/借位标志 CF、零标志 ZF、符号标志 SF 和溢出标志 OF,条件转移指令 bgt(无符号整数比较大于时转移)的转移条件是( )
假设两个无符号整数 A 和 B,bgt 指令会将 A 和 B 进行比较,也就是将 A 和 B 相减。如果 A>B, 则 A-B 肯定无进位/借位, 也不为 0 (为 0 时表示两数相同), 故而 CF 和 ZF 均为 o, 选 C。其 余选项中用到了符号标志 SF 和溢出标志 OF, 显然应当排除。
18
下列给出的指令系统特点中,有利于实现指令流水线的是( )。
Ⅰ. 指令格式规整且长度一致
Ⅱ. 指令和数据按边界对齐存放
Ⅲ. 只有 Load/Store 指令才能对操作数进行存储访问
指令定长、 对齐和仅 Load/Store 指令访存, 这 3 个都是 RISC 的特征,指令格式规整且长度 一 致能大大简化指令译码的复杂度,有利于 实现流水线。指令和数据按边界对齐存放能保证在一 个存取 周期内取到需要的 数据和指令,不用多余的延迟等待, 也有利于实现流水线。 只有 Load/Store 指令才能对操作数进行存储访问使取指令、 取操作数操作简化且时间长度固定,能够 有效地简化流水线的复杂度。
19
假定不采用 Cache 和指令预取技术,且机器处于“开中断”状态,则在下列有关指令执行的叙述中,错误的是( )。
由于不采用指令预取技术, 每个指令周期都需要取指令,而不采用 Cache 技术, 则每次取指 令都至少要访问内存一次(当指令字长与存储字长相等且按边界对齐时),A 正确。时钟周期是 CPU 的最小时间单位, 每个指令周期一定大于或等于 一个 CPU 时钟周期,B 正确。 即使是空操 作指令, 在取指操作后,PC 也会自动加 1, C 错误。 由于机器处于 “ 开中断 ” 状态, 在 每条指令 执行结束时都可能被外部中断而 打断。
20
在系统总线的数据线上,不可能传输的是( )。
在取指令时,指令便是在数据线上传输的。操作数显然在数据线上传输。中断类型号用以指 出中断向量的地址, CPU 响应中断请求后, 将中断应答信号-(�TR)发回到数据总线上, CPU 从数据总线上读取中断类型号后, 查找中断向量表, 找到相应的中断处理程序入口。而握手(应 答)信号属于通信联络控制信号,应在通信总线上传输。
21
某计算机有五级中断 L4~L0,中断屏蔽字为 M4M3M2M1M0 , Mi=1(0≤i≤4) 表示对 Li 级中断进行屏蔽。若中断响应优先级从高到低的顺序是 L0→L1→L2→L3→L4 ,且要求中断处理优先级从高到低的顺序是 L4→L0→L2→L1→L3 ,则 L1 的中断处理程序中设置的中断屏蔽字是( )。
高优先级置 0 表示可被中断,比该中断优先级低(或相等)的置 l 表示不可被中断,$L_1$ 只能 屏蔽 $L_3$ 和其自身, 故 $M_3$ 和 $M_1$ 置 1, 中断屏蔽字 $M_4 M_3 M_2 M_1 M_0 = 01010$。
22
某计算机处理器主频为 50MHz,采用定时查询方式控制设备 A 的 I/O,查询程序运行一次所用的时钟周期数至少为 500。在设备 A 工作期间,为数据不丢失,每秒需对其查询至少 200 次,则 CPU 用于设备 A 的 I/O 的时间占整个 CPU 时间的百分比至少是( )。
每秒至少查询 200 次,每次查询至少 500 个 时钟周期,总的时钟周期数为 200 × 500 =100000, 因此 CPU 用于设备 A 的 I/O 的时间占 CPU 时间比为 100000/50M =0.20%。
操作系统
23
下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( )。
高响应比优先算法是一种综合考虑任务长度和等待时间的调度算法, 响应比=(等待时间+ 执行时间)/执行时间。高响应比优先算法在等待时间相同的情况下,作业执行 时间越短则响应比 越高, 满足短任务优先。随着长任务的等待时间增加, 响应比也会变大, 执行机会也就增大, 所以不会发生饥饿现象。先来先服务和时间片轮转不符合短任务优先, 非抢占式短任务优先会 产生饥饿现象。
24
下列选项中,在用户态执行的是( )。
缺页处理和时钟中断都属千中断,在核心态执行;进程调度是操作系统内核进程, 无须用户 干预, 在核心态执行;命令解释程序属于命令接口,是四个选项中唯 一 能面对用户 的, 它在用户 态执行。
25
在支持多线程的系统中,进程 P 创建的若干线程不能共享的是( )。
进程是资源分配的基本单位,线程是处理机调度的基本单位。因此, 进程的代码段、进程打 开的文件 、 进程的全局变量等都是进程的资源, 唯有进程中某线程的栈指针是属千线程的, 属于 进程的资源可以共享, 属于线程的栈是独享的, 对其他线程透明。
26
用户程序发出磁盘 I/O 请求后,系统的正确处理流程是( )。
输入/输出软件 一 般从上到下分为四个层次:用户层、与设备无关的软件层、设备驱动程序以 及中断处理程序。 与设备无 关的软件层也就是系统调用的处理程序。
当用户使用设备时, 首先在用户程序中发起 一 次系统调用,操作系统的内核接到该调用请求 后请求调用处理程序进行处理, 再转到相应的设备驱动程序, 当设备准备好或 所需数据到达后设 备硬件发出中断, 将数据按上述调用顺序逆向回传到用户程序中。
27
某时刻进程的资源使用情况如下表所示。
此时的安全序列是( )。
题应采用排除法,逐个代入分析。当剩余资源分配给 $P_1$, 待 $P_1$ 执行完后,可用资源数为 (2,2,1), 此时仅能满足 $P_4$ 的需求,排除 AB; 接着分配给 $P_4$ , 待 $P_4$ 执行完后, 可用资源数为(2, 2, 2), 此时已 无法满足任何进程的需求, 排除 C。 此外,本题还可以使用银行家算法求解(对于选择题来说,显得过于复杂)。
28
在缺页处理过程中,操作系统执行的操作可能是()。
Ⅰ、修改页表
Ⅱ、磁盘 I/O
Ⅲ、分配页框
缺页中断产生后,需要在内存中找到空闲页框并分配给需要访问的页(可能涉及页面置换), 之后缺页中断处理程序调用设备驱动程序做磁盘/O,将位于外存上的页面调入内存,调入后需 要修改页表,将页表中代表该页是否在内存的标志位(或有效位)置为 1,并将物理页框号填入 相应位置,若必要还需修改其他相关表项等。
29
当系统发生抖动 (thrashing) 时,可以采取的有效措施是( )。
Ⅰ. 撤销部分进程
Ⅱ. 增加磁盘交换区的容量
Ⅲ. 提高用户进程的优先级
在具有对换功能的操作系统中,通常把外存分为文件区和对换区。前者用于存放文件,后者 用于存放从内存换出的进程。抖动现象是指刚刚被换出的页很快又要被访问,为此又要换出其他 页,而该页又很快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上,引起系统 性能下降。撤销部分进程可以减少所要用到的页面数,防止抖动。对换区大小和进程优先级都与 抖动无关。
30
在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是()。
编译后的模块需要经过链接才能装载,而链接后形成的地址才是整个程序的完整逻辑地址空 间。以 C 语言为例:C 语言经过预处理(cpp)→编译(ccl)→汇编(as)→链接(ld)产生可执 行文件。其中链接的前一步,产生了可重定位的二进制的目标文件。C 语言采用源文件独立编译 的方法,如程序 main.c,file1.c,file2.c,file1.h,file2.h,在链接的前一步生成了 main.o,file1.o,file2.o, 这些目标模块采用的逻辑地址都从 0 开始,但只是相对于该模块的逻辑地址。链接器将这三个文件, libc 和其他的库文件链接成一个可执行文件。链接阶段主要完成了重定位,形成整个程序的完整逻 辑地址空间。
例如,file1.o 的逻辑地址为 0~1023,main.o 的逻辑地址为 0~1023,假设链接时将 filel.o 链接在 main.0 之后,则重定位之后 fle1.o 对应的逻辑地址就应为 1024~2047。
31
某文件占 10 个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析,假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为 100μs,将缓冲区的数据传送到用户区的时间是 50μs,CPU 对一块数据进行分析的时间为 50μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是( )。
在单缓冲区中,当上一个磁盘块从缓冲区读入用户区完成时,下一磁盘块才能开始读入,也 就是当最后一块磁盘块读入用户区完毕时所用时间为 150×10=1500μs,加上处理最后一个磁盘块 的时间 50μs,得 1550μs。双缓冲区中,不存在等待磁盘块从缓冲区读入用户区的问题,10 个磁 盘块可以连续从外存读入主存缓冲区,加上将最后一个磁盘块从缓冲区送到用户区的传输时间 50μs 以及处理时间 50μs,也就是 100×10+50+50=1100μs。
32
有两个并发执行的进程 P1 和 P2,共享初值为 1 的变量 x。P1 对 x 加 1,P2 对 x 减 1。加 1 和减 1 操作的指令序列分别如下所示。
P1 // 加 1 操作
load R1, x // 取 x 到寄存器 R1 中
inc R1
store x, R1 // 将 R1 的内容存入 x
P2 // 减 1 操作
load R2, x // 取 x 到寄存器 R2 中
dec R2
store x, R2 // 将 R2 的内容存入 x
两个操作完成后,x 的值( )。
将 $P_1$ 中 3 条语句依次编号为 1,2,3;$P_2$ 中 3 条语句依次编号为 4,5,6。依次执行 1,2,3,4,5, 6 得结果 1,依次执行 1,2,4,5,6,3 得结果 2,执行 4,5,1,2,3,6 得结果 0。因此结果-1 不可能得出。
计算机网络
33
TCP/IP 参考模型的网络层提供的是( )。
TCP/IP 的网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。考查 IP 首部,如果是面向连接的, 那么应有用于建立连接的字段, 但是没有;如果提供可靠的服务, 那 么至少应有序号和校验 和两个字段, 但是 IP 分组头中也没有(IP 首部中只是首部校验和)。 通常 有连 接、 可靠 的应用是由运输层的 TCP 实现的。
34
若某通信链路的数据传输速率为 2400 bps,采用 4 相位调制,则该链路的波特率是( )。
波特率 B 与数据传输率 C 的关系:$C = B log_{2}N$,$N$ 为一个码元所取的离散值个数。采用 $4$ 种 相位,也即可以表示 $4$ 种变化,故一个码元可携带 $log_{2} 4 = 2$ bit 信息,则该链路的波特率 = 比特 率/2 = 1200 波特。
35
数据链路层采用选择重传协议 (SR) 传输数据,发送方已发送了 0~3 号数据帧,现已收到 1 号帧的确认,而 0、2 号帧依次超时,则此时需要重传的帧数是( )。
在选择重传协议中,接收方逐个确认正确接收的分组,不管接收到的分组是否有序,只要正 确接收就发送选择 ACK 分组进行确认。因此选择重传协议中的 ACK 分组不再具有累积确认的作 用,要特别注意其与 GBN 协议的区别。本题中只收到 1 号帧的确认,0、2 号帧超时,由于对于 1 号帧的确认不具累积确认的作用,因此发送方认为接收方没有收到 0、2 号帧,于是重传这两帧。 因为 3 号帧计时器并无超时,所以暂时不用重传 3 号帧。
36
下列选项中,对正确接收到的数据帧进行确认的 MAC 协议是( )。
CSMA/CA 是无线局域网标准 802.11 中的协议,它在 CSMA 的基础上增加了冲突避免的功能。 ACK 帧是 CSMA/CA 避免冲突的机制之一,也就是说,只有当发送方收到接收方发回的 ACK 帧 后才确认发出的数据帧已正确到达目的地。
37
某网络拓扑如下图所示,路由器 R1 只有到达子网 192.168.1.0/24 的路由。为使 R1 可以将 IP 分组正确地路由到图中所有子网,则在 R1 中需要增加的一条路由(目的网络,子网掩码,下一跳)是( )。
要使 Rl 能够正确将分组路由到所有子网,则 Rl 中需要有到 192.168.2.0/25 和 192.168.2.128/25 的路由, 分别转换成二进制如下:
192.168.2.0: 11000000 10101000 00000010 00000000
192.168.2.128: 11000000 10101000 00000010 10000000
前 24 位都是相同的,于是可以聚合成超网 192.168.2.0/24, 子网掩码为前 24 位,即 255.255.255.0。下 一跳是与 Rl 直接 相连的 R2 的地址,因此是 192.168.1.2。
38
在子网 192.168.4.0/30 中,能接收目的地址为 192.168.4.3 的 IP 分组的最大主机数是
首先分析 192.168.4.0/30 这个网络,主机号只占 2 位,地址范围为 192.168.4.0-192.168.4.3, 主机号全 l 时,即 192.168.4.3 是广播地址, 主机号全 0 表示本网络 本身,不作为主机地址使用, 因此可容纳 4 - 2=2 个 主机 。
39
主机甲向主机乙发送一个 (SYN=1, seq=11220) 的 TCP 段,期望与主机乙建立 TCP 连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的 TCP 段可能是
在确认报文段中,同步位 SYN 和确认位 ACK 必须都是 1; 返回的确认号 seq 是甲发送的初 始序号 seq=11220 加 1, 即 ack= 11221; 同时乙也要选择并消耗一个初始序号 seq, seq 值由乙的 TCP 进程任意给出,它与确认号、请求报文段的序号没有任何关系。
40
主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了 3 个连续的 TCP 段,分别包含 300 字节、400 字节和 500 字节的有效载荷,第 3 个段的序号为 900。若主机乙仅正确接收到第 1 和第 3 个段,则主机乙发送给主机甲的确认序号是
TCP 首部的序号字段是指本报文段数据部分的第一个字节的序号,而确认号是期待收到对方 下 一个报文段的第一个字节的序号 。第三个段的序号为 900, 则第二个段的序号为 900-400=500, 现在主机乙期待收到第二个段,故发给甲的确认号是 500。
解答题
数据结构
41
已知有 6 个顶点(顶点编号为 0~5)的有向带权图 G ,其邻接矩阵 A 为上三角矩阵,按行为主序(行优先)保存在如下的一维数组中。
要求:
(1) 写出图 G 的邻接矩阵 A 。
(2) 画出有向带权图 G 。
(3) 求图 G 的关键路径,并计算该关键路径的长度。
42
一个长度为 L(L≥1) 的升序序列 S ,处在第 ⌈L/2⌉ 个位置的数称为 S 的中位数。例如,若序列 S1=<11,13,15,17,19> ,则 S1 的中位数是 15 。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若序列 S2=<2,4,6,8,20> ,则 S1 和 S2 的中位数是 11 。现有两个等长的升序序列 A 和 B ,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A 和 B 的中位数。要求:
(1) 给出算法的基本设计思想。
(2) 根据设计思想,采用 C 或 C++或 Java 语言描述,关键之处给出注释。
(3) 说明你所设计算法的时间复杂度和空间复杂度。
组成原理
43
假定在一个 8 位字长的计算机中运行如下 C 程序段:
unsigned int x=134;
unsigned int y=246;
int m=x;
int n=y;
unsigned int z1=x-y;
unsigned int z2=x+y;
int k1=m-n;
int k2=m+n;
若编译器编译时将 8 个 8 位寄存器 R1~R8 分别分配给变量 x、y、m、n、z1、z2、k1 和 k2。请回答下列问题。(提示:带符号整数用补码表示)
(1) 执行上述程序段后,寄存器 R1、R5 和 R6 的内容分别是什么(用十六进制表示)?
(2) 执行上述程序段后,变量 m 和 k1 的值分别是多少(用十进制表示)?
(3) 上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种运算能否利用同一个加法器及辅助电路实现?简述理由。
(4) 计算机内部如何判断带符号整数加/减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?
44
某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为 16MB,主存(物理)地址空间大小为 1MB,页面大小为 4KB:Cache 采用直接映射方式,共 8 行:主存与 Cache 之间交换的块大小为 32B。系统运行到某一时刻时,页表的部分内容和 Cache 的部分内容分别如题 44-a 图、题 44-b 图所示,图中页框号及标记字段的内容为十六进制形式。
请回答下列问题∶
(1) 虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位,哪几位表示页框号(物理页号)?
(2) 使用物理地址访问 Cache 时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。
(3) 虚拟地址 001C60H 所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否 Cache 命中?要求说明理由。
(4) 假定为该机配置一个 4 路组相连的 TLB,该 TLB 共可存放 8 个页表项,若其当前内容(十六进制)如题 44-c 图所示,则此时虚拟地址 024BACH 所在的页面是否在主存中?要求说明理由。
操作系统
45
某银行提供 1 个服务窗口和 10 个顾客等待座位。顾客到达银行时,若有空座位,则到取号机领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:
cobegin
process 顾客 i {
从取号机获得一个号码;
等待叫号;
获得服务;
}
process 营业员 {
while (TRUE) {
叫号;
为顾客服务;
}
}
coend
请添加必要的信号量和 P、V(或 wait( )、signal( ))操作实现上述过程的互斥和同步。要求写出完整的过程,说明信号量的含义并赋初值。
46
某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次创建新文件。请回答如下问题∶
(1) 在连续、链式、索引二种文件的数据块组织方式中。哪种更合适?要求说明理由。为定位文件数据块,需要在 FCB 中设计哪些相关描述字段?
(2) 为快速找到文件,对于 FCB,是集中存储好,还是与对应的文件数据块连续存储好?要求说明理由。
计算机网络
47
某主机的 MAC 地址为 00-15-C5-C1-5E-28,IP 地址为 10.2.128.100(私有地址)。题 47-a 图是网络拓扑,题 47-b 图是该主机进行 Web 请求的 1 个以太网数据帧前 80 个字节的十六进制及 ASCII 码内容。
请参考图中的数据回答以下问题。
(1) Web 服务器的 IP 地址是什么?该主机的默认网关的 MAC 地址是什么?
(2) 该主机在构造题 47-b 图的数据帧时,使用什么协议确定目的 MAC 地址?封装该协议请求报文的以太网帧的目的 MAC 地址是什么?
(3) 假设 HTTP/1.1 协议以持续的非流水线方式工作,一次请求-响应时间为 RTT,rfc.html 页面引用了 5 个 JPEG 小图像,则从发出题 47-b 图中的 Web 请求开始到浏览器收到全部内容为止,需要多少个 RTT?
(4) 该帧所封装的 IP 分组经过路由器 R 转发时,需修改 IP 分组头中的哪些字段?
注意:以太网数据帧结构和 IP 分组头结构分别如题 47-c 图、题 47-d 图所示。