字节C++日常实习面经

字节后端存储,base杭州

8.18 19:30 字节一面

1.拷打项目6.s081

  • 问xv6的物理内存如何分配的(全局的空闲链表,说了使用vmalloc分配物理内存,然后如果是进程使用系统调用申请的会映射到虚拟地址空间)
  • 物理内粗的惰性分配,cow,以及惰性分配的问题(频繁触发缺页异常陷入内核态开销很大) 补:惰性分配的优化方法:预取,根据进程访问局部性预取相邻的多个页,文件映射时,linux默认readahead为128KB
  • 定时器回调是怎么实现的(PCB打标记,保存回调函数的函数指针,trapframe添加字段保存陷入时的通用寄存器和pc,然后在usertrap中把pc送到回调函数的地址上)
  • 配置环境的时候申请多大物理内存(瞎说的128M,蒙对了),虚拟地址寻址空间有多大(3 * 9 + 12位),有没有实现磁盘的交换分区(没有)

2.拷打项目cs144

  • 问tcp连接时候的状态机怎么实现的,快重传怎么实现的,状态机各种情况下的转换怎么测试的 (一个都没实现,汗流浃背,解释说主要是为了通过实验中给出的测试用例,有很奇怪的用例只有一个segment且SYN和FIN被同时置位)

3.ReSampler硬控面试官十分钟

  • 演示了一下,然后讲了讲为什么要做这个
  • 问对JUCE框架了解多少,我说了解一下,自己重新实现过audiothumbnail,以实现缩略图拖拽逻辑

4.做题

  • LeetCode 347.前 K 个高频元素
  • 没有复习到,没想起来用堆,写了一个用vector存储unordered_map中的pair再排序的算法,复杂度nlog(n)

5.反问

  • 组里做什么业务(分布式存储)
  • 组里用的语言和工具链(c++, go,工具用gnu那一套,都差不多)
  • 对我个人的建议(项目的细节可以思考的深一点,自己写一些测试用例)

8.20 14:00 字节二面

1.两个机器互相发数据包,期间触发了哪些中断

2.场景题:单台机器在10ms之内发送10G数据,网络条件严重拥塞,如何在协议层面做优化(完全不懂,反复确认了好几遍问题,然后假装思考了半天,终于鼓起勇气开始胡扯,说可以发一些探测报文来检测网络条件,如果全丢包了则退避,如果没丢包认为网络条件好开始发送)

3.手撕,出了一道没见过的题,一个vector里有顺序排列的数据(uint32_t),每两个数之间的差值不超过10000,如何设计一个新的存储结构,使得内存占用在原来的1/2以下,自己设计测试用例(说了思路,多个数一个组,用uint32_t记录每组的第一个数,uint16_t记录组间元素的差值,然后写。写好之后面试官让把每组的元素个数作为模板参数)

4.问如何看待加班(表示自己能接收加班且不反感)

5.最快什么时候入职(说9月中上旬)

6.反问

  • 组里重视实习生的培养吗

8.20 17:00 hr面

8.21 oc,收到offer

字节的流程非常快,4天速通。

其他同时沟通的公司有些一面还没开始

#c++##字节##字节实习#
全部评论
楼主大三或者研二吗
1 回复 分享
发布于 08-22 23:19 陕西
定时器回调是什么?作业里有这个吗?你做的哪一年的?
点赞 回复 分享
发布于 08-25 10:07 山东

相关推荐

评论
2
21
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务