2015

本文深入探讨了编程中的递归函数实现、哈夫曼树分析、数据结构、数据库管理和操作系统概念。通过实例分析了算法如卡特兰数计算、二分查找、堆排序、内存管理和虚拟存储器的工作原理。此外,还涉及了网络协议如TCP/IP、HTTP和DNS的交互,以及网络编程中的错误处理和资源管理。最后,文章讨论了并发控制、死锁处理和操作系统中的同步机制,如信号量和PV操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【解析】 函数 S ( int n )是一个递归函数 : ①当实际参数小于等于零时则返回 0 , 并终止递归 ; ②当实际参数大于零时则递归调用 S ( n-l ) , 并将 S ( n-1 )的结果加上 n 作为返回值。程序从main()函数开始,首先调用main()函数;在main()函数中调用S(1)函数时,将函数的上下文保存到栈中,并进入函数S(1);由于函数S(1)的实际参数大于零,需要调用S(0),故将S(1)函数的上下文保存到栈中,进入S(0);在S(0)中,实际参数小于等于零,递归终止 


直接利用卡特兰数,h(n)=C(2n,n)/(n+1)。求得是14

解析:

在哈夫曼树中,左右孩子权值之和为父结点权值。仅以分析选项A为例:若两个10分别属于两棵不同的子树,根的权值不等于其孩子的权值和,不符;若两个10属同棵子树,其权值不等于其两个孩子(叶结点)的权值和,不符。B、C选项的排除方法一样。

解析:

只有两个结点的平衡二叉树的根结点的度为1,A错误。中序遍历后可以得到一个降序序列,树中最大元素一定无左子树(可能有右子树),因此不一定是叶结点,B错误。最后插入的结点可能会导致平衡调整,而不一定是叶结点,C错误。

解析:

画出查找路径图,因为折半查找的判定树是一棵二叉排序树,看其是否满足二叉排序树的要求。

很显然,选项A的查找路径不满足

二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:

