网站大量收购闲置独家精品文档,联系QQ:2885784924

linux教程第07课进程通信.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.5 进 程 通 信 5.5.1 信号机制 1.信号概念 信号(signal,称为软中断)机制是在软件层次上对中断机制的一种模拟 该机构通常包括三部分: (1)信号的分类、产生和传送。 (2)对各种信号预先规定 的处理方式。 (3)信号的检测和处理。 2.信号分类 信号号码 符号表示 含义 1 SIGHUP 远程用户挂断 2 SIGINT 输入中断信号(Ctrl+C) 3 SIGQUIT 输入退出信号(Ctrl+\) 4 SIGILL 非法指令 5 SIGTRAP 遇到调试断点 6 SIGIOT IOT指令 7 SIGBUS 总线超时 8 SIGFPE 浮点异常 9 SIGKILL 要求终止进程(不可屏蔽) 10 SIGUSR1 用户自定义 11 SIGSEGV 越界访问内存 12 SIGUSR2 用户自定义 13 SIGPIPE 管道文件只有写进程,没有读进程 14 SIGALRM 定时报警信号 15 SIGTERM 软件终止信号 17 SIGCHLD 子进程终止 19 SIGSTOP 进程暂停运行 30 SIGPWR 电源故障 3.进程对信号可采取的处理方式 进程间也可用系统调用(如kill( ))发送信号 普通进程只能向具有相同uid和gid的进程发送信号或向相同进程组中的其他进程发送信号 进程接到信号后,在一定时机(如中断处理末尾)做相应处理,可采取以下处理方式: (1)忽略信号。进程可忽略收到的信号,但不能忽略SIGKILL和SIGSTOP信号。 (2)阻塞信号。进程可以选择对某些信号予以阻塞。 (3)由进程处理该信号。用户在trap命令中可以指定处理信号的程序,从而进程本身可在系统中标明处理信号的处理程序的地址。当发出该信号时,就由标明的处理程序进行处理。 (4)由系统进行默认处理。如上所述,系统内核对各种信号(除用户自定义之外)都规定了相应的处理程序。在默认情况下,信号就由内核处理,即执行内核预定的处理程序。 4.对信号的检测和处理流程 信号的检测与处理的过程如图所示。图中的①~⑤标出处理流程的顺序。从图中可以看出,信号的检测是在系统空间中进行,而对信号的处理却是在用户空间中执行。 5.5.2 管道文件 一个管道线就是连接两个进程的一个打开文件 由系统自动处理二者间的同步、调度和缓冲。管道文件允许两个进程按先入先出(FIFO)的方式传送数据,而它们可以彼此不知道对方的存在 每个管道只有 一个内存页面用 做缓冲区,该页 面是按环型缓冲 区的方式来使用 的。 Linux系统也支持 命名管道 5.5.3 System V IPC机制 Linux系统也支持UNIX System V版本中的三种进程间通信机制,它们是: 消息通信 共享内存 信号量 * * 1. kill与raise函数 信号的发送与捕捉:kill()和raise() kill()不仅可以中止进程,也可以向进程发送其他信号。与kill函数不同的是,raise()函数向进程自身发送信号 #includesys/types.h #includesignal.h int kill(pid_t pid,int signo); int raise(int signo); 两个函数返回:若成功则为0,若出错则为

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档