操作系统实验三

上传人:鲁** 文档编号:489866837 上传时间:2023-01-08 格式:DOCX 页数:5 大小:43.25KB
返回 下载 相关 举报
操作系统实验三_第1页
第1页 / 共5页
操作系统实验三_第2页
第2页 / 共5页
操作系统实验三_第3页
第3页 / 共5页
操作系统实验三_第4页
第4页 / 共5页
操作系统实验三_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《操作系统实验三》由会员分享,可在线阅读,更多相关《操作系统实验三(5页珍藏版)》请在金锄头文库上搜索。

1、贵州大学实验报告学院: 计算机科学与信息学院 专业:网络工程班级:091姓名邱东生学号0908060327实验组实验时间11.20指导教师王道书成绩实验项目名称实验三进程的控制实 验 目 的1、掌握进程另外的创建方法2、熟悉进程的睡眠、同步、撤消等进程控制方法实验 要 求课堂集中授课参考程序和学生编程实现、并回答相关疑问;实 验 原 理实验手段:编程验证原理;实验 仪 器PC机或工作站一台;RedHat9.0操作系统;实 验_lB 步骤1、用fork()创建一个进程,再调用exec()用新的程序替换该子进程的内容2、利用wait()来控制进程执行顺序一、所涉及的系统调用在UNIX/LINUX中

2、fork()是一个非常有用的系统调用,但在UNIX/LINUX中建立进程除 了 fork()之外,也可用与fork()配合使用的exec()。1、exec()系列系统调用exec()系列,也可用于新程序的运行。fork()只是将父进程的用户级上下文 拷贝到新进程中,而exec()系列可以将一个可执行的二进制文件覆盖在新进程的用户 级上下文的存储空间上,以更改新进程的用户级上下文。exec()系列中的系统调用都 完成相同的功能,它们把一个新程序装入内存,来改变调用进程的执行代码,从而形成 新进程。如果exec()调用成功,调用进程将被覆盖,然后从新程序的入口开始执行, 这样就产生了一个新进程,新

3、进程的进程标识符id与调用进程相同。exec()没有建立一个与调用进程并发的子进程,而是用新进程取代了原来进程。所以 exec()调用成功后,没有任何数据返回,这与fork()不同。exec()系列系统调用在实 验 内 容UNIX 系统库 unistd.h 中,共有 execl、execlp、execle、execv、execvp 五个,其基本 功能相同,只是以不同的方式来给出参数。一种是直接给出参数的指针,如:int execl(pa th,argO,arg1,.argn,O);char *pa th,*argO,*arg1,.,*argn;另一种是给出指向参数表的指针,如:int exec

4、v(pa th,argv);char *pa th,*argv;具体使用可参考有关书。2、exec()和fork()联合使用系统调用exec和fork()联合使用能为程序开发提供有力支持。用fork()建立子进程,然后在子进程中使用exec(),这样就实现了父进程与一个与它完全不同子进程的并发执行。一般,wait、exec联合使用的模型为:int status;if (fork( )= =0)execl(.);wait(&status);3、wait ()等待子进程运行结束。如果子进程没有完成,父进程一直等待wai t()将调用进程挂 起,直至其子进程因暂停或终止而发来软中断信号为止。如果在w

5、ai t()前已有子进程 暂停或终止,则调用进程做适当处理后便返回。系统调用格式:int wait(status)int *status;其中,status是用户空间的地址。它的低8位反应子进程状态,为0表示子进程正常结 束,非0则表示出现了各种各样的问题;高8位则带回了 exit()的返回值。exit() 返回值由系统给出。核心对wait()作以下处理:(1) 首先查找调用进程是否有子进程,若无,则返回出错码;(2) 若找到一处于“僵死状态”的子进程,则将子进程的执行时间加到父进程的执行 时间上,并释放子进程的进程表项;(3) 若未找到处于“僵死状态”的子进程,则调用进程便在可被中断的优先级

6、上睡眠, 等待其子进程发来软中断信号时被唤醒。4、exit ()终止进程的执行。系统调用格式:void exit(status)int status;其中,status是返回给父进程的一个整数,以备查考。为了及时回收进程所占用的资源并减少父进程的干预,UNIX/LINUX利用exi t()来实现进程的自我终止,通常父进程在创建子进程时,应在进程的末尾安排一条exi t(),使 子进程自我终止。exit (0)表示进程正常终止,exit(l)表示进程运彳丁有错,异常终止。 如果调用进程在执行exit()时,其父进程正在等待它的终止,则父进程可立即得到其 返回的整数。核心须为exit()完成以下操