(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;

(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;

(3)左、右子树也分别为二叉排序树;

解析:

基数排序的元素移动次数与关键字的初始排列次序无关,而其他三种排序都是与关键字的初始排列明显相关的


解析:
将堆画成完全二叉树的形式,堆删除堆顶元素后,是将二叉树最后的叶子节点12放到堆顶,然后将12与其子节点15和10相比较,当15>12时,堆顶12不动,将12与10判断,12>10,不符合小根堆,所以将10和12对调,然后还要将12与其子节点16比较。 所以总共比较3次。 

 解析:A 

硬件能直接执行的只能是机器语言(二进制编码),汇编语言是为增强机器语言的可读性和记忆性的语言,经过汇编后才能被执行 

解析:数的表示暂时先不看

解析:数的表示暂时先不看

解析: (页式虚拟存储混淆项)

上述指令的执行过程可划分为取数、运算和写回过程,取数时读取xaddr可能不需要访问主存而直接访问Cache,而写直通方式需要把数据同时写入Cache和主存,因此至少访问1次。

 解析:DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。SDRAM表示同步动态随机存储器。 

18.某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是

 

  • 8004和8008
  • 8002和8007
  • 8001和8008
  • 8000和8004

解析:每个访存地址对应的存储模块序号(0、1、2、3)如下所示:

访存地址

8005

8006

8007

8008

8001

8002

8003

8004

8000

模块序号

1

2

3

0

1

2

3

0

0

其中,模块序号=访存地址%存储器交叉模块数。

判断可能发生访存冲突的规则是:给定的访存地址在相邻的四次访问中出现在同一个存储模块内。据此,根据上表可知8004和8000对应的模块号都为0,即表明这两次的访问出现在同一模块内且在相邻的访问请求中,满足发生冲突的条件。

19.下列有关总线定时的叙述中,错误的是 ()。

 

  • 异步通信方式中,全互锁协议最慢
  • 异步通信方式中,非互锁协议的可靠性最差
  • 同步通信方式中,同步时钟信号可由各设备提供
  • 半同步通信方式中,握手信号的采样由同步时钟控制

 解析:在同步通信方式中,系统采用一个统一的时钟信号,而不是由各设备提供,否则没法实现统一的时钟。

20.若磁盘转速为7200 转/分,平均寻道时间为 8ms,每个磁道包含 1000 个扇区,则访问一个扇区的平均延迟时间大约是()。

  • 8.1ms
  • 12.2ms
  • 16.3ms
  • 20.5ms

解析:存取时间 = 寻道时间 + 延迟时间 + 传输时间。存取一个扇区的平均延迟时间为旋转半周的时间,即为 (60/7200)/2=4.17ms ,传输时间为 (60/7200)/1000=0.01ms ,因此访问一个扇区的平均存取时间为 4.17+0.01+8=12.18ms ,保留一位小数则为 12.2ms 

21.在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口中的I/O端口之间交换的信息不可能是 

  • 打印字符
  • 主存地址
  • 设备状态
  • 控制命令

解析:

在程序中断I/O方式中,CPU和打印机直接交换,打印字符直接传输到打印机的I/O端口,不会涉及到主存地址。而CPU和打印机通过I/O端口中状态口和控制口来实现交互

22.内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的是

 

  • 内部异常的产生与当前执行指令相关
  • 内部异常的检测由CPU内部逻辑实现
  • 内部异常的响应发生在指令执行过程中
  • 内部异常处理后返回到发生异常的指令继续执行

解析:

内中断是指来自CPU和内存内部产生的中断,包括程序运算引起的各种错误,如地址非法、校验错、页面失效、非法指令、用户程序执行特权指令自行中断(INT)和除数为零等,以上都在指令的执行过程中产生的,故A正确。这种检测异常的工作肯定是由CPU(包括控制器和运算器)实现的,故B正确。内中断不能被屏蔽,一旦出现应立即处理,C正确。对于D,考虑到特殊情况,如除数为零和自行中断(INT)都会自动跳过中断指令,所以不会返回到发生异常的指令继续执行,故错误

23.处理外部中断时,应该由操作系统保存的是()。

  • 程序计数器(PC)的内容
  • 通用寄存器的内容
  • 块表(TLB)中的内容
  • Cache 中的内容

解析:外部中断处理过程, PC 值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。

24.假定下列指令已装入指令寄存器。则执行时不可能导致CPU从用户态变为内核态(系统态)的是

 

  • DIV R0,R1           ; (R0)/(R1)→R0
  • INT n                     ; 产生软中断
  • NOT R0                ; 寄存器R0的内容取非
  • MOV R0,addr      ; 把地址addr处的内存数据放入寄存器R0中

解析:考虑到部分指令可能出现异常(导致中断),从而转到核心态。指令 A 有除零异常的可能,指令 B 为中断指令,指令 D 有缺页异常的可能,指令 C 不会发生异常。

25.下列选项中,会导致进程从执行态变为就绪态的事件是

  • 执行P(wait)操作
  • 申请内存失败
  • 启动I/O设备
  • 被高优先级进程抢占 

解析:P(wait)操作表示进程请求某一资源,A、B和C都因为请求某一资源会进入阻塞态,而D只是被剥夺了处理机资源,进入就绪态,一旦得到处理机即可运行。

26.若系统 S1 采用死锁避免方法,S2 采用死锁检测方法。下列叙述中,正确的是 ()。

Ⅰ.S1 会限制用户申请资源的顺序,而 S2 不会

Ⅱ.S1 需要进程运行所需资源总量信息,而 S2 不需要

Ⅲ.S1 不会给可能导致死锁的进程分配资源,而 S2 会

 

  • 仅Ⅰ、Ⅱ
  • 仅Ⅱ、Ⅲ
  • 仅Ⅰ、Ⅲ
  • Ⅰ、Ⅱ、Ⅲ

解析:死锁的处理采用三种策略:死锁预防、死锁避免、死锁检测和解除。

死锁预防,采用破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,也就是限制了用户申请资源的顺序,故 Ⅰ的前半句属于死锁预防的范畴。

银行家算法是最著名的死锁避免算法,其中的最大需求矩阵 MAX 定义了每一个进程对 m 类资源的最大需求量,系统在执行安全性算法中都会检查此次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。在死锁的检测和解除中,在系统为进程分配资源时不采取任何措施,但提供死锁的检测和解除的手段,故 Ⅱ、Ⅲ正确。

27.系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,4,8,4,5。若进程要访问的下一页的页号为7,依据LRU算法,应淘汰页的页号是 

 

  • 2
  • 3
  • 4
  • 8

解析:可以采用书中常规的解法思路,也可以采用便捷法。对页号序列从后往前计数,直到数到4(页框数)个不同的数字为止,这个停止的数字就是要淘汰的页号(最近最久未使用的页),题中为页号2。 

28.在系统内存中设置磁盘缓冲区的主要目的是()。

  • 减少磁盘 I/O 次数
  • 减少平均寻道时间
  • 提高磁盘数据可靠性
  • 实现设备无关性

 解析:磁盘和内存的速度差异,决定了可以将内存经常访问的文件调入磁盘缓冲区,从高速缓存中复制的访问比磁盘   I/O   的机械操作要快很多很多。

29.在文件的索引结点中存放直接索引指针10个,一级和二级索引指针各1个。磁盘块大小为1KB,每个索引指针占4个字节。若某文件的索引结点已在内存中,则把该文件偏移量(按字节编址)为1234和307400处所在的磁盘块读入内存,需访问的磁盘块个数分别是

 

  • 1,2
  • 1,3
  • 2,3
  • 2,4

 解析:
10个直接索引指针指向的数据块大小为10*1KB=10KB;

每个索引指针占4B,则每个磁盘块可存放1KB/4B=256个索引指针,

一级索引指针指向的数据块大小为:256*1KB=256KB

二级索引指针指向的数据块大小为:256*256*1KB=216KB=64MB

按字节编址,偏移量为1234时,因1234B<10KB,则由直接索引指针可得到其所在的磁盘块地址。文件的索引结点已在内存中,则地址可直接得到,故仅需1次访盘即可。

偏移量为307400时,因10KB+256KB<307400B<64MB,可知该偏移量的内容在二级索引指针所指向的某个磁盘块中,索引结点已在内存中,故先访盘2次得到文件所在的磁盘块地址,再访盘1次即可读出内容,故共需3次访盘。

30.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是 

  • 可变分配,全局置换
  • 可变分配,局部置换
  • 固定分配,全局置换
  • 固定分配,局部置换

 解析:对各进程进行固定分配时页面数不变,不可能出现全局置换。   而   A   、   B   、   D   是   现代操作系统中常见的   3   种策略

31.文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024个字节,盘块和块内字节均从0开始编号。假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是

 

  • 81、1
  • 81、2
  • 82、1
  • 82、2

解析:位图表示法:409612/(8*1024)=50,还余12,所以共需要51个块。从32开始的话到了32+51-1=82号块,因为余下的12位,需要占两个字节,从0序号开始的话所以到了1序号字节

32某硬盘有200个磁道(最外侧磁道号为0),磁道访问请求序列为:130,42,180,15,199,当前磁头位于第58号磁道并从外侧向内侧移动。按照SCAN调度方法处理完上述请求后,磁头移过的磁道数是

 

  • 208
  • 287
  • 325
  • 382

解析: SCAN算法就是电梯调度算法。顾名思义,如果开始时磁头向外移动就一直要到最外侧,然后再返回向内侧移动,就像电梯若往下则一直要下到最底层需求才会再上升一样。当期磁头位于58号并从外侧向内侧移动,先依次访问130和199,然后再返回向外侧移动,依次访问42和15,故磁头移过的磁道数是:(199-58)+(199-15)=325。

33.通过POP3 协议接收邮件时,使用的传输层服务类型是()

  • 无连接不可靠的数据传输服务
  • 无连接可靠的数据传输服务
  • 有连接不可靠的数据传输服务
  • 有链接可靠的数据传输服务

解析:POP3使用的是TCP连接,是有连接可靠的数据传输服务。 

34.使用两种编码方案对比特流01100111 进行编码的结果如下图所示,编码 1 和编码 2 分别 是()。

 

 

  • NRZ 和曼彻斯特编码
  • NRZ 和差分曼彻斯特编码
  • NRZI 和曼彻斯特编码
  • NRZI 和差分曼彻斯特编码

解析:
NRZ   是最简单的串行编码技术,用两个电压来代表两个二进制数,如高电平表示   1   ,低电平表示   0   ,题中编码   1   符合。   NRZI   则是用电平的一次翻转来表示   1   ,与前一个   NRZI   电平相同的电平表示   0   。曼侧斯特编码将一个码元分成两个相等的间隔,前一个间隔为低电平后一个间隔为高电平表示   1   ;   0   的表示正好相反,题中编码   2   符合。 

35.主机甲通过128kbps卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播延迟为250ms,帧长为1000字节。不考虑确认帧的开销,为使链路利用率不小于80%,帧序号的比特数至少是

 

  • 3
  • 4
  • 7
  • 8

 解析:不考虑确认帧的开销,一个帧发送完后经过一个单程传播时延到达接收方,再经过一个单程传播时延发送方收到应答,从而继续发送。要使得传输效率最大化,就是不用等确认也可以连续发送多个帧。设连续发送n个帧,一个帧的发送时延为:1000B/128kbps=62.5ms。对于采用滑动窗口协议的流水线机制,我们有如下公式:链路利用率=(n×发送时延)/(RTT+发送时延)。

依题意,有:(n×62.5ms)/(62.5ms+250ms×2)≥80%

得n≥7.2,帧序号的比特数k需要满足2^{K} ≥n+1。从而,帧序号的比特数至少为4。

王道上的有点问题,难以信服。

以发送周期为切入点来思考这个问题。开始发送帧到收到第一个确认帧为止,用时:
T = 第一个帧的传输时延+第一个帧的传播时延+确认帧的传输时延+确认帧的传播时延。

因为确认帧的开销不计,所以它的传输不计。但是传播时延要计的。
所以T = 1000B/128kbps + RTT = 0.5625s
那么在0.5625s内需要发送多少数据可以满足利用率80%呢?

设为L字节,则:

L128kbpsT≥0.8→L=7200BL128kbpsT≥0.8→L=7200B

就是说在一个发送周期内至少发7.2帧就可满足要求。

因此,需要编号的比特数为n;

2n−1≥7.22n−1≥7.2
所以n至少为4.

此外,还需要特别思考一下,信道的数据传输速率的极限是128kbps,理论上最大每秒可传输16000B,即16帧,大于12.8,因此符合要求

36.下列关于CSMA/CD 协议的叙述中,错误的是 () 。

 

  • 边发送数据帧,边检测是否发生冲突
  • 适用于无线网络,以实现无线链路共享
  • 需要根据网络跨距和数据传输速率限定最小帧长
  • 当信号传播延迟趋近 0 时,信道利用率趋近 100%

37.    下列关于交换机的叙述中,正确的是

 

  • 以太网交换机本质上是一种多端口网桥
  • 通过交换机互连的一组工作站构成一个冲突域
  • 交换机每个端口所连网络构成一个独立的广播域
  • 以太网交换机可实现采用不同网络层协议的网络互联

解析:
从本质上说,交换机就是一个多端口的网桥(A正确),工作在数据链路层(因此不能实现不同网络层协议的网络互联,D错误),交换机能经济地将网络分成小的冲突域(B错误)。广播域属于网络层概念,只有网络层设备(如路由器)才能分割广播域(C错误)。 

38.某路由器的路由表如下表所示:

目 的 网 络

下一跳

接 口

169.96.40.0/23

176.1.1.1

S1

169.96.40.0/25

176.2.2.2

S2

169.96.40.0/27

176.3.3.3

E3

0.0.0.0/0

176.4.4.4

E4

若路由器收到一个目的地址为169.96.40.5的IP分组,则转发该IP分组的接口是

 

  • S1
  • S2
  • S3
  • S4

 解析:根据“最长前缀匹配原则”169.96.40.5与169.96.40.0前27位匹配最长,故选C。选项D为默认路由,只有当前面的所有目的网络都不能和分组的目的IP地址匹配时才使用。

39.主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阈值为32KB,甲向乙始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙为该连接分配16KB接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发送超时的情况下,经过4个RTT后,甲的发送窗口是

 

  • 1KB
  • 8KB
  • 16KB
  • 32KB

 解析:发送窗口的上限值=Min[接收窗口,拥塞窗口]。4个RTT后,乙收到的数据全部存入缓存,不被取走,接收窗口只剩下1KB(16-1-2-4-8=1)缓存,使得甲的发送窗口为1KB。

40.某浏览器发出的HTTP请求报文如下:

GET /index.html HTTP/1.1

Host: www.test.edu.cn

Connection: Close

Cookie: 123456

       下列叙述中,错误的是

 

  • 该浏览器请求浏览index.html
  • Index.html存放在www.test.edu.cn上
  • 该浏览器请求使用持续连接
  • 该浏览器曾经浏览过www.test.edu.cn

 解析:Connection:连接方式,Close表明为非持续连接方式,keep-alive表示持续连接方式。Cookie值是由服务器产生的,HTTP请求报文中有Cookie报头表示曾经访问过www.test.edu.cn服务器

41.用单链表保存m个整数,结点的结构为:[data][link],且|data|≤n(n为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中data的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表head如下:

则删除结点后的head为:

要求:

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

2)使用C或C++语言,给出单链表结点的数据类型定义。

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

4)说明你所设计算法的时间复杂度和空间复杂度。

 解析:

1)算法的基本设计思想

