课程设计报告。
设计题目:类unix文件系统的设计与实现。
班级:计算机1105
组长学号:20113245
组长姓名:葛欣。
指导教师:李晓华。
设计时间:2024年7月。
设计分工。组长学号及姓名: 20113245葛欣
分工:用户登录管理、创建文件、删除文件、创建目录、删除目录、列出当前目录下的文件和文件夹、改变当前工作目录、磁盘i节点的管理,创建link型的文件。
组员1学号及姓名:20113259汤新奇
分工:打开文件、关闭文件、读文件、写文件、复制文件、文件权限检查、文件操作授权。
组员2学号及姓名:20113268刘烨。
分工:系统打开文件表和用户打开文件表的维护,位示图法。
组员3学号及姓名:20113255吕桐
分工:数据区成组链接法的实现,文件重命名。
摘要。此次课程设计基于操作系统课程上所讲述的基本原理,结合unix系统源**分析相关资料,实现了一个类unix操作系统的文件系统实现,具有多用户访问,权限控制,创建快捷方式(link文件)的功能。
关键词:类unix文件系统,多用户访问,权限控制,link文件实现
摘要。1. 概述6
2. 课程设计任务及要求6
2.1 设计任务6
2.2 设计要求6
3. 算法及数据结构6
3.1算法的总体思想(流程6
3.2 用户管理模块实现7
3.2.1 功能7
3.2.2 数据结构7
3.3 文件存储模块实现7
3.4 创建文件模块实现10
3.4.1功能10
3.4.2算法10
3.5 创建目录模块实现10
3.5.1功能10
3.5.2算法10
3.6 删除单个文件模块实现10
3.6.1功能10
3.6.2算法10
3.7 删除空文件夹模块实现11
3.7.1功能11
3.7.2算法11
3.8 删除平凡文件夹模块实现11
3.8.1功能11
3.8.2算法11
3.9 目录切换模块实现12
3.9.1功能12
3.9.2数据结构12
3.10 空闲i 节点管理模块实现12
3.10.1功能12
3.10.2数据结构12
3.10.3算法12
3.11 创建link 类型文件模块实现13
3.11.1功能13
3.11.2算法13
3.12 显示当前目录的文件和文件夹模块实现 ……13
3.12.1功能13
3.12.2数据结构13
3.13系统打开文件表和用户打开文件表的维护模块实现…14
3.13.1数据结构14
3.13.2算法15
3.14位示图法管理数据磁盘块模块实现………18
3.14.1数据结构18
3.14.2算法18
3.15读写块数据模块实现19
3.15.1功能19
3.15.2数据结构19
3.15.3算法21
3.16复制模块实现21
3.16.1功能21
3.16.2算法21
3.17授权模块实现21
3.17.1功能21
3.17.2算法21
3.18权限检查模块实现21
3.18.1功能21
3.18.2算法21
3.19读文件模块实现21
3.19.1功能21
3.19.2算法22
3.20写文件模块实现22
3.20.1功能22
3.20.2算法22
3.21重命名模块实现22
3.21.1功能22
3.21.2算法22
3.22成组链表法管理空闲块模块实现22
3.22.1功能22
3.22.2数据结构22
3.22.3算法23
3.23格式化模块实现23
3.23.1功能23
3.23.2数据结构23
3.23.3算法24
4. 程序设计与实现24
4.1 程序流程图24
4.2 程序说明及实验结果32
5. 结论42
6. 参考文献42
7. 收获和体会42
1 概述。文件系统是结构化管理设备上的数据的机制。文件是为了管理块的集合而定义的概念,目录通过文件名管理文件,它在本质上与文件概念相同。
但是会有多个用户试用系统,所以我们设定文件和目录访问权限。块设备区域分为四种,超级块用来管理块设备的控制信息,inode用来管理文件的定义信息,存储区域的块用来保存数据本身。文件的实体由一个inode和多个存储区域块组成,文件使用的存储区域的块可以通过inode的映射获取。
2 课程设计的任务及要求。
2.1设计任务。
多用户、多级目录结构文件系统的设计与实现。
2.2设计要求。
1、在深入理解操作系统基本原理的基础上,对于选定的题目,以小组为单位,先确定设计方案;
2、设计系统的数据结构和程序结构,设计每个模块的处理流程。要求设计合理;
3、编程序实现系统,要求实现可视化的运行界面,界面应清楚地反映出系统的运行结果;
4、确定测试方案,选择测试用例,对系统进行测试;
5、运行系统并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问;
6、提交课程设计报告。
3 算法及数据结构。
3.1 算法的总体思想。
由于是要模拟磁盘的文件系统,需要一块虚拟的磁盘作为操作对象,所以利用malloc函数在内存中开辟连续的512k字节的内存单元作为虚拟的磁盘进行操作。按512b为一个数据块,共分出1024块。其中,0号块为引导块,1号块为超级块,i节点区为32块,剩下的为数据区。
其中,对于数据区,一个i节点需要64b,每块中包括32个i节点;每个目录项占用16字节的空间,因此一个目录下最多有32个子目录。目录作为数据存储在数据区中。
操作系统课程设计报告
西安郵電大學。院系名称 计算机学院。专业名称 软件工程。班级 1104 学生姓名 赵大伟。学号 8位 04113124 指导教师 舒新峰。设计起止时间 2013.11.10 2013.11.20 1 通过观察 分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在posix 规范中...
操作系统课程设计报告
课程设计。课程名称操作系统。题目名称多级文件系统 2 学生学院计算机学院 专业班级。学号。学生姓名。指导教师。年月日。目录。一 课程设计 6 二 开发工具及环境 6 三 设计内容 6 四 结构图 8 五 部分 9 六 运行截图 11 七 参考文献 15 八 心得体会 15 本课程设计要求设计一个模拟...
操作系统课程设计报告
实验一进程管理。一 实验目的。1 开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。2 开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。通过实验理解进程的概念,进程的组成 pcb结构 进程的并发执行和操作系统进行进程管理的相关原语 主要是进程的创建 ...