收藏 分享(赏)

操作系统实验指导_实验2new.doc

上传人:dreamzhangning 文档编号:2264272 上传时间:2018-09-08 格式:DOC 页数:2 大小:30KB
下载 相关 举报
操作系统实验指导_实验2new.doc_第1页
第1页 / 共2页
操作系统实验指导_实验2new.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验 2:进程和线程实验目的:理解 unix/Linux 下进程和线程的创建、并发执行过程。实验内容:1进程的创建2多线程应用实验步骤:一、进程的创建下面这个 C 程序展示了 UNIX 系统中父进程创建子进程及各自分开活动的情况。1、实验指导fork( ) 创建一个新进程。 系统调用格式: pid=fork( )参数定义:int fork( )fork( )返回值意义如下:0:在子进程中,pid 变量保存的 fork( )返回值为 0,表示当前进程是子进程。0:在父进程中,pid 变量保存的 fork( )返回值为子进程的 id 值(进程唯一标识符) 。-1:创建失败。如果 fork( )调用

2、成功,它向父进程返回子进程的 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)

3、 /* error occurred */fprintf(stderr, “Fork Failed“);exit(-1); else if (pid = 0) /* child process */execlp( “/bin/ls“, “ls“,NULL);/该语句被调用后,子进程被其他进程替代,子进程中的语句将不再被执行else /* parent process */* parent will wait for the child to complete */wait(NULL);printf( “Child Complete!n“ );exit(0); 3、编译和运行$gcc process.c o processs4、运行$ ./processs5、思考(1) 系统是怎样创建进程的?(2) 扩展程序,在父进程中输出 1 到 5,在子进程中输出 6-10,要求父子进程并发输出;记录实验结果,并给出简单分析。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报