贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx

上传人:王** 文档编号:291974 上传时间:2023-04-28 格式:DOCX 页数:4 大小:23.52KB
下载 相关 举报
贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx_第1页
第1页 / 共4页
贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx_第2页
第2页 / 共4页
贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx_第3页
第3页 / 共4页
贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx》由会员分享,可在线阅读,更多相关《贵州大学计算机科学与技术学院实验报告Linux系统实验名称进程通信.docx(4页珍藏版)》请在优知文库上搜索。

1、贵州大学计算机科学与技术学院实验报告院(系)名称计算机科学与技术学院班级人工智能2001课程名称Linux系统实验名称进程通信日期2022年11月14日星期四指导教师王以松学号、姓名沈军豪成绩(10分制):批改日期:1.实验名称进程通信2.实验目的熟悉LimIX进程之间信号、管道、消息队列(信号量、共享内存)等通信的实现方法。编译、运行程序并分析结果rootiZ2ze3k5k6130t7ge5yaiaZ#visig-l.croot0iZ2ze3k5k613t7ge5yaiaZgccsig-l.c-osig-1rootiZ2ze3k5k6130t7ge5yaiaZ#./sig-1人CChiIdp

2、rocess2iskilledbyparent!childprocess1iskilledbyparent!parentprocessiskilled!rootiZ2ze3k5k6130t7ge5yaiaZ#如果把参考程序SignaI(SIGINT,stop)放在*(1)*/和/*/位置,结果会怎样并分析原因。root0iZ2ze3k5k613t7ge5yaiaZ#gccsig-l.c-osig-2root0iZ2ze3k5k6130t7ge5yaiaZ#./sig-2Cchildprocess2iskilledbyparent!parentprocessiskilled!root0iZ2ze

3、3k5k6130t7ge5yaiaZ该程序段前面部分用了两个Wait(O),为什么?因为有两个子进程(4)该程序段中每个进程退出时都用了语句exit(0),为什么?为了使子进程正常退出,并不影响父进程的执行root0iZ2ze3k5k6130t7ge5yaiaZ#./createfifoUsage:./createfiforoot(3iZ2ze3k5k613t7ge5yaiaZ#./createfifotmpf1root(3iZ2ze3k5k613t7ge5yaiaZ#ll/tmp-bash:ll/tmp:Nosuchfileordirectoryroot(3iZ2ze3k5k6130t7ge

4、5yaiaZ#Iltmptotal8-rw1rootroot0Nov1513:22AliyUnASSiStClientSingIprw-r-r1rootroot0Nov2006:55fldrwx3rootroot4096Nov1513:27systemd-private-14c3dbl543e3f88a-chronyd.service-ER9Kfhdrwx2rootroot4096Nov1513:35tmp.NocWjxt2r2root(3iZ2ze3k5k613t7ge5yaiaZ#root(0iZ2ze3k5k6130t7ge5yaiaZ#./read_fifotmpf1openfifo.

5、/read_fifoforreadingsuccessed.read19bytesfromfifo:hello,goodmorningread15bytesfromfifo:hoedoyoudo?rootiZ2ze3k5k6130t7ge5yaiaZ#.writefifotmpf1hello,goodmorningopenfifo./write_fifoforwrittingsuccessed.hoedoyoudo?#在读管道端按下ctrl+C,写端仍然处于打开状态,写端继续输入任何字符,则会收到SIGPIPE信号,表示管道已断开:root0iZ2ze3k5k613Ot7ge5yaiaZ#./

6、write_fifotmpf1openfifo./write_fifoforwrittingsuccessed.hjxhfdcjCaughtsignal13write()failedonfifo:Brokenpiperoot0iZ2ze3k5k613t7ge5yaiaZ#root0iZ2ze3k5k613t7ge5yaiaZ#echohellotmpf2rootiZ2ze3k5k613t7ge5yaiaZ#root(piZ2ze3k5k613t7ge5yaiaZ#cattmpf2hellorootiZ2ze3k5k6130t7ge5yai.aZ#cattmpf2#将写端程序的signal(SI

7、GPIPE,signal_handler)替换为SignaI(SIGPIPE,SIGJGN),并将FlXME后的break语句注释,重新编译运行,在读管道端关闭后,写管道端继续写,重新打开读管道端,发现会丢失在管道断开期间写管道端写入的内容。root0iZ2ze3k5k6130t7ge5yaiaZ#./write_fifotmpf2helloopenfifo.writefifoforwrittingsuccessed.rootiZ2ze3k5k6130t7ge5yaiaZ#./read_fifotmpf2openfifo./read_fifoforreadingsuccessed.read6b

8、ytesfromfifo:helloCroot(3iZ2ze3k5k6130t7ge5yaiaZ#./read_fifotmpf2openfifo./read_fifoforreadingsuccessed.基于共享内存的进程通信root0Z2ze3k5k613Ot7ge5yaiaZ#./shmwritepleaseinput:hellopleaseinput:howareyouCroot(3iZ2ze3k5k613t7ge5yaiaZ#./shmreadmessagefromshm:howareyourootiZ2ze3k5k613t7ge5yaiaZ#ipcs-mnattchSharedMemorySegmentskeyshmidownerpermsbytesOx61lO001root6661028rcc+Ai7l7qrRLA1RG7cRa$a7liIttttt开多个终端,同时运行上面的Shmead和Shmwrite,根据输出结果分析原因只有一个write和read有可以正常运行因为只要有一个进程申请写共享空间,其他写进程就会进入等待状态,只有第一个写进程结束,后面的一个写进程才能运行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > linux/Unix相关

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!