我只投过天美暑假实习和微信实习补录,但莫名其妙有个qq客户端的秋招,不过岗位和我填微信补录的时候一致,莫不是我填错了
总共面了2个小时十几分钟,我的项目是webserver + mit6.s081,整个过程是项目拷打 + 八股 + 手写LRU。
1. 自我介绍
2. 介绍一下mit6.s081的模块组成
2.1 介绍一下你在内存管理方面的工作
2.1.1 你认为操作系统内存管理要有哪些模块
2.1.2 哪些部分是xv6原有的,哪些是你实现的
2.1.2.1 mit6.s081课程的形式是怎么样的
2.1.2.2 是你们学校要求学习的吗?
2.1.3 操作系统是怎么分配内存的
2.1.4 频繁的分配内存是低效的,有什么高效的方法吗?
2.1.5 你有读过linux的源码吗?(*)
2.2 说一下你是怎么降低锁争用的(Buffer cache实验)
将缓存分成八份,形成八把锁(8个CPU)
2.2.1 那你有扩大每份缓存的大小吗?
2.2.2 你有测量过性能提升数据吗?(*)
2.3 说一下你在进程管理部分的工作
2.4 说一下中断
2.4.1 你知道中断向量吗?
2.4.2 在linux上中断向量是怎么回事?(*)
3 如果有多个任务,如何使用thread处理?
3.1 多个线程访问同一个任务队列,需要考虑什么问题?
3.2 加锁之后性能降低,在此基础上如何提高性能?(*)
3.3 如果只有一个线程,多个任务,一个任务生产者,如何提高该线程的性能?(*)
4. 介绍一下webserver那个项目
4.1 说一下服务器的运行流程
4.2 reactor是什么?
4.3 异步日志咋做的?
4.3.1 如果断电了,日志会丢失吗?
只实现了关闭服务器时不丢失,关闭电脑不丢失未实现(感觉这是webserver的一个很好的可以扩展的点)
4.3.2 你有了解过相关机制吗?(*)
本想说mysql的相关机制的,但太久没复习了,支支吾吾了半天没说出来
4.4 如何衡量webserver的性能?
4.4.1 如何优化来提升qps(*)
4.5 有实际上线运行过吗?
#腾讯#