根据各种参考文献,我对signals in Linux is "The triggers that are used to notify the processes about an occurrence of a specific event.Event here may refer to a software exception.Additionally signals may also be used for IPC mechanisms."个问题的主观定义如下:

  • 我认为只有例外情况(软件中断)通过信号通知.那么硬件中断的情况呢.
  • 信号的各种来源是什么?在我看来,内核总是信号的来源.(用于IPC时除外)
  • 信号处理器和ISR之间的区别?.
  • 信号屏蔽和中断屏蔽之间的区别?

推荐答案

中断可以看作是CPU和操作系统内核之间通信的一种方式.信号可以被视为操作系统内核和操作系统进程之间的通信手段.

中断可以由CPU(异常-例如:除零、页面错误)、设备(硬件中断-例如:输入可用)或CPU指令(trap -例如:系统调用、断点)启动.它们最终由CPU管理,CPU"中断"当前任务,并调用操作系统内核提供的ISR/中断处理程序.

信号可以由操作系统内核(例如:SIGFPE、SIGSEGV、SIGIO)或进程(kill())启动.它们最终由操作系统内核管理,该内核通过调用通用操作(忽略、终止、终止和转储内核)或进程提供的信号处理程序将它们传递给目标线程/进程.

Linux相关问答推荐

如何在带模式的文件频繁更改的管道中使用grep-f带模式的文件?

需要获取文件名、行号、模式在文件中的匹配位置

仅在 Linux 上出现 AWS RDS `flush tables` 错误的 mysqldump

如何在 DolphinDB 中递归查找目录中的所有文件?

如何使用 Bash 将随机数据块写入文件

编译过度对齐的动态分配变量时出现 icpc 错误

获取变量中的当前路径并使用它

tmux:挂起不加载,不响应任何选项命令

如何在 Ubuntu 上安装 chkconfig?

如何计算列的平均值

使用 C/C++ (GCC/G++) 在 Linux 中的套接字编程中发送和接收文件

禁用内存地址的随机化

Linux 上 pid_t、uid_t、gid_t 的大小

仅在不存在时添加换行符

bash shell 脚本函数定义(如f () {})中使用的括号是什么?它与使用function关键字不同吗?

Ant 找不到 javac,在 Ubuntu 上不会设置 JAVA_HOME

Bash:在文件中的特定位置插入一行

sed - 如何使用 sed 进行正则表达式组

用curl编译php,curl安装在哪里?

在 bash 脚本中使用备用屏幕