这个评论让我很困惑:“kill -l 通常列出所有信号”。我认为信号意味着量化的能量。

[添加] 请澄清 Unix 中的(计算)信号和物理信号。它们是完全不同的概念吗?

[添加] 范式之间是否存在重大差异?C、Python、Haskell 等语言中的含义相同吗?信号似乎是一个通用术语。

有帮助吗?

解决方案

我无法相信的人都不比较的东西比如 硬件和软件 或者强调 OS 在一些要点。

比较之间的一个信号中断:

不同的是,虽 断送到的工作 系统 由硬件, 信号 发送的过程 通过操作 系统, 或通过其他进程。 注意到 那个信号什么都没有做 软件中断,它们仍然是 发送的硬件 (CPU本身, 在这种情况下)。 (来源)

定义

  1. 过程=a节目在执行中,根据下面的书

进一步阅读

  1. 比较的信号 中断和异常

  2. Tanenbaum书的现代化操作系统

其他提示

在手册是指一个非常基本的机制,其允许处理或操作系统通过发送信号,以通知其他进程。操作系统可以使用它来通知关于它们的(信号SIGABRT)或约段故障(通常通过访问空指针,SIGSEGV引起)的堕胎方案,仅举两个。

某些UNIX服务器使用的信号,以便管理员可以使用kill向他们发送的信号,从而使他们重新读取它们的配置文件,而不需要他们重新启动。

有采取一些信号和其它信号的默认动作只是忽略。例如上收到SIGSEGV的,程序将终止,而在没有什么特别的接收SIGCHLD,这意味着儿童死亡的过程,会在默认情况下的结果。

有是安装一个信号处理程序,它是一个可以接收的信号,称为signal(在man signal读取)时执行一些代码的功能的ANSI C标准功能。在不同的Unix的,该函数的行为不同,因此它的用法是气馁。它的手册页是指sigaction功能(读man sigaction),其行为一致,也更强大。

一个物理信号和Unix的信号确实是不同的概念。当一个Unix信号从一个过程发送到另一个,有相应的物理信号没有特定。 Unix的信号仅仅抽象所以程序员可以谈论彼此通信过程。

Unix的信号可能已被称为消息,事件,通知,或甚至一个虚构的术语如“frobs”。设计者只是选择了名称为“信号”,它卡住。

信号的消息,到目标的过程中,或操作系统有关的目标的过程。它是一部分的unix API(并且被定义于各种POSIX标准)。

阅读 man kill, man signal, , man sigaction.

其他这样的问题,可能是有帮助:

一些从我的笔记:

允许异步通信

  • 进程之间的属于 同一用户
  • 从该系统的任何过程
  • 从系统管理者的任何过程
  • 所有相关信息在本身的信号
  • 许多不同的信号

信号情报

  • 从该系统对所有进程 关于终端
  • 触发:^C压
  • 通常方式停止运行中的进程

SIGFPE

  • 从核对单个过程
  • 触发:错误的浮点运算

SIGKILL

  • 到一个单一的进程
  • 停止执行的目标过程

SIGALRM

  • 从核对单个过程
  • 触发:计时器到期

SIGTERM

  • 到一个单一的进程
  • 建议的过程终止优雅

SIGUSR1,SIGUSR2

  • 从任何进程的任何其他
  • 没有一个预先定义的语义
  • 可自由使用的通过程序员

信号发送到另一个进程

  • int杀(pid,signal_ID)

程序员可以决定做什么,当一个信号 收到

  • 使用默认的行为
  • 忽略它
  • 执行一个用户功能

检测中断的写信

if (write(fd, buff, SIZE)<0) {
  switch (errno) {
   case EINTR:
    warning(“Interrupted write\n”);
    break;
  }
}…

一个信号是可以被发送到正在运行的进程的消息。

例如,告诉因特网守护进程(inetd的),以重新读取其配置文件,它应当发送一个SIGHUP信号。

例如,如果当前的进程ID(PID)的inetd的是1234,应键入: 杀-SIGHUP 1234

信号是“在计算过程之间传输的事件、消息或数据结构”(来自 维基百科).

在这种情况下,信号装置“消息”。所以它发送消息给一个过程,可以告诉的过程中做各种事情。

一个UNIX信号是一个样的信息可以被发送到和从UNIX进程。他们可以做这样的事情告诉进程退出(SIGKILL),或者一个进程有一个无效的内存引用(SIGSEGV),或者整个过程由用户按control-C(SIGINT)杀死。

这* nix中的命令行输入:

  

人信号

这是必应你所有可用的信号。

信号基本上是一个中断,告诉过程某一特定事件的发生。

信号通常发送的核心,同时一个过程还可以发送信号的其他进程(取决于许可答复所有)通过使用杀和killall命令和进程可能发送信号本身通过使用提高。

主要使用信号:

  1. 要处理的中断。

  2. 进程同步。

  1. 信号中断,用于亲密的一个过程,一个特定的事件已发生了。

  2. 信号可以通过发送的内核运行的进程或者一个过程的另一个进程。

  3. 在庆典杀和killall命令可用于发送的信号。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top