文章目录
- 写在最前面
-
- 21.如何消除僵尸进程?
- 22.什么是守护进程?
- 23.进程的状态转移
- 24.进程间的共享资源、私有资源分别有哪些?
- 25.协程
- 26.协程跟线程的区别是什么?
- 27.Linux线程间同步机制?/线程间通信方式?
- 28.线程间的共享资源、私有资源分别有哪些?
- 29.用户态和内核态
- 30.存储器缓存的基本思想?什么是缓存命中?
- 31.虚拟内存/虚拟地址空间
- 32.缺页中断
- 33.页面置换算法/ 缺页置换算法/ 内存调度
- 34.Linux系统中的锁/ C/C++里面有哪几种锁?
- 35.产生死锁的四个必要条件
- 36.如何处理死锁?
- 37.进程响应信号,有哪两个信号不能忽略?
- 38.原子操作
- 39.信号处理的机制
- 40.程序从main函数开始吗?
写在最前面
专栏文章的所有问题与答案均来源于各个技术网站、技术博客等。由于当年自己有找工作需要,而面试问题与答案十分零散,不成体系,难以速成,所以收集整理了大量的笔试面试问题,主要包含的板块有:C/C++基础、操作系统、计算机网络、数据库、数据结构与算法、大数据等。
目前因工作原因,自己已经不再需要这些资料,准备清理电脑空间,所以会逐步分享出来。
本篇文章主要讲述的内容是:研发面试中的操作系统基础知识(第21——40题),文章以“一问一答”形式呈现。欢迎大家批评指正。
21.如何消除僵尸进程?
消除僵尸进程有两种方法。(1)杀死父进程。通过kill发送SIGTERM或者SIGKILL信号杀死产生僵尸进程的父进程,此时它产生的僵死进程就变成了孤儿进程,由init充当父进程,回收资源。(2)在处理函数中调用wait。子进程退出时向父进程发送SIGCHILD信号,父进程处理SIGCHILD信号,在信号处理函数中调用wait处理僵尸进程。
22.什么是守护进程?
守护进程是指在后台运行的,没有控制终端与之相连的进程。它独立于控制终端,周期性地执行某种任务。
23.进程的状态转移
进程的状态