日常实习面经

日常实习面经

深信服

岗位: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分钟)

  • 为什么做这个项目?
  • 除了看源码之外,如何去学习知识?
  • 有想转正吗?
  • 接受的工作时间
  • 你的专业排名
  • 考研吗?
  • 平时有什么爱好吗?
  • 更喜欢一个人还是和大家在一起
  • 你有什么问题?
#深信服##腾讯##字节跳动##实习##C++工程师##面经#
全部评论
这也太难了
2 回复
分享
发布于 2019-12-13 22:33
有字节深圳的实习生群吗,求拉
1 回复
分享
发布于 2019-12-13 16:10
镁佳科技
校招火热招聘中
官网直投
点赞 回复
分享
发布于 2019-12-13 16:49
tql  ——by被字节挂了两次的我
点赞 回复
分享
发布于 2019-12-13 22:40
马了
点赞 回复
分享
发布于 2019-12-14 19:27
日常面试这么难的吗?怕了😅
点赞 回复
分享
发布于 2019-12-17 09:51
看不懂,太难了
点赞 回复
分享
发布于 2020-02-25 14:10
太强了。不过为啥问考不考研啊。。。
点赞 回复
分享
发布于 2020-02-26 09:25

相关推荐

16 198 评论
分享
牛客网
牛客企业服务