![惠州学院操作系统实验一.doc_第1页](http://file.renrendoc.com/FileRoot1/2020-1/11/ea902a99-ecfc-4202-9fb8-f31de7fe0fe4/ea902a99-ecfc-4202-9fb8-f31de7fe0fe41.gif)
![惠州学院操作系统实验一.doc_第2页](http://file.renrendoc.com/FileRoot1/2020-1/11/ea902a99-ecfc-4202-9fb8-f31de7fe0fe4/ea902a99-ecfc-4202-9fb8-f31de7fe0fe42.gif)
![惠州学院操作系统实验一.doc_第3页](http://file.renrendoc.com/FileRoot1/2020-1/11/ea902a99-ecfc-4202-9fb8-f31de7fe0fe4/ea902a99-ecfc-4202-9fb8-f31de7fe0fe43.gif)
![惠州学院操作系统实验一.doc_第4页](http://file.renrendoc.com/FileRoot1/2020-1/11/ea902a99-ecfc-4202-9fb8-f31de7fe0fe4/ea902a99-ecfc-4202-9fb8-f31de7fe0fe44.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一进程的创建与并发执行一、 实验目的(1) 熟悉Linux工作环境和GCC工具(2) 加深对进程概念的理解,明确进程和程序的区别(3) 进一步认识并发进程的实质和特征二、 实验器材微型计算机、Ubuntu版本的Linux系统三、 实验内容任务1:进程创建编写一段程序,让父进程产生两个子进程,父进程显示字符“a”、两个子进程,分别显示字符“b”、“c”。运行程序,观察并分析运行结果。程序源代码如下:#include main() int p1, p2;while(p1=fork()=-1);/父进程创建第一个进程,直到成功if(p1=0)/0返回给子进程1putchar(b);/P1的处理进程else/正数返回给父进程(子进程号)while(p2=fork()=-1);/父进程创建第二个进程,直到成功if(p2=0)/0返回给子进程2putchar(c);/P2的处理过程elseputchar(a);/P2创建完成后,父进程的处理过程程序运行截图如下:程序运行结果分析:首先进程main作为父进程创建第一个进程p1,此时存在p1和main两个进程,分别为父进程和子进程,所以它们的p1分别为大于0和等于0。这两个进程分别执行下面的if函数体。当子进程执行时,打印出50000次childA;当父进程执行时,又创建了一个新的子进程p2,接下去的执行和原先的p1和main进程相同。所以最终系统中存在了4个进程,其中一个进程为终端,另外3个进程分别打印属于自己的内容。任务2:将上述的输出字符改为输出较长的字符串,观察进程并发执行,分析执行结果。程序源代码如下:#include main()int p1, p2, i;while (p1=fork()=-1); /父进程创建第一个进程,直到成功if (p1=0)for (i=0;i50000;i+) printf(childA%dn,i);else while (p2=fork()=-1); /父进程创建第二个进程,直到成功if (p2=0) for (i=0;i50000;i+) printf(childB%dn,i);else /P2创建完成后,父进程的处理过程for (i=0;i50000;i+) printf(parent%dn,i);程序运行结果截图如下:运行结果分析:首先进程main作为父进程创建第一个进程p1,此时存在p1和main两个进程,分别为父进程和子进程,所以它们的p1分别为大于0和等于0。这两个进程分别执行下面的if函数体。当子进程执行时,打印出50000次childA;当父进程执行时,又创建了一个新的子进程p2,接下去的执行和原先的p1和main进程相同。所以最终系统中存在了4个进程,其中一个进程为终端,另外3个进程分别打印属于自己的内容。四、 思考题解答(包括需要改写的程序的源码及适当注释)1. 当新创建进程开始执行时,指令指针的起始位置在哪里?答:创建新进程之后,此时有main和p1两个进程,它们分别根据他们是子进程还是父进程执行不同的if函数体,所以指令指针的起始位置在“if(p1=0)”这一句。2. 如果将任务1改为:编写一段程序,让父进程创建一个子进程,然后父进程显示字符“a”;子进程创建一个子子进程,然后显示字符“b”;子子进程显示字符“c”。如何改写源程序?(实验报告上给出完整的源码,并在机器上运行。)答:修改后的源代码如下:#include main() int p1, p2;while(p1=fork()=-1);/父进程创建一个子进程,直到成功if(p1=0)/0返回给子进程/P1的处理过程while(p2=fork()=-1);/子进程创建子子进程,直到成功if(p2=0)p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球光学透明粘合带行业调研及趋势分析报告
- 2025合同范本劳务派遣合同模板书人力资源和企业新
- 2025用户服务合同
- 2025委托律师代理合同范本范文
- 土地转让居间合同
- 2025【合同范本】运输道路交通货物合同
- 美容师劳动合同书
- 消杀服务合同范文
- 2025公司用工合同范本
- 战略合作协议书合同
- 小区监控改造方案
- 第1课+古代亚非(教学设计)【中职专用】《世界历史》(高教版2023基础模块)
- 新教科版六年级下册科学全册教案
- 物业客服管家的培训课件
- 2024年房地产行业的楼市调控政策解读培训
- 《统计学-基于Python》 课件全套 第1-11章 数据与Python语言-时间序列分析和预测
- 装饰定额子目(河南省)
- 【高速铁路乘务工作存在的问题及对策研究9800字】
- 北师大版英语课文同步字帖三年级下册课文对话原文及翻译衡水体英语字帖三年级起点
- GB/T 2550-2016气体焊接设备焊接、切割和类似作业用橡胶软管
- GB/T 21295-2014服装理化性能的技术要求
评论
0/150
提交评论