操作系统课程设计

发布 2022-10-05 11:04:28 阅读 6648

专业:计算机1005班。

姓名:周程程20102787

刘宏20102764

高国臣20102757

多用户、多级目录结构文件系统的设计与实现。

一、摘要。操作系统课程设计是本课程重要的实践教学环节。课程设计的目的,一方面使学生更透彻地理解操作系统的基本概念和原理,使之由抽象到具体;另一方面,通过课程设计加强学生的实验手段与实践技能,培养学生独立分析问题、解决问题、应用知识的能力和创新精神。

与本课程的实验教学相比,课程设计独立设课,具有更多的学时,给学生更多自行设计、自主实验的机会,充分放手让学生真正培养学生的实践动手能力,全面提高学生的综合素质。

本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解,操作系统采用microsoft windows xp ,编程环境为microsoft visual c++ 6.0。

在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多。

目录的文件系统;文件物理结构可采用显式链接方法;磁盘空闲空间的管理采用链接分块的方法;存储空间采用显式链接分配方式;文件目录结构采用多用户多级目录结构。

此文件系统提供了以下相关文件目录操作:

1)用户登录:login

2)系统初始化(建文件卷、提供登录模块):install

3)系统格式化:format

4)文件的打开:open

5)文件的读:read

6)文件的写:write

7)文件关闭:close

8)文件的创建: create

9)删除文件:delete

10)创建目录(建立子目录):mkdir

11)改变当前目录:chdir

12)列出文件目录:dir

13)保存并退出:logout

14)多用户操作:定义了8个用户。

二、目录。1. 概述4

2. 课程设计任务及要求5

2.1 设计任务。

2.2 设计要求。

3. 算法及数据结构。

3.1算法的总体思想(流程。

3.2 文件相关模块。

3.2.1 功能。

3.2.2 数据结构。

3.2.3 算法。

3.3 目录相关模块。

3.3.1功能。

3.3.2 数据结构。

3.3.3算法。

3.4 其余模块。

3.3.1功能。

3.3.2 数据结构。

3.3.3算法。

4. 程序设计与实现。

4.1 程序流程图。

4.2 程序说明。

4.3 实验结果。

5. 结论。

6. 参考文献。

7. 收获、体会和建议。

1. 概述。

2. 课程设计任务及要求。

2.1 设计任务。

多用户、多级目录结构文件系统的设计与实现。

2.2 设计要求。

1、在深入理解操作系统基本原理的基础上,对于选定的题目,以小组为单位,先确定设计方案;

2、设计系统的数据结构和程序结构,设计每个模块的处理流程。要求设计合理;

3、编程序实现系统,要求实现可视化的运行界面,界面应清楚地反映出系统的运行结果;

4、确定测试方案,选择测试用例,对系统进行测试;

5、运行系统并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问;

6、提交课程设计报告。

3. 算法及数据结构。

3.1算法的总体思想(流程)

3.2 目录相关模块。

3.2.1 功能。

创建目录(建立子目录):mkdir

改变当前目录:chdir

列出文件目录:dir

3.2.2 数据结构。

struct direct

char direct_name[8]; 目录名;

struct file *point_to_file[8]; 每个指针指向一个文件项。

struct direct *point_to_parent_direct; /指向父目录名。

struct direct *point_to_child_direct[8]; 指向子目录,用于在当前目录创建子目录。

char direct_used_or_not; /目录使用标志:0代表未使用,1代表已使用。

char file_point_use_state[8]; 文件创建指针使用情况,0代表未使用,1代表已使用,开始时,都未使用,数目为8

char child_direct_use_state[8]; 子目录创建指针使用情况,开始时,都未使用,数目为8

struct visable

char direct_visable[8][8];

int point;

3.2.3 算法。

3.2.3.1创建目录(建立子目录):mkdir

1)定义局部变量;

2)判断文件名是否是home,如果是则输出home为系统保留字,请使用其他名称做目录名,如果不是则进入第三步;

3)检测文件系统目录的目录使用状态为,如果系统状态全为1则输出系统目录已满,无法建立新目录,如果存在使用状态是0的,则进入第四步。

4)判断当前目录的子目录的使用状态,若使用状态全为1 则输出此目录已满,无法再建子目录,否则进入第五步。

5)判断文件名是否和当前目录的子目录的目录名有相同的,若有则输出要建的目录名已存在,请用其他名称,否则进入第六步。

6)判断文件名是否和当前目录的文件所有使用状态为1 的文件名是否相等,若相等则输出要建的目录名与当前目录中的文件重名,请用其他名称,否则进入第七步。

7)使当前目录的孩子目录指向相应的文件系统目录,相应的文件系统目录的使用状态置为1,当前目录的孩子目录的使用状态置为1,将要建立的文件名写入相应的文件系统目录的目录名;文件系统目录的父目录的指针指向当前目录;

3.2.3.2改变当前目录:chdir

1)判断当前输入的文件名是否是’..若是则将存储目录名的数组的最后的目录名置空,并将当前目录指针指向其父目录,否则进入第二步;

2)判断文件名是否与当前目录的子目录的使用状态为1的目录名是否相等,若没有则输出目录不存在,无法进入,否则进入第三步;

3);当前目录指向其子目录,当前目录名写入记录目录的数组visable_ visable_

3.2.3.3列出文件目录:dir

1)输出所有当前目录的子目录的使用状态为1的目录的目录名;

2)输出所有当前目录的文件指针的使用状态为1 的文件的文件名;

3.3 文件相关模块。

3.3.1功能。

文件的创建: create

删除文件:delete

文件的打开:open

文件的读:read

文件的写:write

文件关闭:close

3.3.2 数据结构。

struct file

char file_name[8]; 文件名。

int point_to_fat; /指向fat表的一个表项,既文件的开始磁盘块。

char file_owner[8]; 文件所有者。

char file_used_or_not; /文件使用标志:0代表未使用,1代表已使用。

int file_length; /文件所占的磁盘块数。

操作系统课程设计

课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...

操作系统课程设计

银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...

操作系统课程设计

学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....