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

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

ID:52893610

大小:30.00 KB

页数:2页

时间:2020-03-31

操作系统实验指导_实验2.doc_第1页
操作系统实验指导_实验2.doc_第2页
资源描述:

《操作系统实验指导_实验2.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、ID,并向子进程返回0,即fork()被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork()父进程(parentprocess)的副本,称为子进程(childprocess)。子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。父进程与子进程并发执行。2、参考程序代码/*process.c*/#include#includemain(intargc,char*argv[]){intpid;/*forkanotherprocess*/pid=fork();if(pid<0){/*er

3、roroccurred*/fprintf(stderr,"ForkFailed");exit(-1);}elseif(pid==0){/*childprocess*/execlp("/bin/ls","ls",NULL);//该语句被调用后,子进程被其他进程替代,子进程中的语句将不再被执行}else{/*parentprocess*//*parentwillwaitforthechildtocomplete*/wait(NULL);printf("ChildComplete!");exit(0);}}3、编译和运行$gccprocess.c–oprocesss4、运行$.

4、/processs5、思考(1)系统是怎样创建进程的?(2)扩展程序,在父进程中输出1到5,在子进程中输出6-10,要求父子进程并发输出;记录实验结果,并给出简单分析。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。