六章的金句压成一页。面试当天早上过一遍,卡壳的句子点回原章。这页不替代正文,也没有自测。
| 题 |
一句话 |
章 |
| 进程 vs 线程 |
进程是资源单位,线程是调度单位。进程切换换页表,TLB 大面积失效;线程共享地址空间,出事带走全进程 |
01 |
| 协程 |
用户态协作式切换,纳秒级、上不了多核;阻塞系统调用会卡整条线程,所以必须配非阻塞 IO |
01 |
| 虚拟内存 |
每进程一套假地址,页表翻译。好处:隔离、超售、权限、物理页可以不连续 |
01 |
| 缺页 |
有效位为 0。合法则调页重执行;非法则 SIGSEGV。它是异常,不是中断 |
01 |
| malloc |
用户态分配器先消化;小块 brk,大约 128KB 以上 mmap。拿到的是虚拟地址,第一次写才占物理页 |
01 |
| 地址空间 |
高处内核,往下是栈、mmap、堆,最低是代码和数据。ASLR 只挪起点 |
01 |
| 死锁 |
互斥、占有且等待、不可抢占、循环等待,四个同时成立。预防靠统一加锁顺序 |
01 |
| futex |
mutex 先用户态原子试锁,失败才进内核睡觉。无竞争几乎免费 |
01 |
| epoll |
注册一次,回调挂就绪链表,wait 只返回有事的 fd。LT 是还有数据就通知,ET 必须一次读到 EWOULDBLOCK |
02 |
| Reactor / Proactor |
Reactor 通知就绪,你自己 recv。Proactor(IOCP、io_uring)通知完成,内核已经搬完 |
02 |
| 零拷贝 |
CPU 不拷。sendfile 让内核内部转发,配 SG-DMA 后数据全程 DMA |
02 |
| 题 |
一句话 |
章 |
| 三次握手 |
防历史 SYN,并确认双方都能收发。两次确认不了“服务端的包客户端收得到” |
03 |
| 四次挥手 |
被动方可能还有数据,ACK 和 FIN 拆开。主动关闭方进 TIME_WAIT,等 2MSL |
03 |
| 流量 vs 拥塞 |
rwnd 保护接收方,cwnd 保护网络。实际窗口取较小者。慢启动每 RTT 翻倍,到阈值后每 RTT +1 |
03 |
| 为什么用 UDP |
TCP 的有序可靠造成队头阻塞,旧位置没有补发价值;拥塞控制遇丢包还降速。状态走最新,事件自己确认 |
03 |
| NAT 打洞 |
双方先连公网协调服,交换公网地址,同时发包。对称 NAT 失败就走 TURN 中继。映射要心跳保活 |
03 |
| 可靠 UDP |
sequence + ack 位图。位置只留最新,技能按位图重传,包自己控制在 MTU 内 |
03 |
| 帧同步 / 状态同步 |
状态同步传结果,服务器权威。帧同步传输入,各端跑同一份确定性逻辑 |
03 |
| 粘包 |
TCP 是字节流。游戏用长度前缀:先读头,再按长度读体。UDP 没有粘包,但有 MTU |
03 |
| TLS |
非对称只用来交换密钥并验证书,大数据走对称。证书链验到系统内置的根 |
04 |
| URL 到页面 |
DNS → TCP → TLS → HTTP → 可能命中 CDN → 解析并拉子资源(强缓存 / 304) |
04 |
| 登录 vs 战斗 |
登录、热更走 HTTPS,要可靠;战斗走 UDP,要低延迟。两套连接,不要混 |
04 |
| 题 |
一句话 |
章 |
| 管线 |
CPU 决定画什么,顶点着色器决定顶点在哪,片元着色器决定什么颜色,输出合并决定谁留下来 |
05 |
| MVP |
局部 → 世界 → 相机 → 裁剪 → ÷w 得 NDC → 视口映射到屏幕。透视把深度编码进 w |
05 |
| 法线 |
非均匀缩放下不能直接乘 MV,要用逆转置,否则不再垂直 |
05 |
| mipmap |
远处一个像素盖住很多 texel 会闪。金字塔按屏幕导数选层,显存大约 +33% |
05 |
| 纹理压缩 |
BC / ASTC 按 4×4 块随机解压。PNG 必须整张解开,显存放不下 |
05 |
| 剔除 |
背面是三角形,视锥和遮挡是物体,Early-Z 是像素。先便宜后贵,遮挡必须保守 |
05 |
| 点在三角形内 |
重心坐标三个权重是面积比,都在 0 到 1 就在里面。透视下先除 w 再插值 |
05 |
| 四元数 |
4 个数存旋转,没有万向节锁,slerp 稳定。欧拉角只留给编辑器 |
05 |
| 透明 |
不透明先画、开深度写;透明后画、关深度写、由远到近。混合不能交换 |
05 |
| PBR |
能量守恒的微表面 BRDF。金属度决定颜色来自反射还是漫反射,粗糙度决定高光散不散 |
06 |
| 菲涅尔 |
掠射角反射变强。Schlick:F0 往 1 靠。金属的 F0 带颜色 |
06 |
| IBL |
离线做成辐照度图、按粗糙度的预滤波 mip、一张 BRDF LUT。运行时只采样 |
06 |
| 法线贴图 |
存切线空间,z 朝外,所以偏蓝。同一张能贴到任意朝向 |
06 |
| Shadow Map |
从灯的眼睛拍一张最近深度,渲染时对表。bias 小了是 acne,大了是脚底悬空 |
06 |
| 前向 / 延迟 |
灯多且不透明为主用延迟;透明多、移动端、要 MSAA 用前向+。手机 GPU 是 TBDR,吃不下全屏 G-Buffer |
06 |
| AA |
MSAA 在几何阶段多采样,FXAA 在图像上补,TAA 把采样摊到时间轴,要用运动矢量管重影 |
06 |
- 操作系统:共享就要同步,同步错了就是死锁;无竞争的锁不要进内核。
- 网络:实时数据要最新,不要队头阻塞;可靠只加在值得重传的事件上;NAT 后面要先有人帮你们交换地址。
- 图形学:先说管线四段,再等追问落到剔除、PBR 或阴影。不要一开始背公式。