1
将一个10*10对称矩阵M的上三角部分的元素mi,j(1<= i<= j <=10)按列优先存入C语言的一维数组N中,元素m7,2在N中的下标是 22
因为是对称矩阵,所以在存储的时候只存储上三角或者下三角,m7,2是下三角,但题目中只要求存储上三角,所以m7,2可以当成m2,7来看待
因为是列优先,所以先存储第一列,第一列是1个,第二列是两个,,,第六列是6个,第七列是两个。
1+2+3+4+5+6+2= 23个
因为C语言数组从0开始,因此下标为22,表示第23个。
2
修改递归方式实现的图的深度优先搜索(DFS)算法,将输出(访问)顶点信息的语句移动到退出递归前(即执行输出语句后立即退出递归)。采用修改后的算法遍历有向无环图G,若输出结果中包含G中的全部顶点,则输出的顶点序列是G的 逆拓扑有序序列。
拓扑排序,每次删除的都是入度为0的点
逆拓扑排序,每次删除的都是出度为0的点。
既然是一个有向无环图,假设只有两个点a---->b,本来DFS是 a,b。
现在什么时候退出递归,访问点一直到尽头的时候才会退出递归,这时候访问的点是b,然后才是a。
这个图的广度优先搜索遍历也是a,b。
3
若使用AOE网估算工程进度,则下列叙述中正确的是
关键路径是从源点到汇点路径长度最长的路径。
4
依次将关键字5,6,9,13,8,2,12,15插入初始为空的4阶B树后,根节点中包含的关键字是
B树,又称多路平衡查找树,B树中所有节点的孩子个数的最大值称为B树的阶,通常用m表示,一棵m阶B树或为空树,或为满足如下特性的m叉树:
(1)树中每个节点至多有m棵子树,即至多有m-1个关键字。
(2)若根节点不是终端节点,则至少有两棵子树。
(3)除根节点外的所有非叶节点至少有m/2上取整棵子树,即至少有m/2上取整-1个关键字。
(5)所有的叶节点都出现在同一层次上,并且不带信息(可以视为外部节点或者类似于折半查找判定树的查找失败节点,实际上这些节点不存在,指向这些节点的指针为空。)
5
对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率更高,其原因是
直接插入排序过程中元素的比较次数更少。
比如有一个数组为 1,2,4,3
直接插入排序的话,1为初始数组,把2插进去,比较1次,把4插进去比较1次,把3插进去,比较两次。因此比较4次。
如果用简单选择排序的话,确定1的位置比较3次,确定2的位置比较2次,确定3的位置比较1次,确定4的位置无需比较,因此比较3+2+1=6次。
直接插入排序和简单选择排序都只需要一个辅助空间。
直接插入排序确定2最小,2,4,3都往后移动一个位置,确定3最小,4,3都后移一个位置,确定4最小移动一个位置
共需移动3+2+1共6个位置。
简单选择排序只需移动4的位置,只需移动1次。
6
已知带符号整数用补码表示,float型数据用IEEE754标准表示。假定变量x的类型只可能是int或者float,当x的机器数为C800 0000H时,x的值可能是
A 10 1010
B 11 1011
C12 1100
当x为int型时 1100 1000 0 0 0 0 0 0,它是补码,求原码,符号位不变,各位求反,末尾加1,
即1011 0111 1111 1111 1111 1111 1111 1111 再+1即为
1011 1000 0 0 0 0 0 0即为 B 8 0 0 0 0 0 0
-7_2的27次方
为float型时
IEEE754浮点数格式
短浮点数,float型共有32位,第一位为数符
数符为1表示负数,数符为0表示正数。
第2-9位为阶码,以2为底,因此偏置量为127
剩余的23位为尾数部分。
在本题中,float型,阶码为1001 0000,即128+16=144
减去偏置量127=17
尾数部分为0,加上隐藏的整数位1,就是-1.0_2^17
7
TLB通常用相联存储器组成,也可以由SRAM组成。Cache由SRAM组成。
8
某计算机采用16位定长指令字格式,操作码位数和寻址方式位数固定,指令系统有48条指令,支持直接,间接,立即,相对4种寻址方式。单地址指令中,直接寻址的可寻址范位围是
有4种寻址方式,故而寻址方式位数应有2位
有48条指令,需要6位操作码字段。故而还剩下8位指令字格式,主存地址不能为负数。所以为0-255.
指令包括操作码字段和地址码字段。
指令字长等于机器字长的指令称为单字长指令,
指令字长等于半个机器字长的指令称为半字长指令,指令长度称为两个机器字长的指令称为双字长指令。
在一个指令系统中,若所有指令的长度都是相等的,则称为定长指令字结构。定长指令字的执行速度快,控制简单。若各种指令的长度随着指令功能而异,则称为变长指令字结构。然而,因为主存一般是按字节编址的,所以指令字长多为字节的整数倍。
零地址指令,即只有操作码的指令,不需要地址
1,比如空操作指令,停机指令,关中断指令。
2,零地址的运算类指令仅用在堆栈计算机中。通常参与运算的两个操作数隐含的从栈顶和次栈顶弹出,送到运算器进行运算,运算结果再隐含的压入栈顶。
一地址指令,即只有操作码和一条地址
1,如加1指令,减1指令,求反,求补等。
2,隐含目的地址的双操作数指令,按指令地址A1可读取源操作数,指令可隐含约定另一个数由ACC(累加器)提供,运算结果也将存放在ACC中
(ACC)OP(A1)——————>ACC
二地址指令,两个地址分别表示源操作数和目的操作数
其中的目的操作数还用于保存本次的运算结果。
三地址指令只是在二地址指令的基础上进行了改进,结果不再存放在目的操作数地址,而是另取一个地址存放。
若地址字段均为主存地址,则完成一条三地址需要4次访问存储器(取指令一次,取两个操作数两次,存放结果一次)
9
CPI为每条指令所需的时钟周期数
单周期CPU每条指令执行一个周期,CPI为1
基本流水线CPU每个时钟周期流出一条指令(执行完一条指令)
多周期CPU:执行一条指令需要花费多个时钟周期
超标量流水线CPU,通过增加多个ALU,FPU,译码器和CPU等提升完成指令的速度,因此CPI小于1.
10
QPI总线是一种点对点双全工同步串行总线,总线上的设备可同时接受和发送信息,每个方向可同时传输20位信息(16位数据加4位校验位),每个QPI数据包有80位信息,分两个时钟周期传送,每个时钟周期传送2次。因此,QPI总线带宽为:每秒传送次数_2B_2.若QPI时钟频率为2.4GHz,则总线带宽为:19.2GHz.
11
若多个进程共享同一个文件F,则
在系统打开文件表中仅有一个表项包含F的属性。
1,这是因为系统打开文件表整个系统只有一张,同一个文件打开多次只需要改变引用计数,不需要对应多项。
2,用户进程的打开文件表关于同一个文件不一定相同
3,进程关闭文件时,文件的引用计数减少1,引用计数变为0时才删除。
12
下列与中断相关的操作中,由操作系统完成的是
提供中断服务,初始化中断向量表,保存中断屏蔽字。
而保存被中断程序的断点,硬件保存程序计数器PC,操作系统保存中断程序状态字PSW,不仅仅由操作系统单独完成。
13
多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合和发展,通过动态调整进程优先级和时间片大小,多级反馈队列调度算法可以兼顾多方面的系统目标。
例如,为提升系统吞吐量和缩短平均周转时间而照顾短进程;
为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程。
优势:
短作业优先,周转时间较短,长批处理作业也不会得不到解决。
需要考虑的因素:1,就绪队列的数量;2,就绪队列的优先性;
3,各就绪队列的调度算法;4,进程在就绪队列间的迁移条件。
实现思想:1,设置多个就绪队列,并为每个队列设置不同的优先级,第1级队列的优先级最高,第2级队列次之,其余队列的优先级逐次降低。
2,赋予各个队列中进程执行时间片的大小各不相同。在优先级越高的队列中,每个进程的运行时间片越小。例如,第2级队列的时间片要比第1级队列的时间片长一倍。
3,一个新进程进入内存后,首先将它放到第1级队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;若它在一个时间片内结束时尚未完成,调度程序便将该进程转入第2级队列的末尾,在n级队列中采用时间片轮转算法。
14
虚拟地址空间是由进程的虚地址构成的地址空间。
在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中,这个沙盘就是虚拟地址空间。
父进程和子进程不能共享虚拟地址空间。
但父进程和子进程可以并发执行
父进程与子进程有不同的进程控制块,这是因为在创建子进程时,会为子进程分配空闲的进程描述符,唯一的标识bid等。
并且父进程与子进程不能使用同一临界资源。
15
对于具备设备独立性的设备
访问设备的驱动程序与具体设备无关。
设备独立性是指操作系统把所有外部设备统一当成文件来看待,只要安装他们的驱动程序,任何用户都可以像使用文件一样,操纵使用这些设备。,而不必知道他们的具体存在形式。
16
假设主机甲采用停-等协议向主机乙发送数据帧,数据帧长与确认帧长均为1000B,数据传送速率是10kbps,单向传播延时是200ms,则甲的最大信道利用率为。
kbps是千比特每秒
10kbps就是每秒发送10000b,1B为8b
10kbps就相当于每秒发送1250B。
1000/1250=0.8s就是800ms。
停止等待协议是最基本的数据链路层协议,就是每发送一个分组后就停止发送,等待对方的确认,收到确认后再发送下一个协议。
发送一段数据帧共需要2000ms,而发送数据帧仅需要800ms,因此信道利用率为40%。
17
CSMA/CA协议。
中文名是载波侦听多路访问/碰撞避免协议
它是运用于无线网络环境下的,不使用CSMA/CD协议的原因有两个:
1:接收信号的强度往往会小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现碰撞检测,则在硬件上的花费就会过大。
2:在无线通信中,并非所有的站点都能听见对方,即存在“隐蔽站”问题。
碰撞避免并不是指协议可以完全避免碰撞,而是指协议的设计要尽量避免碰撞发生的概率。
由于802.11无线局域网不使用碰撞检测,一旦站点开始发送一个帧,就会完全的发送该帧,但碰撞存在时仍然发送整个数据帧(尤其是长数据帧)会严重降低网络的效率,因此要采用碰撞避免技术降低碰撞的可能性。
为了尽量避免碰撞,802.11规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space,IFS)。
有三种
1:SIFS(短),最短的IFS,用来分隔属于一次对话的各帧,使用SIFS的帧类型有ACK帧,CTS帧,分片后的数据帧,以及回答AP探询的数据帧等。
2:PIFS(中,点协调IFS),中等操作的IFS,在PCF操作中使用。
3:DIFS,(分布式协调IFS),最长的IFS,用于异步帧竞争访问的时延。
归纳:若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间DIFS后,就发送整个数据帧。否则,站点执行CSMA/CA退避算法,选取一个随机回退值。一旦检测到信道忙,退避计时器就保持不变。只要信道空闲,退避计时器就进行倒计时。,当退避计时器减到0时(这时信道只可能是空闲的),站点就发送整个帧并等待确定。
站点若收到确认,就知道已发送的帧被目的站正确接收。
关于RTS和CTS。
RTS是短请求发送控制帧,CTS是允许发送控制帧,之所以要有这么两个帧是为了处理隐蔽站问题。
隐蔽站就是指A与B都在AP的广播范围内,而AB却不在彼此的广播范围,这样在向AP发送信息时就会出现错误。
CTS帧有两个目的:给源站明确的发送许可;指示其他站点在预约期内不要发送。