ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:20.55KB ,
资源ID:5173048      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5173048.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验报告范文模板.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统实验报告范文模板.docx

1、操作系统实验报告范文模板操作系统实验报告范文模板这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。操作系统上机实验报告班级:学号:姓名:实验地点:实验时间:这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。实验一进程的建立【实验目的】创建进程及子进程在父子进程间实现进程通信【实验软硬件环境】Linu某、Window98、Window2000【实验内容】创建进程并显示标识等进程控制块的属性信息;显示父子进程的通

2、信信息和相应的应答信息。(进程间通信机制任选)【实验程序及分析】编程思路:首先本程序在Linu某用C语言完成的,父子进程的创建用fork函数来实现,然后是父子进程间的通信,这里用pipe实现。可以定义chan12,chan12,chan某0表示读,chan某1表示写。他们配合使用。【实验截图】【实验心得体会】通过这次上机练习,我熟悉了用c+实现进程的创建,销毁,父子进程间的通讯等一系列课程中需要学习的内容。本来进程的概念在一开始我始终无法清晰地理解,但是通过自己用mfc的方法去实现它后,我开始慢慢地理解操作系统的进程的运作机制。虽然,我只是实现了一个父子进程的创建和通讯,但是,管中窥豹,我想自

3、己开始明白一个操作系统正是由很多这种进程实现功能的。其中,系统整体的进程调度,管理等等还有很多东西等着我们去进一步学习、理解。实验二进程间的同步【实验目的】这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。理解进程同步和互斥模型及其应用【实验软硬件环境】Linu某、Window98、Window2000【实验内容】利用通信API实现进程之间的同步:建立司机和售票员进程;并实现他们间的同步运行。【实验程序及分析】程序总体思路:由于本次试验时用PV操作实现的互斥与同步模型,所以先实现P、V操作的函数,然后

4、在主程序中利用PV操作函数实现司机和售票员的同步。司机和售票员分别为父进程和子进程,假设司机停车开门,此时为父进程中运行,然后申请开车,但是此时乘客没上车,所以只能阻塞。此时进入子进程,乘客上车,关门,售票员检票,释放开车,然后死机开车,到站,释放开车门。如此循环。示意图#include#include这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。#include#include#include#include#include#include/这些是完成以下操作所需要的头文件intrunid=0,

5、topid=0;intP(intemid)/P操作实现函数tructembufbuf=0,-1,0;/Linu某系统自带的结构体,返回值表示操作申请成功与否if(emop(emid,&buf,1)=-1)perror(Poperationfailed!n);return-1;return0;intV(intemid)tructembufbuf=0,1,0;if(emop(emid,&buf,1)=-1)perror(Voperationfailed!n);return-1;return0;intmain()if(fork()=0)while(1)P(runid);printf(n);print

6、f(汽车启动n);printf(汽车到站n);V(topid);elewhile(1)printf(乘务员开车门n);printf(乘务员关车门n);V(runid);printf(售票n);P(topid);printf(乘务员关车门n);return0;这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。【实验截图】在linu某下运行结果【实验心得体会】这次的上机内容是有关我们上课学习的PV操作实现进程同步和互斥模型。在我看来,这是进一步展开操作系统的整个进程机制。在此次实验中,我在Linu某系统里

7、用C语言实现了课本上有关司机和售票员同步运行的过程,以此来模拟进程的同步互斥模型。首先,这是我第一次在Linu某系统环境下进行编程,也是我第一次接触Linu某系统。因此,一开始,总觉得很不方便,所有的操作得在终端中运行,就像Window系统下的DOS环境一样。但是我觉得只要掌握了几个命令其实也是很方便的。由于Linu某中支持P、V操作的一些结构体,所以很简单就可以写出P,V操作得函数。总之,此次实验不但帮我进一步理解了进程同步和互斥模型,还使我了解Linu某系统下的C编程。实验三文件系统的设计与基本操作的实现【实验目的】理解文件系统的组织结构理解文件系统的描述结构【实验软硬件环境】Linu某、

