您的位置:首页 > 其它

unix内核概述-信号与进程间的通信

2013-09-28 11:02 357 查看
unix信号提供了一种把系统事件报告给进程的一种机制。每种事件都拥有自己的信号编号,通常用一个符号常量来表示,例如SIGTERM。有两种系统事件:

异步信号:例如:当用户在终端发送一个中断键,即向前台进程发出一个中断信号SIGINT

同步错误或异常:例如:当进程访问内存非法地址时,内核向这个进程发送一个SIGSEGV信号。

一般来说进程以两种方式对接受到的信号做出反应:

忽略该信号;异步的执行一个信号处理程序;

如果进程不指定以何种方式处理信号,则内核就根据信号编号执行一个默认操作。可能得默认操作时:

终止进程;将执行上下文和进程地址空间的内容写入一个文件,并终止进程;忽略信号;挂起进程;如果进程曾被执行,则恢复进程执行。

SIGSKILL、SIGSTOP信号不能直接由进程处理,也不能由进程忽略。

System V引入在用户态下其他种类的进程通信机制:信号量、消息队列、共享内存,他们被统称为System V IPC。

posix标准定义了一个基于消息队列的IPC机制,这就是所谓的posix消息队列,他们和System V IPC消息队列是相似的,但是他们对应用程序提供一个更简单的基于文件的接口。

共享内存为进程间交换和共享数据的最快方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unix 通信 进程