1、实验一 进程的创建与并发执行一、实验目的:(1) 熟悉Linux工作环境、文本编辑器工具和GCC工具(2) 加深对进程概念的理解,明确进程和程序的区别(3) 进一步认识并发进程的实质和特征二、实验仪器及材料:微型计算机、Linux系统三、实验内容:1、任务1:进程创建编写一段程序,让父进程产生两个子进程,父进程显示字符“a”、两个子进程,分别显示字符“b”、“c”。任务2:将上述的输出字符改为输出较长的字符串,观察进程并发执行,分析执行结果。2、源代码:任务1:#include main()int p1, p2;while (p1=fork()=-1); /*父进程创建第一个进程,直到成功*/
2、if (p1=0) /*0返回给子进程1*/printf(“bn”); /*P1的处理过程*/else /*正数返回给父进程(子进程号)*/while (p2=fork()=-1); /*父进程创建第二个进程,直到成功*/if (p2=0) /* 0返回给子进程2*/printf(“cn”); /*P2的处理过程*/else printf(“an”); /*P2创建完成后,父进程的处理过程*/任务2:#include main()int p1, p2;while (p1=fork()=-1); /*父进程创建第一个进程,直到成功*/if (p1=0)while (1)printf(“A ”)e
3、lse while (p2=fork()=-1); /*父进程创建第二个进程,直到成功*/if (p2=0)while (1)printf(“B ”)else /*P2创建完成后,父进程的处理过程*/while (1)printf(“P ”);四、实验结果记录:任务1:任务2:五、思考题及解答:1、当新创建进程开始执行时,指令指针的起始位置在创建此进程对应地址的下一个地址。2、源代码:#include main()int p1, p2;while (p1=fork()=-1); /*父进程创建第一个进程,直到成功*/if (p1=0)while (p2=fork()=-1); /*子进程创建子子进程,直到成功*/if(p2=0)while (1)printf(“c n“);elsewhile (1)printf(“b n“);else /*P2创建完成后,父进程的处理过程*/while (1)printf(“a n“);