- 200
- 0
- 约7.59千字
- 约 13页
- 2017-01-30 发布于重庆
- 举报
操作系统第二次实验报告
操作系统进程实现文件誊抄
计算机科学与技术学院
目录
一、实验目的和要求 2 2
三、实验步骤 2
四、与分析 3
4.的 3
4.2、大文件的拷贝 4
4.3检测 5 6
5.1.并发进程 6
5.2.顺序进程 9
六、实验体会 12
一、要求1) 掌握Linux操作系统的进程创建和终止操作;
2) 利用Linux操作系统提供的信号量工具实现进程间的同步;
3) 掌握对共享内存的相关操作;
4) 基于生产者-消费者同步的原理实现双缓冲区的誊抄。
二、实验内容
任意选择一个文本文件,采用并发进程实现文件誊抄,将其复制为另一个文件。
创建get、copy、put三个进程共用两个缓冲区s、t。get进程负责不断地把原始文件内容送入缓冲区s中,copy进程负责从缓冲区s中取出上述内容复制到缓冲区t中,而put进程负责把上述内容从缓冲区t中取出复制到目标文件中,用p、v操作实现这三个进程之间的同步。
三、步骤
1、并发进程:
1)、新建一个文本文件get.txt,并在文件中写入10KB的数据;
2)、在终端中编译写好的并发进程程序文件co_pro_copy.c,输入指令:gcc co_pro_copy.c -o co_pro_copy ;
3)、编译成功后,运行生成的可执行文件co_pro_copy:./co_pro_copy ;
4)、查看程序运行的时间,并且观察是否生成了备份文件put.txt;
2、顺序进程:
1)、在终端中编译写好的并发进程程序文件pro_copy.c,输入指令:gcc pro_copy.c -o pro_copy ;
2)、编译成功后,运行生成的可执行文件pro_copy:./pro_copy ;
3)、查看程序运行的时间,并且观察是否生成了备份文件put.txt;
3、比较并发进程和顺序进程的运行时间,比较两种方式的运行速度快慢;
4、将get.txt文件中的数据加大,使get.txt文件大小达到100KB,在来比较两种方式的运行速度的快慢。
四、实验与分析
4.1、小文件的拷贝
如下图图1所示,待拷贝的小文件get.txt的大小为3.1KB。
图1 小文件大小
如下图图2所示,并发进程的文件拷贝的运行时间为1.000736s,我在程序中设置三个子进程都执行完时才结束程序,也就是设置了三个子进程都同时完成的机制。只要其中有个子进程没执行完,它就会等待1s。
顺序进程的文件拷贝运行时间为1.001154s,也是这种等待机制实现所有子进程同时完成。从中可以看出顺序进程与并发进程的时间差不多,并发进程的时间稍微比顺序进程短一点。
图2 小文件的运行时间
4.2、大文件的拷贝
如下图图3所示,待拷贝的大文件get.txt的大小为31.5KB。
图3 大文件的大小
如下图图4所示,并发进程的时间为1.006561s,顺序进程的运行时间为1.011219s,
和小文件的运行时间比较可以看到。小文件时并发进程的运行速度就比顺序进程快1.71倍,大文件时并发进程的运行速度就比顺序进程快1.56倍。
图4 大文件的运行时间
4.3、拷贝结果检测
从下图图5中可以看到待拷贝文件get.txt的内容和拷贝文件put.txt的内容一致,说明文件拷贝功能实现。
图5 拷贝结果
五、程序
并发进程源代码:*************************************
*File_Name:co_pro_copy.c
*Author:
*Date:2013/12/22
*Function:并发进程文件的誊抄***************************************/
#includestdio.h
#includestdlib.h
#includestring.h
#includesys/types.h
#includesys/sem.h
#includesys/shm.h
#includesys/ipc.h
#includesys/time.h
#includeunistd.h
const size_t CACHE_LENGTH = 1024;
//采用信号灯机制实现p、v操作的数据结构和函数
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
struct seminfo *_buf;
};
int P(int semid, int semnum) {
struct sembuf sops = {semnum, -1, SEM_UNDO};
return (semop
您可能关注的文档
- 实验二 进程撤销模拟.doc
- 采用静态优先权优先算法的进程调度程序.doc
- 计算机应用技术专业大学生职业生涯规划书.doc
- 山东大学操作系统实验5进程互斥实验.doc
- linux进程和线程通信.doc
- 辽宁工程技术大学大学软件项目实训报告.doc
- 实验3 Windows虚拟内存.doc
- 北邮操作系统进程同步实验报告及源代码.docx
- 操作系统 生产者-消费者模型模拟进程调度.doc
- 使用ptrace向已运行进程中注入.so并执行相关函数.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)