操作系统上机实验报告
实验名称:
进程和线程
实验目的:
理解unix/Linux下进程和线程的创建、并发执行过程。
实验内容:
1.进程的创建
2.多线程应用
实验步骤及分析:
一、进程的创建
下面这个C程序展示了UNIX系统中父进程创建子进程及各自分开活动的情况。
fork( )
创建一个新进程。
系统调用格式:
pid=fork( )
参数定义:
int fork( )
fork( )返回值意义如下:
0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。
>0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。
-1:创建失败。
如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程(parent process)的副本,称为子进程(child process)。子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。父进程与子进程并发执行。
2、参考程序代码
/*process.c*/
#include
#include
main(int argc,char *argv[])
{
int pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
exit(-1);