其他分享
首页 > 其他分享> > 当当当当当

当当当当当

作者:互联网

面试问题大纲基本就是是简历上写的内容,所以简历比较重要,想办法把简历做的不单薄,单又不会跳出自己的知识储备。

 

1.一面,二面问的问题基本一样,放在一起整理

我会把简历发给你们,面试套路:

1.说说你定位的某某问题,用到了什么技术,通过什么手段,这个觉得就是要求证下简历的真实性,但是也是最不确定的部分,面试官在你阐述的过程中会问道一些细节。问道我的问题,除了我自己说的定位故障的过程,还问到下面这些,这些东西尽可能回忆,多说些,有些面试官也知道有多复杂,一句话两句话说不完。

1.硬锁和软锁的区别

2.硬锁一般多久会死锁

3.meminfo里的memTotal一般会比实际的物理内存小,这是为什么?

4.x86_64物理地址总线宽度,虚拟地址位宽

5.qemu一般有多少个线程,作用是什么(我把知道了回答了,不知道的就说不知道)

6.什么时候需要自旋锁,什么时候需要关中断自选锁,中断上下文,软中断上下文,tasklet,以及工作队列上下文,可否做进程切换

7.回收真么区分匿名页和文件页

8.lru active和lru inactive中的页是真么相互转移的

10./proc/<pid>/smaps文件中,RSS字段和Pss字段表示啥意识?

11.透明巨页的大小

12.64位架构下内核态地址空间分布结构

13.内核态vmalloc管理虚拟地址空间的结构体是啥,怎么组织起来的?

14.用户态malloc管理虚拟地址空间的结构体是啥?怎么组织起来的?

15.nvme驱动中断绑核的流程?一种msi中断消息是否可以由多个cpu并行处理?我当时说可能需要nvme硬件支持,他接着问,如果硬件和驱动程序支持的话,硬件改怎么支持?驱动设计又要主意什么?(硬件支持测重:pci地址空间编程时msi消息的目的地址不要写单个cpu,而是写个cpu集合的掩码,软件支持:主要是考虑多个cpu同时处理一种中断时代码中断处理程序代码的可重入性)

16.内核提供检测slab 泄露的debug机制你用过没?怎么用(我当然没有用过,注意补充:项目上没有这个需求,入股哦有需求的话,要可以研究下怎么用)

 

 

2.三面问了两个技术问题

三面面试官看了简历,就问:我看你解决过这么多问题,你跳两个自己觉得有亮点的说一故障原因:

我挑了两个:

1.sys高,主要就是通过strace跟踪到具体耗时系统调用,然后通过systemtap打点测量系统调用流程各个关键点的时间,发现是透明巨页没有开,导致fork系统调用复制页表时差了一个数量级的页表复制量

2.系统启动异常(主要是由于内核升级,重新安装grub时,stage2文件的位置没有动态patch到mbr中,导致mbr找不到stage2文件,系统卡住了)

3.接着面试官问一个cgroup内存回收不及时的问题,问对cgroup掌握到什么程度,

(我就阐述了,层级树,子系统,进程,子系统集合的关系,并以内存memcg为例子,简单参数了memcg子系统对内存管理的架构,末了补充一句,“整体比较复杂,有些回忆不起来了,看看代码就能想起来)

4.还问了一个io从虚拟机内部应用程序发起,怎么落到物理机上的(我就说了下,正常系统上的io流程,阐述了下驱动对dma的编程指令会被cpu截获触发vmexit,qemu 系统调用返回,接管实际io,其实这些是我能知道的所有了,面试官说,你qemu-kvm一点不懂,对吧?我说知道个概念,刚接触不到两个月)

5.最后一个问题,面试官问:“你怎么看qemu-kvm”。我当时有点蒙,就问:“你指的哪个方面?”。面试官补充说,“我们是搞虚拟化的,你qemu-kvm一点不懂”。我跟他说,确实现在接触的少,如果能到你们团队,刚开始我会比别人多花些时间,如果时间确实比较紧急,就多主动找老员工交流,听听他们的意见,保证不会拖慢团队的研发进度。平时下班多学习,尽快把这个技术短板给补齐来。(个人理解:其实一个人的技术现状怎么样重要,但更重要的是这个人是不是有主观能动性,去主动了解,学习,研究些东西)

 

 

3.四面问了三个技术问题:

1.页面回收的整体流程(阐述了匿名页和非匿名页的回收,流程很复杂,我说的很简单关键字:lru,匿名页,文件页,匿名页反向映射,文件页下盘,匿名页入swap cache,匿名页写swap分区,

page mapping,page map_count,page count,页归还buddy系统)

2.meminfo里面的Buffers和Cached的区别和联系(这个无比重要,在第1,2,4轮面试被问了3次,也确实比较晦涩难懂,我第一次回答的乱七八遭(直接回答是一个东西),第二次回答的一般(能区分开了),第三次我做了系统深入的研究,回答的比较透彻,深入,他们很满意(包括区别和联系,怎么联系的))

3.读写锁和lru锁的区别,什么时候用读写锁,什么时候用rcu锁:回答围绕三点”1.就功能来说能用rcu锁的地方都可以用读写锁,2.性能考虑,更新少,读多的时候用rcu锁,并阐述了rcu锁的基本原理,读测关抢占,写侧更新,延迟释放,并说了rcu锁和软中断的关系(我是刚研究过rcu锁的实现,所以说的多些,如果没有研究,可能就回答到“更新少,读取多的时候)3.rcu锁用的时候需要流程支持这种延迟更新,也就是说延迟更新对流程没有影响,比如对inode的radix树保护由以前的spin_lock升级到rcu后,需要对对应的代码流程做更改。

 

标签:面试官,简历,当当,rcu,流程,中断,匿名
来源: https://www.cnblogs.com/DoOrDie/p/10558092.html