实验四 进程间通信 (信号量机制实验)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hale Waihona Puke Baidu
3、信号的发送 kill( ) ------ 传送信号给指定的进程 系统调用格式 int kill(pid,sig) 参数定义 int pid,sig; 其中,pid是一个或一组进程的标识 其中,pid是一个或一组进程的标识 符,参数sig是要发送的软中断信号。 参数sig是要发送的软中断信号。 sig是要发送的软中断信号
实验五 进程间通信 (信号量机制实验) 信号量机制实验) 1、信号 信号机制是LINUX 信号机制是LINUX为进程中断处理而设 LINUX为进程中断处理而设 置的。它只是一组预定义的值, 置的。它只是一组预定义的值,因此不能 用于信息交换,仅用于进程中断控制。 用于信息交换,仅用于进程中断控制。 2、信号来源 ①硬件来源(比如按下键盘或硬件故障) 硬件来源(比如按下键盘或硬件故障) ②软件来源(常用发送信号的系统函数 软件来源( kill) kill)
参数定义: 参数定义: int sig; void (*function)( );
函数说明:当指定信号sig 到达时就会跳转到 函数说明:当指定信号sig function指定的函数执行 如果参function 指定的函数执行。 function不 function指定的函数执行。如果参function不 是函数指针,则必须是下列两个常数之一: 是函数指针,则必须是下列两个常数之一: 忽略参数sig指定的信号(SIG_INT=1) sig指定的信号 SIG_IGN 忽略参数sig指定的信号(SIG_INT=1) 将参数sig SIG_DFL 将参数sig 指定的信号重设为核心 预设的信号处理方式。 预设的信号处理方式。(SIG_DFL=0)
例如: stop)中的SIGINT是 中的SIGINT 例如:signal( SIGINT, stop)中的SIGINT是 来自键盘的中断信号, 来自键盘的中断信号,当键盘有中断信号 产生时,进程就会转入stop( 产生时,进程就会转入stop( ) 做相应处 理。 signal(10,stop)中的10是用户自定义的信 中的10 signal(10,stop)中的10是用户自定义的信 由父进程发出。父进程用kill(p1,10 号,由父进程发出。父进程用kill(p1,10 ) 函数发中断信号10给子进程p1 子进程p1 10给子进程p1, 函数发中断信号10给子进程p1,子进程p1 在收到父进程发来的中断信号10 10时 在收到父进程发来的中断信号10时,就转 )做相应处理 做相应处理。 入stop( )做相应处理。
4、进程对信号的响应 进程可以通过三种方式来响应一个信号: 进程可以通过三种方式来响应一个信号: ⑴忽略信号 对信号不做任何处理; 对信号不做任何处理; ⑵捕捉信号 定义信号处理函数,当信号发生时, 定义信号处理函数,当信号发生时,执 行相应的处理函数; 行相应的处理函数; ⑶执行缺省操作
5、信号的安装(设置信号关联动作) 信号的安装(设置信号关联动作) 系统调用格式: 系统调用格式: signal( sig , function )
相关文档
最新文档