1. 自我介绍
这个环节每次面试基本都会遇到,是个加分项,注意扬长避短
2. Linux基本命令
ls、cd、pwd、chmod、move、cp、tar、ps、top等等
3. 进程比较卡,怎么定位查看分析进程的问题?
top命令可以实时查看进程的运行情况以及消耗的资源
pstack PID命令可以追踪程序运行的堆栈情况
GDB可以对程序进程调试
4. 进程和线程的区别?
进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。
因为进程所需要的系统开销比较大,后来为了减少开销就引入了线程。线程的创建、切换等操作要比进程快的多。
同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
5. 用户态和内核态的区别及如何通信?
用户态和内核态是操作系统为了安全而设计的两种模式,用户态拥有基本的一些操作指令集,当需要执行特殊的操作的会切换到内核态。内核态拥有所有特权的操作执行集合,在这种模式下,可以访问内存的任意位置。
用户态切换内核态的三种情况
- 系统调用:比如linux中创建进程fork(),就需要进行切换
- 异常:发生了不可预知的情况,缺页等
- 外围设备中断
如何通信
- procfs(/proc)
- sysctl(/proc/sys)
- sysfs(/sys)
- netlink 套接口(socket)
6. 进程通信的方式&#