linux系统部分,关于信号的梳理总结

26 阅读2分钟

1.信号

下面的这个图片里面总结的事产生信号的其中一种方式,也是和我们日常最密切的一种方式,就是使用我们的键盘上面的ctrl+c结束这个前台的进程;

以及我们的进程收到信号之后可以采取的不同的动作对于这个信号进行应对和处理;

image-20251006160914331

下面的这个是对于我们的信号的一种非常通俗的解释:

image-20251006190323038

异步操作是理解信号的核心,我们知道有同步和异步两种类型,操作系统采取的异步操作的方式,不需要进行轮训或者是等待的过程

image-20251006190434853

关于前台进程和后台进程,以及我们按下这个ctrl+c的时候操作系统内部发生的相关的操作,包括为什么只能有一个前台进程,前台进程和后台进程的区别,可以看看下面的这个内容进行的相关的解释:

image-20251006190704631

系统管理员可以使用9号新号直接从外部杀死这个进程:

image-20251006191036266

我们的信号不是直接发送给了对应的进程,而是操作系统进行中间的处理和操作,修改这个对应的进程的PCB里面的一个比特位,作为这个进程的待办事项,这个进程看到的时候进行处理:

image-20251006191143918

进程面对这个出现的信号,也就是上面说的这个待办事项,可以采取不同的处理方式,就是下面的三种;

前面的这个直接中断和自定义处理就还好,但是如果直接忽略,这个时候我们的操作系统就会直接干预去进行这个资源的回收:

image-20251006191330770

硬件异常转换为信号,提供了一种这个标准的错误处理机制:

image-20251006191432999