7/15 一面(60min)
smartx整个存储大团队是一起的
目前为止遇到的技术细节抠的最深的一个面试官,充分暴露了我背八股的事实
自我介绍
华为的实习,面试官也比较懂,有一些细节忘了,继续扣细节,直到问倒我为止
看到你说熟悉网络编程,知道epoll吗
你说数据准备好了之后用户拷贝到用户地址空间,这部分详细展开一下(驱动,DMA),然后我聊到了经典的linux五种IO模型
继续回到epoll,原理。客户端可以用epoll来connect吗(不按套路出牌的时间到了),我说情况比较少,但是面试官又说应用的情况还是比较多的,比如客户端请求资源会拆分成不同的请求,也需要很强的并发处理能力。connect会阻塞吗(会),如果设置connect不阻塞,那么能通过epoll来进行IO多路复用吗
tcp/ip为什么不设置为一层
tcp为什么可靠?(传统八股时间,八股完再问细节)你说到了拥塞控制,为什么会出现拥塞控制呢?(链路带宽承受不过来),不对啊,一般网卡会根据自己的处理能力发相应数量的数据包,不可能10Gbps的网卡1s处理11Gbps吧(有点懵了,然后说交换机或者路由器处理能力受限)也被驳斥了。最后面试官提示,当多个入口同一个出口时交换机和路由器确实处理不过来,会存在丢包现象
tcp重传怎么回事?(传统八股)快重传呢?这个具体细节忘了,又被扣细节。。。。
操作系统的多线程和多进程适用场景(传统八股)
为什么多线程会出现安全问题(有可能访问到同进程的其他线程栈)你能设计访问其他线程栈的程序吗?
多线程和多进程调度有什么区别
你之前提到了多核,那么进程会被多个不同的核调度吗(操作系统会尽量保证进程只被同一个核调度,避免cache和TLB频繁刷新带来的开销)面试官点头,但是进程也有可能存在被多个核调度的情况
我这边没什么问题了,你还有问题吗?问了一下组里做啥的,对面试官表示感激,确实暴露了我基础不够扎实的问题
总体来说对这次面试比较满意,面试官帮我暴露了没有发现的很多问题。创业公司和大公司对于招聘的需求是不同的,大公司更多的是只要你把故事讲好就ok,而创业公司面试的都是一线写代码的人,技术细节扣的比较死。前一段时间面试太过于顺利导致心态放松,很多基础细节都忘记了,这次面试也可以看作是一次提醒吧
果不其然,第二天状态就变成了岗位不匹配哈哈,看来我的能力还不足以去小公司,先去大厂打几年工吧😝
面试中的一些问题
1.进程和线程调度的问题。主流的操作系统书籍都是以进程调度为例介绍,包括FCFS、SJF、RR、多级反馈队列等调度策略,但是现代操作系统是以线程为调度的基本单位,当一个进程存在多个线程时,操作系统如何进行多线程之间的调度?
2.能设计出某个线程访问其他线程栈的程序吗。
有没有大佬能够不吝赐教,欢迎在评论区留言🤗
全部评论
(7) 回帖