操作系统--文件管理

文件和文件系统

文件:是信息的一种组织形式,是记录在外存上的,具有文件名的一种相关信息项的有序集合

文件的组成部分:
文件体:文件真实的内容
文件属性:操作系统为了管理文件所用到的信息

文件目录:
文件名称
文件物理地址
文件长度
文件主人
访问权限
文件时间

文件类型:
普通文件
目录文件
特殊文件

文件分类

文件存取控制

只读文件
读写文件
可执行文件

数据的形式

源文件
目标文件
可执行文件

组织形式和处理

普通文件
目录文件
特殊文件

按用途分

系统文件
库文件
用户文件

普通文件:由ASCII码或二进制码组成的字符文件
目录文件:由文件目录组成的文件
特殊文件:指系统中的各种IO设备,设备操作类似于文件操作
系统文件:管理和维护计算机的各种软件。用户只能通过系统调用来请求执行,不能对它进行读写
库文件:OS为方便用户,提供的各种标准过程和函数,用户可以调用,但是不允许更改
用户文件:用户所编写的程序和数据,用户有所有权限

文件系统的层次结构

文件系统是操作系统中负责管理和存取文件的程序集合。
由文件控制块、存储分配表等数据结构、相应的管理软件和被管理的文件组成

用户:
基本目标:实现“案名存取“
提供方便的操作和同一的调用接口,屏蔽底层细节

系统:
组织、分配、回收文件的存储空间
负责文件的存储、检索、共享和保护
重要目标:提高文件存取速度

文件系统模型可分为三个层次:
最高层:文件系统提供给用户的接口
提供服务
命令接口:文件和目录命令
程序接口:程序通过系统调用操作
中间层:对对象进行操纵和管理的软件集合
最底层:对象及其属性
文件:文件系统管理的直接对象
目录:便于用户对文件的存取和检索
磁盘(磁带)存储空间:存储空间有效管理,提高对文件的存取速度

linux关于文件的系统调用

◦ 打开和关闭文件——open( ),close ( )
◦ 创建文件——creat ( )
◦ 对打开文件的读写——read ( ), write ( )
◦ 对文件树进行操作——chdir ( ), chown ( )
◦ 改变文件属性——chmod ( )
◦ 有关文件的联接——link ( ), unlink ( )
◦ 库函数调用则是面向应用开发的
◦ 打开和关闭文件——fopen( ),fclose ( )
◦ 对打开文件的读写—fputc( ), fgetc ( ),fputs( ), fgets( );
◦ fread(), fwrite();
◦ fprintf( ), fscanf( );
◦ 文件的随机读写——fseek( ), rewind( ); ftell()
◦ 把与fp有关的文件位置指针放到一个指定位置。
◦ int fseek(FILE *stream, long offset, int fromwhere);

不同的文件系统

不同的文件系统,采用不同磁盘管理、不同数据结构来管理文件
及目录。
不同的OS支持不同的文件系统,目前常用的文件系统类型。

存储空间的管理

分配单位–磁盘块–分配和回收

磁盘块是存储介质上连续信息所组成的一个区域,DOS中称为簇。块是主存和辅存进行信息交换的最小单位,每次总是交换一块或者整数块信息,一般来讲,是2n个扇区

为什么存在磁盘块

读取方便:由于扇区的存储数量比较小,所以OS将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作

分离对底层的依赖

OS忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位

管理方法主要有四种

空闲表
空闲链表
位示图
成组连接表

文件的物理结构

文件结构分为逻辑结构和物理结构

逻辑结构::从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,称为文件组织 。根据用户需求和文件内容决定。
**物理结构:**又称为文件的存储结构,是指文件在外存上的存储组织形式。这不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关

文件的物理结构

从系统角度看到的文件信息的组织形式称为文件的物理结构。实际上就是文件的存储结构,即文件信息在文件存储介质上的存储组织形式。

文件目录

文件体:文件真实的内容
文件属性:操作系统为管理文件所用到的信息
文件名称、标识符、类型、存储位置、大小、访问权限、时间、日期、用户标识
文件控制块FCB:OS为管理文而设置的数据结构,存放为管理文件所需的文件属性信息,也叫文件目录项
目录文件:把所有的FCB组织在一起,以文件的形式保存在外村,这个文件就叫目录文件
在这里插入图片描述

文件控制块和索引节点

文件控制块

基本信息:文件名、地址、大小、结构、类型
存取控制信息:文件属主、存取权限或口令
使用信息:共享计数、文件的建立、修改日期等
在这里插入图片描述
例题:若一个FCB为64B,盘块大小为1KB,一个目录下有640个
文件,需要多少个盘块?查找一个文件的地址需要读取多少次
硬盘?
答:若一个FCB为64B,盘块大小为1KB,则每个盘块中只能存
放16个FCB,若1个文件目录中有640个FCB,需40个盘块。
平均查找一个文件需启动磁盘(1+40)/2=20.5次。

