【2017年整理】磁盘文件链接存储

上传人:爱****1 文档编号:1002643 上传时间:2017-05-25 格式:DOC 页数:14 大小:186KB
返回 下载 相关 举报
【2017年整理】磁盘文件链接存储_第1页
第1页 / 共14页
【2017年整理】磁盘文件链接存储_第2页
第2页 / 共14页
【2017年整理】磁盘文件链接存储_第3页
第3页 / 共14页
【2017年整理】磁盘文件链接存储_第4页
第4页 / 共14页
【2017年整理】磁盘文件链接存储_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《【2017年整理】磁盘文件链接存储》由会员分享,可在线阅读,更多相关《【2017年整理】磁盘文件链接存储(14页珍藏版)》请在金锄头文库上搜索。

1、1操作系统课程设计报告书磁盘文件链接存储班级:学号:姓名:课题名:磁盘文件链接存储指导老师:徐向英实验时间:2010 年 6 月 28 日至 7 月 1 日2目录一、课程设计目的-1三、 课题内容-1四、 设计思路-11、基本设计思想-12、开发工具-13、系统模块图-24、数据表-2四、功能介绍-31、用户登录-32、文件一览-33、创建文件-34、读出文件-45、写入文件-4五、 源代码-5六、 心得与体会-143一、课程设计目的操作系统课程设计是计算机专业的专业课程,通过课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握操作系统的基本设计方法和技巧,进一步提高分析问题、解决问题及上机操

2、作能力,为将来从事计算机工作打下一定的专业基础。其中模拟设计磁盘文件的链接存储结构的目的如下:1了解磁盘文件的管理方式。2掌握文件物理结构和存取方式。3明晰文件的逻辑地址和物理地址。二、课题内容设计和实现文件存储空间的分配,并完成用户的读写请求:A、磁盘文件的管理采用显式链接结构,将文件占用的物理块号和链接指针录在一张文件分配表(FAT)中。文件第一块的块号记录在索引结点中。文件录只记录文件名和索引结点的编号。索引结点的结构如下:B、假定磁盘存储空间共有 100 个物理块用于存放数据, 目录文件和索引点可直接访问,不存放在这 100 个块中。C、一个物理块可存放 3 个文件逻辑记录,并且假设文

3、件逻辑记录定长。D、用键盘输入的方式模拟用户读写请求,输入格式如下:Create(filename)Write(filename, text, logical_record_no)Read ( filename, logical_record_no)(其中 filename 是要读写的文件名,text 是写入的内容,logical_record_no 是逻辑记录号。 )五、 设计思路1、基本设计思想本系统主要利用数据库和界面设计器进行模拟磁盘文件的管理操作,将所要涉及的文件、磁盘块和索引指针信息存放于数据库中,来模拟磁盘文件的显示链接,以 GUI 界面形式模拟用户对文件的创建、删除、读出和写入

4、操作。2、开发工具数据库:Microsoft SQL Server 2005界面设计器:Microsoft Visual Studio 2008索引结点编号文件属性创建时间文件第一块块号文件占用盘块数备用43、系统模块图文件管理用户登录 用户操作创建文件读文件写文件文件浏览4、数据表FAT 表: 列名 数据类型 长度 说明物理块号 varchar 50 存放 100 个物理块号链接指针号 varchar 50 用于链接下一个物理块文件目录表:列名 数据类型 长度 说明文件名 varchar 50 存储文件名称索引节点编号 varchar 50 用于连接到索引节点表索引节点表列名 数据类型 长度

5、 说明索引节点编号 varchar 50 /文件属性 varchar 50 只读、只写、读写创建时间 varchar 50 文件创建的时间文件第一块块号 varchar 50 /文件占用盘块数 varchar 50 /物理块号表列名 数据类型 长度 说明占用物理块号 varchar 50 已经占用的物理块记录号 varchar 50 文件逻辑记录文件内容 varchar 50 记录内容文件长度 varchar 50 定长 100K5四、功能介绍1、用户登录输入用户名,密码登入,也可以修改密码2、文件一览有文件目录、FAT 表、索引节点显示几种查询方式,用户可以根据此表了解具体文件的属性与存放信

