操作系统课程设计论文(设计).doc

上传人:文库蛋蛋多 文档编号:4212777 上传时间:2023-04-10 格式:DOC 页数:12 大小:116KB
返回 下载 相关 举报
操作系统课程设计论文(设计).doc_第1页
第1页 / 共12页
操作系统课程设计论文(设计).doc_第2页
第2页 / 共12页
操作系统课程设计论文(设计).doc_第3页
第3页 / 共12页
操作系统课程设计论文(设计).doc_第4页
第4页 / 共12页
操作系统课程设计论文(设计).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《操作系统课程设计论文(设计).doc》由会员分享,可在线阅读,更多相关《操作系统课程设计论文(设计).doc(12页珍藏版)》请在三一办公上搜索。

1、目 录1 引言11.1 操作系统课程设计的性质11.2 操作系统课程设计的目的11.3 操作系统课程设计的具体内容和要求11.4 操作系统课程设计的意义11.5 论文的结构安排12 系统分析与设计22.1 系统要求22.2 模块说明22.2.1 文件的逻辑结构22.2.2 文件、目录的物理结构32.2.3 磁盘块的分配与回收32.2.4 用户接口43 系统实现43.1 磁盘管理43.1.1 全局变量43.1.2 初始化43.1.3 磁盘块的分配53.1.4 磁盘块的回收63.2文件63.2.1 查找同名文件63.2.2 移动文件73.3目录93.2.1 删除目录94体会与收获101 引言1.1

2、 操作系统课程设计的性质操作系统是计算机科学与技术专业的主要专业基础课和主干课。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。操作系统课程设计有助于学生对操作系统的地位,作用产生更全面更详尽的认识、理解。1.2 操作系统课程设计的目的 1、通过模拟操作系统原理的实现,加深对操作系统工作原理和操作系统实现方法的理解;2、通过模拟操作系统原理的实现练习编程。1.3 操作系统课程设计的具体内容和要求1、文件管理和用户接口;2、存储管理;3、设备管理;4、进程管理。1.4 操作系统课程设计的意义通过模拟操作系统原理的实现,加深

3、对操作系统工作原理和操作系统实现方法的理解,掌握了初步分析实际问题的能力,为其今后在相关领域开展工作打下坚实的基础。同时使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。1.5 论文的结构安排本论文主要阐述四部分内容。一、引言部分,主要说明本次操作系统课程设计的性质、教学目的、教学任务与要求、意义以及论文的结构安排;二、系统分析与设计部分,主要阐述系统的主要功能模块以及每个模块计划采用的实现方法和原理;三、系统实现部分,主要通过PDL等工具描述主要模块的实现流程;四、结束语部分,主要书写已经实现的本系统存在的不足、改进方案和在课程设计中的体会与收获。2 系统分析

4、与设计2.1 系统要求1、文件管理和用户接口部分实现的主要是单用户的磁盘文件管理部分,包括:(1)、文件的逻辑结构(2)、文件的物理结构(3)、目录结构(4)、文件与目录操作(5)、磁盘块分配与回收2、磁盘模拟(1)、磁盘是断电后内容不丢失的,因此用文件模拟磁盘。要求模拟系统存在两块硬盘:(2)、用一个文件disk1模拟磁盘(3)、磁盘的每个盘块128字节,模拟磁盘共有256块。(4)、磁盘中第0块存放专用块内容,第1、2块存放根目录,其余存放子目录和文件。2.2 模块说明2.2.1 文件的逻辑结构1、文件的逻辑结构采用流式结构;2、文件的内容:文件的内容均采用文本文件,系统中有两种文件:(1

5、)、一种是存放任意字符的文件(2)、一种是可执行文件:可执行文件的内容就是系统内进程的程序体。3、文件中要有一种特定命令的“可执行”文件,文件中的命令非常简单,仅仅包括以下几种指令:(1)、x=?: 给i赋值一位数。(2)、x+: i加1。(3)、x-: i减1。(4)、!?: 第一个?为A,B,C中某个设备,第二个?为一位数,表示使用设备的时间(由于没有实际设备,所以无法知道设备何时工作完成,所以假定一个数,这个数随着系统时间增加而递减,减到0时,认为是设备工作完成)。(5)、end: 表示文件结束,同时将结果写入文件out,其中包括文件路径名和i的值。2.2.2 文件、目录的物理结构文件的

