1 / 23
文档名称:

LINUX课件 ipc.ppt

格式:ppt   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

LINUX课件 ipc.ppt

上传人:yzhlyb 2014/11/23 文件大小:0 KB

下载得到文件列表

LINUX课件 ipc.ppt

文档介绍

文档介绍:进程间通信
信号
管道通信
IPC
进程间通信是系统并发管理机制中比较复杂的处理模块。历史上,贝尔实验室发布的UNIX版本和加州大学伯克利的BSD在进程通信的研究上各有侧重。贝尔实验室的“System Ⅴ IPC”,其通信进程局限于单个计算机内。而BSD的进程通信研究跳出了单个计算机的限制,形成了基于套接字(socket)的进程间通信机制。
Inter-munication (IPC)
基本通信:
早期用于协调进程间同步和互斥管理的简单信号传递方式。
管道通信
其他IPC通信:如消息、信号量、共享存储区等
常见的进程间通信
进程通信实现方式:
主从式通信
会话式通信
消息传递式通信: 适用于大批量数据的传递。
信号通信方式
<
>
常见的进程间通信
信号(signal)是进程中异步发生事件时发出的提示信息。信号又称为“软中断”。这些信号在系统内部有具体的编号,并且安排了默认处理程序。
除系统预定义的信号外,还允许用户自定义个别的信号,用来执行特殊的应用。
例如,在程序执行期间,我们通过键盘ctrl-c终止该程序的执行,其实质就是向其发送一个信号。
进程间通信: 信号
在系统中生成信号的原因有多种,比如:
当一个进程执行了非法操作时,会由硬件发出一个信号。
当进程请求的系统资源可用时,系统核心程序会发出一个信号。
当用户从键盘输入一个特殊键时,就给当前进程发出了一个信号。
信号产生的原因
<
>
Linux下定义的信号:见/usr/src/linux/include/asm/
ctrl+c发出2号信号
Ctrl+z发出20号信号
Linux下定义的信号
$kill -l
信号的发送
status= kill (pid, sig)
pid为接受进程的标识符, sig是指定欲发送信号的类型,可以
使用软中断号或信号名称。例:
kill(96,9) 与 kill(96,SIGKILL)等价
Shell中可用命令kill向进程发送信号,如:
$ kill [-sig] pid
如不指明sig, 默认发送15号信号将该进程终止。
UNIX规定,普通用户只能向自己创建的进程发送信号,root才有权
向其他进程发信号。
进程间通信: 信号
信号的捕获和处理
funcp= signal (sig, func)
func()是用来指定当进程接收到信号后执行的动作函数,动作函数的取值范围有三种:
1) SIG_IGN: 忽略指定的信号。
2) SIG_DFL:恢复对信号的默认处理,大多默认处理都是终止接收到信号的进程。
3) 列出func函数名:func为信号处理函数。
进程间通信: 信号