选择题
1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是()
A、几微秒,几毫秒,几十毫秒 B、几十纳秒,几十微秒,几十毫秒
C、几十纳秒,几十微秒,几十毫秒 D、几微秒,几十微秒,几十毫秒
解析:内存访问速度通常在50ns到80ns范围内,SSD硬盘的访问速度一般是SATA硬盘的一千多倍,所以答案选C
2、8进制数256,转化成7进制数是(B)
A、356 B、336 C、338 D、346
解析:进制转换
八进制256转换为十进制:2*8*8 + 5*8 + 6*1 = 174
十进制174转换为七进制:336
答案:D
3、有一虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出页面澹算法,当执行如下访页页号序列后1,2,3,4,1,2,5,1,2,3,4,5,会产生(?)次缺页?
解析:
输入:1,2,3,4,1,2,5,1,2,3,4,5
先进先出,就是保存最近3个访问的记录在内存中
, , <—1 中断1次
, ,1<—2 中断1次
, 1,2<—3 中断1次
1,2,3 <—4 中断1次
2,3,4 <—1 中断1次
3,4 ,1<—2 中断1次
4,1,2<—5 中断1次
1,2,5<—1 命中,不中断
2,5,1 <—2 命中,不中断
5,1,2<—3 中断1次
1,2,3 <—4 中断1次
2,3,4 <—5 中断1次
3,4,5
累计中断12次
延伸题目:
在5个页框上使用LRU页面替换算法,当页框初始为空时,引用序列为0、1、7、8、6、2、3、7、2、9、8、1、0、2,系统将发生(C)次缺页
A、13 B、12 C、11 D、8
解析:
Least Recently Used 是指最近最少使用的页面被先换出,因此不是先进先出的机制,在淘宝面试题目中也出现过
分析:缺页为:0、1、7、8、6、2、3、9、8、1、0,共11次
参考的链接:http://www.cnblogs.com/freeyiyi1993/archive/2013/05/18/3084956.html
4、有3个节点的二叉树可能有(A)种
A、5 B、13 C、12 D、15
解析:不考虑节点的排列组合
leetcode有一样的题目
5、从一副牌(52张,不含打小怪)里抽出两张牌,其中一红一黑的概率是(D)
A、25/51 B、1/3 C、1/2 D、26/51
解析: 52张牌从中抽两张,就是C522种情况,一红一黑是C261* C261种情况,概率P= C261 * C261 /C522 =26/51
一定要注意,第一次抽完牌之后,有个牌的数目已经减少了。
6、某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内最大可分配地址个数各位(C)
A、8,32 B、32,8 C、32,6 D、8,30
解析:
IP地址空间为192.168.5.0/24是一个c类IP地址块(其中的24表示子网掩码的前24位为1,255.255.255.0),其默认子网掩码为255.255.255.0。若采用变长子网划分,子网掩码255.255.255.248的二进制表示为1111 1111.1111 1111.1111 1111.1111 1000,它是在255.255.255.0的基础上,向原主机号借用了5个比特位作为新的子网号,因此该网络的最大子网个数为2^5=32个,每个子网内的最大可分配地址个数=2^(32-29)-2=2^3-2=8-2=6 个,其中“-2“表示主机号全0的地址被保留用于标志子网本身,以及主机号全1的地址被保留用作 该子网的广播地址。
7、判断有向图是否存在回路,利用(A)方法最佳
A、拓扑排序 B、求最短路径
C、求关键路径 D、广度优先遍历
知识点:拓扑排序
一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。
8、阿里巴巴有相距1500km的机房A和B,现有100GB数据需要通过一条FTP连接在100s的时间内从A传输到B。已知FTP连接建立在TCP协议之上,而TCP协议通过ACK来确认每个数据包是否正确传送。网络信号传输速度2*108m/s,假设机房间带宽足够高,那么A节点的发送缓冲区可以设置为最小(A)
A、18M B、12M C、6M D、24M
解析:
TCP协议原理:TCP每发送一个报文段,就启动一个定时器,如果在定时器超时之后还没有收到ACK确认,就重传该报文。
数据包由A的缓冲区发往B,B在收到数据包以后,回发一个ACK确认包给A,之后A将该数据包从缓冲区释放。因此,该数据包会一直缓存在A的缓冲区,直到一个ACK确认为止。题目要求在100s内发送100GB数据,网络的传输速率至少是1G/s,某个数据包n在A中缓存的时间就是数据包n从A到B,再加上该数据包的ACK从B到A的时间:2*1500km/(2*108m/s)=1.5*10-2s,该段时间A中缓存的数据量至少是1G/s*1.5*10-2s约为15M
个人感觉这种方法不是十分准确,因为TCP连接有滑动窗口机制,可以在未收到ACK的时候继续发送数据,所以极端情况下A节点的发送缓冲区可以再减少一半,即在7.5M左右。不过题目里并没有说到滑动窗口机制,而是说通过ACK来确认每个数据报是否正确传送,所以应该不考虑这种极端情况。