操作系统原理----文件虚拟管理

上传人:jkkj****324 文档编号:159428950 上传时间:2022-10-09 格式:DOCX 页数:30 大小:219.15KB
收藏 版权申诉 举报 下载
操作系统原理----文件虚拟管理_第1页
第1页 / 共30页
操作系统原理----文件虚拟管理_第2页
第2页 / 共30页
操作系统原理----文件虚拟管理_第3页
第3页 / 共30页
资源描述:

《操作系统原理----文件虚拟管理》由会员分享,可在线阅读,更多相关《操作系统原理----文件虚拟管理(30页珍藏版)》请在装配图网上搜索。

1、操作系统原理课程设计报告姓 名: 班 级: 学 号: 指导老师: 年 月 日日28目录一、操作系统统原理课程程设计的目的的与要求11、目标:112、要求:11二、简述课程设设计内容、主主要功能和实实现环境21、主要功能:22、主要设计内内容:23、运行环境:2三、任务的分析析、设计、实实现和讨论31、任务的分析析32、任务的设计计与实现(分分别给出系统统总控和本人人负责实现的的算法流程图图与说明)43、操作过程和和结果分析74、思考题的解解答和讨论11四、操作系统统课程设计计小结(收获获、不足与建建议)12五、附录(主要要源程序和运运行结果的清清单)13一、操作系统统原理课程程设计的目的的与要

2、求1、目标:随着社会信息量量的极大增长长,要求计算算机处理的信信息与日俱增增涉及到社会会生活的各个个方面。因此此,文件管理理是操作系统统的一个极为为重要的组成成部分。学生生应该运用独独立的高级语语言来编写一一个简单和可可操作的文件件操作系统,模模拟文件管理理的工程运作作。从而对各各种文件操作作指令的实质质内容和过程程原理有比较较深刻的了解解,掌握他们们的实施方法法加深理解课课堂上讲授过过的知识。我小组需要实施施的文件管理理是任务六,包包括文件系统统的:建立,关关闭以及写的的功能。2、要求:(1)设计一一个多(n)用用户的文件系系统,每个用用户户最多保保存m个文件件。(2)限制用用户在一次运运行

3、中只能打打开一个文件件。(3)系统应应能检查打入入命令的正确确性,出错是是要能够显示示出错的原因因。(4)对文件件的权限必须须有保护措施施,如果只能能运行,允许许读,允许写写等。在每次次打开文件时时,根据本次次打开的要求求,设置保护护级别,即可可有二级保护护。(5)对文件件的操作表述述中必须有以以下指令: 建立: creeate() 删除: dellete() 打开: opeen() 关闭 cllose() 读: read() 写: wrrite()二、简述课程设设计内容、主主要功能和实实现环境此次实验的基基本内容就是是完成一个可可执行的文件件系统管理的的操作系统。1、主要功能:一个由10个用

4、用户的操作系系统,每个用用户最多保存存10个文件件,一次运行行中用户可打打开5个文件件。系统对相应的操操作判断操作作性的正确与与否并进入相相应的菜单运运行。为使用用者提供了操操作的方便,不不需要敲代码码来实现程序序的功能。该该程序设置了了用户登入,创创建文件,打打开文件,关关闭文件,写写文件以及对对用户文件总总体概况的结结果显示。另另外,为了更更加真实的反反应该系统的的对文件可执执行程度的判判断,添加了了保护码控制制文件的读写写操作的安全全性。2、主要设计内内容:(1)本实习设设计一个100个用户的文文件系统,每每个用户最多多可保存100个文件,每每个文件名都都为单个字符符,一次运行行中用户可

5、打打开5个文件件。(2)程序采用用二级文件目目录,即设置置了主文件目目录(MFDD)和用户文文件目录(UUFD)。前前者应包含文文件主(即用用户)及他们们的目录区指指针;后者应应给出每个主主文件占有的的文件目录,即即文件名,保保护码,文件件长度以及他他们存放的位位置等。另外外为打开文件件设置了运行行文件目录(AAFD),在在文件打开时时应填入打开开文件号,本本次打开保护护码和读写指指针等。(3)为了便于于实现,对文文件的读写作作了简化,在在执行读写命命令时,只修修改读写指针针,并不进行行实际文件的的读写操作。3、运行环境: 课程设计的实实现环境是在在WINXPP20000下运行Miicroso

6、oft Viisual C+和在在WINXPP20000下运行WOORD20003。三、任务的分析析、设计、实实现和讨论1、任务的分析析(1)、整个源源程序采用一一维数组来定定义。用户登登录采用最简简单的选择型型,总共设置置10位用户户,登陆即选选择相对应的的用户名。文文件目录的检检索是使用了简单单的线性搜索索,而没有采采用哈希等有有效的算法。该设计的程序的保护码形式采取简单的单字符,分为3种,其中分别是0-只可读,1-只可写,2-可读写。另外对于文件打开与关闭的操作设置了单字节的标识符有,0-文件已关闭,1-文件未关闭。(2)、整个个程序的布局局应该是有77个函数,分分别为Inccitial

