下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统》实验报告(二)Linux下的编程(综合性2学时)1、实验目的:1)熟悉Linux的进程机制。2)熟悉LINUX环境编程。2、实验内容:(1)完成LINUX系统的登录,启动终端。2)创建一个新用尸,名为ddl。要求记录操作步骤或命令丿予列。[31260100lBwiizeshitaiocalhostsuPassword:[root@localhost3126010018wuzeshi]#adduserddl[root@localhost3126010018wuzeshi]#adduserddladduser:user'ddl1alreadyexists切换用尸dd1[root@localhost3126010018wuzeshi]#suddl[ddltaiocalhost3126010018wuzeshi]$|(3)进程查看命令PS的使用探讨,使用ps命令选项:-l-al,记录命令的结果。[ddl@lccalhost3126010018wuzeshi]$ps-I-alFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD4S0300128260800-40764waitpts/000:00:00su4SQ30103001G800-27132waitpts/000:00:00bash4SG30973910G809-40369waitpts/000:99:00su4S501309830970800-27098waitpts/000:00:00bash0R501311830980800-27046-pts/000:00:00(4)编写一个程序,创建一个子进程,显示“Newprocess.”子进程在休眠(15秒)后,通过调用getpid()和getppid()获取父、子进程的id后结束并退出exit()。父进程调用waitpid()等待子进程结束,并同样返回其父、子进程的id。(提示:运行过程中配合ps-l命令查看进程的家族关系。)
回答问题:当父进程不等待子进程的结束时,运行结果如何?请分析原因。i_i*new.cK Copytheselection#include<sys/types.h>#include<stdlib.h>#include<stdio.h>main{)intp;whileUp=fork() ;if(p==Ci]printf("NewProcess\n");sleep(lS);printf("pid=%d,ppid=%d\n",getpid{},getppid{})exit(Q);else//^aitpid(0rNULLrS);运行结果: printf("pid=%d.ppid=%d\n"rgetpidUrgetppid()];C-Tabwidth:8-Ln,IS,Col19 INS03126010018wuzeshi@localhost:/home/3126010018wuzeshi/DesktopFileEditViewSearchJenminal旦巳Ip[roottaiocalhostDesktop]#gccnew2.c-on已w2[root@localhostDesktop]#./new2pid=斗®48.ppid=3641[rootfatocalhostDesktop]#NewProcesspid=斗B49,ppid=1ps-I-alFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD4S0363335600800-40763waitpts/909:09:09su斗s0364136330800-27998waitpts/B00:00:00bash斗R04B5636410800-27047-pts/e00:00:00PS原因:父进程执行到wait的时次,如果只有一个wait,其他的子进程在父进程结束后会成为孤儿进程init进程收养。采用不阻塞方式调用waitpid的话,父进程不会等待,没执行完的子进程将会成为孤儿进程(5)进程的创建:编制一段程序,使用系统调用fork()创建两个子进程,在该程序运行时,在系统中就有一个父进程和两个子进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,子进程分别显示字符b和字符c。试观察、记录并分析屏幕上,进程运行的情况。(提示:运行过程中配合ps-l命令查看进程的家族关系。)圖fork.c諷Mnclud已<stdio.hAmain()intplrp2;while((pl=fork())=-l);if(pl==0)putcharfb'};elsewhile((p2=fork())=-l);if(pl==0)putchar('c')获取进程及其父进程的id.[roattaiocalhostDesktop]#gccfork.c-ofork[root@localhostDesktop]#./fork3[root@localhostDesktop]#ab[root^localhostDesktop]#ps-I[roattaiocalhostDesktop]#gccfork.c-ofork[root@localhostDesktop]#./fork3[root@localhostDesktop]#ab[root^localhostDesktop]#ps-IFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD斗S0363335609809-40763waitpts/000:00:00su4s0364136330800-27098waitpts/000:00:00bashR0418536413800-270斗7-pts/e00:00:00[附:系1统调h用函数说明:1(1)fork()函数,创建一个新进程。格式:intfork()其中返回int取值意义如下:0:创建子进程,从子进程返回的id值>0:从父进程返回的子进程id值-1:创建失败(2)getpid()与getppid();(3)waitpid(pid,status,options)可用调用格式:waitpid(O,NULL,O)功能:waitpid()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用waitpid()时子进程已经结束,则waitpid()会立即返回子进程结束状态值。参数设置:pid=0,表示等待进程组识别码与目前进程相同的任何子进程;status=NULL,表示忽略进程的结束状态;options=0,表示不提供了一些额外的选项来控制waitpid。(4)相关的头文件包含如下:#include<sys/types.h>#include<stdio.h>3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版家电产品消费者满意度调查服务合同2篇
- 二零二五版房地产融资居间代理合同范本3篇
- 二零二五年电影联合制作与市场推广合同2篇
- 二零二五版茶叶茶具专卖店加盟管理合同3篇
- 二零二五版汽车购置贷款保证担保合同3篇
- 二零二五年度化肥原料进口与分销合同3篇
- 二零二五年度航空航天股权买卖合同范本3篇
- 二零二五版户外广告牌定期检查与维修合同3篇
- 二零二五年度驾校车辆购置税承包合同3篇
- 国际贸易第六章出口合同订立2025年绿色贸易标准与认证3篇
- 水泥厂钢结构安装工程施工方案
- 2023光明小升初(语文)试卷
- 三年级上册科学说课课件-1.5 水能溶解多少物质|教科版
- GB/T 7588.2-2020电梯制造与安装安全规范第2部分:电梯部件的设计原则、计算和检验
- GB/T 14600-2009电子工业用气体氧化亚氮
- 小学道德与法治学科高级(一级)教师职称考试试题(有答案)
- 河北省承德市各县区乡镇行政村村庄村名居民村民委员会明细
- 实用性阅读与交流任务群设计思路与教学建议
- 应急柜检查表
- 通风设施标准
- 酒店市场营销教案
评论
0/150
提交评论