




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北大学2009届本科生学年论文(设计)目 录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体会与收获1011河北大学2009届本科生学年论文(设计)1 引言1.1 操作系统课程设计的性质操作系统是计算机科学与技术专业的主要专业基础课和主干课。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。操作系统课程设计有助于学生对操作系统的地位,作用产生更全面更详尽的认识、理解。1.2 操作系统课程设计的目的 1、通过模拟操作系统原理的实现,加深对操作系统工作原理和操作系统实现方法的理解;2、通过模拟操作系统原理的实现练习编程。1.3 操作系统课程设计的具体内容和要求1、文件管理和用户接口;2、存储管理;3、设备管理;4、进程管理。1.4 操作系统课程设计的意义通过模拟操作系统原理的实现,加深对操作系统工作原理和操作系统实现方法的理解,掌握了初步分析实际问题的能力,为其今后在相关领域开展工作打下坚实的基础。同时使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力。1.5 论文的结构安排本论文主要阐述四部分内容。一、引言部分,主要说明本次操作系统课程设计的性质、教学目的、教学任务与要求、意义以及论文的结构安排;二、系统分析与设计部分,主要阐述系统的主要功能模块以及每个模块计划采用的实现方法和原理;三、系统实现部分,主要通过pdl等工具描述主要模块的实现流程;四、结束语部分,主要书写已经实现的本系统存在的不足、改进方案和在课程设计中的体会与收获。2 系统分析与设计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)、一种是存放任意字符的文件(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 文件、目录的物理结构文件的物理结构采用索引文件方式。索引文件由三张表组成,第一张表为一个256*6的二维表,每一行记录文件的索引信息,包括文件名(目录名)、文件目录、文件属性;第二张表是一个256*128的二维表,存放着文件的索引块号;第三张表是一个长度为256的一维表,第i个单元代表第一张表与第二张表的第i行信息是否为有效信息。目录采用三级目录,最多能实现“我的电脑c:folderfolder文件”。采用目录项分解法,即把目录分为两部分:符号目录项(文件名即相应的盘块号)和基本目录项(包含除了文件名外的其余全部信息)。具体方式如图2-1:图2-1 目录分项分解图2.2.3 磁盘块的分配与回收磁盘使用情况用空闲块成组链接法来记录:把空闲块分成若干组,把指向一组中各空闲块的指针集中在一起,每一组的第一个空闲块中登记下一组空闲块的块号和空闲块数,余下不足一组块数的空闲块的块号级快数登记在一个专用块中,这样既可方便查找,又可减少为修改指针而启动的磁盘的次数,在本系统中将第0块作为专用块,其余的存放在一个二维数组中。每一个空闲块可索引32项,一共有四个空闲块,可索引128块。图2-2是空闲块成组链接示意图:图2-2 空闲块成组链接示意图2.2.4 用户接口用户接口提供用户命令接口,具体实现以下命令:1.创建文件:create 文件名2.拷贝文件:copy 源文件名 目标文件名 3.删除文件:delete 文件名4.移动文件:move 源文件名 目标文件名(磁盘内和磁盘间文件移动不同,磁盘内的移动实际只是目录的改变,并不需要真的移动文件;磁盘间的文件移动实际上是先拷贝文件到目标磁盘,然后再删除源文件。)5.编辑文件:edit 文件名(此命令完成对文件的编辑,只读文件不可以修改。)6.改变文件属性:change 文件名 属性(将文件在只读和非只读、隐藏和非隐藏之间转换。)7.磁盘格式化命令:format8建立目录:makdir 目录名(建立目录,若有同名目录存在,则建立失败。)9.删除目录:deldir 目录名(既可以删除空目录,又可以删除非空目录,对与非空目录,首先要删除其下文件和目录,然后才能删除其本身。)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 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 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 磁盘块的回收释放空闲块的时候与回收正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。具体算法如下:查询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的第四、五列,看是否与目标文件符合;如果符合,返回找到的行号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;如果不符合,返回-1;该算法既可以用来找是否存在同名文件,也可以用于查找目标文件是否存在。3.2.2 移动文件由于该系统的目录为三级目录,故移动文件时会出现5种情况:(1)、两个一级目录下文件;(2)、一个一级目录下文件,一个二级目录下文件;(3)、两个二级目录下文件;(4)、一个二级目录下文件,一个三级目录下文件;(5)、两个三级目录下文件。每种情况又分为同目录下文件,不同目录下文件。具体算法如下:查找目标文件是否存在;如果目标文件不存在出错提示;如果目标文件存在返回源文件在目录表中的位置,以修改目录登记项;如果是两个一级目录下文件如果是相同目录下的文件修改目录项;如果是不同目录下的文件调用copy函数,将源文件复制到目标处;调用delete函数,删除源文件;修改目录项;如果是一个一级目录下文件,一个二级目录下文件如果是“move x:a.txt y:foldera.txt”情况如果是不同根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果不存在同名文件如果目标文件夹不存在,创建目标文件夹;删除源文件;修改目录项;如果是同一根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果目标文件夹存在,无重名文件修改登记项;否则创建目标文件夹;修改目录项;如果是“move y:foldera.txt x:a.txt”情况如果是同一根目录修改登记项;如果是不同根目录调用拷贝函数复制文件;修改登记项;如果是两个二级目录下文件如果是同目录下文件修改登记项;如果是不同目录下文件查看目标文件夹是否存在;如果不存在创建目标文件夹;修改登记项;如果是一个二级目录下文件,一个三级目录下文件查看是否是“move y:folder a.txt x: folder folder a.txt”情况如果是不同根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果不存在同名文件如果目标文件夹不存在,创建目标文件夹;删除源文件;修改目录项;如果是同一根目录查找目标文件夹是否存在,源文件在目标文件夹中是否存在同名文件;如果目标文件夹存在,无重名文件修改登记项;否则创建目标文件夹;修改目录项;查看是否是“move x: folder folder a.txt y:folder a.txt”情况如果是同一根目录修改登记项;如果是不同根目录调用拷贝函数复制文件;修改登记项;如果是两个三级目录下文件如果是同目录下文件修改登记项;如果是不同目录下文件查看目标文件夹是否存在;如果不存在创建目标文件夹;修改登记项;其他文件命令由本组另一个组员完成。3.3 目录该系统支持三级目录结构。目录操作包括创建目录,删除目录。3.2.1 删除目录删除目录要考虑目录中内容的删除。具体算法如下:查看目标目录是否存在如果目标存在查看该目录是几级目录如果是三级目录查找该目录下的文件;调用delete函数删除文件;如果是二级目录查找该目录下是否还存在目录如果还存在目录,查找次目录下的文件,调用delete函数删除文件如果不存在其他目录,查找目标目录下的文件,调用delete函数删除文件。如果目标不存在出错提示;4 体会与收获通过本次实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 娱乐主播招募课件
- 威尼斯的课件
- 重庆省考真题2025
- 2024年湖南郴州市宜章县事业单位招聘考试真题
- 威尼斯的小艇课件
- 平顺交通安全培训课件
- 工业安全生产培训内容课件
- 物流运输实务《第三版》B卷答案
- 平面向量投影作图课件
- FL118-14-Propanol-d5-生命科学试剂-MCE
- GB/T 3098.4-2000紧固件机械性能螺母细牙螺纹
- 保险投资发展历程保险分红知识前言
- 完美奖金制度课件
- 全新档案法专题学习讲座课件
- DB37-T 5026-2022《居住建筑节能设计标准》
- 线性代数试题及答案-线性代数试题
- 六年级上册道德与法治课件第四单元第8课
- 量具使用知识培训课件
- 新苏教版三年级上册科学全册教案
- Q-RJ 557-2017 航天型号产品禁(限)用工艺目录(公开)
- JIS C62133-2-2020 便携式密封二次电池及其电池的安全要求 第2部分:锂系统
评论
0/150
提交评论