全文预览

实验1实验报告

上传者:业精于勤 |  格式:doc  |  页数:7 |  大小:105KB

文档介绍
程sleep(10)时,CPU读BROTHER2子进程与brother1子进程,并输出结果。思考题:1.为什么各字符串的输出顺序会是任意的?进程并发执行,子进程与父进程抢占处理机,所以输出字符顺序不同。2.改写程序,将字符串用循环语句一个一个字符输出,再查看执行结果如何?思考题主要代码注释#include<unistd.h>#include<stdio.h>intmain(){intp1,p2;p1=fork();if(p1<0){printf("error!");}elseif(p1==0){chara[9]="brother1";inti=0;for(i=0;i<9;i++){sleep(1);printf("%c\n",a[i]);}}else{p2=fork();if(p2<0){printf("error!");}elseif(p2==0){charb[9]="BROTHER2";inti=0;for(i=0;i<9;i++){sleep(2);printf("%c\n",b[i]);}}else{charc[6]="FATHER";inti=0;for(i=0;i<6;i++){sleep(3);printf("%c\n",c[i]);}}}return0;}/*定义进程p1*//*创建子进程p1*//*子进程p1失败时输出error*//*子进程p1成功时*//*定义字符串a[9]="brother1"*//*输出单个字符*//*创建子进程p1*//*子进程p2失败时输出error*//*子进程p2成功时*//*定义字符串b[9]="BROTHER2"*//*输出单个字符*//*定义字符串c[6]="FATHER"*//*输出单个字符*/思考题结果分析(含实现中出错原因分析)1.字符顺序不同因为抢占处理机,执行顺序不同。指导教师评语、评分评分:指导教师:年月日

收藏

分享

举报
下载此文档