虾皮二面凉经

#面经##c++#
1. 网络库的核心作用是什么?
2. 网络库实现时用到了哪些优化手段?在优化过程中替换过哪些组件或方案?(已知`Bind`和`function`曾被 Boost 实现,可围绕此展开)
3. 针对 “需两次 TCP 连接的请求放在同一线程下进行” 的场景,网络库应如何设计或处理?
4. 网络库中的缓冲区是怎么设计的?为什么采用这种设计?为什么网络库需要缓冲区?
5. 使用 muduo 实现一个 RPC 框架,需要完成哪些核心工作?
6. 若服务端已实现加减乘除等接口,客户端需发起接口请求,如何通过 muduo 实现这一交互流程?
7. 用户线程是如何切换的?上下文切换的具体流程是什么?
8. 上下文切换时会保存哪些寄存器?
9. 用户态线程和内核进程的核心区别是什么?
10. 内核进程切换时,下一个进程为何要先切换到内核态,而非直接通过页表和寄存器恢复到用户态(即 “切换到内核进程→用户态” 的原因)?
11. xv6 中存在哪些寄存器?
12. xv6 进行进程切换过程中,用户态和内核态分别会发生哪些操作?
13. xv6 中用户态线程切换时,需要保存哪些寄存器?
14. 是否只有内核态才能访问 trapframe?
15. 实现反序列化与序列化的具体流程是什么?有哪些关键细节(无需代码)?
16. `int`和指针(`char *`)之间如何转换?
17. 为什么要使用`reinterpret_cast`?
18. `int`在底层系统中是如何存储的?
19. `int`和`char`之间如何进行转换?
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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