进程的创建和管理

进程的创建和管理

ID:46219261

大小:81.37 KB

页数:4页

时间:2019-11-21

进程的创建和管理_第1页
进程的创建和管理_第2页
进程的创建和管理_第3页
进程的创建和管理_第4页
资源描述:

《进程的创建和管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验4实验报告1.程序1要求:在程序中创建一个子进程,然后父、子进程各自独立运行,父进程不断地在标准输出设备上输出字母p和回车(输出30次或以上),字进程不断地在标准设备上输出c和冋车(输出30次或以上)。程序代码如以下截图:源程序:4_1,cpp在根目录[10131@localhost]'

2、>'gQTelnet10.5.1.6

3、口j回超jgfHinc丄uaexunistd•h?usingnancspacestd;»utnainO>==->;if

4、<<>else>:return;>22L,277C已写入[10131(?localhost~]$编译、输出结果:Telnet10.5.1.6pppppppp!•:*!*H:*!*:'!*i-!*:'!*i-:'1.程序运行结果分析:从截图可知程序运行结果是,子进程连续输出30个cZ后,父进程跟着连续输出30个p;先从代码上分析:intmain(){intp;〃定义变量p存放子进程的pid号,pid是进程标识符while((p=fork())==-1);〃创建子进程知道直到成功

5、为止if(p==0)//p==0表示子进程返回{for(inti=l;i<=30;i++)〃子进程输出30次字母c和回车{cout«,'c,'«endl;else〃p>0表示父进程返回{for(intj=l;j<=30;j卄)〃父进程输出30次字母p和冋车{cout«Hp"«endl;}}return0;从Linux系统上分析:子进程创建时操作系统做以下工作:>检查同吋运行的进程数目,若超过系统设定值则创建失败,返回-1>为子进程分配进程控制块task_struct结构,并赋予唯一进程标识符pid;>子进程继承父进程打开的所有文件及资源,对父进

6、程的当前目录和所有已打开系统文件表项中的引用记数加1;>为子进程创建进程映像:创建子进程映像静态部分:复制父进程映像静态部分创建子进程映像动态部分:初始化task_struct结构结束创建,置子进程为内存就绪状态,插入就绪队列,作为一个独立的进程被系统调度。>若调用进程(父进程)返回,则返回创建的子进程标识符pid值(此时返回值>0);>若子进程被调度执行,则将其U区计吋字段初始化然后返回(此时返回值二0)。>由于fork()调用执行后,从父进程和子进程返冋的值不同,因而用户能够以此为据在程序中使用分支结构将父子进程需要执行的不同程序分开。1.

7、程序要求:如何影响上述程序的输出结果?写出你的的方法,论证其正确性,并加以实现。实现结果是否与预期一致?提示:可能使用到的相关的系统调用或函数:wait(),sleep();我的方法:将父进程挂起,等待子进程结束修改代码如下:让子进程休眠3秒,父进程挂起,只有等待子进程执行结束后,才能继续执行。

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

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

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