网站大量收购独家精品文档,联系QQ:2885784924

Linux多进程并发执行实验..doc

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

存档资料 成绩:  华东交通大学理工学院 《Linux操作系统原理与应用》实验报告书 题 目 linux多进程并发执行实验 分 院   电 信 分 院    专业班级 通信工程2008级 2 班 学生姓名 骆 玉 春      学生学号 20080210420224 指导教师 徐 涢 基 2011 年 5 月 24 日 一、实验目的 1、对理论课中学习的进程、程序等的概念作进一步的理解,明确进程和程序的区别; 2、加深理解进程并发执行的概念,认识多进程并发执行的实质; 3、观察进程争夺资源的现象,分析其过程和原因,学习解决进程互斥的方法; 4、对经典的多用户、多任务的优先级轮转调度系统Linux有一定的了解; 5、了解Linux系统中多进程之间通过管道通信的基本原理和应用方法。 二、实验内容 1、用virtual虚拟机运行linux虚拟系统; 2、分析并理解源程序; 3、在linux中输入相应程序并观察运行结果。 三、实验原理 (一)多进程并发执行是使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。 (二)实验中要用到的函数 1、fork()函数——进程创建函数。 2、getpid()函数——取得目前进程的进程标识码。 3、exit()函数——用来正常终结目前进程的执行。 4、sleep()函数——用来延时,它会被挂起,把处理器让给其他的进程。 5、printf()函数——是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。 (三)实验中要用的命令 1、cd 命令 : 功能:改变工作目录。 语法:cd [directory] 说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。 该命令可以使用通配符。 2、mkdir命令 : 功能:创建一个目录(类似MSDOS下的md命令)。 语法:mkdir [选项] dir-name 说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。 3、ls 命令 : 功能:ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令之一,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。 语法:ls [选项] [目录或是文件] 说明:对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出 其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。 4、vim、clear命令在这里就不做介绍了。 (四)实验源程序如下: #include stdio.h #include unistd.h #include sys/types.h #include sys/wait.h #include stdlib.h main(){ int pid1,pid2,i=1; while((pid1=fork())==-1); if(pid1==0){ printf(This is child process 1,pid=%d\n,getpid()); sleep(1); for(i=A;i=Z;i++){ printf(Child process1 print:%c\n,i); sleep(1); } exit(0); } else{ while((pid2=fork())==-1); if(pid2==0){ printf(This is child process 2,pid=%d\n,getpid()); sleep(1); for(i=a;i=z;i++){ printf(Child process1 print:%c\n,i); sleep(1); } exit(0); } else{printf(This is a parent process,pid=%d\n,getpid()); sleep(1); for(i=1;i=26;i++){

文档评论(0)

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

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

1亿VIP精品文档

相关文档