算法的核心思想是用空间换时间。使用辅助数组记录链表中已出现的数值,从而只需对链表进行一趟扫描。

因为|data|≤n,故辅助数组q的大小为n+1,各元素的初值均为0。依次扫描链表中的各结点,同时检查q[|data|]的值,如果为0,则保留该结点,并令q[|data|]=1;否则,将该结点从链表中删除。

2)使用C语言描述的单链表结点的数据类型定义

typedef struct node {

 int         data;

 struct node   *link;

}NODE;

Typedef NODE *PNODE;

 

3)算法实现

void func (PNODE h,int n)

{

 PNODE p=h,r;

 int *q,m;

 q=(int *)malloc(sizeof(int)*(n+1));  //申请n+1个位置的辅助空间

 for(int i=0;i<n+1;i++)                //数组元素初值置0

 *(q+i)=0;

 while(p->link!=NULL)

 {

 m=p->link->data>0? p->link->data:-p->link->data;

 if(*(q+m)==0)                      //判断该结点的data是否已出现过

 {

 *(q+m)=1;                      //首次出现

 p=p->link;                     //保留

 }

 else                               //重复出现

 {   r=p->link;                     //删除

 p->link=r->link

 free(r);

 }

 }

 free(q);

}
 

【评分说明】若考生设计的算法满足题目的功能要求且正确,则酌情给分。