索引节点

将所有文件控制信息都放在目录项中,存在问题:每个文件目录项占用磁盘空间多,导致每个物理盘放不了几个目录项,为了在目录中找到一个文件的目录项,需要读入多个物理块进行查找。
解决方法:FCB分为两部分
在这里插入图片描述
索引节点:将文件控制信息分成两个部分,一部分只是保存文件名和其内部标识号;另外的信息保存在其他数据结构中。
在这里插入图片描述

简单的文件目录

1.单机文件目录–最简单的文件目录
单用户环境
整个文件系统只建立一张目录表,每个文件占一个目录项,目录项中包含文件名,文件扩展名,文件长度等属性。为表面每个目录项是否空闲,有设置了一个状态位。
分析:创建文件、访问文件、删除文件的操作过程
在这里插入图片描述
优点:简单,易实现
缺点:查找速度慢、不允许重名、不便于实现文件共享
创建文件时,查表,是否有重名的文件,如果有,则失败;不重名,在表中找到一个空表项,把文件的信息填写进来。删除一个文件时,找到该文件信息,释放物理地址,把状态位设置成空闲。
2.二级目录结构
改进方法:允许每个用户有一个目录,目录分为两级
在这里插入图片描述
第一级,主文件目录MFD:用户名及用户子目录的物理位置
第二级,用户子目录UFD:该用户所有文件的FCB
优点:解决了文件的重名问题,便于文件共享;可用于多用户系统,便于实现文件权限保护;顺序查找时间降低
缺点:增加了系统开销,仍然不便于文件分类管理
在这里插入图片描述
数据结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件操作分析-打开文件操作:
为了提高系统工作效率,系统要求在文件操作前打开文件,将文件控制信息(FCB)调入内存,后续对文件访问,直接访问内存中相关信息即可。
当文件使用完,需要关闭文件,以清除内存中相关信息。
系统在内存中为每个进程维护一个“用户打开文件表”,为整个系统维护一个“系统打开文件表”,当文件打开后,为其维护一个“内存文件控制块”(主要内容同FCB信息)。

树形结构目录

树形目录是当今主流OS普遍采用的目录结构
优点:
解决了命名冲突问题
提高了文件检索速度
易于实现文件的共享和保护
层次结构清晰,便于对文件分类管理
缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度
在这里插入图片描述
在这里插入图片描述
绝对路径:从根目录到该文件的路径上各级目录名的组合,即绝对路径名,例如:/user/lib/man
相对路径:设置一个“当前目录”(也叫“工作目录”),此时对于文件的查找是从当前目录中进行的
假设当前目录是:/user/lib,访问man只需要使用./man
使用相对路径的好处
用户使用更加方便
检索效率更高

目录查询技术

访问一个文件过程:/home/duan/hello.c
根据文件名对目录进行查询,找出该文件的FCB或索引结点;
根据FCB中的盘块号,换算出物理地址,最后,把文件读进来。
线性检索法(顺序检索法)
单级目录中,利用用户提供的文件名,用顺序查找法直接从文件
目录中找到指名文件的目录项
在这里插入图片描述
树形目录中,用户提供的文件名是由多个文件分量名组成的路径名,此时需对多级目录进行查找。
树形目录检索方法实例:查找/usr/ast/mbox的步骤
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
文件空间管理是指操作系统如何管理硬盘上的文件空间,包括如何分配和回收文件所占用的磁盘空间。 在文件系统中,文件通常被分成多个块或扇区存储在磁盘上。操作系统需要跟踪哪些块已经被占用,哪些块是空闲可用的。为了有效地管理文件空间,操作系统使用了一些算法和数据结构,如位图、空闲块链表等。 其中,位图是一种常用的文件空间管理算法。操作系统使用一个位图来表示磁盘上每个块的使用情况,位图中的每个位代表一个块,如果该位为1,则表示该块已被占用,如果该位为0,则表示该块是空闲的。当需要分配磁盘空间给新文件时,操作系统会在位图中查找空闲块,然后把这些块分配给新文件。当文件被删除或移动时,操作系统会将对应的位图位置为0,表示该块空闲可用。 除了位图算法,还有其他的一些文件空间管理算法,如链表算法。在链表算法中,操作系统维护一个空闲块链表,每个节点代表一个空闲块。当需要分配磁盘空间给新文件时,操作系统会从链表中取出一个节点,然后把这个节点对应的块分配给新文件。当文件被删除或移动时,操作系统会把对应的块添加到空闲块链表中。 文件空间管理操作系统中扮演着重要的角色,它直接影响到文件系统的性能和可靠性。因此,操作系统需要设计合理的文件空间管理算法和数据结构,来实现高效、可靠的文件存储。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值