虾皮 | Data-infra Foundation | 二面已过

面经
自我介绍
一些课程安排(主要是听到我学校的课程里没有计网, 这估计也是没有问我计网的主要原因)

操作系统
内核态和用户态
- 从概念扯到了在Linux中的实现, 内核态本质上是内核空间和权限的集合, 说了下进入到内核态怎么发生的用户栈切换到内核栈
哪些操作是内核态的操作
- 中断, 异常, I/O等
用户进程怎么进入到内核态
- 用户进程主动发起的系统调用, 以及中断(缺页中断), 异常
系统调用和普通函数之间的区别
- 普通函数是用户创建存在elf文件的text区域里面, 系统调用是写入系统内核源码的, 通过make来完整编译出来
- 执行普通函数在用户的栈区里, 执行系统调用在这个进程的内核栈里
执行上, 普通函数和系统调用之间区别
- 系统调用会走内核栈, 申请内存也是通过伙伴系统分配物理内存, 通过slab内存管理器来分配内核对象
Linux查看和CPU相关的参数, 使用什么命令查看
- Top查看动态的排行
- ps获取快照
- perf查看某个进程的调用栈中每个函数的CPU占用比例
怎么看一个系统在内核态占用的CPU的使用率
- 当时忘记了, 和面试官说了下不记得了, 只记得怎么看内核对象的内存占用率了(slabtop), 实际上是pidstat
CPU的IO_WAIT数量是怎么统计出来的
- 大概说了IO_WAIT指的是因为IO操作被阻塞了
IO_WAIT状态的时候, CPU是忙碌的吗
- 现代IO设备里面都有DMA设施, 搬运数据的操作是交给DMA来做的, 不会阻塞CPU
什么是零拷贝
- 只有一次系统调用, 并且开启了某个内核参数以后, 能实现在内核空间不会有冗余拷贝
- 在用户态是通过mmap直接将内核缓冲区映射到用户的虚拟地址空间上的
什么是虚拟内存
- 提供完全隔离的运行地址空间, 屏蔽了操作物理内存的问题
- swap机制(也会导致程序抖动)
- 内核里一段虚拟内存对应一个vma
- 通过mm_struct管理vma
什么时候开始分配物理内存
- 触发缺页中断的时候会从伙伴系统里分配对应数量的页出来

数据库
什么是聚簇索引
- 从聚簇到非聚簇, 再到非聚簇存在回表
聚簇索引B+树的非叶子节点存储的是什么
- 我说的索引, 但是面试官想让我回答的是id, 两个人因为这个问题都笑出来了
主键是什么字段
- 64位的int, 为什么是64位的int. 不使用32位
- 32位太小了, 现在单张表很容易超
主键一般有什么修饰
- prime key
- Unique
- Autoincreament
为什么是单增的
- 能避免B+树出现页分裂
什么是联合索引
- 形式到最左前缀匹配规则到常见的用途, 索引下推和索引覆盖优化查询
MySQL的一个查询最多可以用几个索引
- 是一个trick向的问题(笑哭), 就是一个非主键索引加上回表的时候的主键索引, 两个索引, 也是说完两个人都笑了下
Java线程的状态
- CREATE, INTERRUPTABLE, BLOCK, RUNNING, STOP, TERMINATED
INTERRUPTABLE和BLOCK之间的区别
- 说了下什么时候会分别出来这两种状态, BLOCK说了IO阻塞, 让我下去重新看下

项目
我自己说项目
问为什么使用的rabbitmq
- 我回答的是调研的结果是这个mq最简单易用, 但是被问到的为什么别的更复杂, 回答的只有简单的了解
rabbitmq是保序的吗
- 我说的是, 然后扯了些可靠性保证的一些内容
rabbitmq是怎么做高可用的
- 我回答的是不清楚, 但是为了避免mq成为单点问题, 是肯定有成熟的解决方案的, 不是很难的问题, 能很容易搜到解决方案

场景题目
超大文件排序
- 两个人交流着写完了, 中间给了我一些提示

算法
原地操作的合并数组(第一个数组大小是m+n)
反问
对我的评价
我的优缺点
(没问业务是上一个面试官那问得挺清楚的)

面试总结
总体上看发挥还好, 就是Java上有点薄弱, 对于技术选型的考量上也太简单了.
全部评论
HR面已过, 等offer
点赞 回复 分享
发布于 09-02 18:20 山西
我本科是西南交大的 校友哇 你shopee base是深圳吗还是北京
点赞 回复 分享
发布于 昨天 14:50 北京

相关推荐

头像 会员标识
09-13 21:41
已编辑
滴滴_算法实习生(实习员工)
秋招好像还没结束,但对我来说已经差不多了。211本科985硕士,没论文,非科班出身,这几个标签凑在一起,大概就不该妄想挤进算法岗。想想自己真是走错了好多路。高中搞信息竞赛,大学继续打ACM,虽然最后只是区域赛打铁水平,零零星星只能拿几个蓝桥杯国奖。本科不是计算机专业,靠着那点竞赛底子,保研时也没能挤进985的科班。还被现在被导师忽悠了。他说搞人工智能,我以为是CV/NLP,结果他说的AI是遥感图像处理用的ANN。实验室的服务器甚至有的没有显卡,导师连Python环境都不会配置,整天嚷嚷让学生标注数据。暑假那会儿面C++开发还挺顺利,拿了五六家大厂offer。阴差阳错去做了算法实习,因为时间问题也没能转正。那时候听说AI infra是个方向,想着大模型推理总需要写C++的人吧,就把简历项目都往这个方向靠。问过业内前辈,说技术栈确实相通。还是太天真了。八月底才开始投简历,各大厂连面试都不给。笔试倒是发了一些,大部分都能AK,但做完就石沉大海。总共就面了不到五家公司,全是小厂,倒是给了offer,但总觉得差口气。研究生读得本就痛苦,导师PUA,毕业要求还高。抑郁吃了一年的药才康复。有时候半夜改简历,看着项目经历里那些自己捣鼓的推理优化,忽然觉得可笑——可能我这种半路出家的,本来就不该碰瓷算法岗。可能最难受的是,明明高中就开始写代码,写了这么年算法题,最后连个面试机会都挣不到。导师还在催毕业论文进度,而我连工作都没定下来。要是当初老老实实去做开发就好了。要是没被导师忽悠就好了。要是早点认清自己不是搞算法的料就好了。也许明年春招该回去投C++开发了。只是偶尔还会想起,在实习公司跑通第一个模型的那天下午,显示器里的loss曲线一直在下降,就像我的人生曲线一样,不知道什么时候才能收敛。可惜没要是。
你的秋招简历被谁挂了?
点赞 评论 收藏
分享
评论
2
6
分享

创作者周榜

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