操作系统实验报告-观察进程的并发性.doc

操作系统实验报告-观察进程的并发性.doc

ID:56217630

大小:137.00 KB

页数:7页

时间:2020-03-21

操作系统实验报告-观察进程的并发性.doc_第1页
操作系统实验报告-观察进程的并发性.doc_第2页
操作系统实验报告-观察进程的并发性.doc_第3页
操作系统实验报告-观察进程的并发性.doc_第4页
操作系统实验报告-观察进程的并发性.doc_第5页
资源描述:

《操作系统实验报告-观察进程的并发性.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、评语:课中检查完成的题号及题数:课后完成的题号与题数:成绩:指导教师:实验报告一实验名称:观察进程的并发性日期:2011.5.7班级:学号:姓名:一、实验目的:通过创建子进程,观察父子进程的并发执行过程,区别顺序执行和并发执行;明确进程和程序的区别;加深对操作系统进程概念和进程并发特性的理解。二、实验内容:进程的创建。编制一段程序,使用系统调用fork()创建两个子进程,在此程序运行时,系统中就有一个父进程和两个子进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,两个子进程分别显示字符b和子符c。试观察、记录并分析屏幕上进程调度和并发执行的情况。若在

2、程序中使用系统调用nice()^改变各进程的优先级,观察岀现的现象.三、项目要求及分析:为了体现岀进程的并发性,首先在父进程创建一个子进程,进程里利用循环方式输岀字符“b”,然后在父进程里乂创建子进程2,进程2里循环输岀字符“c”,在父进程里循环输出字符‘务”。这样程序运行时,父子进稈之间并发执行,并输岀相应的字符。对于nice()函数的应用,我主要是先输出子进程1的优先级,然后用nice函数修改子进程的优先级,然后观察运行结果。对于子进程2也用nice函数修改了其优先级,再观察运行结果。四、具体实现:4.1流程图开始fork。创建子进程1fork。创建子进程2迪

3、程循习瀚出"a"•為子进程结束结束4.2添加函数的代码1)进程之间的并发性#include#include#include#includeintmain(){intij,k;intpid=fork();//newfirstthreadif(pid==0)//firstthread{for(j二();jv5;j++)printf(nfirst:bttj=%dnj);sleep(l);exit(O);elseif(pid>0)//mainthread{intpi=fbrk(

4、);//newsecondthreadif(pi==O)//secondthread{for(k=0;k<5;k++){printf("second:ctk=%d",k);sleep(l);}exit(O);}elseif(pi>0)//mainthread{for(i=0;i<5;i++){printf("main:atti=%d'i);sleep(l);}waitpid(pid,0,0);//waitfirstthreadoverwaitpid(pi,0,0);//waitsecondthreadoverprintf(”mainthreadex

5、itr");exit(O);}else//secondthreadfailed{perror("functionfork()error!r");exit(l);}}else//firstthreadfailed{perror(nfunctionfork()error!r");exit(l);}return0;}2)nice函数的应用#include#include#include#includeintmain(){inti,j,k;intoldpri,newp

6、ri;intpid=fork();//newfirstthreadif(pid==O)//firstthread{printf("parentpidis%d",getppid());oldpri=getpriority(PRIO_PROCESS,getpid());printfC'firstthreadoldpriority=%du,oldpri);newpri=nice(5);printf("firstthreadnewpriority=%dn,newpri);for(j=0;j<5;j++){printf(ufirst:bttj=%d,j

7、);sleep(l);}exit(O);}elseif(pid>0)//mainthread{intpi=fbrk();//newsecondthreadif(pi==O)//secondthread{nice(2);for(k=0;k<5;k++){printf("second:ctk=%dn,k);sleep(l);}exit(O);}elseif(pi>0)//mainthread{for(i=0;i<5;i++){printf("main:atti=%d",i);sleep(l);waitpid(pid,O,O);//waitfirstthr

8、eadov

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

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

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