没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
操作系统课程设计
课题:文件管理 C++
信息工程学院
2009 年 10 月 18 日
操作系统课程设计--文件管理 C++
(一) 目的和要求
在现代计算机系统中。要用到大量的程序和数据,因内存容量有限,且不能长期保存,
故而平时总是把它们以文件的形式存放在外存中,需要时在将他们调入内存。在操作系统
中增加文件负责管理在外存上的文件,这不仅方便了用户,保证了文件的安全性还可以有
效的提高系统资源的利用率。本设计要求用高级语言(C++)编写和调试一个简单的文件
管理系统,通过本实验可以加深理解有关文件和文件系统、文件的逻辑结构、外存分配方
式,目录级文件存储空间的管里等概念,并体会和了解 OS 内部是怎么进行文件管理具体
实施方法。
(二) 内容设计
1、 设计模拟磁盘并定义文件名、目录名、相应长度及存储结构
2、 设计对文件的各种操作如:打开、曾、删、查、改。
3、 设计如何实现用户的交互及文件的串行处理。
(三)程序设计
头文件
!"#用一个 $ 的数组来模拟磁盘
%&
"
'( $文件或目录名$)))))))))))))))))))))))))))))
%&* $文件类型名$
$属性$表示文件,1表示目录.
$文件或目录的起始盘块号$
$文件长度,以盘块为单位$
$$$文件或目录的链式结构$
#$目录结构$
%&
"
'$磁盘盘块号$
'$盘块内第几项$
#&$已打开文件表中读写指针的结构$
%&
"
'* $文件绝对路径名$
$文件的属性,用 个字节表示,所以用了 类型$
'$文件起始盘块号$
$文件长度,文件占用的字节数$
+$操作类型,用表示以读操作方式开文件,用表示写操作方式
打开文件$
&$读文件的位置,文件刚打开时 ' 为文件起始盘块
号' 为$
&,
$写文件的位置,文件建立时 ' 为文件起始盘块号' 为,打开时
为文件末尾$
#-./01$已打开文件表项类型定义$
"
-./01 $已打开文件表$
$已打开文件表中登记的文件数量$
#&$已打开文件表定义$
234 $模拟缓冲 $模拟磁盘上的物理块中存放的具体数据
2*5 $模拟缓冲 *$模拟磁盘上的物理块中存放的目录
./01$$模拟磁盘的文件指针$
&6$'7在已打开文件表中查找文件 '
"#
&6$'7在已打开文件表中删除文件 '
"#
&6$7在已打开文件表 & 数组中插入文件 '
"#
67分配一个磁盘块,返回块号。从 .89 中依次查找,找到一个
空闲的磁盘区,返回它的编号
"6!:;;7
6 << !!7
" << !
返回数组号即为盘块号
=
#
#
6$&7查找路径名为 ' 的文件或目录
返回该目录的起始盘块号>是指向当前目录的指针
"
$?$?>是指向当前目录的指针,不能轻易改
变,引入 ? 来代替 &
?!&
6?@A@A' !!' BB?@A@A'
!!' BB?@A@A'* !!'* 7判断文件名与当前
目录中的相同名
"
?@A@A若找到则返回此文件的磁块号
#
由于目录管理的数据结构为二叉树,所以需要对二叉树
进行遍历
"?!?@A
,6?@A)!7对根目录的左子树的右子树进行遍历即为树中父结
点的孩子结点
"6?@A@A' !!' BB?@A@A'
!!' BB?@A@A'* !!'* 7
剩余13页未读,继续阅读
资源评论
hxwangyoucao
- 粉丝: 1
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python大作业:音乐播放软件(爬虫+可视化+数据分析+数据库)
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功