文件管理(下)

news/2024/12/15 20:42:24/

文件存储空间管理

在这里插入图片描述
为磁盘分区

存储空间管理——空闲表法

适用于连续分配方式
如何分配磁盘块:与内存管理中的动态分区分配很类似,为一个文件
分配连续的存储空间。同样可采用首次适应、最佳适应、最坏适应等
算法来决定要为文件分配哪个区间。

如何回收磁盘块:与内存管理中的动态分区分配很类似,当回收某个
存储区时需要有四种情况:①回收区的前后都没有相邻空闲区;②回收区的前后都是空闲区;③回收区前面是空闲区;④回收区后面是空闲区。总之,回收时需要注意表项的合并问题。

存储空间管理——空闲链表法

在这里插入图片描述

空闲盘块链

操作系统保存着链头、链尾指针。
如何分配:若某文件申请K个盘块,则从链头开始依次摘下K个盘块分配,并修改空闲链的链头指针。
如何回收:回收的盘块依次挂到链尾,并修改空闲链的链尾指针。

适用于离散分配

空闲盘区链

操作系统保存着链头、链尾指针。

如何分配:若某文件申请K个盘块,则可以采用首次适应、最佳适应等算法,从链头开始检索,按照算法规则找到一个大小符合要求的空闲盘区,
分配给文件。若没有合适的连续空闲块,也可以将不同盘区的盘块同时分配给-一个文件,注意分配后可能要修改相应的链指针、盘区大小等数据。

如何回收:若回收区和某个空闲盘区相邻,则需要将回收区合并到空闲盘区中。若回收区没有和任何空闲区相邻,将回收区作为单独的一个空闲盘区挂到链尾。

适用于离散分配、连续分配

存储空间管理——位示图法

在这里插入图片描述

如何分配:若文件需要K个块,①顺序扫描位示图,找到K个相邻或不相邻的“0";②根据字号、位号算出对应的盘块号,将相应盘块分配给文件;③将相应位设置为“1”。
如何回收:①根据回收的盘块号计算出对应的字号、位号;②将相应二进制位设为“0”

存储空间管理——成组链接法

空闲表法、空闲链表法不适用于大型文件系统,因为空闲表或空闲链表可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理。
文件卷的目录区中专门用一个磁盘块作为“超级块”,当系统启动时需要将超级块读入内存。并且要保证内存与外存中的“超级块”数据一致。

在这里插入图片描述

文件的基本操作

创建文件(create系统调用)
删除文件(delete系统调用)
读文件(read系统调用)
写文件(write系统调用)
打开文件(open系统调用)
关闭文件(close系统调用)

在这里插入图片描述

文件共享

在这里插入图片描述

基于索引节点的共享方式(硬链接)

在这里插入图片描述

基于符号链的共享方式(软链接)

在这里插入图片描述
当User3访问“ccc” 时,操作系统判断文件“cc”属于Link类型文件,于是会根据其中记录的路径
层层查找目录,最终找到User1的目录表中的“aaa" 表项,于是就找到了文件1的索引结点。

类似于windows的快捷方式
在这里插入图片描述

文件保护

在这里插入图片描述
口令一般存放在文件对应的FCB或索引结点中。用户访问文件前需要先输入“口令”,操作系统会将用户提供的口令与FCB中存储的口令进行对比,如果正确,则允许该用户访问文件

优点:保存口令的空间开销不多,验证口令的时间开销也很小。
缺点:正确的“口令”存放在系统内部,不够安全。

使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密。
Eg:一个最简单的加密算法——异或加密
假设用于加密/解密的“密码”为“01001”
在这里插入图片描述
优点:保密性强,不需要在系统中存储“密码”
缺点:编码/译码,或者说加密/解密要花费一定时间。

在每个文件的FCB (或索引结点)中增加一个访问控制列表(Access-Control List, ACL),该表中记
录了各个用户可以对该文件执行哪些操作。

在这里插入图片描述

总结

在这里插入图片描述

文件系统的层次结构

在这里插入图片描述


http://www.ppmy.cn/news/356514.html

相关文章

六、 文 件 管 理

文章目录 一、UNIX文件系统概述二、文件的物理结构三、索引结点的管理四、空闲磁盘空间的管理五、文件表的管理六、目录管理 一、UNIX文件系统概述 1. UNIX文件系统的特点 (1) 文件系统的组织是分级树形结构。 (2) 文件的物理结构…

文件管理(31)

C/C中文件分两种情况进行读写:文本文件和二进制文件,文本文件把所有的读写都按字节来完成,并且把没个字节当成字符来处理;二进制文件则更加灵活,可以读写其他的数据类型。如: 在文件中存入‘A B C …

小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils

接着之前的第4篇,本篇的2个类,仍然是工具类。 MediaFile,媒体文件,定义了一大堆的常量,真正的有用的方法就几个。 isAudioFileType、isVideoFileType之类的。 MimeUtils,文件类型工具类,定义了…

文件管理(1)

一、文件的概念 文件是具有符号名的,在逻辑上具有完成意义的一组相关信息项的序列。 1.文件的命名: { 文件命名一般包括文件名和扩展名: 前者用于识别文件,后者用于标识文件特性,两者之间用圆点隔开 } 2.文件的分类 {…

Android打开系统文件管理器

一、前言 Android 4.4(API级别19)引入了存储访问框架(SAF)。 通过SAF,用户可以轻松地浏览和打开所有首选文档存储提供商中的文档,图像和其他文件。 也就是说,接下来介绍的方式适用于android4.4的…

1.文件管理

ls命令 ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。 默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更…

Android文件管理器

零、前言 因项目需要自己写了一个文件管理器,主要实现的功能有以下几点: 获取设备中的图片、音乐、视频、文档文件;刷新查看最新文件;选中文件并发送; 技术要点如下:异步读取文件:耗时操作在非…

修改后的小米文件管理器(去掉远程管理)

最近项目要用到文件管理,就找来小米的开源文件管理代码,删掉了远程管理代码,只有文件管理. 效果图如下: 源码下载地址