实验1实验报告_第1页
实验1实验报告_第2页
实验1实验报告_第3页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内蒙古师范大学网络技术学院《操作系统》课程实验报告

实验一进程的创建控制实验学号日期年月日

职称讲师1实现工具Vi编辑器、Gcc编译工具 实现环境 Linux环境实验目的:创建进程,体会进程间的并发特征。fork()创建两个子进程p1实习内 和p2。而且父进程输出字符串“father,第一个子进程输出字符串容( “borther1“borther2功能、 3.实验要求:掌握系统调用fork()的使用方法及其功能;利用系目)标 调用sleep()调整父进程及各子进程的并发执行过程。)1.一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程实 可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进现的 也可以做不同的事思想、 2.sleep()是进程的睡眠。方法 3.当子进程1sleep(10)时读父进程与BROTHER2子进程抢占和技术 源,父进程与BROTHER2子进程输出结果不一定谁先后;(数含 子进程2sleep(10)时,CPU读父进程与brother1子进程抢占资源,数据结 父进程与brother1子进程输出结果不一定谁先后构、算 父进程时,CPU读BROTHER2子进程与brother1子进程抢法) 占资源,BROTHER2brother12主要代码 注释#include<unistd.h>#include<stdio.h>intmain(){intp1;/*定义进程p1*/intp2;/*定义进程p2*/while((p1=fork())==-1);/*环*/if(p1==0)/*CPU读子进程p1,输出{brother1*/sleep(10);/*睡眠10秒,让父进程读printf("brother1\n");*/}else/*执行父进程,父进程创建{p2*/while((p2=fork())==-1);/*环*/if(p2==0)/*CPU读子进程p2,输出{BROTHER2*/sleep(10);/*睡眠10秒,让父进程读*/printf("BROTHER2\n");}else/*CPU读子进程父进程,输{出FATHER*/printf("FATHER\n");}}}31sleep(10)时,CPUBROTHER22sleep(10)时,CPUbrother1CPUBROTHER2brother1结分果 结果。分析(含实现中出错原 思考题:因分 1.为什么各字符串的输出顺序会是任意的析)进程并发执行,子进程与父进程抢占处理机,所以输出字符顺序不同。改写程序,将字符串用循环语句一个一个字符输出,再查看执行结果如何?4思考题主要代码 注释#include<unistd.h>#include<stdio.h>intmain(){intp1,p2; /*定义进程p1*/p1=fork(); /*p1*/if(p1<0){printf("error!"); /*p1失败时输出} error*/elseif(p1==0){ /*子进程p1成功时*/chara[9]="brother1"; /*定义字符串inti=0; "brother1"*/for(i=0;i<9;i++){}}else{

sleep(1);printf("%c\n",a[i]);/*输出单个字符*/p2=fork(); /*if(p2<0){printf("error!"); /*p2失败时输出} error*/elseif(p2==0){ /*子进程p2成功时*/char b[9] =/*定义字符串"BROTHER2"; ="BROTHER2"*/inti=0;for(i=0;i<9;i++){}else{

sleep(2);printf("%c\n",b[/*输出单个字符i]);}charc[6]="FATHER";/*定义字符串c[6]inti=0; "FATHER"*/for(i=0;i<6;i++){sleep(3);printf("%c\n",c[

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论