实验二 进程的创建

时间:2022-12-20 15:01:14 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
实验二 进程的创建



一、实验目的

1、掌握进程的概念,明确进程的含义 2、认识并了解并发执行的实质

二、实验内容

1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。

2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter ''son 父进程显示 'parent ……',观察结果,分析原因。

三、实验准备

1)阅读LINUXfork.c源码文件,分析进程的创建过程。

2)阅读LINUXsched.c源码文件,加深对进程管理概念的认识。 四、思考

(1) 系统是怎样创建流程?

(2) 可执行文件加载时进行了哪些处理?

(3) 当首次调用新创建的进程时,其入口在哪里?

五、参考程序 1

#include main( ) {

int p1,p2;

while((p1=fork( ))= = -1); /*创建子进程p1*/ if (p1= =0) putchar('b'); else {

while((p2=fork( ))= = -1); /*创建子进程p2*/ if(p2= =0) putchar('c'); else putchar('a'); } } 2

#include main( ) {

int p1,p2,i;

while((p1=fork( ))= = -1); /*创建子进程p1*/ if (p1= =0)

for(i=0;i<10;i++)

' ……
printf("daughter %d\n",i); else {

while((p2=fork( ))= = -1); /*创建子进程p2*/ if(p2= =0)

for(i=0;i<10;i++)

printf("son %d\n",i); else

for(i=0;i<10;i++)

printf("parent %d\n",i); } }

试验验证:




本文来源:https://www.wddqw.com/doc/bd4380d3920ef12d2af90242a8956bec0975a5be.html