1. 信号机制
主要用于向一个或多个进程发异步事件信号,信号可以通过键盘中断触发,也可以有进程访问虚拟内存中不存在的地址这样的错误来产生。信号机制还可以用于shell向它们的子进程发送作业控制命令。
Linux使用存贮在每个进程task_struct结构中的信息实现信号机制,它支持的信号数受限于处理器的字长,32位字长的处理器有32种信号。
并不是系统中的每个进程都可以向其他的进程发消息,只有内核和超级用户可以做到这一点。普通的进程只能想同一进程组或具有相同的uid和gid的进程发送信号。
2. 管道
在Linux系统中,管道用两个指向同一个临时性VFS索引节点的文件数据结构来实现。
普通管道(包括两个文件数据结构:对应的VFS索引节点以及共享数据页)在进程每次运行时都会创建一次,而FIFO(命名管道)是一直存在的,需要用户打开和关闭。
3. 套接字