了解 Linux 内核:
Unix 信号提供了一种机制通知进程系统事件。每个事件都有自己的信号编号,通常由符号常量(例如 SIGTERM)来引用。系统事件有两种:
异步通知例如,用户可以通过在终端上按中断键代码(通常是 Ctrl-C)将中断信号 SIGINT 发送到前台进程。
同步通知例如,当进程访问无效地址的内存位置时,内核会向进程发送信号 SIGSEGV。
和
... 一般来说,进程可能会对信号传递做出反应有两种可能的方式:
• 忽略该信号。
•异步执行指定的过程(信号处理程序)。
我想知道异步和同步是什么意思
- 通知系统事件的进程,以及
- 正在对信号传递做出反应?
谢谢。
答案1
异步意味着信号将在下次计划运行的程序时被传递和捕获(如果不被忽略)。它通常指由其他进程发送的信号(例如通过kill
、 likeSIGINT
或SIGSTOP
)。
同步意味着信号立即传递,因为程序正在运行(即调度程序中的状态运行)。通常,它是程序执行的直接结果,并且信号由内核发送(例如SIGILL
,SIGSEGV
...)。