职位题库

后台开发工程师面试题库

面向后台开发工程师相关面试,围绕操作系统、信号处理、并发编程、网络编程、epoll等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

9 道题目建议用时 27 分钟专项面试练习

全部题目 9 道题

01

项目里为什么用对称加密,为什么不用非对称加密?

考察候选人对对称加密与非对称加密在项目中的选型依据,理解性能、安全性和使用场景的权衡。
02

C++原子变量和无锁队列的实现

考察候选人对C++原子操作的理解以及无锁队列的实现原理,包括内存序、ABA问题等。
03

原子指令是怎么实现的,除了锁总线外还有别的方法吗?

考察候选人对底层原子指令实现机制的理解,包括硬件层面的支持。
04

内存屏障、写乱序的概念,和指令重排相比分别是什么时候发生的?

考察候选人对内存屏障、写乱序和指令重排的理解,以及它们发生的时机和区别。
05

COW、零拷贝、进程通信方式、进程处理signal的时机

考察候选人对操作系统核心概念的理解,包括写时复制、零拷贝、进程通信和信号处理。
06

请实现带取模的快速幂,要求时间复杂度 O(log n)。

考察候选人对快速幂算法的理解以及取模运算在防止整数溢出中的应用。
07

只有 512M 物理内存的机器,malloc 申请 1G 虚拟空间会怎样?overcommit 策略如何影响结果?

考察候选人对 Linux 虚拟内存、overcommit 机制以及内存分配策略的理解。
08

一个进程里起了一百个线程,kill 整个进程时怎么保证这百个线程都被回收?信号是怎么派发的?

考察候选人对进程与线程生命周期、信号处理机制以及资源回收的理解。
09

epoll 的 ET 和 LT 两种模式区别是什么?非阻塞配合 ET 怎么一次把事件读干净?

考察候选人对 epoll 两种触发模式的理解以及非阻塞 IO 的使用。
返回面试题库