操作系统课程设计实验报告

操作系统课程设计实验报告

ID:6122879

大小:135.00 KB

页数:16页

时间:2018-01-03

操作系统课程设计实验报告_第1页
操作系统课程设计实验报告_第2页
操作系统课程设计实验报告_第3页
操作系统课程设计实验报告_第4页
操作系统课程设计实验报告_第5页
资源描述:

《操作系统课程设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统课程设计实验报告姓名:**学号:**班级:**地点:**2012年**月**日任务说明共完成四个任务,任务一:I/O系统调用开销比较;任务二:实现一个简单的shell;任务三:进程/线程同步;任务四:文件内容的并行搜索。其中任务一,完成了标准c和unix下的实验,mmap没有完成,任务三完成了线程同步,进程同步没有完成。任务一要求在LINUX平台用C编程逆序一个文本文件,注意先是逆转的结果必须是原文件名。请分别使用:(1)标准C的I/O库函数:fopen、fread、fwrite(2)Unix的I/O函数:op

2、en、read、write(3)open和mmap要求尽量考虑效率,比较三种方法的性能。任务二要求实现一个简单的shell(命令行解释器),类似于sh,bash,csh等。你的shell必须支持以下内部命令:cd<目录>更改当前的工作目录到另一个<目录>。如果<目录>未制定,输出当前工作目录。如果<目录>不存在,应当有适当的错误信息提示,制革命令应该也能改变PWD的环境变量;enbiron列出所有环境变量字符串的设置(类似于Unix系统下的env命令);echo<内容>显示echo后的内容且换行;help简短概要的输出

3、你的shell的使用方法和基本功能;jobs输出shell当前的一系列子进程,必须提供子进程的命名和PID号;quit,exit,bye退出shell。所有的内部命令应当优先于在$PATH中同名的程序。任何非内部命令必须请求shell创建一个新进程,且该子进程执行指定的程序。这个新进程必需继承shell的环境变量和制定的命令行参数。任务三要求编程实现下图的效果,要求分别使用进程和线程1.进程+SYSV信号量2.线程实现+Posix同步操作API任务四要求在阅读大型项目代码时,经常要搜索某个标识符,找出该标识符的声明、定

4、义或引用的地方(某文件的哪一行)。本任务要求实现一个程序idfind,其使用格式如下:idfind[-jn]iddirname选项-j指定并行线程数目。如果省略该选项,则只启动一个线程。id表示要查找的标识符,dirname表示项目所在目录。实现过程任务一I/O系统调用开销比较任务分析(1)stardard.c(fopen、fread和fwrite)使用标准C的I/O方式读写文件。程序从命令行参数中取得测试文件名,和每次读写数据的大小size,然后程序打开测试文件输入流,和建立一个唯一名字的空文件在当前目录并打开它的文

5、件流。定位到文件末尾-size处,读取数据到buffer数组中。将buffer内容置反。并写入输出文件。依次从文件-2*size读取size个数据到buffer,执行相同操作,直到文件内容全部处理完毕。最后删除输入文件,并将输出文件重命名为输入文件的文件名。(2)unix.c(open、read和write)使用UINXI/O方式读取文件,同stardard.c原理相同,但文件读写时调用的是UNIX接口。(3)mmap.c(open和mmap)使用文件映射方式读写文件。程序从参数中取得测试文件名,和每次读写数据的大小s

6、ize,然后程序打开测试文件并从文件尾部-size位置映射size到用户空间,建立一个唯一名字的空文件,调节文件大小为输入文件大小。并映射输出文件到用户空间,从输入文件内存开始复制数据到输出文件内存,直到size个数据处理完毕,再从输入文件-2*size处映射size文件到内存,重复直到整个文件都处理完毕。最后删除输入文件,并将输出文件重命名为输入文件文件名。特别注意,mmap映射文件的偏移只能为linux中一页大小的整数倍,也就是说4KB的整数倍。任务实施1.stardard.c标准I/O读写方式文件分析:size_

7、tsize=atoi(argv[2]);从参数2中取得一次读写文件大小。if(mktemp(template)==NULL)创建唯一文件名的文件在当前目录下。do{if(fread(buffer,1,size,src)

8、ze*2,SEEK_CUR)==0);使用fseek定位函数从文件尾部以此-size,-2*size,-3*size…位置读取数据到buffer中,在buffer中置反数据内容,并写入输出文件中。直到文件所有数据都处理完毕。也就是说fseek从当前位置向前偏移发送错误时,即文件数据都处理完毕。if(rename(template,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。