实验一 进程调度设计
————操作系统实验一
一、实验目的
通过模拟进程调度算法的设计加深对进程管理基本原理的理解,深入了解批处理系统如
何组织作业、管理进程和调度进程。
二、实验内容
1. 进程的创建
2. 进程的控制
三、实验步骤
1)熟悉进程的创建和控制
A.进程的创建
#include <stdio.h>
main()
{
int p1,p2;
while((p1=fork())==-1); //直到子进程创建成功
if(p1==0) printf("b"); //当前运行的进程是子进程 p1=0
else //在父进程中 p1 的值为其创建成功的子进程的 ID
{
while((p2=fork())==-1); //直到子进程创建成功
if(p2==0) printf("c"); //当前运行的进程是子进程 p1=0
else //在父进程中 p2 的值为其创建成功的子进程的 ID
{
printf("a");
}
}
printf("");
}
实验打印结果:b c a
关键在于在执行到 fork()时,父子进程分道扬镳,fork()返回给子进程的是 0
或非 0(标示子进程创建成功与否),返回给父进程的却是创建成功的子进程的 ID
值。故在判断打印的时候就出现以上结果。
以下是 fork()创建一个子进程,在父、子进程中显示出 fork()的返回值以及父、子
进程的唯一 pid 值的代码部分。
#include <stdio.h>
main()
{
int p1;