4)参考答案所给算法的时间复杂度为O(m),空间复杂度为O(n)。

【评分说明】若考生所估计的时间复杂度和空间复杂度与考生实现的算法一致,可给分。

42.已知含有5个顶点的图G如下图所示。

请回答下列问题:

1)写出图G的邻接矩阵A(行、列下标从0开始)。

2)求A^{2},矩阵A^{2}中位于0行3列元素值的含义是什么?

3)若已知具有n(n≥2)个顶点的图的邻接矩阵为B,则B^{m}(2≤m≤n)中非零元素的含义是什么?

解答:1)图G的邻接矩阵A如下:

2)A^{2}如下:

0行3列的元素值3表示从顶点0到顶点3之间长度为2的路径共有3条。

3)B^{m}(2≤m≤n)中位于i行j列(0≤i,j≤n-1)的非零元素的含义是:图中从顶点i到顶点j长度为m的路径条数。 

 43.某16位计算机的主存按字节编码,存取单位为16位;采用16位定长指令字格式;CPU采用单总线结构,主要部分如下图所示。图中R0~R3为通用寄存器;T为暂存器;SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3种操作,控制信号为SRop,SR的输出由信号SRout控制;ALU可实现直送A(mova)、A加B(add)、A减B(sub)、A与B(and)、A或B(or)、非A(not)、A加1(inc)7种操作,控制信号为ALUop。