6、息,找到指定文件的具体位置,以及已占用盘快号与盘块数来确定是否能创建有效的文件。3、创建文件“操作”“用户命令操作”“创建文件” ,进入创建文件的操作界面。 用户需输入文件名以创建文件,格式如下:“create”“+(”+所要创建文件的文件名+“) ”按确定的同时,程序对用户请求做出反应,首先去确定模拟磁盘中是否有空闲盘块,如果有空闲盘块,则分配空间,出现创建成功的提示,界面如下:若没有空闲盘块则出现创建盘块的提示。64、读出文件“操作”“用户命令操作”“读文件请求”进入读文件界面。假设输入格式如下:“read(A,1) ”其中 A 是文件名,1 是 A 文件的 1 号记录,按确定则出现如下的

7、显示:若用户输入不存在的文件名或者文件记录是空的话则不显示。5、写入文件“操作”“用户命令操作”“写文件请求”进入写文件操作界面。写文件时需要给出文件名,内容,记录号,如果文件名不存在给出提示,不能写入任何内容;如果文件名存在,则可以根据文件记录表查出对应的索引记录号,继而根据索引表查出第一块块号,因为一个物理块只能存放 3 个记录,所以需要根据记录号确定所要求的块数,然后在索引表里改变一下需要的块数。在对应的 FAT 表里,随机分配块号。在最后的块号里,以-1 作为结束标志:write(B,uuuu,1)7五、 源代码AddData:using System;using System.Col

8、lections.Generic;using System.Text;namespace 模拟文件管理系统class AddDatastatic DataAccess da = new DataAccess();public static bool addfiletable(FileDir ep)string sql = string.Format(insert into 文件目录表 values(0,1),ep.name,ep.code );return da.ExcuteSQL(sql);public static bool addsuoyintable(suoyinData ep)str

9、ing sql = string.Format(insert into 索引节点表 values(0,1,2,3,4), ep.bianhao, ep.shuxing,ep.time,ep.fcode,ep.fnumber);return da.ExcuteSQL(sql);public static bool addfattable(Fattable ep)string sql = string.Format(insert into FAT表 values(0,1),ep.wkhao,ep.lianjiekuaihao);return da.ExcuteSQL(sql);public sta

10、tic bool addwulikuyaihaotable(WuliKuaibiao ep)string sql = string.Format(insert into 物理块号表 values(0,1,2,3), ep.wulikuaihao, ep.jiluhao, ep.neirong, ep.length);return da.ExcuteSQL(sql);public static bool updatewulikuyaihaotable(WuliKuaibiao ep)string sql = string.Format(update 物理块号表 set 文件内容=0 where

11、占用物理块号=1 and 记录号=2,ep.neirong,ep.wulikuaihao,ep.jiluhao);return da.ExcuteSQL(sql);8public static bool updatesuoyinjiediantable(suoyinData ep)string sql = string.Format(update 索引节点表 set 文件占用盘块数=0 where 索引节点=1,ep.fnumber,ep.bianhao);return da.ExcuteSQL(sql);GetReadFile.cs:namespace 模拟文件管理系统class GetRe

12、adFilestatic DataAccess da = new DataAccess();/ static WuliKuaibiao wk = new WuliKuaibiao();public static string getfileneirong(FileDir cd,WuliKuaibiao wk) string sql = string.Format(select 索引节点编号 from 文件目录表 where 文件名=0, cd.name);SqlDataReader dr = da.GetReader(sql);dr.Read();string ds = dr.GetStrin

13、g(0);string sql1 =string.Format( select 文件第一块块号 from 索引节点表 where 索引节点编号= + ds + );SqlDataReader dr1 = da.GetReader(sql1);dr1.Read();string ds2 = dr1.GetString(0);/return Convert.ToString(dr1.GetValue(0);/ string co = cd.code;wk.wulikuaihao = ds2;string sql2 = string.Format(select 文件内容 from 物理块号表 whe

14、re 占用物理块号=0 and 记录号=1, wk.wulikuaihao, wk.jiluhao);SqlDataReader dr2 = da.GetReader(sql2);dr2.Read();return Convert.ToString(dr2.GetValue(0);public static string getfileneirong1(WuliKuaibiao ak) string sql2 = string.Format(select 文件内容 from 物理块号表 where 占用物理块号=0 and 记录号=1, ak.wulikuaihao,ak.jiluhao);S

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号