第一范文网 - 专业文章范例文档资料分享平台

操作系统上实验报告3

来源:用户分享 时间:2025/7/27 23:05:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

操作系统实验三报告

实验题目:

进程管理及进程通信

实验环境:

虚拟机Linux操作系统

实验目的:

1.利用Linux提供的系统调用设计程序,加深对进程概念的理解。 2.体会系统进程调度的方法和效果。

3.了解进程之间的通信方式以及各种通信方式的使用。

实验内容:

例程1:

利用fork()创建子进程 #include #include #include main() { int i; if (fork()) i=wait(0);

/*父进程执行的程序段*/ /* 等待子进程结束*/

printf(\

printf(\} else{

printf(\sleep(10);

/*子进程执行的程序段*/ exit(1);

/*向父进程发出结束信号*/ } }

运行结果:

思考:子进程是如何产生的? 又是如何结束的?子进程被创建后它的运行环境是怎 样建立的?

答:子进程是通过函数fork()创建的,通过exit()函数自我结束的,子进程被创建后核心将为其分配一个进程表项和进程标识符,检查同时运行的进程数目,并且拷贝进程表项的数据,由子进程继承父进程的所有文件。

例程2:

循环调用fork()创建多个子进程 #include #include #include main() { int i,j;

printf(“My pid is %d, my father’s pid is %d\\n”,getpid() ,getppid());

for(i=0; i<3; i++) if(fork()==0)

printf(“%d pid=%d ppid=%d\\n”, i,getpid(),getppid()); else

{ j=wait(0);

Printf(“ %d:The chile %d is finished.\\n” ,getpid(),j); } }

运行结果:

思考:画出进程的家族树。子进程的运行环境是怎样建立的?反复运行此程序 看会有什么情况?解释一下。 答:21440 21441 21445 21447 21442 21444 21446 21443 子进程的运行环境是由将其创建的父进程而建立的,反复运行程序会发现每个进程标识号在不断改变,这是因为同一时间有许多进程在被创建。

搜索更多关于: 操作系统上实验报告3 的文档
操作系统上实验报告3.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4eilt03j5w7b3ef98nfw_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top