请回答下列问题。

1)图中哪些寄存器是程序员可见的?为何要设置暂存器T?

2)控制信号ALUop和SRop的位数至少各是多少?

3)控制信号SRout所控制部件的名称或作用是什么?

4)端点①~⑨中,哪些端点须连接到控制部件的输出端?

5)为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。

6)为什么二路选择器MUX的一个输入端是2?

解答:

1)程序员可见寄存器为通用寄存器(R0~R3)和PC。因为采用了单总线结构,因此,若无暂存器T,则ALU的A、B端口会同时获得两个相同的数据,使数据通路不能正常工作。

【评分说明】回答通用寄存器(R0~R3),给分;回答PC,给分;部分正确,酌情给分。设置暂存器T的原因若回答用于暂时存放端口A的数据,则给分,其他答案,酌情给分。

2)ALU共有7种操作,故其操作控制信号ALUop至少需要3位;移位寄存器有3种操作,其操作控制信号SRop至少需要2位。

3)信号SRout所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。

【评分说明】只要回答出三态门或者控制连接/断开,即给分。

4)端口①、②、③、⑤、⑧须连接到控制部件输出端。

【评分说明】答案包含④、⑥、⑦、⑨中任意一个,不给分;答案不全酌情给分。

5)连线1,⑥→⑨;连线2,⑦→④。

