昨天夜里11点的时候收到百度的面试通知,其实已经签了东软网安了,去参加百度的招聘是因为有师兄的推荐,而且也仰慕百度已久想感受百度的笔试、面试的气氛。
早上7:00起床的,吃完饭又到实验室打印了一份简历,就跟隔壁寝室的同学一起去了。本来想打车去的,但是今天下雨,不好打车。后来打听也就4站的公交车,所以最后还是坐公交过去的。到面试的房间都8:50多了,通知我让我9:00到的。刚要按门铃,过来一个人问我“你是郭靖?”,我看看他,跟我年龄差不多,但是手里拿着房间的钥匙,好像我要按得门铃是他的,就说是了。他说他是李*,就邀请我进屋了。这才知道他就是要面我的面试官,因为屋里只有他一个人住。
他找了一个宽敞的地方,我们一起把桌子移到那里,就开始我的第一次1V1的面试了。
开始问了我一些有关上次电话面试的情况、笔试的情况以及我自己对笔试的感觉等,这个应该是为了缓解气氛的。真正的技术要开始了。
第一技术问题是系统调用相关的。什么是系统调用?怎么写一个系统调用?同一个功能的函数,以系统调用和普通函数方式分别实现,在另一个程序中要用到这个功能函数,是用系统调用效率高还是普通函数?第二个问题我回答的是系统调用会低,他就紧跟着问问什么?其实就是想问我从用户态到内核态都有哪些开销。这个我一时没有想起来,他给我提示结合中断来考虑,我还是没想起来。应该从用户堆栈到内核堆栈的切换考虑,传递的信息有用户态堆栈指针ss和esp、标志积存器eflags、返回位置cs,eip。
第二个问题是有关网络通信的。你编过的最复杂的网络程序是什么?结合你的程序和OSI7层模型,说明你所编的网络程序在经过7层时都发生了哪些变化(每层都加入了哪些东西)?因为每层加入的协议头没有记清楚,而且当时有点紧张就把物理层和数据链路层给搞颠倒了,就没有说出什么来。他又问了TCP三次握手的情况。
第三个问题是有关linux命令的。什么叫僵死进程?怎样杀死僵死进程?(一般都是通过杀死其父进程实现,查看进程父进程Pid,ps -ef)?怎么看一个程序使用内存的情况(使用top就可以,top -H -p pid. -H选项会显示该进程中所有的线程情况)?怎样查看文件系统中inode的使用情况(df -i)?如果inode用完了系统会怎么做(分配新的更大的inode,接管当前文件系统)?因为在用linux的是都没有怎么分析过这些情况,所以只能叹息了!
关于linux的问题还是得用,不用的话就算你在哪本书上看过了,面试的时候还是有可能想不起来。还有就是因为在用linux解决的问题中没有涉及到到上述问题,所以也没有研究过,再次叹息!还问了一个sed的问题,并让当场写出命令,这个我用过并研究过。
总体来说,面试过程挺愉快的,因为面试官李大哥人挺不错的,而且容易相处,毕竟年龄都相仿容易沟通。就面试的问题来说,可以看出李大哥是做了充分准备的,每个知识点都会有里连串的问题跟着。奈何自己学的不够好啊!
上述提出的问题都是他从我简历中找的相关知识点,所以,对简历上写出的每个知识点最好都能有所深入的研究,让这些知识点真的成为自己的地盘。面试的时候不要紧张,就算自己真被问住了也没什么,那就当做一次跟比你高水平的人切磋了,用来找差距。面试官很期待你最高水平的发挥。基本上没有二面的机会了,写出来作为总结吧!也作为以后继续努力的一种鞭策!
阅读(906) | 评论(0) | 转发(0) |