字节基础架构面经
9.6 一面(45分钟)
一面好像是部门委托上海的来面的,时间卡的比较严
-
自我介绍
-
实习内容介绍(问了一些问题,虚拟机热迁移后拷贝和预拷贝的区别到底在哪,本质上来说他们有区别吗)
-
介绍自己的一个项目
-
做题——翻转链表
-
开始八股文
-
分配大块连续的物理内存需要用什么方法
-
vmalloc的作用
-
linux文件的类型有哪些
-
TLB的作用
-
用户态调用fopen后发生了什么
-
函数什么时候用static修饰
-
变量用static修饰的作用
-
数据结构的对齐
-
c语言程序编译的过程
-
RPC
-
ICMP的原理,不可达的原因?
- 代码:翻转链表
9.13 二面(60分钟)
-
自我介绍
-
实习做的工作
-
介绍一个项目
-
(开始语言相关的)字节对齐,给出几个结构体,说一下他们占用的字节数目
-
给出一段代码,判断是否有结果输出
-
inline的作用,什么好处
-
c++中的指针和引用的区别
-
c++的虚函数(不怎么了解C++,直接跳过)
-
(开始计算机组成相关的)进程为什么要有自己的地址空间
-
进程通信的方式
-
32位浮点数在内存中是怎么存放的
-
进程的状态有哪些,是怎么切换的
-
用户态是怎么进入到核心态的
-
(开始网络相关的)TCP和UDP的区别
-
TCP的三次握手和四次挥手
-
四次挥手最后为什么要等待2MSL
-
ARP协议
-
数据包分片
-
IP地址中保留的地址有哪些
-
三次握手中的MSS字段
-
IP保留地址
-
TCP的快重传和快恢复
-
(开始数据库相关的)数据库有了解吗?很久之前学过,没再问
- 做题:给定一个二叉树的前序遍历和中序遍历,给出二叉树的右视图
9.17 三面(50分钟)
-
面试官介绍部门的方向
-
自我介绍
-
介绍实习的工作
-
介绍项目
-
介绍一下虚拟化的概念?虚拟化的分类?
-
QEMU/KVM环境下,虚拟化CPU执行时发生了什么
-
对内存的虚拟化,怎么转换的。
-
给出一个IP,求广播地址、网络地址、可用的IP
-
怎么查看进程占用的内存
-
进程的rss?
- 做题:数组中的第k个最大元素
9.23 四面(技术面,50分钟)
主要是聊项目,深挖细节。
-
自我介绍
-
实习工作介绍,牵扯出了一些细节。修改了哪些代码,通信是用的什么。从中学到了什么
-
一般是用的什么语言
-
介绍一个自己做的项目,细节讨论。SRIOV与virtio
-
用户态与内核通信有哪些方式
-
NUMA
-
虚拟机热升级,具体场景分析,应该从哪里重新执行
-
做题:字典序最大的出栈序列 (牛客网 https://ac.nowcoder.com/acm/contest/58/B?&headNav=www&headNav=acm)