系统编程高频面试题(真实工程向+详细通俗答案).docxVIP

  • 0
  • 0
  • 约3.86千字
  • 约 6页
  • 2026-06-25 发布于河北
  • 举报

系统编程高频面试题(真实工程向+详细通俗答案).docx

系统编程高频面试题(真实工程向+详细通俗答案)

范围:进程线程、内存管理、文件IO、网络底层、信号、孤儿/僵尸进程、锁、协程、Linux内核常见机制

1、进程和线程的核心区别?(必问)

通俗答案:

第一,资源隔离不一样。进程是资源分配的最小单位,每个进程都有独立的虚拟内存、文件描述符、堆栈,互不干扰,一个进程崩了不影响其他进程。线程是调度执行的最小单位,同一个进程里的所有线程,共享堆内存、全局变量、文件句柄,只有自己独立的栈和寄存器。

第二,开销不同。创建、销毁进程开销极大,需要内核重新分配虚拟内存、页表;线程开销非常小,只是新建栈空间,复用进程资源。

第三,通信方式不同。进程间通信麻烦,需要管道、共享内存、socket这些IPC方式;线程直接读写全局变量就能通信,但要加锁保证安全。

第四,稳定性不同。一个线程崩溃,整个进程直接挂掉;进程之间完全隔离,单个进程异常不扩散。

面试加分总结:进程重隔离、线程重效率

2、什么是僵尸进程、孤儿进程?怎么处理僵尸进程?

通俗答案:

孤儿进程:父进程先退出,子进程还在运行。子进程会被init进程(PID=1)收养,完全无害,不用处理。

僵尸进程:子进程先退出,父进程没有调用wait/waitpid回收子进程退出状态。子进程所有资源都释放了,只剩一个进程条目留在系统进程表中,占用PID资源。

危害:PID数量有限,大量僵尸进程会把系统PID耗尽

文档评论(0)

1亿VIP精品文档

相关文档