【评分说明】回答除上述连线以外的其他连线,酌情给分。

6)因为每条指令的长度为16位,按字节编址,所以每条指令占用2个内存单元,顺序执行时,下条指令地址为(PC)+2。MUX的一个输入端为2,可便于执行(PC)+2操作。

44. 题43中描述的计算机,其部分指令执行过程的控制信号如下图所示。

题图a 部分指令控制信号

该机指令格式如下图所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为0和1,通用寄存器R0~R3的编号分别为0、1、2和3。

题图b 指令格式

请回答下列问题。

1)该机的指令系统最多可定义多少条指令?

2)假定inc、shl和sub指令的操作码分别为01H、02H和03H,则以下指令对应的机器代码各是什么?

inc  R1                ;  R1 + 1→R1

shl R2,R1            ;  (R1) << 1→R2

sub  R3, (R1),R2     ;  ((R1)) – (R2) → R3

3)假设寄存器X的输入和输出控制信号分别为Xin和Xout,其值为1表示有效,为0表示无效(例如,PCout=1表示PC内容送总线);存储器控制信号为MEMop,用于控制存储器的读(read)和写(write)操作。写出题图a中标号 = 1 \* GB3 ①~ = 8 \* GB3 ⑧处的控制信号或控制信号的取值。

4)指令“sub R1,R3,(R2)”和“inc R1”的执行阶段至少各需要多少个时钟周期?

解答:

1)指令操作码有7位,因此最多可定义27=128条指令。

2)各条指令的机器代码分别如下:

①“inc R1”的机器码为:0000001 0 01 0 00 0 00,即0240H。

②“shl R2,R1”的机器码为:0000010 0 10 0 01 0 00,即0488H。

③“sub R3,(R1),R2”的机器码为:0000011 0 11 1 01 0 10,即06EAH。

3)各标号处的控制信号或控制信号取值如下:

①0;②mov;③mova;④left;⑤read;⑥sub;⑦mov;⑧Srout。

【评分说明】答对两个给分。

4)指令“sub R1,R3,(R2)”的执行阶段至少包含4个时钟周期;指令“inc R1”的执行阶段至少包含2个时钟周期。

 45.进行辩论,每个人都从自己的信箱中取得对方的问题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中。假设A的信箱最多放M个邮件,B的信箱最多放 N个邮件。初始时A的信箱中有x个邮件(0<x<M),B的信箱中有y个(0<y<N)。辩论者每取出一个邮件,邮件数减1。A和B两人的操作过程描述如下:

CoBegin

A{

while(TRUE){

从A的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入B的信箱;

}

}

B{

while(TRUE){

从B的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入A的信箱;

}

}

CoEnd

当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。请添加必要的信号量和P、V(或wait、signal)操作,以实现上述过程的同步。要求写出完整过程,并说明信号量的含义和初值

解答:

semaphore Full_A = x;           //Full_A表示A的信箱中的邮件数量

semaphore Empty_A = M-x;        //Empty_A表示A的信箱中还可存放的邮件数量

semaphore Full_B = y;           //Full_B表示B的信箱中的邮件数量

semaphore Empty_B = N-y;        //Empty_B表示B的信箱中还可存放的邮件数量

