网站大量收购独家精品文档,联系QQ:2885784924

操作系统实验课堂介绍2010PPT.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验课堂介绍2010PPT

* * 操作系统实习 南京工业大学信息学院计算机系 实验题目 文件管理系统的设计 实验目的 了解有关文件管理的知识; 理解FAT16的存储格式; 掌握文件管理系统的开发方法。 基本要求 目录操作命令: cd [目录名] 改变当前目录 create 文件名 [属性] del 文件名 dir[ 目录名[ 属性]] md 目录名 rd 目录名 设计并实现以下文件和目录系统操作命令: 文件操作命令: open 文件名 write 文件名 [位置][insert] read 文件名 [位置m [字节数n]] close 文件名 type 文件名 copy 源文件名 目标文件名 ren 原文件名 新文件名 attrib 文件名[ 文件属性] 程序初始化时构造如图1所示的目录结构。 bin usr dev user lib bin li ma auto 图1 初始目录树 目录文件 普通文件 【图例说明】 根目录 sun 目录项(FCB)结构 文件名 属性 首块号 文件长度 (11字节) (1字节) (2字节) (2字节) struct FCB //每个目录项16个字节 { char FileName[11]; //文件名最多10个字符且以\0结尾 char Fattrib; //文件属性 short int Addr; //文件首块号 short int Fsize; //文件长度 }; 详细说明参见《指导书》 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0/1 0 0/1 0/1 0/1 1表示目录 1表示系统 1表示隐藏 1表示只读 目录项中的属性字节: 根目录 本系统的根目录存储在1~30号盘块中,即存储在Disk[1]~Disk[30]的盘块中。因每个盘块64B,每个目录项16B,故每个盘块可存储4个目录项,因此本系统根目录中的文件目录项及子目录项最多共计120个。 从31号盘块开始为文件区,用于存储文件及子目录。子目录中的文件目录项个数任意(即不受“最多120个”的限制),只要磁盘文件区有空余空间。 用户已打开文件表(UOF) 设置一张“用户已打开文件表”(UOF),用于记录用户当前正在使用文件的情况。 struct UOF { //定义用户打开文件表的结构 char fname[PATH_LEN]; //文件全路径名 char attr; //文件属性,1=只可读;0=可读写 short int faddr; //文件的首块号 short int fsize; //文件大小(字节数) FCB *fp; //指向该文件的目录项指针 short int state; //状态:0=空表项;1=新建;2=打开 short int readp; //读指针,0=空文件 short int writep; //写指针 }; 本程序中,用户打开文件表用数组UOF uof[32]表示,即最多允许同时打开32个文件。 当前目录curpath数据结构 struct CurPath { short int fblock; //当前目录的首块号 char cpath[PATH_LEN]; //当前目录路径名 }; 当前目录用全局变量CurPath curpath存储。 根目录的路径字符串cpath是“/”,首块号为1。 删除文件恢复表udtab数据结构 struct UnDel //恢复被删除文件信息表的数据结构 { char gpath[PATH_LEN]; //被删除文件的全路径名(不含文件名) char ufname[FILENAME_LEN]; //被删除文件名 short ufaddr; //被删除文件的首块号 short fb; //存储被删除文件块号的链表头指针 }; 本系统的被删除文件恢复表用全局数组udtab存储,定义为:UnDel udtab[40]; 退出系统时,该数组以文件名“UdTab2008.dat”存盘,以便下次启动时调入使用。 fb所指的盘块中记录了对应的被删除文件的所有盘块号(包括文件首块号)。由于只用一个盘块存储被删除文件的块号,因此只适用于盘块数不超过31的情况(以-1作为结束标记)。 功能完整程序OS实验.exe中已作了如下改进: udtab表存于Disk[][]的一片连续盘块空间; 修改了struct UnDel,使之包含FCB的全部信息,这样即使原先的目录项位置已被占用,仍可能恢复该文件; 文件的块号允许用多个盘块存储,即被删除文件长度不受最多31个盘块的限制。 盘块大小改为256B, UnDel表项128B,

文档评论(0)

erfg4eg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档