linux文件管理课程设计,操作系统原理课程设计-Linux文件管理系统的仿真.doc

操作系统原理课程设计

实践报告

全套设计加扣 3012250582

题 目:

Linux文件管理系统的仿真

姓 名:

学 院:

信息科学技术学院

专 业:

计算机科学技术系

班 级:

计科121

是否申优:

指导教师:

职称: 教授

2015年3月 18 日

Linux文件系统的模拟

摘要:通常把文件与管理信息资源的管理程序的集合统称为文件系统,它是操作系统中负责存取和管理信息资源的模块,采用统一方法管理用户信息和系统信息的存储、检索、更新、共享和保护,并且为之提供一整套行之有效的文件使用及操作方法。本次课程设计中,模拟了Linux文件系统,简化了其中的VFS结构,将FCB拆解成文件目录项跟inode节点,实现了对逻辑文件到物理文件的模拟、提供了一组易用的文件操作命令和一系列常用的文件类系统调用。

关键字:Linux文件系统,成组链接,VFS,inode节点,系统调用

1.理论基础

1.1 Linux文件系统简介:

Linux最早采用Minix文件系统,20世纪90年代初推出专为自己设计的优秀、高效文件系统ext,目前常用ex2和ex3.为了实现开放性和可扩展性,ext的设计有重大改进引入VFS,为用户提供抽象、统一的文件系统界面,以支持多种具体文件系统。

1.2 Linux文件系统磁盘分区:

Linux内核将磁盘作为主要文件存储器,磁盘按扇区编号,扇区序列分成三个部分。

1.2.1超级块:存放文件系统结构和管理信息。

1.2.2索引节点区:存放inode表,每个文件都有各种属性,将其记录在称为索引节点inode结构中。

1.2.3数据区:用作数据区,文件内容保存在这个区域中,磁盘上的物理块的大小是一样的。

1.3 Linux文件系统

Linux文件系统中还有两个重要的数据结构,分别为用户打开文件表和系统打开文件表。

1.3.1 用户打开文件表:

进程PCB结构中保留一个file_struct,称为用户打开文件系统表或文件描述表。表项的序号是文件描述符fd,此登记项内登记系统打开文件表的一个入口指针fp,通过此系统打开文件表链接到打开文件的活动inode。

1.3.2 系统打开文件表:

这是为解决多个进程共享文件、父子进程共享文件而设置的系统数据结构file_struct。由于一个文件可以被多个进程同时打开或一个进程同时打开多次。不管是同一个进程还是不同进程,每打开一个文件就产生一个file,多次打开就产生多个file,两者之间一一对应。

2.目的及意义

2.1 通过课程设计加深对Linux文件管理系统的理解;

2.2 加强程序设计能力,熟悉数据结构的使用;

2.3 复习C/C++编程语言,提高熟练度;

2.4 更深一步了解系统调用的含义。3.设计思想及设计功能说明

3.1设计思想:

3.1.1 物理空间

在现有机器的硬盘上开辟20M的硬盘空间(本次课程设计用的Linuxfile二进制模拟),作为设定的硬盘空间。磁盘块物理模型如图1所示:

图1

对于空闲盘块的管理,我们主要用了成组链接法,设计一个盘块占用1KB,所以20MB可以产生20480个盘块,0到30块作为系统区,所以用户区剩下20449个盘块,每50个盘块为一组,一共可以分为409个组。关于磁盘空间的分配与回收,由于没有设计索引盘,我们将所有的盘块都当做数据盘,采用了直接寻址的方法,所以分配的空间也是连续的。为了方便文件读写,我们设计了盘块(Block)数据结构,里面唯一的属性是一个字符串数组,存储文件的物理内容。

3.1.2 物理文件到逻辑文件的转换

我们仿照了Linux的做法,将文件FCB中的文件名和其他管理信息分开,其他信息单独组成一个数据结构,称为索引节点inode,此索引节点的位置由inode结点由inode号标识。于是,目录项中仅剩下文件名和inode号,称为基本目录项。

为了实现逻辑文件到物理文件的转换,我们设计了用户打开表和系统打开表这两个数据结构,其中用户打开表中记录了文件的入口指针并指向系统打开表,系统打开表中则记录了索引节点inode号,而inode号指向相应的inode节点,inode节点里有address属性用来记录文件数据的物理地址。这样就把

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值