操作系统课程设计_第1页
操作系统课程设计_第2页
操作系统课程设计_第3页
操作系统课程设计_第4页
操作系统课程设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0 1 引言 操作系统是计算机科学与技术专业的主要专业基础课和主干课 操作系统对计算机 系统资源实施管理 是所有其他软件与计算机硬件的唯一接口 所有用户在使用计算机 时都要得到操作系统提供的服务 通过模拟操作系统的全部或者部分功能的实现 加深对操作系统工作原理和操作系 统实现方法的理解 达到练习编程的目的 提高学生运用理论知识分析问题 解决问题 的能力 为学生从事科学研究和独立负担计算机及其应用方面的工作打好扎实的基础 河北大学工商学院 2011 级操作系统课程设计论文 设计 1 2 课程设计任务及要求 2 1 设计任务 模拟采用多道程序设计方法的单用户操作系统 该操作系统包括进程管理 存储管 理 设备管理 文件管理和用户接口四部分 本部分要求实现文件的逻辑结构 文件的物理结构 目录结构 磁盘分配和回收 文件的保护和用户接口 2 2 实现方法和原理 2 2 1 文件的逻辑结构 文件的逻辑结构采用流式结构 文件均采用文本文件 系统中有两种文件 一种是存放任意字符的文件 一种是可执行文件 可执行文件 的内容就是模拟系统内进程的程序体 文件中要有一种特定命令的 可执行 文件 文件中的命令非常简单 包括 x 给 x 赋值一位数 x x 加 1 x x 减 1 第一个 为 A B C 中某个设备 第二个 为一位数 表示使用设备的时间 由于没有实际设备 所以无法知道设备何时工作完成 所以假定一个数 这个数随着 系统时间增加而递减 减到 0 时 认为是设备工作完成 end 表示文件结束 同时将结果写入文件 out 其中包括文件路径名和 x 的值 2 2 2 磁盘模拟 用一个文件 disk 模拟磁盘 磁盘的每个盘块 64 字节 模拟磁盘共有 128 块 第 0 1 块存放文件分配表 第 2 块存放根目录 其余存放子目录和文件 2 2 3 目录结构 目录结构采用树型目录结构 目录项内容共十六个字节 目录项内容 8 个字节 目录名 文件名 3 个字节 河北大学工商学院 2011 级操作系统课程设计论文 设计 2 扩展名 1 个字节 可执行文件扩展名为 e 目录没有扩展名 目录 文件属性 1 字节 起始盘块号 1 个字节 文件长度 2 字节 目录没有长度 根目录 根目录位置固定 为磁盘第 2 块 大小固定 共 8 项 占用模拟磁盘第 2 块 子目录 位置不固定 大小不固定 2 2 4 磁盘分配 磁盘的分配采用链接结构 显式链接 的分配方式 系统采用文件分配表方式记录 磁盘空间的使用情况和链接结构的指针 因为磁盘有占用磁盘由 128 块 所以文件分配表中一项需要 1 字节 而磁盘由 128 块 因而需要 128 项 所以模拟磁盘空间中的第 0 1 块被用来存放文件分配表 2 2 5 用户接口 用户接口提供用户命令接口 要求实现以下命令 创建文件 create 拷贝文件 copy 删除文件 delete 移动文件 move 显示文件 type 编辑文件 edit 改变文件属性 change 磁盘格式化命令 format 建立目录 makdir 改变目录路径 chadir 删除空目录 rdir 删除目录 deldir 既可删除空目录又可删除非空目录 河北大学工商学院 2011 级操作系统课程设计论文 设计 3 磁盘分区命令 fdisk 运行可执行文件 可执行文件的文件名 可创建进程 上述命令在实际系统中都是需要建立进程才可以实现的 这里由于模拟系统的能力 达不到 所以除运行可执行文件需要建立进程外 其他指令执行不必在模拟系统中建立 进程 可直接执行 注意打开文件表 2 2 6 屏幕显示 如图所示 屏幕显示要求包括 用户命令接口 用于系统运行时用户输入命令 磁盘目录显示 要求显示磁盘的树型目录结构 磁盘使用情况 显示磁盘每一个磁盘块的空间是占用还是空闲 3 程序设计与实现 3 1 目录结构的实现 3 1 1 创建目录 region CreateMenu 建立目录 public void CreateMenu string pathname string harddisk 3 1 2 删除空目录 删除空目录首先要找到该目录 如果目录不存在 执行指令失败 如果存在 但是根 河北大学工商学院 2011 级操作系统课程设计论文 设计 4 目录或非空目录显示不能删除 操作失败 若是非空子目录 则删除器目录项并回收对 应空间 删除空目录的过程和删除文件的过程相似 3 1 3 删除目录 region DeleteMenu 删除目录 public void DeleteMenu string pathname string harddisk if Search pathname harddisk 1 MessageBox Show 文件路径不正确 注意 MessageBoxButtons OK MessageBoxIcon Exclamation 3 2 文件 3 2 1 创建文件 region CreateFile 建立文件 public void CreateFile string pathname byte attribute byte address char length string harddisk if attribute 3 attribute 5 MessageBox Show 只读性质 建立失败 注意 MessageBoxButtons OK MessageBoxIcon Exclamation return 3 2 2 拷贝文件 region CopyFile 复制文件 只复制 FCB public void CopyFile string pathname1 string pathname2 string harddisk string pnames pathname1 Split new char string halfpathname pathname1 Remove pathname1 Length 6 char attribute Convert ToChar pnames pnames Length 1 UTF8Encoding utf new UTF8Encoding 河北大学工商学院 2011 级操作系统课程设计论文 设计 5 byte name utf GetBytes pnames pnames Length 2 int disknum if pnames Length 3 c aaa t disknum 3 else disknum Search halfpathname harddisk int item FindItem disknum name attribute harddisk 0 FCB buffer ReadFCB disknum item harddisk pathname2 pathname2 pnames pnames Length 2 pnames pnames Length 1 CreateFile pathname2 buffer Attribute buffer Address buffer Length harddisk endregion 3 2 3 删除文件 region DeleteFile 删除文件 public void DeleteFile string pathname string harddisk if Search pathname harddisk 1 MessageBox Show 文件路径不正确 注意 MessageBoxButtons OK MessageBoxIcon Exclamation return else if Search pathname harddisk 2 文件存在 string pnames pathname Split new char string halfpathname pathname Remove pathname Length 6 河北大学工商学院 2011 级操作系统课程设计论文 设计 6 char attribute Convert ToChar pnames pnames Length 1 UTF8Encoding utf new UTF8Encoding byte name utf GetBytes pnames pnames Length 2 int disknum if pnames Length 3 c aaa t disknum 3 else disknum Search halfpathname harddisk int item FindItem disknum name attribute harddisk 0 int address FindItem disknum name attribute harddisk 1 byte addr Convert ToByte address DeleteFCB disknum item harddisk 删除 FCB if addr 0 return 3 2 4 移动文件 region CutFile 移动文件 public void CutFile string pathname1 string pathname2 string harddisk CopyFile pathname1 pathname2 harddisk 复制 FCB 到新目录下 string pnames pathname1 Split new char string halfpathname pathname1 Remove pathname1 Length 6 char attribute Convert ToChar pnames pnames Length 1 UTF8Encoding utf new UTF8Encoding 河北大学工商学院 2011 级操作系统课程设计论文 设计 7 byte name utf GetBytes pnames pnames Length 2 int disknum if pnames Length 3 c aaa t disknum 3 else disknum Search halfpathname harddisk int item FindItem disknum name attribute harddisk 0 DeleteFCB disknum item harddisk 删除 FCB endregion 3 2 5 编辑文件 region WriteFile 向磁盘写入 FCB public void WriteFile int disknumber int Itemnumber FCB buffer string harddisk FileStream Disk new FileStream harddisk FileMode Open if disknumber 0 Disk Write buffer Name 0 buffer Name Length Disk Seek 0 SeekOrigin Current Disk WriteByte buffer Type Disk Seek 0 SeekOrigin Current Disk WriteByte buffer Attribute Disk Seek 0 SeekOrigin Current Disk WriteByte buffer Address 河北大学工商学院 2011 级操作系统课程设计论文 设计 8 Disk Seek 0 SeekOrigin Current Disk WriteByte Convert ToByte buffer Length Disk Close endregion 3 2 7 显示文件 region ReadFile 读文件画节点 public void ReadFile TreeView treeView ContextMenuStrip contextMenuStrip ImageList imageList treeView Nodes Clear 删除集合中所有树节点 重新添加树节点 treeView ImageList imageList TreeNode root new TreeNode 计算机 0 0 TreeNode node C new TreeNode 本地磁盘 C 4 4 TreeNode node D new TreeNode 本地磁盘 D 4 4 node C ContextMenuStrip contextMenuStrip node D ContextMenuStrip contextMenuStrip treeView Nodes Add root root Nodes Add node C root Nodes Add node D DrawTree node C 3 disk1 txt contextMenuStrip DrawTree node D 3 disk2 txt contextMenuStrip treeView ExpandAll endregion 4 程序运

温馨提示

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

评论

0/150

提交评论