惠州学院操作系统实验一

上传人:s9****2 文档编号:549301455 上传时间:2022-11-22 格式:DOC 页数:4 大小:443.50KB
返回 下载 相关 举报
惠州学院操作系统实验一_第1页
第1页 / 共4页
惠州学院操作系统实验一_第2页
第2页 / 共4页
惠州学院操作系统实验一_第3页
第3页 / 共4页
惠州学院操作系统实验一_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《惠州学院操作系统实验一》由会员分享,可在线阅读,更多相关《惠州学院操作系统实验一(4页珍藏版)》请在金锄头文库上搜索。

1、实验一进程的创建与并发执行一、 实验目的(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的处理进

2、程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进程相同。所以最终

3、系统中存在了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

4、/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

5、. 当新创建进程开始执行时,指令指针的起始位置在哪里?答:创建新进程之后,此时有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)putchar(c);/子子进程P2的处理过程elseputchar(b);elseputchar(a);/子子进程创建完成后,父进程的处理过程修改后的运行结果如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号