小米c/c++二面
面试部门为上海车机部门,本人为c++选手,个人项目:6.828操作系统项目,一个muduo库,一篇1区文章。
面试官态度很好,对我不熟悉或者答的不完整的问题都会做一些解答和拓展
问题:
1.介绍了一下论文。
2.网络库项目:
问了网络库的结构,线程池的管理,tcp连接的管理,事件轮训检测与分发。
介绍了一下所做的各类事件触发机制。
3.操作系统项目
操作系统是宏内核还是微内核。
bios到kernel的启动过程,实模式和保护模式所做的操作,转换后mmu的作用。
是如何进行虚拟内存管理的
你的内存管理粒度是多大
如何对进程进行内存分配和管理
进程和线程有什么区别
你引入了多cpu,是如何进行调度。你使用的是时间片调度,你知道时间片是如何校准时间的吗。
linux中是如何对进程进行管理调度的。
操作系统中文件系统的管理是如何实现的。
解释一下fork,你在实验中哪里使用了cow,是如何实现cow的
如何做的dma
thread和pthread的区别
linux如何查看进程的情况
top命令可以如何使用
4.c/c++
讲一下static
5.写了个链表题
问题大概就记得这么多,不全
整体聊的很好,问题基本都答出来了,持续时间一小时,期间也是有说有笑。
最后说部门主要是做c,我对linux的掌握程度不是特别深入,整个实验和linux大体框架基本一样,但是和现有linux在细节处理上仍有差距,比如说调度和粒度管理。不过因为我有操作系统的基础,看起来也非常快。
两小时后流程结束。唉