操作系统
- 操作系统如何申请以及管理内存的?
- 进程通信中的管道实现原理是什么?
- 简单介绍进程调度的算法
- 简述 Linux 系统态与用户态,什么时候会进入系统态?
- 简述 LRU 算法及其实现方式
- 简述操作系统如何进行内存管理
- 什么时候会由用户态陷入内核态?
- 简述操作系统中的缺页中断
- 简述几个常用的 Linux 命令以及他们的功能
- 简述操作系统中 malloc 的实现原理
- Linux 中虚拟内存和物理内存有什么区别?有什么优点?
- Linux 下如何查看端口被哪个进程占用?
lsof 和 netstat - Linux 下如何排查 CPU 以及 内存占用过多?
- Linux 下如何查看 CPU 荷载,正在运行的进程,某个端口对应的进程?
- 如何调试服务器内存占用过高的问题?
- Linux 如何查看实时的滚动日志?
- BIO、NIO 有什么区别?怎么判断写文件时 Buffer 已经写满?简述 Linux 的 IO模型
- 简述 socket 中 select 与 epoll 的使用场景以及区别,epoll 中水平触发以及边缘触发有什么不同?
线程 进程
- 进程和线程之间有什么区别?
- 进程间有哪些通信方式?
- 线程间有哪些通信方式?
- 简述同步与异步的区别,阻塞与非阻塞的区别
- 线程有多少种状态,状态之间如何转换
- 进程有多少种状态?
- 进程空间从高位到低位都有些什么?
- Linux 进程调度中有哪些常见算法以及策略?
锁
- 简述自旋锁与互斥锁的使用场景
- 什么情况下会发生死锁,如何解决死锁?
- 简述乐观锁以及悲观锁的区别以及使用场景