我是大四的保研生,项目经历是我的毕业设计,自己动手写一个多核操作系统。前段时间毕设已经答辩通过,想到可以利用今年7月-8月去参加一些暑期实习,提升自己的能力和见识。通过boss直聘约到了网宿科技(北京)和滴滴出行(北京)两家公司的面试。下面给出面经。
网宿科技:电话面试 30min左右
1、介绍下自己
2、你的项目开发了多久?你是何时加入该项目的?是从零开始做的OS吗?
3、多核启动的过程(问项目)
4、多核中的进程管理?进程调度算法?有没有出现进程饿死的情况?(我结合项目回答的)
5、多核中的同步互斥技术?(我结合项目回答的)
6、多核情形下中断来了怎么办?OS处理中断的过程?(我结合项目回答的)
7、你的OS有没有开发网络模块?(没有,目前正在开发)
8、socket常用的API?客户端需不需要调用bind?
9、三次握手的过程?序号是什么?发送方和接收方如何确定序号?丢包了会怎么样?
10、Linux内核中的一些和网络相关的定时器你了解吗?(完全不了解)
11、你说你熟练使用gdb,常用指令有哪些?如何调试多线程?
12、对那些安全技术比较理解?(答:对汇编比较了解,反汇编分析得比较快)
13、printf和sprintf的区别?strcpy和strncpy的区别?栈溢出和堆溢出的区别?
14、是否对破解软件感兴趣?
15、你有什么想问我的?
周五下午面试,周一上午接到HR电话,拿到网络安全部门暑期实习Offer。
滴滴出行:
一面:视频面试 40min左右
1、介绍下自己
2、远程共享桌面写代码:将由数字组成的字符串转化为数字
3、你觉得你的项目难点在哪里?有哪些比较优秀的设计?(我回答了负载均衡和内核栈的设计)
4、负载均衡的策略?(问项目)
5、进程间如何通信?(问项目)
6、如何设置测试用例的?遵循什么设计原则?如何保证你的测试用例是优秀的?(问项目)
7、gdb常用的指令?n和s的区别?
8、Linux终端打开了一个很大的文件占满了屏幕,如何获取你想要看到的内容?(我回答的用grep搜出来,面试官说把它重定位到一个文件里即可)
9、硬链接和软链接的区别
10、输入URL到显示网页的过程
11、三次握手的过程
12、说一下快排的思想?如何优化?平均情况?最坏情况?
13、你有什么想问我的?
一面结束后,HR打来电话,10分钟后开始二面。
二面:视频面试 40min左右
1、多核情形下的中断(问项目)
2、你觉得中断有什么用?为什么需要中断?Linux中的中断是怎么回事?
3、多个中断到来时,如何判断其优先级?
4、网卡上的硬中断和软中断是怎么回事?如何查看软中断?(完全懵逼)
5、CPU接收硬中断和软中断的过程?(懵逼)
6、Linux下如何查看CPU的使用情况?
7、内存泄漏和内存溢出的区别?
8、哈希是什么?哈希冲突是什么?如何解决?
9、进程间同步方式有哪些?
10、如何检查上亿条URL中是否有重复的URL?
二面面试官说我基础欠缺,已凉。
昨天接到导师通知,暑期必须留在实验室。所以虽然拿到了网宿的暑期实习offer,也只能放弃了。和牛友们一起努力!
网友评论