当前位置: 首页 > news >正文

软考知识点---06文件管理与作业管理---01文件管理

  • 📢博客主页:盾山狂热粉的博客_CSDN博客-C、C++语言,机器视觉领域博主
  • 📢努力努力再努力嗷~~~✨

💡大纲

⭕文件管理的主要目的:文件系统专门负责管理外存储器上的信息,使用户可以按名高效、快捷和方便地存储信息

一、基本概念

(一)文件(file)

👉信息项是构成文件内容的基本单位

💡文件包括文件体和文件说明

  • 文件体是文件真实的内容

  • 文件说明是操作系统为了管理文件所使用的信息,主要包括文件名、文件内部标识、文件类型、文件存储地址、文件长度、访问权限、建立时间和访问时间等内容

👉操作系统根据文件名对文件进行控制和管理(不同系统命名规则不同)

(二)文件系统

💡文件系统:操作系统中实现文件统一管理的一组软件和相关的数据的集合,专门负责管理和存取文件信息的软件机构

👉文件系统包括如下功能

  • 按名存取,即用户可以按名存取,而不是按地址存取
  • 统一的用户接口,即在不同设备上提供同样的接口,方便用户操作和编程
  • 并发访问和控制,即在多道程序系统中支持对文件的并发访问和控制
  • 安全性控制,即在多用户系统中的不同用户对同一文件可有不同的访问权限
  • 优化性能,即采用相关技术提高系统对文件的存储效率、检索和读写性能
  • 差错恢复,即能够验证文件的正确性,并具有一定的差错恢复能力

(三)文件分类 

💡文件按照性质和用途、保存期限和保护方式等通常可分为

  • 按文件性质和用途:系统文件、库文件、用户文件
  • 按信息保存期限:临时文件、档案文件、永久文件
  • 按文件的保护方式:只读文件、读写文件、可执行文件、不保存文件
  • UNIX系统:普通文件、目录文件、设备文件(特殊文件)

文件分类的目的:对不同文件进行管理,提高系统效率以及用户界面友好性

二、文件的结构和组织

💡文件的结构是指文件的组织形式

👉从用户角度看到的文件组织形式称为文件的逻辑结构,文件系统的用户只要知道所需要文件的文件名,而无须知道这些文件究竟存放在什么地方,就可存取文件中的信息

👉从实现的角度看文件在文件存储器上的存放方式,称为文件的物理结构

(一)文件的逻辑结构

⭕两大类

  • 一类是有结构的记录式文件,它是由一个以上的记录构成的文件,故又称为记录式文件
  • 另一类是无结构的流式文件,它是由一串顺序字符流构成的文件

1、有结构的记录式文件

💡所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长和不定长两类

  • 定长记录:指文件中所有记录的长度相同
    • 所有记录中的各个数据项都处在记录中相同的位置,具有相同的顺序及相同的长度,文件的长度用记录数目表示
    • 定长记录的特点是处理方便,开销小
  • 变长记录:指文件中各记录的长度不相同
    • 一个记录中所包含的数据项数目可能不同,如书的著作者、论文中的关键词
    • 数据项本身的长度不定

⚠️不论是哪一种结构,在处理前每个记录的长度是可知的

2、无结构的流式文件

💡文件体为字节流,不划分记录

  • 无结构的流式文件通常采用顺序访问方式,并且每次读写访问可以指定任意的数据长度,其长度以字节为单位
  • 对流式文件访问,是利用读写指针指出下一个要访问的字符。可以把流式文件看作是记录式文件的一个特例
  • UNIX系统中,所有的文件都被看作是流式文件,即使是有结构的文件也被视为流式文件,系统不对文件进行格式处理

(二)文件的物理结构(重要)

💡文件的物理结构是指文件的内部组织形式,即文件在物理存储设备上的存放方法

👉常见的物理结构

1、连续结构(顺序结构)

  • 将逻辑上连续的文件信息依次连续存放在连续编号的物理块(顺序表)
  • 只要知道文件的起始物理块号和文件的长度,就可以很方便的进行文件的存取

2、链式结构(串联结构) 

  • 将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有一个指针指向下个物理块(链表)
  • 只要知道文件的第一个物理块号,就可以按链指针查找整个文件

3、索引结构(重要)

  • 采用索引结构时,将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一张索引表
  • 索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中

4、多个物理块的索引表

  • 索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一个文件卷上
  • 根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块
  • 多个物理块的索引表可有两种组织方式:链接文件和多重索引方式

5、例题

📑例题:假设文件系统采用索引阶段管理,且索引节点有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,iaddr[0]~iaddr[4]采用直接地址索引,iaddr[5]iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小都为1KB(字节),文件File1的所有节点如下图所示。若用户访问文件File1中逻辑块号为5187中的信息,则对应的物理块号分别为1101号物理块存放的是2

1A. 89和90        B. 89和136        C. 58和261        D. 90和136