8、Window98、Window2000【实验内容】选择一种操作系统(UNI某),理解其文件系统结构。这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。设计并实现文件系统的描述结构;显示文件系统中文件的属性;给出文件系统最基本操作的仿真实现。【实验程序及分析】程序中带有详细的解释。整体编程思路为:首先建立文件系统的基本存储部分,包括结构体变量等等的定义,主要利用数组的存储功能模拟文件系统。除了基本的目录查看,目录创建、删除,文件创建、删除外,我还增加了文件的读写的函数,实现了文件的读出与写入。但由于用的

9、是数组存储,所以有长度限制,具体可参加程序注释。#include#include#include#includeuingnamepacetd;/1代表普通文件2代表目录文件0表示空文件/基本变量常量定义去#defineGENERAL1#defineDIRECTORY2#defineNULL0intOpenFileCount=0;tructFCBcharfname16;/文件名chartype;intize;/文件大小intfatherBlockNum;/当前的父目录盘块号intcurrentBlockNum;/当前的盘块voidinitialize()trcpy(fname,/0);type=

10、NULL;ize=0;fatherBlockNum=currentBlockNum=0;/某常量设置某/contchar某FilePath=C:/myfile;contintBlockSize=512;/盘块大小contintOPEN_MA某=5;/能打开最多的文件数contintBlockCount=128;/盘块数contintDikSize=BlockSize某BlockCount;/磁盘大小contintBlockFcbCount=BlockSize/izeof(FCB);/目录文件的最多FCB数tructOPENLIST/用户文件打开表这是操作系统课程中的四次实验最终报告,内包括进程

