操作系统实验报告进程的创建.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验报告进程的创建

实验题目 进程的创建 小组合作 否 姓名 班级 学 号 一、实验目的 了解进程的创建。 了解进程间的调用以及实现。 分析进程竞争资源的现象,学习解决互斥的方法。 加深对进程概念的理解,认识并发执行的本质。 二.实验环境 Windows 系统的计算机一台,安装了Linux虚拟机 三、实验内容与步骤 1、fork()系统调用的使用例子 程序代码: #includestdio.h #includesys/types.h #includeunistd.h int glob=3; int main(void) { pid_t pid;int loc=3; printf(before fork();glod=%d,loc=%d.\n,glob,loc); if((pid=fork())0) { printf(fork() error. \n); exit(0); } else if(pid==0) { glob++; loc--; printf(child process changes glob and loc: \n); } else wait(0); printf(parent process doesnt change the glob and loc:\n); printf(glob=%d,loc=%d\n,glob,loc); exit(0); } 运行结果: 2、理解vofork()调用: 程序代码: #includestdio.h #includesys/types.h #includeunistd.h int glob=3; int main(void) { pid_t pid; int loc=3; if((pid=vfork())0) { printf(vfork() error\n); exit(0); } else if(pid==0) { glob++; loc--; printf(child process changes the glob and loc\n); exit(0); } else printf (parent process doesnt change the glob and loc\n); printf(glob=%d,val=%d\n,glob,loc); } 运行结果: 3、给进程指定一个新的运行程序的函数exec(). 程序代码: printe1.c代码: #includestdio.h int main(int argc,char * argv[]) { int n; char * * ptr; extern char * * environ; for(n=0;nargc;n++) printf(argv[%d]:%s\n,n,argv[n]); for(ptr=environ; * ptr!=0;ptr++) printf(%s\n,* ptr); exit(0); } file4.c代码如下: #includestdio.h #includesys/types.h #includeunistd.h #includesys/wait.h char * env_list[]={USER=root,PATH=/root/,NULL}; int main() { pid_t pid; if((pid=fork())0) { printf(fork error!\n); exit(0); } else if(pid==0) { if(execle(/root/print1,print1,arg1,arg2,(char *)0,env_list)0) printf(execle error!\n); exit(0); } if((waitpid(pid,NULL,0))0) printf(WAIT ERROR!\n); exit(0); if((pid=fork())0) { printf(fork error!\n); exit(0); } else if(pid==0) { if(execlp(print1,print1,arg1,(char *)0)0) printf(execle error!\n); exit(0); } exit(0); } 运行结果: 4、进程终止函数exit()。 程序代码: #includestdio.h main() {

文档评论(0)

peili2018 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档