linux进程 ppt,实验_linux进程管理-进程通信.ppt

实验_linux进程管理-进程通信.ppt

d2e2d4c02f095e34b1fe2fbca2304f5b.gif

还剩

15页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,很抱歉,此页已超出免费预览范围啦!

如果喜欢就下载吧,价低环保!

内容要点:

16上机练习 -软中断 3编写程序完成:(1) 父进程生成两个子进程 P1, P2(2) 父进程从键盘接收 DELETE中断信号(3) 然后父进程使用系统调用向两个子进程分别发送中止执行信号 SIGUSR1和 SIGUSR2(4) 子进程收到各自的信号后分别输出child 1 killed by father processchild 2 killed by father process,并退出(无次序要求)(5) 父进程在收到子进程撤消的消息后输出father kill itself. 父进程最终退出。15上机练习-软中断 2使用软中断实现父子进程同步,父进程先输出 A,然后子进程输出 B。14printf("OK!\n"); //输出结束信息exit(0);}else //子进程返回{ signal(12,int_fun1); //预置软中断信号k1=1;while(k1==1) /*循环显示并等待父进程发软中断信号 */{ printf(" I'm child\n ");sleep(1);}printf(" Child exited!\n "); //子进程结束信息exit(0); //子进程终止}}13#includeint k1; //定义全局变量 k1void int_fun1(int sig) //定义软中断处理函数{ k1=0; }main(){ int k,p1;while((p1=fork())==-1); //创建子进程if(p1>0) //父进程返回{ for(k=1;k<4;k++) //显示 3行信息{ printf("How are you !\n");sleep(1);}kill(p1,12); //发软中断信号给子进程wait(0); //等子进程终止12[例 ] 父子进程同步要求如下:父进程创建一个子进程 , 在父进程中显示 3行 "Howare you ! "然后发软中断信号给子进程 , 再等待子进程终止后输出结束信息 "OK! ", 然后终止执行 。子进程中循环显示 "I'm child" , 当接收到父进程发来的软信号后停止循环 , 显示 "Child exited! "并终止执行 。它们之间的同步关系是:子进程在循环显示中等待父进程发出的软中断信号 , 并输出结束信息 , 然后结束;父进程等待子进程结束后输出结束信息 , 然后结束 。11实现 父 → 子 → 父 同步的步骤如下:⑴子进程使用 signal()预置软中断处理函数,然后等待父进程发软中断信号;⑵父进程中使用 kill()发软中断信号给子进程,再用wait(0)等待子进程结束;⑶子进程接收到软中断信号后转去执行中断处理函数⑷子进程在中断处理返回后,使用 exit(0)终止执行,向父进程发终止信息。⑸父进程使用 wait(0)接收到子进程的终止信息后结束等待,并终止自己的程序的执行。10在进程同步中,使用 exit()和 wait()实现了父进程等子进程终止的同步,但是这种同步方法不能实现子进程对父进程的等待。要实现子进程对父进程的等待可以使用 父进程向子进程发软中断信号 ,子进程接收信号的方式实现。这两种同步方式相结合,可以实现 父 → 子 → 父 的同步序列。9上机练习-软中断 1编写一个程序循环输出“ how are you?” ,当键盘输入 Ctrl+C时终止,当输出次数不超过 350次时在此过程中使用 Ctrl+C不能中断显示, 350次后才能用Ctrl+C中断显示,然后输出“

发表评论

暂无评论,赶快抢占沙发吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值