2A. File1的信息        B. 直接地址索引表        C. 一级地址索引表        D.二级地址索引表

🗣️对于这道题,需要注意的信息有:每个地址项大小为4字节、磁盘索引块和磁盘数据块大小都为1KB(字节)。物理盘块的编号从0开始,50~89的物理块号为0~4,从58开始是5。因为90号的大小为1KB,每个地址项为4B,90号对应的索引块包含1024/4=256个物理块,那么到136号就是第260个物理块。从187号开始是第261个物理块,以此类推。

三、 文件目录

💡文件目录是由文件控制块FCB组成的,专门用于文件检索。文件控制块称为文件的说明或文件目录项(简称目录项)

(一)文件控制块

👉文件控制块中包含以下三类信息

  • 基本信息类:文件名、文件的物理地址、文件长度和文件块数等
  • 存取控制信息类:文件的存取权限,如读、写执行(RWX)权限等
  • 使用信息类:文件建立日期、最后一次修改日期、最后一次访问日期、当前使用的信息、打开文件的进程数,以及在文件上的等待队列等

(二)文件目录

👉常见的目录结构有三种:一级目录结构、二级目录结构和多级目录结构

👉一级目录:整个目录组织是一个线性结构,在整个系统中只需建立一张目录表,系统为每个文件分配一个目录项(文件控制块)

  • 优点:结构简单
  • 缺点:查找速度慢,不允许重名和不便于实现文件共享等

👉二级目录:由主文件目录和用户目录组成的。在主文件目录中,每个用户文件目录都占有一个目录项,其目录项中包括用户名和指向此用户目录文件的指针。用户目录由用户所有文件的目录项组成 

  • 优点:提高了检索目录的速度,较好地解决了重名问题
  • 缺点:当多个用户之间要相互合作去共同完成一个大任务,且一个用户又需要去访问其他用户的文件时,这种隔离便成为一个缺点(只能通过指针去访问),因为这种隔离使各用户之间不便于共享文件

👉多级目录(树形目录结构):从树根向下,每个结点是一个目录,叶结点是文件。WindowsUNIX等操作系统均采用多级目录结构

  • 文件属性:R(只读文件)A(存档属性)S(系统文件)H(隐藏文件)

  • 文件名的组成:驱动器号(盘符)\路径\主文件名.扩展名

  • 绝对路径:是指从盘符开始的路径

  • 相对路径:是指从当前开始的路径

四、存取方法、存取控制

(一)文件存取方法

💡文件的存取方法是指读写文件存储器上的一个物理块的方法,通常分为顺序存取和随机存取

👉顺序存取是指对文件中的信息按顺序依次读写的方式

👉随机存取是指可以按任意的次序随机地读写文件中的信息

1、顺序存储法

  • 在提供记录式文件结构的系统中,顺序存取法严格按物理记录排列的顺序依次读取
  • 在只提供无结构的流式文件中,顺序存取法是按读写的位移(Offset)从当前位置开始读写,每读完一段信息,读写位移自动加上这段信息的长度,以便读下一段信息

2、直接存取法

  • 直接存取法允许用户随意存取文件中任意一个物理记录
  • 对于无结构的流式文件,采用直接存取法,必须事先移动到待读写信息的位置上再进行读写

3、按键存取法

  • 按键存取法是直接存取法的一种
  • 它不是根据记录的编号或地址来存取文件主的记录,而是根据文件中各记录的某个数据项内容来存取记录,这种数据项称为

(二)文件存储空间管理

💡文件系统必须对磁盘空间进行管理。外存空闲空间管理的数据结构通常称为磁盘分配表。常见的空闲空间的管理方法有位示图、空闲区表和空闲块链三种

1、空闲区表

  • 将外存空间上一个连续未分配区域称为“空闲区

  • 操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数和状态等信息

  • 适用于连续的文件结构

2、位示图

  • 这种方法是在外存上建立一张位示图,记录文件存储器的使用情况
  • 每一位对应文件存储器上的一个物理块取值0和1分别表示空闲和占用。文件存储器上的物理块依次编号为012……。假如系统中字长为32位,那么在位示图中的第一个字对应的文件存储器上的012……31号物理块;第二个字对应文件存储器上的323334……63号物理块,依次类推
  • 位示图的大小由磁盘空间的大小(物理块总数)决定。例如,大小为120GB的磁盘,物理块的大小为4MB。那么,位示图的大小为:120*1024/4/8=3840B

📑位示图例题:某文件管理系统在磁盘上建立了示图(bitmap),记录磁盘的使用情况。若磁盘上的物理块依次编号为:012,系统中字长为32位,每一位对应文件存储器上的一个物理块,取值01分别表示空闲和占用,如下图所示。

假设将4195号物理块分配给某文件,那么该物理块的使用情况在位图中的第1个字中描述;系统应该将2

1)  A. 129          B. 130          C. 131          D. 132

