【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《实验二 进程的创建》,欢迎阅读!
实验二 进程的创建
一、实验目的
1、掌握进程的概念,明确进程的含义 2、认识并了解并发执行的实质
二、实验内容
1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。
2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son 父进程显示 'parent ……',观察结果,分析原因。
三、实验准备
(1)阅读LINUX的fork.c源码文件,分析进程的创建过程。
(2)阅读LINUX的sched.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.wddqxz.cn/bd4380d3920ef12d2af90242a8956bec0975a5be.html