为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

进程间通信实验报告

2019-01-17 5页 doc 26KB 65阅读

用户头像

is_477730

暂无简介

举报
进程间通信实验报告GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 进程间通信 课程名称 操作系统 课程号   学院(系) 软件学院 专业 软件工程 班级   学生姓名   学号   实验地点   实验日期                               一、实验目的 1、利用文件锁机制,实现多进程共享一个文件,具体过程和要求参照课堂讲...
进程间通信实验报告
GDOU-B-11-112 广东海洋大学学生实验报告(学生用) 实验名称 进程间通信 课程名称 操作系统 课程号   学院(系) 软件学院 专业 软件工程 班级   学生姓名   学号   实验地点   实验日期                               一、实验目的 1、利用文件锁机制,实现多进程共享一个文件,具体过程和要求参照课堂讲解。 2、利用双向管道机制实现进程间通信,父子两个进程,第一个进程从键盘输入多个整数(以-1表示整数序列的结束,-1不属于其中),每输入一个整数,便立即通过管道传送给第二个进程;第二个进程对收到的数据进行排序(排序算法同学们自选,冒泡、选择、堆…均可),排序结果通过管道传递给第一个进程;第一个进程显示排序结果。 选做题:利用LINUX进程间共享内存机制实现第2题,亦即将管道用共享内存机制来代替。 2、实验内容 1、(1)新建文件,编辑程序如下: #define _POSIX_SOURCE #include #include #include #include #include #include #include #include int main(int argc, char * argv[]) { int num, fd,i; FILE *f; char buff[100]; fd = open("number.txt", O_RDWR); flock(fd,LOCK_EX); if(fd<=0){ printf("open error\n"); return 1; } f = (FILE *)fdopen(fd, "r+"); if(f == NULL){ printf("fdopen error\n"); return 1; } for(i=1;i<=100000;i++){ lseek(fd, 0, SEEK_SET); fscanf(f, "%d", &num); sprintf(buff, "%d\n", num + 1); lseek(fd, 0, SEEK_SET); write(fd, buff,strlen(buff)); } flock(fd,LOCK_UN); fclose(f); return 0; } (2)执行结果如下: 2、(1)新建文件,编写程序如下: #include #include #include #include int main () { int fd1[2]; int fd2[2]; pid_t pid; pipe(fd1); pipe(fd2); pid = fork(); if (pid == 0) { close(fd1[1]); close(fd2[0]); int num; int sum = 0; char str[10]; while(read(fd1[0], str, 100)>0) { sscanf(str, "%d", &num); printf("receive a number : %d\n", num); fflush(stdout); sum += num; } close(fd1[0]); sprintf(str, "%d", sum); write(fd2[1], str, strlen(str)); close(fd2[1]); _exit(0); } else { int n; char str[10]; close(fd1[0]); close(fd2[1]); while(1) { scanf("%d", &n); if(n == -1)break; sprintf(str, "%d\n", n); write (fd1[1], str, strlen (str)); } close(fd1[1]); read(fd2[0], str, 100); close(fd2[0]); printf("\nsum is %s\n", str); fflush(stdout); _exit(0); } return 0; } (2)执行结果如下: 3、实验总结 通过这次实验,使我了解了文件锁机制是如何控制多进程共享同一文件的,以及系统是如何利用双向管道机制实现进程间通信。   成绩   指导教师   日期               注:请用A4纸书写,不够另附纸。   
/
本文档为【进程间通信实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索