semaphore mutex_A = 1;          //mutex_A用于A的信箱互斥

semaphore mutex_B = 1;          //mutex_B用于B的信箱互斥

Cobegin

A{

while(TRUE){

P(Full_A);

P(mutex_A);

从A的信箱中取出一个邮件;

V(mutex_A);

V(Empty_A);

回答问题并提出一个新问题;

P(Empty_B);

P(mutex_B);

将新邮件放入B的信箱;

V(mutex_B);

V(Full_B);

}

}

B{

while(TRUE){

P(Full_B);

P(mutex_B);

从B的信箱中取出一个邮件;

V(mutex_B);

V(Empty_B);

回答问题并提出一个新问题;

P(Empty_A);

P(mutex_A);

将新邮件放入A的信箱;

V(mutex_A);

V(Full_A);

}

}

【评分说明】

1)每对信号量的定义及初值正确,给分。

2)每个互斥信号量的P、V操作使用正确,各给分。

3)每个同步信号量的P、V操作使用正确,各给分。

4)其他答案酌情给分。

 46.某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:

10位 10位 12位

页目录号

页表索引

页内偏移量

请回答下列问题。

1)页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?

2)假定页目录项和页表项均占4个字节,则进程的页目录和页表共占多少页?要求写出计算过程。

3)若某指令周期内访问的虚拟地址为0100 0000H和0111 2048H,则进行地址转换时共访问多少个二级页表?要求说明理由。

解答:

1)在分页存储管理方式中,将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。相应地,将内存空间分为若干个物理块或页框(frame),页和页框大小相同。因此,页和页框大小均为2^{12}B=4KB。进程的虚拟地址空间大小为2^{32}/2^{12}=220页。

2)(2^{10}×4)/2^{12}(页目录所占页数)+(2^{20}×4)/2^{12}(页表所占页数)=1025页。

3)需要访问一个二级页表。因为虚拟地址0100 0000H和0111 2048H的最高10位的值都是4,页目录号相同,访问的是同一个二级页表。

【评分说明】用其他方法计算,思路和结果正确同样给分。

 47某网络拓扑如图所示,其中路由器内网接口、DHCP服务器、WWW服务器与主机1均采用静态IP地址配置,相关地址信息见图中标注;主机2~主机N通过DHCP服务器动态获取IP地址等配置信息。

请回答下列问题。

1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是什么?主机2使用DHCP协议获取IP地址的过程中,发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是什么?

2)若主机2的ARP表为空,则该主机访问Internet时,发出的第一个以太网帧的目的MAC地址是什么?封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是什么?

3)若主机1的子网掩码和默认网关分别配置为255.255.255.0和111.123.15.2,则该主机是否能访问WWW服务器?是否能访问Internet?请说明理由。

解答:

1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是:111.123.15.5~111.123.15.254;主机2发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是0.0.0.0和255.255.255.255。

2)主机2发出的第一个以太网帧的目的MAC地址是ff-ff-ff-ff-ff-ff;封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是00-a1-a1-a1-a1-a1。

3)主机1能访问WWW服务器,但不能访问Internet。由于主机1的子网掩码配置正确而默认网关IP地址被错误地配置为111.123.15.2(正确IP地址是111.123.15.1),所以主机1可以访问在同一个子网内的WWW服务器,但当主机1访问Internet时,主机1发出的IP分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。

解答:

1)DHCP服务器可为主机2~主机N动态分配IP地址的最大范围是:111.123.15.5~111.123.15.254;主机2发送的封装DHCP Discover报文的IP分组的源IP地址和目的IP地址分别是0.0.0.0和255.255.255.255。

2)主机2发出的第一个以太网帧的目的MAC地址是ff-ff-ff-ff-ff-ff;封装主机2发往Internet的IP分组的以太网帧的目的MAC地址是00-a1-a1-a1-a1-a1。

3)主机1能访问WWW服务器,但不能访问Internet。由于主机1的子网掩码配置正确而默认网关IP地址被错误地配置为111.123.15.2(正确IP地址是111.123.15.1),所以主机1可以访问在同一个子网内的WWW服务器,但当主机1访问Internet时,主机1发出的IP分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值