旷视科技面经

感慨一下:大厂就是不一样,面试官的态度都好好啊!

一面:
1.说一下项目的具体实现:epoller和线程池配合实现reactor模型的Web服务器(吧啦吧啦…)
2.说一下实习经历(吧啦吧啦…)
3.用伪代码实现一个回声服务器:

server:
sockfd=socket()
sock的信息初始...
bind()/*sockfd和sock的初始化信息进行绑定*/
listen()/*监听的客户端的最大数量*/
cfd=accept()
read(cfd,buf...) 
printf(buf)
write(cfd,buf...)

client:
cfd=socket()
sock的信息初始化...
sfd=connect()
buf="Hello World!";
write(sfd,buf)
read(sfd,buf)
printf(buf)

4.说一下线程和进程的区别,通信方式?
区别老三样了,通信方式,(吧啦吧啦)
5.问了查看进程的命令
top
ps aux|grep pid
ps aux
然后又问了一下查看内存空间的命令free -h,然后面试官就给了下面的图,说一下具体含义
total used free shared buff/cache available
Mem: 251G 107G 12G 3.5G 132G 139G
Swap: 127G 24G 102G

我的回答,total代表总的物理内存空间,其实是虚拟的,used代表已使用的虚拟内存空间,free
还没有被使用的虚拟内存空间,share共享的内存空间,有动态链接库,buff就是缓存,available
就是可用的虚拟地址空间。Swap是交换区,位于磁盘上,用于进行页面置换用的,主要是为了提高
系统的性能,当内存不够用时,将不常用的交换到swap分区上,吧啦吧啦。
然后又问了页面置换算法,我就(吧啦吧啦)…;

之后就让写题:看到题说了大致思路说用堆,然后开始写,写挂了,面试结束。

原以为凉了,没想到过了。

二面:
随便说了下项目,然后面试官就开始围绕数据库来说,一开始让我手写Mysql的多表查询语句,我早就忘完了,然后口嗨了一下思路。然后接下来就是围绕数据库连接池线程池方面的知识来说的,自我感觉我反应了一些时间才答到了正点上。对这一面,我也没有抱有能过的想法,因为mysql语句都不会写,确实很拉跨,但是最后面试官还是让我通过了,很感谢面试官。

终面:
主要围绕操作系统来讲的。问的很深,很接近底层,如果只是懂个表面应该很难应付,还好我寒假买了本考研408看了看,能口胡上几句。然后就吧啦吧啦,第二题只给了一个很垃圾的思路,然后就不会了。面试官人真的很好,我很喜欢,哈哈,目前还没有出结果,其实过与不过我都能接受,通过面试也发现自己的很多不足,继续加油,终身学习。

你可能感兴趣的:(面经)