7、作:(1) 关闭软中断(2) 回收资源(3) 写记帐信息(4) 置进程为“僵死状态”1 Sincludt.-sLdio.h2 includ. uji ijLd. hJ nidinOin pid; pid=fork();:;昉丨-.h (pid)CJSl -l :H- I 2 3 J L-JMb 8 y -H- I1 J 1 1 1 1 I I 1 2 2prinLl( Lijrk f:i I ! !i j ;exiL(l);li.lSE- 0:exec I (*/bin/ls,l *ls*. *-l*. -color, NILE); piinLf Ccxcc lai I! i-v);exiL(

8、l);di.T iu I : naiL(XLIJ-);printf(*ls completedexi t(O);1实验程序:1 niro 1 I OCdlhn L J sElec nS. cL.s 1 roJur实 验 数 据实验结果及分析:m.用绅 dlItKl-Kt-Xiwtqjrir 严1 F* -iswjL-i-ttkjxr-iroot_iT_rr=LITCHj-nsj- xr I1lKjtl-irsr-XL-I1ixjoL-iT-rr11nn tIfl i fLrwzi xr i1root-nr-rrI1rmt|J LIWtE1叩 严TLiioo L-rnr-xi-xLIGOL-rr

9、-jr1rfKHdrwi7rat rwrTi iroot1盯rrLT*0O t-rt-1rL1伽Ir-jr=-aTi- -rT-rr-L LrcoL rootG -I H - h 2 .h- s 9 fl. h J 7 .b 7 o M- h -u L o - qn 7 10 9 _l- -n 7 o J JH 1 I I 5 R I 7 . fy2 哥 1 & I 9 up L 7 I Q 2 2- I 2 - J- 5 4 6 1J J-月月月月月月月月月月冃月月月月月冃月月月 Ooooololo4ooooo 丄2L28胡為2B221M28W 潢2t212LL610loL0LCI却2002

10、 xri2002 Er2002 2W2 他 e2M2 20UD w.nif: -i .mgbc 我观討mnH2002 qq,c 2002 .!ID:刊 p/ir i I i nn inrn3D02 01.r3D02 my. c2002 n v252 mu2002 MdM10:17 m3- c(19:3N nt22.c09:47 ih2L . c10: L5 ml. c知LU Ijup. cpp-nrrLn ot7J71133010.E:花Ln r fLilajL&-I09IDf10Q0D0jeij ijILsysLof-n-rLroot时10dJO20T0inUil I.og-inr-T-r-

11、1iTM7JL1。冃洲20C2i.nsr-xr- x1iiuL固厲10; 2S3)02.-n-rr17t2110 L2L30C2.-.|root目齡g|6tibErvipi-ri-r【一LiwL4&10 U220C2Imlh.uif 1jtoqLLJ10 I iSL3002Tor th.edir-xr-i3root10J612:;222DL0f ildcr-n-ar-Irtrfst3I0H2L3X)2Firjir*ki-kl- iLjmjL倔i1010; IEdnrs x- 1rcL100611100:6It.J:- nrlnr-Mr-nJrrr和帅IQ口Mlrfr-xr-i 1 ri -l

12、IS50 U0 Ofl: 11 .-if j r-1rtL7FliJ : jil.3(M2cLiUf.c-iFT-xr-KIitolI77JLti 驗2L占朋i.-nsi-Kt-it1! -.it17211-1010: 10lrrjriEL-TSLjwL110U2L20C2Jf-mi - xr-j1rootEi2!)71 1 .10 1 :CO-rrr 1 iwi浒斤IQf- IQ 的卩旳肚沏击-帘什正i-n-r- f-LiijoL720ll月IL2DC27.uxr- hLroottM5l111L3DC2;-inr-yr | rent S.L II口 IL1 印,f:-i-w-Ktt1itCJt31 1 -LL20021 :r rLnocit010 ri17Z002002-rr-j,L1root2LOt:1720C2BOl J分析:执行命令ls-l -color,(按倒序)列出当前目录下所有文件和子目录;ls comple ted!截图如上图所示。实 验 总 结1、通过本实验,知道了进程的另外一种创建方法。并知道了进程的睡眠、冋步、撤销 等的各种操作的过程。2、熟悉了系统调用exec(),wait(),exit(),fork()的功能和使用方法。3、学会编写进程调用程序显示文件。指导 教 师 意 见签名:年月日注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号