欢迎来到天天文库
浏览记录
ID:61781099
大小:880.00 KB
页数:5页
时间:2021-03-20
《进程的软中断通信--操作系统实验报告3.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、内蒙古师大计算机与信息工程学院《操作系统》课程实验报告实习题目实验三进程的软中断通信指导教师职称学生姓名学号日期5实现工具C语言实现环境Linux实习内容(功能、目标)内容:编写一段程序,父进程创建一个子进程p1;并使子进程利用系统调用kill()向父进程发送信号,父进程得到信号后输出字符串“receivedp1signal.”。目的:(1)理解掌握软中断的概念和技术;(2)掌握进程之间基于软中断的通信技术。要求:(1)正确应用系统调用signal()建立进程与信号(异步事件)之间的联系,理解信号机制;(2)正确应用系统调用getppid()、kill(),进步理解广义同步的含义
2、。实现的思想、方法和技术(含数据结构、算法)(1)系统调用kill(pid,sig)和signal(sig,func)被用来传递和接受软中断信号,一个用户通过调用kill(pid,sig)向另一个标识号为pid的用户进程发送软中断信号sig。用户可以定义的软中断信号是10或12,。另外标识号为pid的进程通过signal(sig,func)捕捉到信号sig之后,执行预先约定的动作func,从而达到这两个进程的通信目的。(2)通过系统调用getpid()可以获得当前正在执行的进程的进程标识号。(3)通过系统调用getppid()可以获得父进程的进程标识号。5主要代码注释#inclu
3、de#include#include#includeVoiddiaoyong(){Printf(“receivep1singnal!”);}main(){intp1,x,y;signal(20,message);while((p1=fork())==-1);if(p1==0){x=getppid();kill(x,10);x=getpid();printf("p1:%d",x);exit(0);}else{wait(0);y=getpid();printf("father:%d",y)
4、;}}\标识号为p1捕捉到终端号为20的中断信号后执行message{}\子进程抢上CPU获得父进程的进程标识号\子进程向父进程发送中断信号\获得当前进程(子进程)的进程号,输出。\父进程抢上CPU\获得当前进程(父进程)的进程号,输出。5结果分析(含实现中出错原因分析)思考问题 (1)为什么说系统调用signal()是建立进程与信号之间的联系,而不是接收信号的操作?答:系统调用kill(pid,sig)和signal(sig,func)被用来传递和接受软中断信号,进程号为pid的进程通过signal(sig,func)捕捉到信号sig之后,执行预先约定的动作fun
5、c,从而达到这两个进程的通信目的。 (2)若子进程向父进程发送信号,父进程接到信号后可以缺省操作、或忽视信号、或执行一函数,各是什么含义?答:缺省操作:进程捕捉到信号之后不作任何指定的工作而忽略中断信号的影响。执行一函数:进程通过signal(sig,func)捕捉到中断信号后执行预定的函数func(1)getpid()是获得当前进程的进程标识号(2)getppid()是获得父进程的进程标识号指导教师评语、评分评分:指导教师:年月日55
此文档下载收益归作者所有