7、lize()初始化函数,createe()建立文件函数数,open()对文件的的打开函数,closee()对文件件的关闭函数,writee()对文件件的写函数,Show()显示概况信息息的函数和main()主函数。每个个函数都是实实现改程序的的重要环节。创建文件函数决定了整个程序的关键它需要准确的定义与算法。在定义函数时定义结构体,把需要的变量定义完整,整个程序主要还是通过数组的运用来完成的。通过数组来衔接主目录和用户目录来执行之后的操作。(3)、主文文件目录与用用户目录的结结构图如下图图1-1:UFDMFD用户名文件目录指针用户名文件目录指针用户名文件目录指针文件名保护码文件长度文件名文件名

8、保护码文件长度文件名图1-1 文文件系统目录录结构图(4)、打开文文件目录如下下图图1-22所示:打开文件号打开保护码读写指针图1-2 打打开文件目录录图2、任务的设计计与实现(分分别给出系统统总控和本人人负责实现的的算法流程图图与说明)(1)、在编译译程序实现功功能的任务中中,我主要负负责最初的结结构体定义,对对关键变量的的初始化以及及对全程序的的修改及完善善。定义结构构体以及变量量是程序的开开头,也是关关键因素之一一,对程序编编译时所采用用的算法进行行了决定性作作用。(2)、定义的的结构体以一一维数组的形形式定义,便便于组员之间间相互理解与与编译。结构体定义:a、Mfd用户户目录对象名类型

9、说明usernamme9Char型数组组用户名CountInt对用户数的计数数器Ufd UFDDFileenum文件结构体数组组文件目录数组Mfd MFDDUserrnum 数组用户数的数数组b、Afd 文文件目录文件件打开目录对象名类型说明OpenNoInt打开文件号ProInt保护码Afd AFDDOpennnum数组打开文件数数c、Ufd文文件目录对象名类型说明FilenammeChar文件名Proint文件保护码Lengthint文件长度FlagInt文件打开标识号号Afd AFDDOpennnum数组打开文件数Ufd UFDDFileenum数组文件数量(3)、初始化化定义:int

10、i,j=0;两两个变量分别别代表MFDD和UFD中中所指的当前前位置MFDi.UFDj.fiilenamme=NULLL;文件名名设为空MFDi.UFDj.fllag=0;打开标识符符为关闭MFDi.UFDj.leength=0;长度为为0MFDi.UFDj.prro=3;保保护码不存在在MFDi.UFDj.AFFD-OppenNo=0;打开目目录号为0(4)、操作模模拟流程:打开文件号j打开保护码AFDUFDMFD用户名用户k用户名文件i保护码文件长度文件名(5)、详细说说明:在设计方面,是是按数组套数数组的思想进进行定义。即即Mfd数组组中套Ufdd数组,再UUfd数组中中套Afd数数组。

11、这样不不需要指针的的定义,也能能很有效的找找到用户所对对的文件以及及文件和所对对的文件打开开号。但是这这样也有缺陷陷,需要定义义很大的数组组容量,占用用了很多空间间,另外,因因为定义的是是字符型而没没有定义字符符型数组,导导致对于文件件名的定义执执行和输出只只能实现单字字节。(6)、总体设设计概要:a、结构体定定义完成后,将将定以后的变变量以及数组组等信息放入入各个函数进进行编译操作作,做为最主主要的开头核核心函数Crreate()创创建文件函数数,编译者按按照定义的结结构体把要求求的3位安全全码改成了11位,由“0-2”三个数字实实现对文件的的读写操作的的保护,同时时用了多个循循环体来对操操

