字节提前批 二面
  字节 后端-基础架构Data 二面 8.3晚 大约70min 
   一、自我介绍 
 -    为啥之前本科没有实习经历?
-    什么时候毕业?
-    本科学习哪些专业课程?
-    C++大一学了之后还用过吗?
-    因为是物联网专业,问有什么硬件知识储备?
-    了解过指令集吗?-      回答了一条指令执行的过程,说了一下本科计组课设用过verilog实现过单周期CPU和五级流水CPU的仿真,主要实现了MIPS指令集,详细举例了ADD指令和LOAD指令的实现过程。(一个逻辑运算指令和内存I/O指令,其实忘了再距离跳转指令,如JUMP指令,这样回答更好一些,这些都是现场回忆大二做的课设,觉得能讲清楚就已经很好了,面试官也听懂了个大概)
 
-      
-    说一下Cache的原理,为啥要Cache?-      先回答了内存和cpu之间为啥要cache,说缓存是一种工程思想,其他很多地方都用到了;
 
-      
  二、项目(前面自我介绍,专业背景提问大概12分钟) 
 -    介绍一下做的聊天集群项目
-    可能介绍的比较流畅,面试官问是自己做的项目吗?-      很实在地回答了是网上开源的项目,然后我赶紧补充了这个项目我的收获(事后觉得自己有点真诚过了头)。
 
-      
-    用到了Nginx,说一下起到了什么效果?
-    项目代码量多少?主要是C++吗?
-    接下来介绍RPC框架项目-      说了一下rpc原理,然后就是各个模块怎么实现(回答不是太好)
 
-      
-    序列化自己实现要注意什么?-      参照之前用过的json,protobuf怎么实现序列化的,怎么分字段给用户读到具体的消息内容,怎么存储消息,然后举例了json字符流存储多余的字段名和protobuf的二进制字节流怎么消息分界,当时知道什么说什么,这个答得不好。
 
-      
  三、操作系统 
 -    多线程和高并发场景需要考虑啥问题?-      往cup密集型和I/O密集型业务讲了业务需要区分,然后区别处理;
-      面试官的意思是侧重多线程怎么同步,然后再具体问了多线程访问共享资源注意什么?-        共享资源,怎么互斥,我回答加锁;
 
-        
 
-      
-    你知道多少锁?-      回答了自旋锁,信号量、条件信号实现的原理以及PV操作过程。
 
-      
-    说说信号量怎么实现的?-      从信号量记录共享资源数量,阻塞队列入手说了一大堆。
 
-      
-    说一说你如何理解操作系统?(代码题写完大概50min,后面又开始提问)-      从cpu管理、内存管理、文件管理、设备管理大概说了说。
 
-      
-    说一下进程的调度,哪些调度算法?-      从pcb开始回答,里面存着什么信息,进程如何组织管理(PCB队列),再回答了哪些调度算法。
 
-      
-    说一下进程切换?-      说了通过内核管理PCB,讲了切换的几种场景(阻塞发生,时间片到)
 
-      
-    内核你是怎么理解的?-      从OS从单程序到多道程序说为啥出现内核,然后再说了虚拟内存高地址是内核空间(内核程序也需要分配内存来存放指令和数据)
-      进程的控制和进程间通信需要借助内核。
 
-      
-    OS以前怎么学的,有什么实验课?-      实验课实现过一些shell命令,内存分页管理
 
-      
  四、代码(前面聊了不到半小时开始做题) 
   LC622 设计实现循环队列 
 -    说一下思路,队尾指针和队头指针的作用?
-    判断队列满为啥尾指针要加1?-      LC没刷到过,凭借大二数据结构实现自己实现过循环队列回忆起来的,没说到关键点上。其实就是区分队列空和队列满两种情况不能以front==rear来判断(两种情况这个条件都满足)。
 
-      
  五、反问 
 -    你们用C++具体用来开发什么业务?-      面试官说了很多,基础架构和硬件打交道多一点所以还有用C语言的,你排斥硬件吗?-        我继续说之前本科物联网专业的,学过需要硬件相关的课程,嵌入式、微机原理啥的,实验室项目做过的ROS小车集群,加的模块也是先从硬件到软件实现(舵机控制板、还有需要烧写程序的板子),所以不会抵触硬件。
 
-        
 
-      
-    评价一下我今天面试的表现?(三面我不再问这个问题了,一定!)-      知识面很宽,会的还挺多,问题很坦诚(聊天项目直接说是网上开源的),总体回答都还行。
 
-      
  最后总结: 
 -    项目准备不够充分(RPC项目),完全是围绕项目提问聊天,操作系统问的很多,但不是八股那种问法,全是开放性问题,尽量是知道啥就说啥(小林coding YYDS);
-    感谢本科的课程实验,能在关键时候救命(完全靠回忆还能吹出来)
  二面完觉得要凉了,面完晚上九点多;第二天傍晚收到三面通知(8.18,好晚啊!!!)。 
  查看29道真题和解析
查看29道真题和解析
