- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统》课程设计
题
目:
设计一个简单二级文件系统
专
业:
计算机科学与技术
年
级:
文专计 081— 1
姓
名:
张庆龙
学
号:
200890610126
指导教师:
翟一鸣
时
间:
2010.7.12---2010.7.16
2010 年 7 月 15 日
一、设计内容
1、可以实现下列几条命令。
Format
Dir
Create
Delete
Deldir
Open
Close
Search
Copy
Cut
格式化
列文件目录
创建文件
删除文件
删除目录
打开文件
关闭文件
查询文件
拷贝文件
剪切文件
二、开发环境
Windows 操作系统
Microsoft Visual C++
三、分析设计
(一)实验原理
通过程序模拟 Linux 文件系统,用一个二进制文件 (FileSystem.disk) 来模拟磁盘 .
设计一个多用户的二级文件系经统、实现一般的创建文件、目录,删除文件、目录,切换目录,打开、关闭文件、读写文件等操作。
文件系统 , 包含格式化 , 显示文件 ( 目录 ), 创建文件等几个简单命令的实现 , 而且能完成超级块的读写 , 节点的读写等过程 . 本 文件 系 统 采 用 两级 目 录 , 其 中 第一 级 对应 于 用 户 账 号 , 第 二 级 对 应 于 用 户 账 号 下 的文 件 。 另 外 , 为 了 简 单 本 文 件 系 统未考 虑 文 件 共 享、 文 件 系 统 安 全以 及 管 道 文 件与 设 备 文 件 等特 殊 内 容 。
1.程 序 执 行 流 程 图 :
开始
初始化
选择程序
创
建
删
除
查看目
进 入
返
查询
目录、
目录、
录、文
指 定
回
文件
文件
件
目录
上
一
格式化
结束
2.数 据 块 的 分 配 和 回 收
开始
系统是否有空块 ?
超级块中是否有空块 ?
返回当前空闲块地址 ;
超级块空闲指针加 1
开启新的块组 ,将其地址信息读入超级块 ;
返回该块组首地址
结束
(二)程序结构
设计 FileSystem 类负责管理磁盘空间和磁盘内存I节点,负责对磁盘空间和磁盘数据进行优化管理。并提代接口言方法供用户或程序调用。
内存 磁盘
System
用户 1 用户 2 用户 3 用户 n
(三)数据结构
(四)
int physic[100];
//
文件地址缓冲区
int style=1;
//
文件的类型
char cur_dir[10]="root"; // int search_i=0;
当前目录
struct command
{
char com[10];
}cmd[20];
struct block
{
int n; // 空闲的盘快的个数
int free[50]; // 存放空闲盘快的地址
int a; // 模拟盘快是否被占用
}memory[20449];
struct block_super
{
int n; // 空闲的盘快的个数
int free[50]; // 存放进入栈中的空闲块
int stack[50]; // 存放下一组空闲盘快的地址
}super_block;
struct node //i 结点信息
{
int file_style; //i 结点 文件类型
int file_length; //i 结点 文件长度
int file_address[100]; //i 结点 文件的物理地址
char file_message[100];
} i_node[640];
struct dir // 目录项信息
{
char file_name[10]; // 文件名
int i_num; // 文件的结点号
char dir_name[10]; // 文件所在的目录
} root[640];
. 运行示例及结果分析菜单
删除目录文件
查询
拷贝
剪切
五、程序实现
详细程序请参见源文件 , 在此只列举3点
1、剪切文件
程序片段: void cut(char *tmp,char *newname)
{
int i; //,j
char t[20];
_strtime(t);
for(i=0;i<640;i++)
if(strcmp(newname,root[i].file_name)==0)
{
break;
}
if(i==640)
{
printf(" 目录不存在,不能剪切! \n");
return;
}
for(i=0;i<640;i++)
{
if(strcmp(tmp,root[i].file_name)==0)
{
strcpy(root[i].dir_name,newname);
strcpy(i_node[root[i].i_nu
您可能关注的文档
- 处方干预记录表.docx
- 处方点评与通报公示制度.docx
- 备战期末考试演讲稿4篇_演讲稿.docx
- 备战高考:学会从教材中挖掘高考作文素材.docx
- 大佬们的太极禅.docx
- 大倾角皮带输送机(大倾角输送机)详细介绍.docx
- 大兴农场关于旱灾情况的报告.docx
- 大学班级学期工作总结发言稿.docx
- 大学生如何培养自身的文化自信.docx
- 大学生思想动态调查报告—.docx
- 2024年山东德州夏津县融媒体中心招聘4人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东济南历城区卫生健康局所属事业单位招聘50人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024江苏徐州锡沂高新技术产业开发区招聘50人历年高频难、易点(行政职业能力测验共200题含答案解.docx
- 2024年山东德州职业技术学院招聘49人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东德州高级师范学校招聘工作人员12人高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2023年12月恩施巴东县“才聚荆楚·智汇恩施”第二次专项事业单位工作人员7名笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东广州市黄埔区机关事务管理局招考聘用政府雇员笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广西马山县纪委监委机关面向社会公开招考基层廉洁监督员及防贫监测员笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东广州市增城区招考聘用教师(上海设点)92人笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东省茂名市电白区赴高校现场公开招聘62名教师314笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
文档评论(0)