收集一些面经中看到的问题,用于学习,主要采用AI回答。
C++
RVO是什么?
菱形继承是什么?怎么解决?
仿函数
Rocksdb
write batch怎么做到原子性?
跨cf的原子性是怎么实现的
lsm tree落盘顺序
分布式
raft
操作系统
page table子进程和父进程是共享的吗,线程之间共享吗
参考6.s081的实验。
子进程和父进程在创建时会复制页表,但页表项指向相同的物理内存页面,因此初始状态下它们的页表内容相同,但页表本身是独立的。这些共享的物理页面会被标记为“只读”,当任一进程尝试修改时,触发写时复制(COW)机制,此时才会为修改的进程创建新的物理页面副本。因此,父子进程的页表并非直接共享,而是通过复制和COW机制实现内存的高效利用。
线程之间则共享同一进程的页表,因为线程属于同一地址空间,所有线程使用相同的页表结构。这是进程与线程在内存管理上的关键区别之一。