您所在位置: 网站首页 / linux操作系统课程设计报告书.docx / 文档详情
linux操作系统课程设计报告书.docx 立即下载
2025-08-25
约4.4万字
约76页
0
44KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

linux操作系统课程设计报告书.docx

linux操作系统课程设计报告书.docx

预览

免费试读已结束,剩余 71 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

linux操作系统课程设计报告书

第一篇:linux操作系统课程设计报告书题目1进程软中断通信1.1题目的主要研究内容及预期达到的目标实现进程的软中断通信:父进程发信号控制子程序的终止。1.2题目研究的工作基础或实验条件(1)硬件环境:Linux平台。(2)软件环境:标准C语言。1.3设计思想系统调用fork()创建两个子进程,再调用signal()让父进程捕捉键盘上的中断信号(即按Ctrl+C键);当捕捉到中断信号后,父进程调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:ChildProcess1isKilledbyParent!ChildProcess2isKilledbyParent!父进程等待两个子进程终止后,输出如下的信息后终止:ParentProcessisKilled!1.4流程图创建子进程p1NoP1>0Yes创建子进程p2No子进程P2等待父进程SIGSUR2消息后输出ChildProcess2isKilledbyParent!子进程P1等待父进程SIGSUR1消息后输出ChildProcess1isKilledbyParent!P2>0Yes父进程等待子进程都结束后输出Parentprocessiskilled!1.5主要程序代码#include“stdio.h”#include“unistd.h”#include“signal.h”#include“sys/types.h”#include“stdlib.h”intk=0;intp1,p2;//pid_tchild1=0,child2=0;voidfunc_father(intsig)//父进程信号处理函数;{//传送参数sig指定的信号给参数pid指定的进程;返回值:0:成功;-1:出错;//信号宏名:SIGUSR1,用户定义信号1,信号值:10,默认动作:终止进程;}voidfunc_p1(intsig)//子进程p1信号处理函数;{k=1;//标志相应SIGUSR1消息结束;}kill(p1,SIGUSR1);kill(p2,SIGUSR2);voidfunc_p2(intsig)//子进程p2信号处理函数;{k=1;//标志相应SIGUSR2消息结束;}intmain(){while((p1=fork())==-1);//fork()=-1创建子进程失败;if(p1>0)//父进程继续创建子进程p2;{}else//子进程p1while((p2=fork())==-1);if(p2>0)//父进程{//设置信号处理方式,依照参数signum指定的信号编号设置处理函数;//指定信号到达时跳转到参数handler指定的函数执行;//返回值:成功:返回先前信号处理函数指针;出错:SIG_ERR(-1);}else{}signal(SIGINT,SIG_IGN);//忽略本应给父进程的按键中断;signal(SIGUSR2,func_p2);//接收父进程的消息后转到处理函数;k=0;while(k==0);//等待子进程2收到父进程的消息后置k=1//子进程p2signal(SIGINT,func_father);wait(0);//等待子进程1结束wait(0);//等待子进程2结束printf(“Parentprocessiskilled!n”);exit(0);printf(“ChildProcess2isKilledbyParent!n”);exit(0);{}}return0;signal(SIGINT,SIG_IGN);//忽略本应给父进程的按键中断;signal(SIGUSR1,func_p1);//接收父进程的消息后转到处理函数;k=0;while(k==0);//等待子进程1收到父进程的消息后置k=1printf(“ChildProcess1isKilledbyParent!n”);exit(0);1.6运行结果及分析当按下Ctrl+C后,产生消息响应。1.7心得体会通过本次实验,掌握了如何创建进程以及进程的软中断。题目2进程的管道通信2.1题目的主要研究内容及预期达到的目标实现进程的管道通信。2.2题目研究的工作基础或实验条件(1)硬件环境:Linux平台。(2)软件环境:标准C语言。2.3设计思想使用系统调用pipe()建立一条管道线;两个子进程P1和P2分别向管道各写一句话:MessagefromChildl!MessagefromChild2!父进程从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接收子进程P1的消息,再接收子进程P2的消息。2.4流程图创建管道创建子进程p1NoP1=0Yes“MessagefromChildl!”放入缓冲区中把缓冲区所指内容写入50个字节到fd[
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

linux操作系统课程设计报告书

文档大小:44KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用