6、物理结构采用索引文件方式。索引文件由三张表组成,第一张表为一个256*6的二维表,每一行记录文件的索引信息,包括文件名(目录名)、文件目录、文件属性;第二张表是一个256*128的二维表,存放着文件的索引块号;第三张表是一个长度为256的一维表,第i个单元代表第一张表与第二张表的第i行信息是否为有效信息。目录采用三级目录,最多能实现“我的电脑C:folderfolder文件”。采用目录项分解法,即把目录分为两部分:符号目录项(文件名即相应的盘块号)和基本目录项(包含除了文件名外的其余全部信息)。具体方式如图2-1:图2-1 目录分项分解图2.2.3 磁盘块的分配与回收磁盘使用情况用空闲块成组链

7、接法来记录:把空闲块分成若干组,把指向一组中各空闲块的指针集中在一起,每一组的第一个空闲块中登记下一组空闲块的块号和空闲块数,余下不足一组块数的空闲块的块号级快数登记在一个专用块中,这样既可方便查找,又可减少为修改指针而启动的磁盘的次数,在本系统中将第0块作为专用块,其余的存放在一个二维数组中。每一个空闲块可索引32项,一共有四个空闲块,可索引128块。图2-2是空闲块成组链接示意图:图2-2 空闲块成组链接示意图2.2.4 用户接口用户接口提供用户命令接口,具体实现以下命令:1.创建文件:create 文件名2.拷贝文件:copy 源文件名 目标文件名 3.删除文件:delete 文件名4.

8、移动文件:move 源文件名 目标文件名(磁盘内和磁盘间文件移动不同,磁盘内的移动实际只是目录的改变,并不需要真的移动文件;磁盘间的文件移动实际上是先拷贝文件到目标磁盘,然后再删除源文件。)5.编辑文件:edit 文件名(此命令完成对文件的编辑,只读文件不可以修改。)6.改变文件属性:change 文件名 属性(将文件在只读和非只读、隐藏和非隐藏之间转换。)7.磁盘格式化命令:format8建立目录:makdir 目录名(建立目录,若有同名目录存在,则建立失败。)9.删除目录:deldir 目录名(既可以删除空目录,又可以删除非空目录,对与非空目录,首先要删除其下文件和目录,然后才能删除其本身

9、。)3 系统实现3.1 磁盘管理3.1.1 全局变量public byte Menu = new byte256; /根目录,两个盘块public byte disk = new byte32768; /每个盘块128字节,每个磁盘128块。两个盘块 public int zmy_point = 31; /空闲首地址指针public int zmy_get = 31; /得到的空闲区域指针public int zmy_num = new int4;public int zmy_sum = 0; /分出的空闲块数static int zmy_k = 0; /回收时回收区的第二维角标public

