下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称操作系统原理实验成绩评定实验项目名称进程控制指导教师戴红实验项目编号0806002902实验项目类型 综合型实验地点 学生姓名 蔡高成 学号2007052431学院 国际商学院 系企业管理专业信息管理与信息系统实验时间年月 日Ti温度C湿度一、实验目的通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解,明确进程与程序 之间的区别。二、实验环境及设备(-)实验室名称:计算机实验室(二)主要仪器设备:PC机、Linux操作系统环境三、实验内容(1) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复 显示字符 某字符串和自己的标识数,而子进程则重复显示某字符串
2、和自己的标识 数。(2) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用 exec()更换自己的执行代码,显示新的代码后,调用exit()结束。而父进程则调用 waitpid()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。四、实验调试分析1、实验函数说明(1) fork ()创建新进程要创建一个进程,最基本的系统调用是forko系统调用fork用于派生一个进程, 头文件:#in elude 函数定义:int fork( void );返回值:子进程中返回0,父进程中返回子进程ID,出错返回函数说明:一个现有进程 可以调用fork函数创建一个新进
3、程。由fork创建的新 进程被称为子进程(child process) o fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程IDo子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是 上述存 储空间的副本这意味着父子进程间不共享这些存储空间,它们之间共享的存储空间只有代码段。(2) exec函数族头文件:#in elude 函数族:int execl(c onst char *path, const char *arg, .);int execlp(c onst char *file, const char *arg,
4、 .);int execle(c onst char *path3 const char *arg, const char *en vp);int execv(c onst char *path, const char *argv);int execve(c onst char *path, const char *argv, const char *en vp;int execvp(c onst char *file, const char *argv);参数说明:execl的第一个参数是包括路径的可执行文件,后面是列表参数,列表的第一个为命令 path,接着为参数列表,最后必须以NULL结
5、束。execlp的第一个参数可以使用相对路径或者绝对路径。execle最后包括指向一个自定义环境变量列表的指针,此列表必须以NULL结束。 exeev, v表示path后面接收的是一个向量,即指向一个参数列表的指针,注意这个列 表的最后一项必须为NULL。execve, path后面接收一个参数列表向量,并可以指定一个环境变量列表向量execvp 第一个参数可以使用相对路径或者绝对路径,v表示后面接收一个参数列表向量。exec被调用时会替换调用它的进程的代码段和数据段(但是文件描述符不变),直接返回到调用它的进程的父进程,如果出错,返回 并设置errnoo(3) exit 0终止进程函数头文件
6、:#i nclude exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其 在内核中 的各种数据结构。(4) waitpid ()父进程等待子进程中等或结束后才执行头文件:#i nclude或 #i nclude定义函数: pid_t waitpid(pid_t pid,i nt * status,i nt opti on s);函数说明:waitpid()会暂訂停止目前进程的执行,直到有信号来到或子进程结束。如果在调用 waitpid()时子进程已经结束,则waitpid()会立即返回子进程结束状态值。子进程的结束状态值会由参数status返回,而子进程的进程识别码也
7、会一起返回。如果不在意结束状态值,则参数status可以设成NULL。参数pid为欲等待的子进程识别码其他数值意义如下:Ipidv-1等待进程组识别码为pid绝对值的任何子进程。pid=-1等待任何子进程,相当于wait()opid=O等待进程组识别码与目前进程相同的任何子进程。pid0等待任何子进程识别码为pid的子进程。参数options提供了一些额外的选项来控制waitpid ,参数option可以为0或可以用T运算符把它们连接起来使用。次实验调试(1) 实验一调试刚开始在写两个fork()程序时,是将两个fork()函数写在一起,如果是这 样的话,第二 次调用fork()语句时就可能不
8、满足实验的要求了,因为父子进程的执行顺序是任意的,在第二次调用fork()函数时,可能是第一次调用产生的子进程在调用这个fork()函数,就会返回0值,不符合实验要求创建两个子进程的条件,因此应在确定当前进程时父进程时才调用fork()语句创建第二个子进程。(2) 实验二调试创建子进程后,调用execl()将参数中指定的新进程代替原有的进程,若能够成功替换该进程就不会执行该函数后面的exit(O),转向执行新进程,待所有的 子进程执行完毕后,就会转向执行waitpid()函数,再返回子进程的识别码,并 输出;若 没有替换成功就会执行execl()后面的语句exit(O),终止当前的子进程,再转
9、向执行waitpid()语句。备注:实验调试过程中未能将调试结果截图是本次实验的一大败笔。下次会注意的。五、实验结果六、实验源程序广实验二程序*/#i nclude #i nclude #i nclude vuni std.hint main()pid_t pid1,pid2;广先创建一个子进程*/pid 仁 fork();if (pid10)/*pid1没创建子进程成功*/printf( fail to fork/n);exit(1);else if (pid1 = 0)printf( “child,pid is : %unM ,getpid();elseprintf( pare nt,pi
10、d is :%unn,getpid();厂若是父进程,则再新创建其子进程*/pid2=fork();if (pid20)printf( fail to fork/n*);exit(1); else if (pid2 = 0)printf( “child,pid is : %unH ,getpid(); elseprintf( parent,pid is :%un ,getpid();return 0;广实验二程序*/#i nclude #in elude #i nclude #i nclude int main()pid_t pid; int result;广创建子进程*/pid = fork();if (pid 0)printf( fork error);else if (pid = 0)广若是子进程*/printf( new program.*n”);广替换当前的进程*/execl( /root/fork.out, “fork.out” 50);广若没有替换成功,终止该子进程*/ exit(0);else 广若子进程全部执行结束
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年长春早期教育职业学院单招职业适应性测试题库有答案详细解析
- 2025-2030中国智能家电行业市场现状互联互通及投资前景预测分析报告
- 2025-2030中国智能家电产品市场供需分析及投资评估规划分析研究报告
- 2025-2026学年第二学期学校期中校园保密工作上级工作专项普及情况报告
- 2026上海虹口区卫健系统招聘38人备考题库【培优】附答案详解
- 2026华中农业大学动物医院运营管理岗招聘1人备考题库(湖北)(夺冠)附答案详解
- 2026东方电气集团数字科技有限公司面向全社会招聘6人备考题库附完整答案详解【夺冠系列】
- 2026浙江农林大学继续教育学院劳务派遣工作人员招聘1人备考题库附答案详解(研优卷)
- 2026山东大学生命科学学院徐芳课题组科研助理招聘1人备考题库及答案详解【名校卷】
- 2026浙江省荣军医院特殊专业技术岗位招聘3人备考题库含完整答案详解【典优】
- 2026年安庆医药高等专科学校单招职业技能考试题库带答案详解(a卷)
- 2025福建福州市鼓楼区国有资产投资发展集团有限公司公开招聘笔试参考题库附带答案详解
- 2026年安徽审计职业学院单招职业倾向性考试题库含答案详解(基础题)
- 斜坡硬化施工方案(3篇)
- 2026四川成都新都区集中招聘编外人员10考试备考题库及答案解析
- 建筑施工安全设施设计落实情况报告
- GB/T 47067-2026塑料模塑件公差和验收条件
- (2026年)粮油质量检验员考核试题(+答案)
- 2024年通用技术集团招聘笔试参考题库含答案解析
- 《建筑环境与能源应用工程专业概论》配套教学课件
- DB4403-T 87-2020 园林绿化管养规范-(高清现行)
评论
0/150
提交评论