信号特点,异步/同步概念,查看信号(kill -l,man 7 signa),实时/分时os概念

目录

 引入

共同特点

信号

介绍

特点

异步 

概念

同步

查看信号 

kill -l

实时操作系统 和 分时操作系统

分时

实时

man 7 signal


 引入

生活中有关信号的东西有很多

例如:红绿灯,闹钟,转向灯等等

共同特点

他们都有共同的特点:

  • 我们是认识这些信号的,以及出现这些信号后我们知道需要干什么(我们都知道红灯停,绿灯行)
  • 认识信号+干什么 -- 其实也就是可以识别信号
  • 认识信号 -- 即使没有出现这些信号,我们依然是知道这些信号相关内容的
  • 但是,我们接收到信号后,不一定就立即去处理它
  • (比如绿灯亮了,我们还可以等等再出发;或者外卖到了,你也不一定立刻就去拿)
  • 因为我们不会立即处理,所以我们需要临时记住信号
  • (不然过了一会你把拿外卖这个行为忘掉了,相当于忽略了这个信号的产生,这样是不符合我们的预期的)

信号

介绍

  • 在Linux操作系统中,信号是一种轻量级的进程间通信机制用于在进程之间传递简单的通知
  • 当某个事件发生时,内核或其他进程可以向目标进程发送一个信号,目标进程在接收到信号后会执行相应的操作
  • 信号可用于通知进程发生的异常事件、请求进程终止或用户定义的事件等

每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到 

特点

  • 和前面介绍的生活中的信号特点类似
  • 首先,进程需要有识别信号的能力(也就是认识这个信号是什么,以及收到信号后该如何处理)
  • 而这份能力,是由程序员交给它的(以代码的形式)

  • 信号产生的时间是随机的(无法确定收到的准确时间)
  • 所以,进程不会去阻塞等待信号出现,而是先干自己的事
  • 也就是 -- 接收到信号后,进程也不一定会立即处理,这也就是异步机制
  • 为了方便后续的操作,进程需要记录收到的信号,等到合适的时候,再去处理

异步 

一般来说,信号的产生对于进程是异步的

概念

  • 在异步编程中,当一个任务被触发或启动后,程序不会立即阻塞等待该任务完成 , 而是会继续执行后续的代码,而异步任务会在后台进行
  • 一旦异步任务完成,它可以通知程序,并处理任务的结果

同步

  • 程序会在一个任务执行完成之前阻塞,并等待该任务返回结果后,再继续执行后续的任务
  • 对于一些耗时的任务和I/O操作来说,可能导致程序的执行效率较低

查看信号 

kill -l

这些是linux中可以支持的信号列表:

  • 一共62个信号,编号从1开始,没有32,33
  • 1 ~ 31为普通信号(我们最常用的信号)
  • 34 ~ 64为实时信号,我们先不用知道它是什么

实时操作系统 和 分时操作系统

分时

为进程分配时间片,切换执行

实时

立即响应

man 7 signal

是关于信号的详细解释

包括信号的含义、产生原因、默认行为、处理方式等信息:

你可能感兴趣的:(linux,linux)