10、byte, zmy_block = new byte32, 3; /空闲块3.1.2 初始化根据成组连接法,将磁盘的空闲块进行链接,具体如下:public void Create() zmy_num0 = 32; /专用块剩余块数 zmy_num1 = 32; zmy_num2 = 64; zmy_num3 = 96; for (int i = 3; i 32; i+)/专用块 diski = Convert.ToByte(i); /索引快 for (int i = 0; i 32; i+) zmy_blocki, 0 = Convert.ToByte(zmy_num1+); for (int

11、 i = 0; i 32; i+) zmy_blocki, 1 = Convert.ToByte(zmy_num2+); for (int i = 0; i 1 i=L+空闲块数; 从i单元得到一个空闲块号; 把该块分配给申请者; 空闲块数减一;当空闲块数=1 取出L+1单元内容(第一块块号或0); 其值=0无空闲块,申请失败提示; 其值!=0 把该块内容复制到专用块内;把该块分配给申请者;专用块的内容读到内存L开始的区域。3.1.4 磁盘块的回收释放空闲块的时候与回收正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。具体算法如下:查

12、询L单元内容(空闲块数)当空闲块数32 空闲块数加一;j=L+空闲块数; 归还该块给j单元; 当空闲块数=32 把内存中登记的信息写入归还块中; 把归还号填入L+1单元; 把L单元置1。3.2 文件3.2.1 查找同名文件查找是否存在同名文件只需查询索引表即可。具体算法如下:分割路径;如果路径长度为6,代表三级文件For(int i=0;i256;i+)找寻表zmy_path的第一列,看是否与目标文件符合;如果符合,继续查找zmy_path的第二列,看是否与目标文件符合;如果符合,继续查找zmy_path的第三列,看是否与目标文件符合;如果符合,继续查找zmy_path的第四、五列,看是否与目

13、标文件符合;如果符合,返回找到的行号i;如果不符合,返回-1;如果路径长度为5,代表二级文件For(int i=0;i256;i+)找寻表zmy_path的第一列,看是否与目标文件符合;如果符合,继续查找zmy_path的第二列,看是否与目标文件符合;如果符合,继续查找zmy_path的第三、四列,看是否与目标文件符合;如果符合,返回找到的行号i;如果不符合,返回-1;如果路径长度为4,代表根级文件For(int i=0;i256;i+)找寻表zmy_path的第一列,看是否与目标文件符合;如果符合,继续查找zmy_path的第二、三列,看是否与目标文件符合;如果符合,返回找到的行号i;如果不

14、符合,返回-1;该算法既可以用来找是否存在同名文件,也可以用于查找目标文件是否存在。3.2.2 移动文件由于该系统的目录为三级目录,故移动文件时会出现5种情况:(1)、两个一级目录下文件;(2)、一个一级目录下文件,一个二级目录下文件;(3)、两个二级目录下文件;(4)、一个二级目录下文件,一个三级目录下文件;(5)、两个三级目录下文件。每种情况又分为同目录下文件,不同目录下文件。具体算法如下:查找目标文件是否存在;如果目标文件不存在出错提示;如果目标文件存在返回源文件在目录表中的位置,以修改目录登记项;如果是两个一级目录下文件如果是相同目录下的文件修改目录项;如果是不同目录下的文件调用cop

15、y函数,将源文件复制到目标处;调用delete函数,删除源文件;修改目录项;如果是一个一级目录下文件,一个二级目录下文件如果是“move X:a.txt Y:foldera.txt”情况如果是不同根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果不存在同名文件如果目标文件夹不存在,创建目标文件夹;删除源文件;修改目录项;如果是同一根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果目标文件夹存在,无重名文件修改登记项;否则创建目标文件夹;修改目录项;如果是“move Y:foldera.txt X:a.txt”情况如果是同一根目录修改登记项;如果是不同

16、根目录调用拷贝函数复制文件;修改登记项;如果是两个二级目录下文件如果是同目录下文件修改登记项;如果是不同目录下文件查看目标文件夹是否存在;如果不存在创建目标文件夹;修改登记项;如果是一个二级目录下文件,一个三级目录下文件查看是否是“move Y:folder a.txt X: folder folder a.txt”情况如果是不同根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果不存在同名文件如果目标文件夹不存在,创建目标文件夹;删除源文件;修改目录项;如果是同一根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果目标文件夹存在,无重名文件修改登记项;

17、否则创建目标文件夹;修改目录项;查看是否是“move X: folder folder a.txt Y:folder a.txt”情况如果是同一根目录修改登记项;如果是不同根目录调用拷贝函数复制文件;修改登记项;如果是两个三级目录下文件如果是同目录下文件修改登记项;如果是不同目录下文件查看目标文件夹是否存在;如果不存在创建目标文件夹;修改登记项;其他文件命令由本组另一个组员完成。3.3 目录该系统支持三级目录结构。目录操作包括创建目录,删除目录。3.2.1 删除目录删除目录要考虑目录中内容的删除。具体算法如下:查看目标目录是否存在如果目标存在查看该目录是几级目录如果是三级目录查找该目录下的文件

18、;调用delete函数删除文件;如果是二级目录查找该目录下是否还存在目录如果还存在目录,查找次目录下的文件,调用delete函数删除文件如果不存在其他目录,查找目标目录下的文件,调用delete函数删除文件。如果目标不存在出错提示;4 体会与收获通过本次实验我对操作系统对文件、目录的物理组织,逻辑组织有了更深刻的理解。但还是存在着很多问题。首先,这个实验的索引有待完善。并没有实现多级索引,而是为了编程的方便采用了最简单的索引方式。其次,这个实验的很多数据结构的设计没有考虑到效率问题,而是以较大的空间换取编程实现的方便。这是非常不理想的。希望以后有机会再对本实验进行完善。虽然这个实验做得不够完善,但是这是对我意志品质的重大考验,是我对个人能力有了新的认知。人的能力是因自我认知的不同而不同,人的命运是因选择的不同而不同。参考文献操作系统习题解答与实验指导. 王煜,张明,刘振鹏. 中国铁道出版社. 2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号