虾皮新加坡后端面经
一面
大部分是八股,算法题挺有趣的。
- tcp握手挥手,为什么是三次
- time_wait状态,为什么要有?坏处?
- 数据库索引有什么?各种的优缺点?
- (还有很多八股题忘了)
- 算法题:两数之和,和leetcode.1不同的是会有重复数字,而且答案不止一对,需要输出结果对数(不包括重复),两种解法(不难)
- 如果5中的数组是放在TB级别的文件里面的,但是你只有2GB内存,怎么办?两种方法?(类似5中的思路)
两个工作日后月了二面。
二面
因为我做过MIT 6.S081,面试官挺感兴趣的,所以基本都是问操作系统的实现。
- 进程与线程的区别?(到实现级别,讲到了struct里面的一些字段区别)
- 能否在一个进程里面修改另一个进程的内存?(涉及到页表的翻译原理,讲到了硬件级别)
- 分页和分段的区别。(我这里不是很熟悉)
- 内存分配算法?怎么解决碎片问题?(各种空闲链表,伙伴系统)
- 有优先级的进程调度算法?如何实现?(彩票调度,可以用二叉搜索树或者hash)
- 如何实现为进程实现一个timer?如果是多个timer怎么办?(进程的struct存timer相关字段,比如函数指针和记时器,定时陷入内核;多个timer需要用到优先级队列,讲到了如何修改非堆头的元素)。
- 进程的基本状态,调度器在遇到各种状态时候怎么办?
许愿一个HR面
HR面有啦,开心
#Shopee面经##面经##Shopee#