




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安邮电大学(计算机学院)课内实验报告实验名称:进程管理专业名称:计算机科学与技术班 级:学生姓名:学号(8位指导教师:实验日期: 年杯月杯日一. 实验目的及实验环境目的:(1)加深对进程概念的理解,明确进程和程序的区别。(2)进一步认识并发执行的实质。(3)分析进程竞争资源现象,学习解决进程互斥的方法。(4)了解Linux系统中进程通信的基本原理。环境:Linux操作系统坏境:二. 实验内容(1)阅读Linux的sched. h源文件,加深对进程管理概念的理解。(2)阅读Linux的fork, c源文件,分析进程的创建过程。三. 方案设计(1)进程的创建编写一段源程序,使系统调用fork()
2、创建两个子进程,当此程序运行时,在系统中有一 个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a” ; 子进程分别显示字符“b”和字符“c”。试观察纪录屏幕上的显示结果,并分析原因。(2)进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执 行时屏幕出现的现彖,并分析原因。如果在程序中使用调用lockfO来给每一个子进程加锁,可以实现进程之间的互斥,观察 并分析出现的现彖。(3)编写一段程序,使其现实进程的软中断通信。要求:使用系统调用fork()创建两个子进程,再用系统调用signal 0让父进程捕捉键盘 上来的中断信号(即按DE
3、L键):当捕捉到中断信号后,父进程用系统调用Kill ()向两个子进 程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child Processll is Killed by Parent!Child Processl2 is Killed by Parent!父进程等待两个子进程终止后,输出如下的信息后终止Parent Process is Killed!程序流程图如下:在上面的程序中増加语句signal (SIGNAL, SIGTGN)和signal (SIGQUIT, SIGTGN), 观察执行结果,并分析原因。(4) 进程的管道通信编制一段程序,实现进程的管理通信。使用系统调用p
4、ipe。建立一条管道线;两个子进程P1和P2分别向管道中写一句话:Child 1 is sending a message!Child 2 is sending a message!而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。四测试数据及运行结果1 创建进程,显示结果bee这是因为程序执行时,先执行fork()创建进程所需 的时间多于输出一个字符的时间,因此在主进程创建进程2的同时,进程1就输 出了 “b” ,而进程2和主程序的输出次序是有随机性的,Q00 (luhuljuan(gubuntu:T-t uhu
5、 V juanQubunu s -*$ guu -fork . cTuhu 1. JuanubunCu : $ qcc Tork u -o d Tluhui. JuanQubunu:$. /dbc aT-t uhu V juanQubunu s -*$ OF liuhuiluan(puburtu:45678901234Z77777888885678901234568888899999994:444:44442 进程的控制liuhuijuan(ubuntu: daughter465daugh tzer-466daugh tzer-467daughter468daughter469daughter
6、470daughter471daughter472daugh tzer-473daugh tzer-474daughter475daughter476daughter477daughter478daughter479daugh tzer-480daugh tzer-481daughter482daughter483daughter484daughter485daughter486daugh tzer-487daugh七&厂488daugntier daughter dmughter daughter daughter daughtzer daughter doughtue daughter d
7、aughter daughtzer daughter doughtue daughter daughter dmught:e daughter doughtuf daughter daughter dmught:e daughter doughtuf3软中断通信 A.O c c lluhuijuanbubuntu: lluhut juanubun*tu : -$ gcc 5c - o a1tuhutjuanubuntu:/aCchLLd process2 ts killed by parent! parent process ts killed!liuhutjuanubuntu:-SB因为没有
8、了中断与退出信号,程序一直是阻塞状态而无法退出。OOG Uuhuijuanubuntu: lluhutjuanubuntu:-$ gcc 6.c o b liuhutjuanubuntu:-$ /bparent process ts killed关键代码:main()严创建子进程pl Wuitpl5p2; if(pl=forkO)if(p2=forkO)八创建子进程p2*/wait_mark=l;signal(SIGINT,stop);/*接收到2 信号,转 stop*/waitingO;八向pl发软中断信号16*/kill(p2J7);wait(O);/响p2发软中断信号17*/ 广同步拿/
9、wait(O);printf(Hparent process is killed!nH); exit(O);wait_mark=l;signal(SIGINT, stop);waitingO;lockf(l、0,0);printf(child process2 is killed by parent!nn); lockf( 1,0,0);exit(O);wait_mark=l;signal(SIGINT,stop );waitingO;lockf( 1,0.0);printf(ncliild process 1 is killed by parentlockf( 1,0.0);exit(O);
10、4进程的管道通信凸 Uuhuijuan(g)ubuntu: lluhutjuanubuntu:-$ gcc 7c -o f Ivuhuijuangubuntu:-$ ./fchild 1 process is sending message! child 2 process xs sending message! Ituhutjuanubuntu:-$ |五总结1. 在软中断通信中,调用函数signal ()都放在一段程序的前面位置,而不是在 其接受信号处,这是因为signal ()的执行只是为指定信号量16和17的作用, 以及分配相应的与stop ()过程的指针。从而signal ()函数必
11、须在程序前面部 分执行。2. 通过这次实验,加深了对进程管理的认识。这次实验更需要耐心观察,一步一 步执行调试,不能操之过急。做实验是对课本知识的巩固,更是对自己动手能力 的锻炼。六.附录:源代码(电子版)1. 创建进程:#includemam()intpl,p2;if(pl=fork() putchar(*b*);else if(p2=fork() piitchar(c); else piitchar(a);严子进程创建成功*/严子进程创建成功*7严父进程执行拿/2. 进程的控制程序1.#includemain()intpl,p2,i;if(pl=forkO)for(i=0;i500;i+)
12、printf(nchild %dnn,i);elseif(p2=fork()fbr(i=0;i500;i+) printf(uson %dn,i);elsefbr(i=0;i500;i+)priiitf(Hdaugliter %dn”,i);程序2#includemam()intpl,p2,i;if(pl=forkO)lockf( 1,1,0);for(i=0;i500;i+)pnntf(Hchild %dWi);lockf( 1,1,0);elseif(p2=forkQ)lockf( 1,1,0);for(i=0;i500;i-H-) printf(son %dn,i);lockf( 1,1
13、,0);elselockf( 1,1,0);fbr(i=0 ;i500;i+) printf(H daughter %dnH,i);lockf(l,0,0);3. 软中断通信程序1#include#include#includevoid waitingQ.stopO;int wait_mark;main()uitpl.p2;if(pl=forkO)严创建子进程pl*/if(p2=forkO)/* 创建子进程 p2*/wait_mark=l;signal(SIGINT.stop);/*接收到 信号,转 stop*/waitingQ;kill(pl,16);/*向pl发软中断信号16*/kill(
14、p2,17);/响P2发软中断信号17*/wait(O);严同步 */wait(O);printf(Hparent process is killed!iT);exit(O);elsewait_iiiark=l;signal(SIGINT, stop);waitingQ;lockf(l,0,0);priiitf(nchild process2 is killed by parent!nH);lockf(l,0,0);exit(O);elsewait_mark=l; signal(SIGINT,stop); waitingO; lockf( 1,0,0);printffchild process
15、 1 is killed by pni:ent!n“); lockf( 1,0,0);exit(0);void waitingQwhile (wait_mark!=0);void stopQ wait_mark=0;#include#include#includeint pidl,pid2;mt EndFlag=0;mtpfl=0;mt pf2=0;void IntDelete()kill(pidl,16);kiU(pid2,17);EndFlag=l;void IntlQprintffchild process 1 is killed !by parentnH); exit(0); void
16、 Int2Q printffchild process 2 is killed !by parentnH); exit(O);main()int exitpid;signal(SIGINT,SIGJGN); signal(SIGQUIT,SIGJGN);if(pidl=fork()signal(SIGUSRl.Intl); signal(SIGINT,SIGJGN);pause。;exit(O);elseif(pid2=fork()signal(SIGUSRlJntl); signal(SIGINT,SIGJGN); pauseQ; exit(O);elsesignal(SIGINTJntDe
17、lete); waitpid(-l,&exitpidqO); priiitf(nparent process is killedd); exit(O);4. 进程的管道通信程序include include include int pidl.pid2;mam() int fd2;char outpipe 100,inpipe 100;pipe(fd);八创建一个管道冰/while (pidl=fork(if(pidl=0) lockf(fdlJ,0);sprintfoutpipechild 1 process is sending message !H);/*把串放入数组outpipe中*/te(fdl.outpipe,50);严向管道写长为50字节的串沐/sleep(5);/*自我阻塞5秒*/lockf(fdlA0);exit(0);elsewhile(pid2=f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF(烟草)4.1-2010烟草及烟草制品连续流动法测定常规化学成分测量不确定度评定指南第1部分:水溶性糖
- 考研复习-风景园林基础考研试题附参考答案详解(培优a卷)
- 风景园林基础考研资料试题及参考答案详解(培优)
- 《风景园林招投标与概预算》试题A带答案详解(巩固)
- 2025-2026年高校教师资格证之《高等教育法规》通关题库附答案详解(考试直接用)
- 2023国家能源投资集团有限责任公司第一批社会招聘笔试备考题库附答案详解(基础题)
- 2025福建晋园发展集团有限责任公司权属子公司招聘7人笔试备考题库及答案详解(夺冠)
- 2025年黑龙江省五常市辅警招聘考试试题题库附答案详解(培优a卷)
- 2025年河北省定州市辅警招聘考试试题题库附答案详解ab卷
- 2.3.2漏电流的检测设备的电气绝缘应具有良好的防电击性能
- 安保工作的多元化发展
- 中学生体育运动损伤的预防和处理
- 经皮内镜下胃(空肠)造口术临床应用中国专家共识(2024版)解读
- 商标基础知识培训课件
- 2025年浙江省高中学业水平考试语文试卷试题(含答案详解)
- 《医疗器械召回管理办法》培训2024
- 围术期肺部超声的应用
- 英语导游服务能力(现场200问+)
- 中小学-珍爱生命 远离毒品-课件
- 2024年四川省广元市中考物理试题(含解析)
- 2023-2024学年江苏省苏州市高二下学期6月期末物理试题(解析版)
评论
0/150
提交评论