字节跳动基础架构 面经

一面面了两次,第一次挂了。

第一次一面
1.自我介绍,项目介绍
(1)根据项目提问:项目中内存分配器的设计细节和分配速度,空间利用如何?
2.操作系统
(1)读文件:我们在VFS的做用上产生了分歧。
(2)操作系统有那些cache分别是做什么的?
page cache , buffer cache , swap cache。
3.手撕代码
数组中最大子序列和。我当时没写出来。
4.建议
他给的建议是让我多刷题。然后给我推存储部门。

第二次一面
1.自我介绍,项目
2.用户态的NVMe有哪些?
3.进程相关,进程状态有哪些,D,R分别表示什么?
4.进程通信方式?
5.读文件,读某一段
6.DMA 是什么?条件?(物理连续)
7.BIO调度算法有哪些?
手撕代码:两个有序链表的合并。
评价:觉得我工程经验比较少,可能做的东西还是偏理论。

二面
1.自我介绍,项目介绍
2.针对项目问问题
(1)SSD的项目的简单介绍,文件路径解析的具体操作。
(2)内存分配器相关的知识。linux内核的两种内存分配器buddy,slab区别,slab的机制,buddy system的机制。
(3)我的内存分配器的性能会不会受到影响?
(4)逻辑页和物理页的关系,如何匹配。我答了创建子进程,以及进程页面相关的东西。
(5)如果进程因为调度被另一个CPU处理,会有什么操作?(复盘感觉这个问题没有回答好,没有想到进程切换)
(6)问如何验证IP核,用HLS还是verilog写IP核,读写指令下发到SSD,后面怎么处理?答FTL的调度。
(7)文件系统的一致性保证机制?
(8)F2FS文件最大能存多少空间数据?
3.编程题,反转链表
总结:总体感觉挺好,面试官比较友好,问问题也很有逻辑。编程题也太简单了吧。

三面
1.自我介绍,项目介绍
2.针对项目问问题
(1)写文件
(2)静态代码分析
(3)#ifdef 的用法
(4)buffer cache 和 page cache区别
3.编程memcpy实现
4.最后问代码量

#字节跳动秋招##面经##校招##基础架构工程师##字节跳动#
全部评论
你是面的SSD部门吗
1 回复 分享
发布于 2024-05-15 20:18 江苏
两个有序队列的拼接是哪道题呀?两个有序数组合并?
点赞 回复 分享
发布于 2021-08-28 15:23
这名字就很熟悉😏
点赞 回复 分享
发布于 2021-08-27 20:46

相关推荐

#实习# #面经# #百度# 面试时长: 62分钟面试岗位: C++/Go后端开发1. 业务介绍2. 自我介绍3. 实习- 你的经历里提到了提升I/O性能的工作,可以介绍一下吗- 测试相关工作,有什么比较有挑战性的吗4. 八股- 介绍一下C++中的extern关键字,( extern C,extern函数/变量)- 介绍一下C++中的const关键字 (函数返回值/变量,修饰类成员函数)- C++中const变量和宏变量有什么区别,是否会为宏变量分配空间- 介绍一下C++中static关键字,static的类函数对不同类成员变量的访问情况是怎么样的- C++会为空类自动哪些函数?一个空类的大小是多少,为什么?- 介绍一下C++中的this指针,是否能获取它的地址,是否能给它赋值?- C++是如何实现多态的?基类的虚函数派生类是否必须要实现?纯虚函数是什么?能否生成一个纯虚类的对象?是否可以用一个派生类的指针指向基类的对象?- C++中普通函数是否可以声明为virtual?static 函数是否可以声明为virtual?类构造函数和析构函数是否可以声明为virtual?- C++中new/delete和malloc/free有什么区别,申请空间失败后,new和malloc的返回值有什么区别- 哪些情况下会发生段错误?怎么排查一个C++程序中的段错误(检测排查工具,代码分析)- core dump文件是什么?如何利用core dump文件排查问题(用什么指令)- Linux中用什么指令去分析CPU和内存高占用的程序?如何对这些字段进行排序?- 介绍一下几种智能指针- 介绍一下左值和右值、左值引用和右值引用。能否把右值进行"赋值"?(移动语义)- 介绍一下引用折叠。为什么需要引用折叠?为什么需要完美转发?- 介绍一下TCP的三次握手和四次挥手- DDoS之类的攻击涉及针对TCP握手或者挥手过程中的攻击,主要是针对握手还是挥手?针对握手的哪一步?攻击主要影响服务器的什么资源?有哪些防范手段?- 介绍一下常见的http状态码(2开头的,4开头的)5. 手撕: 实现前缀字典树和必要的函数
点赞 评论 收藏
分享
评论
2
45
分享

创作者周榜

更多
牛客网
牛客企业服务