4.12 腾讯云 后台开发 暑期实习二面(回忆版)

项目:

6.824

raft 选举流程

candidate如果没有收到来自大多数结点的投票会怎样

发动选举的timeout具体是怎么设置的

client能向follower发送读写请求吗

如果请求都是向Leader发的,那Leader并发压力会不会很大?怎么解决(Shard + Raft优化技术)

读请求是怎么处理的

持久化是怎么做的,储存的形式

快照是怎么做的

6.828

x86函数是怎样调用的,参数放哪,返回地址放哪?x64呢?arm呢?(x86从第n个参数到第一个参数依次push,然后执行call指令,等价于push当前eip作为返回地址,然后再jmp到目标函数地址。x64前六个参数会放在寄存器(rdi、rsi...)剩下的压栈。arm不会)

call能用push eip和jmp两个指令代替吗?有没有试过(答了应该可以,没试过。面完马上想起来好像不能直接push eip,面试官可能想问的应该是这个orz)

jmp指令有两种,长距离和短距离,区别是?(不会)

copy-on-write是怎么实现的(浅拷贝页表,码掉写权限,设置page fault handler)

fork在父进程的函数返回值是什么,在子进程又是什么。fork返回值怎么实现的(trapframe设置eax)

父进程有两个线程,fork完之后子进程几个线程?(答了JOS的)如果是linux呢(不会,让我猜,我猜一个,好像对了)

Linux 守护进程是怎么实现的?怎么编程让一个进程在后台运行,比如docker的-d参数(只答了调shell命令用 & )不用shell直接做可以吗?(不会)

Linux 的 /proc 目录是怎么实现的(kernel 内存中的 Process Table)

os的页机制是为了解决什么(vm、fs,方便连续读写)

.so等动态链接库在载入的时候,其地址的特点是什么(页对齐,16进制后三位为0)

GDB断点是怎么实现的(往内存写一个发送软中断的单字节指令,比如Int 0x3 => 0xcc)

断点能断.code上的任意一个地址吗(不行,如果打在了一个指令内部会导致parse指令异常)

单步调试是怎么做的(CPU有个eflags专门干这个的)

GDB为什么能attach其他进程?(答了因为对子进程有管理权限)追问GDB attach并不一定要子进程吧,那到底是怎么实现的(不会)

你实现的这个OS有图形界面吗?没有图形界面能运行shell吗?

qemu两种模式,kvm是什么(不会)

网络:

短链接和长链接的区别。现在哪个用的多

QUIC了解吗?已经有了tcp,为什么还要造QUIC这个可靠传输的轮子(没答出来)

在一个http链接中,如果发送请求没收到响应,还能再发送吗

TCP挥手time wait的目的

算法:

最长连续递增子数组

反问:

面试流程(3轮技术+1轮HR)

对实习生技术栈等方面的期望(不着急,可以先学go)

全部评论
项目是6.824和6.828吗
点赞
送花
回复
分享
发布于 04-12 21:21 湖北
828问得比824细好多
点赞
送花
回复
分享
发布于 04-13 20:28 广西
滴滴
校招火热招聘中
官网直投
操作系统这个项目真的很难hold住,可以问的细节太多了
点赞
送花
回复
分享
发布于 04-19 10:13 河南

相关推荐

4.1025min1、自我介绍2、常用的编程语言是哪个,自学的还是学校教的?3、ansible自动化配置简单讲讲(项目问题)4、lnmp配置具体出现了什么问题,怎么解决的(php的www.conf和nginx的conf里的用户和组不是一个,导致无法动态转发,通过浏览器返回渲染和nginx日志排错)5、讲讲操作系统的内存管理(我以为是讲讲linux的free命令,罗里吧嗦说了一堆,结果是让讲一些概念,页式存储和段页式存储等)6、TCP三次握手流程7、讲讲容器化技术,镜像和容器分别的概念和区别8、讲讲对k8s的了解9、讲讲你最熟悉哪一块的运维知识(nginx配置相关,面试官提问如果两个url分别访问服务器不同的静态文件该如何实现:include conf 分别写server模块,或者并入nginx主配置文件,但是好像不是这个意思,具体还需学习;nginx的黑名单和白名单如何实现,忘了。。;https和http的区别是什么样的,在nginx配置文件里怎样实现https,也忘了。。。)10、讲讲容器和虚拟机的区别、优点和缺点11、讲讲grep命令,讲讲正则(?和*代表什么),讲讲用shell写过什么样的脚本12、讲讲对zabbix监控系统的理解13、你更想学习、做哪种路线的运维14、你将来的规划是什么样的?15、了解过我们公司业务吗,玩过手游吗,讲讲对游戏业务运维的理解反问环节:1、对容器化技术和k8s的理解程度需要多深?2、有无培训机制?3、常用的linux命令需要多广多深,具体在哪些方面需要多学习一些?更新:4.16收到感谢信
点赞 评论 收藏
转发
一、项目+八股(55min)1、自我介绍2、简单介绍一下你的项目3、压测的性能瓶颈?怎么调试的?4、缓存的数据一致性问题怎么解决的?为什么选择这个方案?还可以优化吗?5、Redis为什么快?6、Redis的数据结构?7、Redis内存淘汰策略?8、什么是可重入?如何基于Redis实现一个可重入的分布式锁?9、set和set nx命令有什么区别?10、zet如何优化底层的查询的?11、设计冗余字段的背景是什么?优点是什么?缺点又是什么?12、MySQL的索引结构?13、为什么一般采用自增ID当主键?14、为什么做深度分页的时候会很慢?15、MySQL的日志文件主要有哪几种?16、事务管理通过哪些文件来管理的?17、String、StringBuilder和StringBuffer的区别?18、Synchorized和Lock的区别?19、Synchorized的锁升级过程?20、学习Java过程中,有没有什么事情是你反复练习的事情?21、介绍一件收获最大的事情?22、介绍一下项目中的多机竞争?怎么优化的?23、多机竞争的核心本质是什么?24、分表为什么要按照大小分表?有没有别的思路?分表解决的问题是冷热分离吗?25、用什么其他方案能够解决冷热数据的问题?26、怎么通过任务ID来定位到存储的表的?27、在任务生成前已经知道该任务存储到哪里了?28、你怎么知道切表了?二、算法(25min)重排链表(没做过,做了半天A了一半测试用例,面试官让说了一下思路)三、反问(5min)您觉得我本次面试有什么不足的地方?可以提供一些建议吗?(1)基础扎实,但是缺乏实践(2)实践的时候要多思考,选用哪种方案?为什么选用这种方案?有没有其他更好的方案?不要闭门造车。四、总结面试官很和蔼,遇到不会的问题也是循序渐进地引导,就是对于项目的拷打太狠了,另外算法还是刷的少了面完3分钟,北森代发短信通知过了,有佬知道美团会用这玩意吗?我一度怀疑是不是美团发的短信,如果我的外卖也能有这么高的效率就好了
点赞 评论 收藏
转发
3 20 评论
分享
牛客网
牛客企业服务