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

上传人:夺命阿水 文档编号:371768 上传时间: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有可以正常运行因为只要有一个进程申请写共享空间,其他写进程就会进入等待状态,只有第一个写进程结束,后面的一个写进程才能运行

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号