2  A. 该字的第3位置0”          B. 该字的第3位置“1”         C. 该字的第4位置“0”          D. 该字的第4位置“1”

🗣️一共4195位,4195/32=131(有余数),那么就是在第131个字中进行描述。131*32=4192,相当于上图0的位置,往左数三位,就是在该字的第3位置“1” 

3、空闲链表

4、成组链接法

 五、文件的使用

  • 创建文件:如create(文件名,参数表)

  • 撤销文件:如delete(文件名)

  • 打开文件:如open(文件名,参数表)

  • 关闭文件:如close(文件名)

  • 读文件:如read(文件名,参数表)

  • 写文件:如write(文件名,参数表)

六、文件的共享和保护(了解)

(一)文件的共享

💡文件共享是指不同用户进程使用同一文件,它不仅是不同用户完成同一任务所必须的功能,而且还可以节省大量的内存空间,减少由于文件复制而增加的访问外存的次数

👉文件共享有多种形式,采用文件名和文件说明分离的目录结构有利于实现文件共享

(二)文件的保护

💡文件系统对文件的保护常采用存取控制方式进行

👉存取控制,就是不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问

👉文件的保护方式主要有存取控制矩阵、存取控制表、用户权限表、口令和密码等

七、系统的安全与可靠性(了解)

(一)系统的安全

💡一般可从4个级别:系统级、用户级、目录级和文件级上对文件进行安全性管理

  • 系统级:不允许未经核准的用户进入系统,从而也防止了他人非法使用系统中的各类资源(包括文件)。系统级管理的主要措施有注册和登录

  • 用户级:通过对所有用户分类和对指定用户分配访问权不同的用户对不同文件设置不同的存取权限来实现

  • 目录级:是为了保护系统中各种目录而设计的,它与用户的权限无关。为保证目录的安全,规定只有系统核心才具有写目录的权利

  • 文件级:通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。通常可设置只执行、隐含、只读、读/写、共享和系统等属性用户对文件访问,将由用户访问权、目录访问权限及文件属性三者的权限所确定

(二)文件可靠性

 1、转储和恢复

  • 通过转储操作,形成文件或文件系统的多个副本,这样就有恢复系统的可能

2、日志文件

  • 操作系统把用户对文件的插入、删除和修改的操作写入日志文件。一旦发生故障,利用日志文件进行系统故障恢复,并可协助后备副本进行介质故障恢复

3、文件系统的一致性

  • 影响文件系统的可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到内存,在内存进行修改,修改完毕再写回磁盘。若读取某磁盘块并修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致性状态

  • 通常的解决方案是采用文件系统的一致性检查,包括块的一致性检查和文件的一致性检查

 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

相关文章:

  • leetcode2739--总行驶距离
  • POJO,Entity,model,domain,view,DTO,VO,Param这些分别都是什么含义?怎样理解?
  • 科技赋能无人零售
  • 程序员裁员潮:技术变革下的职业危机探讨及分析
  • ik分词器是什么,有那些配置? ik_smart和ik_max_word的两个分词算法有何区别?
  • 基于FPGA轻松玩转AI
  • 183896-00-6,Biotin-C3-PEG3-C3-NH2,可以选择性降解靶蛋白
  • Redis 8种基本数据类型及常用命令和数据类型的应用场景
  • [ai笔记12] chatGPT技术体系梳理+本质探寻
  • HarmonyOS | 状态管理(五) | @Observed装饰器和@ObjectLink装饰器
  • Qt6.8 GRPC功能使用(2)标准 Qt实现客户端
  • 无人机飞行控制系统技术,四旋翼无人机控制系统建模技术详解
  • API网关基础认知
  • 腾讯云Ubuntu18.04配置深度学习环境
  • 反常积分敛散性的比较判别法专题(及常用反常积分)
  • pythond大屏可视化
  • 知识图谱-生物信息学-医学论文(Chip-2022)-BCKG-基于临床指南的中国乳腺癌知识图谱的构建与应用
  • 力扣 每日一题 902. 最大为 N 的数字组合【难度:困难,rating: 1989】(数学 / 数位dp)
  • 奇迹mu服务器安全和优化设置
  • OC 基础 导航栏UITabBarController的使用(源码)
  • 人脸识别项目FFmpeg+OpenCV+虹软SDK
  • ITRS 与 GCRS 之间的坐标转换
  • 【图像重建】基于matlab SIDER算法图像压缩重建【含Matlab源码 2170期】
  • 多线程同步-条件变量
  • JS(第八课)循环语句中常用到的案例
  • 2022软考高项十大领域知识整理(四)-人力资源管理、干系人管理、采购管理
  • 深度学习基础之BatchNorm和LayerNorm
  • 【Spring】面向切面编程详解(AOP)
  • 力扣(LeetCode)75. 颜色分类(C语言)
  • LeetCode算法题整理(200题左右)
  • flowable-ui绘图常见错误
  • 前端最新基础知识