12、作者可能出出现的误操作作做了相应合合理的处理,另另外,“MFDkk.UFDDi.AAFDi.OpennNo=coount+;”对打开函数数中打开号的的处理也提前前完成。Createe的返回值为为“returrn couunt;”的值要在打打开函数中赋赋值给打开号号。Open和Cllose函数数由另一位成成员完成,其其中Open()打打开函数按照照要求进行,一一个循环体“whilee(iFiilenumm)”打开文件“MFDkk.UFDDi.fflag=11;”为标识码的的设置,初始始为0现在打打开后改为11。Close()关关闭函数中“if(MFFDk.UFDii.flaag=1”判断标识码码

13、,“MFDkk.UFDDi.fflag=00;”文件关闭后后将标识码的的值改为”0”。我和另一一位成员一起起完成wriite()写写文件函数的的编译,“MFDkk.UFDDi.ppro=11|MFDDk.UUFDi.pro=2”和“if(MFFDk.UFDii.flaag=1)”;两句判断断语是否可写写入和是否文文件已经打开开将保护码和和标识码的作作用发挥出来来,并且写函函数添加了将将文件长度增增加的功能“lengtth=lenn+MFDk.UFFDi.lengtth;”Show()显显示信息函数数将之前保存存的信息输出出,以简明概概要的输出该该文件管理系系统对文件操操作后的信息息,Showw

14、()函数主主要需要之前前函数的保存存工作,之前前函数编辑成成员未能将内内容保存在各各自的函数中中,在之后的的修改中得以以实现,Write函数数中 对长度度的保存:“MFDkk.UFDDi.llengthh=lenggth;”Create函函数中 对文文件名的保存存:“MFDkk.UFDDi.ffilenaame=naame;”对保护码码的保存:“MFDkk.UFDDi.ppro=prro;”对长度的保存:“MFDkk.UFDDi.llengthh=lenggth;”打开码的的保存:“MFDkk.UFDDi.AAFDi.OpennNo=coount+;”主函数mainn的编译成员员,是将用户户函

15、数与主函函数合并,整整个程序中没没有用户函数数user(),并并导致MDFF结构体所定定义的useernamee9和ccount没没有利用。将将主界面显示示格式设为菜菜单操作,这这对于思考题题的要求打到到了效果。此此外,其定义义了9 个用用户并通过99个if语句句判断用户名名的存在性运运用swittch语句施施行对界面的的选择菜单操操作。b、程序的主要要的流程结构构如下所示,图图1-5Close()Write()Create()否选择用户名是否存在该用户报告无此用户重新选择初始化运行文件表AFD输入菜单号是什么命令关闭程序open()退出Show()建立文件写程序显示当前目录保存当前文件目录打

16、开文件开始图1-5 文件件系统的总流流程图3、操作过程和和结果分析(1)用户登录录:在操作界界面中选择用用户登录(00-9)以及及错误操作如如图1-6所所示图1-6 选择择用户图1-7用户输输入错误重新新输入(2)建立文文件,选择11进入建立文文件的界面,输输入文件的名名字,保护码码以及长度即即可,可以建建立多个文件件,文件b长长度210保保护码2;文件a长长度341保保护码1;文文件名m长度度93保护码码0。以及错错误操作创建建同名文件图1-8 进入入用户6并建建立文件b图1-9 在用用户6下建立立文件a图1-9 在用用户6下建立立文件m图1-10 文文件存在(3)打开文文件,可以选选择2号

17、键来来打开已经建建立的文件;如果打开没没有建立的文文件会显示。分分别打开b、aa、m和未建建立的文件cc。图1-11 成成功打开文件件b图1-12 成成功打开文件件a图1-13 成成功打开文件件m图1-14 打打开不存在的的文件效果图图(4)关闭文件件,选择菜单单3号,即可可关闭已经建建立并且打开开的文件。如如果关闭不存存在的文件就就会提示该文文件不存在。分分别关闭b、aa、m以及未未建立的文件件d。图1-15 关关闭文件b图1-16 关关闭文件a图1-17 关关闭文件m图1-18 打打开没有建立立的文件(5)写文件,选选择4即可写写文件,在写写文件的时候候需输入文件件名,所需写写入文件信息息

18、的长度,对对被关闭的文文件写入和被被保护不能写写入的文件以以及对不存在在的文件写入入。分别对b文件写写入长度3110,总长度度520;对对a文件写入入510,总总长度8100;文件m写写保护不能写写入。再执行行菜单3,关关闭b文件,再再对b文件写写入。图1-19 写写文件b图1-20 写写文件a图1-21 写写文件m图1-22 写写未建立文件q图1-23 写写已被关闭的的文件b (6)显示文文件,输入55,系统会打打印出当前用用户已经输入入的文件信息息。 图1-24 显显示文件信息息(7)用户更换换,如果想更更换用户的话话,输入6即即可。图1-25 用用户更换(8)退出系统统,按7即可可退出程

19、序。4、思考题的解解答和讨论对于思考题1,本本次课程设计计程序已经使用了菜菜单方式操作作,每幅屏幕幕要为用户提提供足够的选选择信息,不不需要打入冗冗长的命令。该该方式使整个个操作界面简简洁明了,还还提高了操作作效率,同时时也为使用者者提供了方便便。具体代码码如下:printff(%s,请输入入对文件的命命令:n11:建立nn2:打开n3:关闭闭n4:写写n5:显显示文件nn6:用户切切换n7:退出n);scanff(%d,&ordder);whilee(ordeer!=7)swittch(orrder)casee 1:couunt=crreate(use,ccount);breaak;case

20、e 2:opeen(usee);breeak;casee 3:cloose(usse);brreak;casee 4:Wriite(usse);brreak;casee 5:Shoow(usee);breeak;casee 6:maiin();prinntf(%s,n请输入对对文件的命令令:n1:建立n22:打开nn3:关闭n4:写n5:显示示文件n66:用户切换换n7:退退出n);scannf(%dd,&orrder);对于思考题3,认认为应该设置置一个访问权权值,类似该该课程设计中中的保护码,22是可以访问问上级菜单和和下级菜单,11是只可以访访问下一级菜菜单,0是只只可以访问上上级菜单。

21、通通过设置共享享码来实现同同一级的共享享化,类似这这次课程设计计的flagg打开标识码码。校长教务处科研处校务处一 系十系教学行政科教学研究所研究生科科研科情报资料室技术服务部财务科基建科房管科总务科一一一实验室一二教研室一三研究室一一教研室一一三实验室一二教研室一三研究室一一教研室四、操作系统统课程设计计小结(收获获、不足与建建议)五、附录(主要要源程序和运运行结果的清清单)主要函数代码:void Inncitiaalize()/初始始化int i,j=0;for(i=0;iOOpenNoo=0;int creeate(iint k,int ccount)int i=0,lenngth,pp

22、ro;char nname;printff(%s,请输入入文件名(单单字符):);scanf(%s,&namee);/getcchar();while(iFillenum)if(MFFDk.UFDii.fillenamee!=NULLL)if(MMFDk.UFDi.fiilenamme=naame)priintf(%s,该文件已经经存在!);retturn ccount;i+;else breakk;if(i=Filennum)printtf(%ss,用户户文件已满,不可再创建建!);returrn couunt;printff(%s,请输入入文件的长度度:);scanf(%d,&lenggt

23、h);printff(%s,请输入入文件的保护护码(0-只只可读 1-只可写 22-可读写):);scanf(%d,&pro);for(i=0;iFFilenuum;i+)if(MFFDk.UFDii.fillenamee=NULLL)MFDk.UFFDi.filenname=nname;MFDk.UFFDi.lengtth=lenngth;MFDk.UFFDi.pro=ppro;MFDk.UFFDi.AFDii.OpeenNo=ccount+;prinntf(%s,创创建成功!);breaak;returnn counnt;void oppen(innt k)int i=0;intt pro

24、,OpenNNo;char nname;printff(%s,请输入入文件名:);scanf(%s,&namee);while(iFillenum)if(MFFDk.UFDii.fillenamee=namme)prinntf(输输入该文件保保护码:);scannf(%ss,&prro);prinntf(该该文件的打开开码为:);prinntf(%dn,MFDkk.UFDDi.AAFDi.OpennNo);prinntf(文文件已经打开开!);MFDk.UFFDi.flag=1;retuurn;elsei+;if(i=Filennum)printtf(%ss,不存存在该文件!n);void c

25、llose(iint k)int i=0;char nname;printff(请输入入文件名:);scanf(%s,&namee);while(iFillenum)if(MFFDk.UFDii.fillenamee=namme)if(MMFDk.UFDi.fllag=11)priintf(%s,文件已经成成功关闭!n);MFDDk.UUFDi.flagg=0;retturn;elsee priintf(文件本已处处于关闭状态态!n);retturn;else i+;if(i=Filennum)printtf(%ss,不存存在该文件!n);void Wrrite(iint k)int i=0;

26、int leen,lenngth;char nname; priintf(%s,请输入文件件名:);scanf(%s,&namee);while(iFillenum)if(MFFDk.UFDii.fillenamee=namme)if(MMFDk.UFDi.prro=1|MFDk.UFFDi.pro=2)if(MFDkk.UFDDi.fflag=1)prrintf(写入文件件信息的长度度:);sccanf(%d,&len);leength=len+MMFDk.UFDi.leength;prrintf(文件现在在长度为:);prrintf(%dnn,lenngth);prrintf(文件已经经成

27、功写入!n);MFFDk.UFDii.lenngth=llengthh;reeturn;elsse prrintf(%s,文件处于于关闭状态!请先执行打打开命令再进进行写入!n);reeturn;elseepriintf(%s,对该文件没没有写权限!n);retturn;else i+;if(i=Filennum)printtf(%ss,不存存在该文件!n);void Shhow(innt k)int i;cout文件名tt保保护码t长度enddl;for (ii=0;i=9;i+)coutMFDk.UFFDi.filennametMFDk.UFFDi.protMFDk.UFFDi.lengtthenndl;Main()int i,oorder,use;switch(orderr)casee 1:couunt=crreate(use,ccount);breaak;casee 2:opeen(usee);breeak;casee 3:cloose(usse);brreak;casee 4:Wriite(usse);brreak;casee 5:Shoow(usee);breeak;casee 6:maiin();

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!