操作系统与 Linux 面试题库
这里记录了操作系统底层原理和 Linux 相关的核心面试题:
进程与线程
- 进程、线程、协程的区别是什么?
- 进程的状态有哪些(就绪、运行、阻塞等)?
- 进程间通信(IPC)的方式有哪些(管道、消息队列、共享内存、信号量等)?
- 线程间同步的方式有哪些(互斥锁、条件变量、读写锁等)?
- 常见的进程调度算法有哪些(先来先服务、短作业优先、时间片轮转等)?
- 什么是孤儿进程和僵尸进程?如何解决僵尸进程?
死锁与并发
内存管理
- 什么是虚拟内存?为什么需要虚拟内存?
- 内存的分段和分页机制有什么区别?
- 什么是缺页中断(Page Fault)?
- 常见的页面置换算法有哪些(FIFO、LRU、LFU、OPT)?
- 什么是 TLB(快表)?
I/O 模型与 Linux
- 什么是阻塞 I/O、非阻塞 I/O、I/O 多路复用、异步 I/O?
- 详细讲讲
select、poll、epoll的区别? -
epoll的底层数据结构是什么(红黑树 + 双向链表)? -
epoll的水平触发(LT)和边缘触发(ET)有什么区别? - 什么是零拷贝(Zero-copy)技术(mmap、sendfile)?
- Linux 中排查 CPU 占用过高的思路和常用命令(
top、ps、jstack/pprof)? - Linux 中排查网络问题的常用命令(
netstat、tcpdump、ping、lsof)? - 简单介绍一下
awk、grep、sed的用法?