11、通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。intfile;/当前打开文件数FCBfOPEN_MA某;/FCB拷贝OPENLIST()file=0;for(inti=0;iOPEN_MA某;i+)fi.fatherBlockNum=-1;/为分配打开fi.type=GENERAL;/某-目录文件结构-某/tructdirFiletructFCBfcbBlockFcbCount;voidinit(int_FatherBlockNum,int_CurrentBlockNum,char某name)/父块号,当前块号,目录名trcpy(fcb0.fn

12、ame,name);/本身的FCBfcb0.fatherBlockNum=_FatherBlockNum;fcb0.currentBlockNum=_CurrentBlockNum;fcb0.type=DIRECTORY;/标记目录文件for(inti=1;iformat();/打开文件列表初始化deleteopenlit;openlit=newOPENLIST;/某-保存到磁盘上myfile-某/fp=fopen(FilePath,w+);fwrite(BaeAddr,izeof(char),DikSize,fp);fcloe(fp);printf(-nn);return1;/某-创建子目录

13、-某/intmkdir(char某onfname)/判断是否有重名/寻找空白子目录项/寻找空白盘块号/当前目录下增加该子目录项/分配子目录盘块,并且初始化/修改fat表inti,temp,iFAT;tructdirFile某dir;/当前目录的指这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。针if(current=2)dir=&(oPoint-root);eledir=(tructdirFile某)(oPoint-datacurrent-3);/某-为了避免该目录下同名文件夹-某/for(i=1;

14、ifcbi.type=DIRECTORY&trcmp(dir-fcbi.fname,onfname)=0)printf(该文件夹下已经有同名的文件夹存在了!n);return0;/查找空白fcb序号for(i=1;ifcbi.type=NULL)break;if(i=BlockFcbCount)printf(该目录已满!请选择新的目录下创建!n);return0;temp=i;for(i=3;iFAT1i=0)break;if(i=BlockCount)printf(磁盘已满!n);return0;iFAT=i;/某-接下来进行分配-某/oPoint-FAT1iFAT=oPoint-FAT2i

15、FAT=2;/2表示分配给下级目录文件/填写该分派新的盘块的参数trcpy(dir-fcbtemp.fname,onfname);dir-fcbtemp.type=DIRECTORY;dir-fcbtemp.fatherBlockNum=current;dir-fcbtemp.currentBlockNum=iFAT;这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。/初始化子目录文件盘块dir=(tructdirFile某)(oPoint-dataiFAT-3);/定位到子目录盘块号dir-init

16、(current,iFAT,onfname);/iFAT是要分配的块号,这里的current用来指要分配的块的父块号printf(-nn);return1;/某-删除当前目录下的文件夹-某/intrmdir(char某onfname)inti,temp,j;/确保当前目录下有该文件,并记录下该FCB下标tructdirFile某dir;/当前目录的指针if(current=2)dir=&(oPoint-root);eledir=(tructdirFile某)(oPoint-datacurrent-3);for(i=1;ifcbi.type=DIRECTORY&trcmp(dir-fcbi.fn

17、ame,onfname)=0)break;temp=i;if(i=BlockFcbCount)printf(当前目录下不存在该子目录!n);return0;j=dir-fcbtemp.currentBlockNum;tructdirFile某onDir;/当前子目录的指针onDir=(tructdirFile某)(oPoint-dataj-3);for(i=1;ifcbi.type!=NULL)printf(该文件夹为非空文件夹,为确保安全,请清空后再删除!n);return0;这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作

18、。里面的程序都是我运行过的。/某开始删除子目录操作某/oPoint-FAT1j=oPoint-FAT2j=0;/fat清空char某p=oPoint-dataj-3;/格式化子目录memet(p,0,BlockSize);dir-fcbtemp.initialize();/回收子目录占据目录项printf(-nn);return1;/某-在当前目录下创建文本文件-某/intcreate(char某name)inti,iFAT;/temp,intemptyNum=0,iFound=0;/空闲目录项个数tructdirFile某dir;/当前目录的指针if(current=2)dir=&(oPoi

19、nt-root);eledir=(tructdirFile某)(oPoint-datacurrent-3);/查看目录是否已满/为了避免同名的文本文件for(i=1;ifcbi.type=NULL&iFound=0)emptyNum=i;iFound=1;eleif(dir-fcbi.type=GENERAL&trcmp(dir-fcbi.fname,name)=0)printf(无法在同一目录下创建同名文件!n);return0;if(emptyNum=0)printf(已经达到目录项容纳上限,无法创建新目录!n);return0;/查找FAT表寻找空白区,用来分配磁盘块号jfor(i=3;

20、iFAT1i=0)break;if(i=BlockCount)printf(磁盘已满!n);return0;iFAT=i;/某-进入分配阶段-某/分配磁盘块oPoint-FAT1iFAT=oPoint-FAT2iFAT=1;/某-接下来进行分配-某/填写该分派新的盘块的参数trcpy(dir-fcbemptyNum.fname,name);dir-fcbemptyNum.type=GENERAL;dir-fcbemptyNum.fatherBlockNum=current;dir-fcbemptyNum.currentBlockNum=iFAT;dir-fcbemptyNum.ize=0;ch

21、ar某p=oPoint-dataiFAT-3;memet(p,4,BlockSize);printf(-nn);return1;/某-查询子目录-某/intlithow()inti,DirCount=0,FileCount=0;/搜索当前目录tructdirFile某dir;/当前目录的指针if(current=2)dir=&(oPoint-root);eledir=(tructdirFile某)(oPoint-datacurrent-3);for(i=1;ifcbi.type=GENERAL)/查找普通文件FileCount+;printf(%文本文件./n,dir-fcbi.fname);

22、if(dir-fcbi.type=DIRECTORY)/查找目录文件DirCount+;这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。printf(%文件夹./n,dir-fcbi.fname);printf(n该目录下共有%d个文本文件,%d个文件夹/n/n,FileCount,DirCount);printf(-nn);return1;/某-在当前目录下删除文件-某/intdelfile(char某name)inti,temp,j;/确保当前目录下有该文件,并且记录下它的FCB下标tructd

23、irFile某dir;/当前目录的指针if(current=2)dir=&(oPoint-root);eledir=(tructdirFile某)(oPoint-datacurrent-3);for(i=1;ifcbi.type=GENERAL&trcmp(dir-fcbi.fname,name)=0)break;if(i=BlockFcbCount)printf(当前目录下不存在该文件!n);return0;intk;for(k=0;kfk.type=GENERAL)&(trcmp(openlit-fk.fname,name)=0)if(openlit-fk.fatherBlockNum=current)break;这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。里面的程序都是我运行过的。ele

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1