日常实习面经
日常实习面经
深信服
岗位:C/C++软件开发
一面(65分钟)
Linux进程调度算法主要有哪些?(FIFO、RR、CFS)
大多数进程采用哪种调度方式?CFS高优先级进程可以被抢占吗?
进程与线程区别?内核对它们有区分吗?如何实现?
内核线程了解吗,它和用户线程什么区别?它的页表?
内核管理的内容,伙伴系统、slab
slab从伙伴系统分配的物理页什么时候发生页表映射的?
vfs、read一个文件的过程
struct file中的file_opration结构体是什么时候确定的?
TCP与UDP的区别?
TCP如何维护可靠传输?
TCP超时重传是如何实现的?网络包丢失和接受方主动丢弃一样吗?
TCP服务器和TCP客户端编程过程
accept返回的套接字和服务端是同一个吗?
单链表删除指定节点
单链表逆序
使用栈来排序
二叉树非递归前序遍历、中序遍历
图了解吗?最短路径?
二面(25分钟)
- TCP服务端和客户端编程流程
- TCP的TIME_WAIT的作用
- listen的参数表示什么?(内核中两个队列,未完成队列的大小)
- select的底层实现
- epoll的触发方式,有什么区别?
- 水平触发和边缘触发的应用场景
- 阻塞和非阻塞的区别
- 同步和异步IO的区别
- 进程用户地址空间,堆和栈的区别?
- 用过哪些进程间通讯?
- 哪种进程间通讯最快?共享内存有什么缺点?
- CPU总线编址方式?
- 大小端的区别?为什么有大小端
- 中断底半步,tasklet、工作队列
- 简单介绍下项目,项目中的内存管理如何实现?项目中使用UDP和TCP有什么区别?
- 应用层如何实现UDP可靠?和TCP比有什么区别?
HR面(25分钟)
- 专业有C++的课吗?
- 做过的项目,在项目中有遇到难题吗?举个例子,怎么解决?
- 觉得自己技术水平怎么样?怎么证明?
- 说一下你的三个缺点,有什么例子吗?
- 说一下大学的时间安排
- 了解深信服吗?
- 现在投了哪些公司?如果给你offer,你会拒吗?
腾讯(PCG)
岗位:后台软件开发
一面(25分钟)
- 你是计算机本科吗?不是为什么要做软件开发?
- 介绍一下你的项目,项目的内存管理如何实现的?
- 项目中的日志系统怎么实现?
- select、poll、epoll的实现和应用
- 你说epoll用到红黑树,那你讲一下红黑树
- C++虚函数是如何实现的?
- Linux内存管理(伙伴系统、slab)
- TCP的三次握手和四次挥手?
- 为什么需要四次挥手?三次挥手可以吗?
- TCP如何实现拥塞控制?
- 说20个Linux命令,查看某个端口、查看CPU和内存的资源、抓包
- C++如何实现单例模式?
- 讲一个你熟悉的排序(快排),快排时间复杂度,什么时候最坏?
- 说一下你对动态规划的理解
- 你有什么问题?
二面(30分钟)
- Linux线程相关的API
- 你平常是怎么使用多线程的?
- 线程池如何实现?
- 为什么线程池使用条件变量被唤醒是个while而不是if
- Linux线程间通讯
- Linux进程间通讯
- 为什么关闭一个套接字后,马上打开会报错?如何解决?(套接字复用)
- TCP为什么是三次握手,为什么不是两次,为什么不是四次?
- TCP三次握手的目的?
- 知道TCP的序列号的作用吗?
- 生产者和消费者模式如何实现?为什么循环队列直接暴力地使用互斥锁?
- 生产者和消费者中的循环队列还可以怎么实现?(阻塞队列)
- 常见的二叉搜索树有什么?
- 讲一下快排,快排用了什么思想?
- 你对python和go的意向?
- 你有什么问题?
- 等别的面试官联系你(然后我被鸽了)
字节跳动(头条直播)
岗位:后端开发
一面(62分钟)
- 自我介绍
- 你是自动化专业,专业课上什么内容?
- 为什么做这个项目
- RSTP和RTP是看RFC文档还是?
- 项目中使用TCP和UDP的区别?UDP丢帧会发生什么?
- 有没有对UDP丢帧做处理?
- 讲一下reactor模式
- 线程池线程数怎么设置?
- 项目的日志系统
- 线程怎么睡眠?
- TCP三次握手过程
- 客户端发送SYN的时候调用的是什么函数?
- connect函数在什么时候返回
- 内核调度算法
- 实时操作系统和非实时操作系统的区别
- Linux的进程如何抢占?
- 内核内存管理
- 内核的kmalloc和kmem_cache
- 进程和线程最主要的区别
- 线程什么是私有的?
- fork之后信号量会共享吗?
- 进程访问没有权限访问的地址会怎么样?
- 了解信号吗?杀死一个进程使用什么信号?进程可以捕捉KILL信号吗?
- C++如何禁止一个对象被拷贝?
- STL哪些常用?
- vector和list的区别?
- queue的内部如何实现?
- map的内部如何实现?
- 手写过红黑树吗?红黑树最主要的一个性质是什么?目的是为了什么?
- C++11
- nginx了解吗?
- http协议了解吗?GET和POST有什么区别?
- 编程题:一个数组,求两个值为K的组合
- 编程题:一个数组,合最大的子数组
- 你有什么问题吗?
二面(90分钟)
- 现在课多吗?可以实习的时间
- 考研吗?为什么不考研?
- 为什么做这个项目?
- RTSP协议的交互流程
- sdp文件的信息
- H.264的NALU是怎么存储的?
- 如何编码H.264和AAC的?
- 项目中使用TCP和UDP的效果
- 丢帧会怎么样?
- 有做过压测吗?
- 说出你知道的关于流媒体的协议
- TCP如何维持可靠?
- 让你设计,如何实现TCP的功能
- UDP的包大小如何确定?
- TCP如何确定包大小
- TCP乱序收到包之后,接收窗口还有多大?
- 编程题:使用C++实现拷贝构造函数和拷贝赋值函数(深拷贝)
- 编程题:非递归中序遍历二叉树
- 概率题:一根绳子,剪成3段,求能组成三角形的概率
三面(20分钟)
讲一下reactor模式
select、poll、epoll的使用区别和实现
项目的日志系统
编程题:写一个纯虚函数调用出错的例子,要求编译通过,运行出问题
你有什么问题?
HR面(20分钟)
- 为什么做这个项目?
- 除了看源码之外,如何去学习知识?
- 有想转正吗?
- 接受的工作时间
- 你的专业排名
- 考研吗?
- 平时有什么爱好吗?
- 更喜欢一个人还是和大家在一起
- 你有什么问题?