zoukankan      html  css  js  c++  java
  • [每天五分钟,备战架构师-5]操作系统之文件管理

    文件管理

    操作系统实现了对系统硬件资源和软件资源的管理,其中软件资源主要是各种系统程序、用户应用程序,还包括大量的文档材料,这些软件资源在操作系统中大多以文件的形式存储。文件系统是操作系统中组织、存取和保护数据的重要部分,文件管理的功能包括:创建、修改、删除文件,按文件名访问文件,决定文件信息的存放位置、存放形式和存取权限,管理文件间的联系以及对文件的共享、保护和保密等。

    1、文件和文件系统的概念

    对于熟悉Linux的同学来说一定熟悉一句话,一切皆文件。的确,在Linux系统中,所有的对象都是当作文件来管理和组织的。我们这里讨论的,仅设计一般意义上的文件。

    __文件__是信息的一种组织形式,可以是有结构的也可以是无结构的。操作系统由文件系统来管理文件的存储、检索、更新、共享和保护。文件系统最大的特点就是“按名存取”,用户给出文件的符号名,就能方便存取文件信息。

    文件系统的功能包括:

    • 管理辅助存储器,实现文件从逻辑文件到物理空间的转换。
    • 有效分配文件信息的存储空间
    • 建立文件目录
    • 有提供合适的存取方法和存取权限
    • 提供文件共享、保护和保密等安全设施,提供友好的用户接口。

    2、文件的逻辑组织和结构

    文件的逻辑结构可分为两种:无结构的字符流文件、有结构的记录文件。无结构文件,这是指由字符流构成的文件,又称为流式文件。有结构文件,这是指由一个以上的记录构成的文件,也称为记录式文件。

    记录文件可以分为定长记录文件和变长记录文件。文件的组织形式包括:顺序文件(记录按照某种顺序排列所形成的文件,记录通常是定长的,能较快查找到文件中的记录)、索引顺序文件(为文件建立一张索引表,为每一组记录中的第一个记录设置一个表项)、索引文件(记录为可变长度时,通常建立一张索引表,并为每个记录设置一个表项,加快对记录检索的速度)、直接文件。

    只有顺序文件才能存储在磁带上,并能有效工作。但是想要增加或删除一个文件比较困难。

    3、文件的物理结构及组织

    物理结构是指文件在存储设备上的存放方法,侧重于提高存储器的利用效率、降低存取时间。文件的物理结构涉及文件存储设备的的组块策略和文件分配策略,决定文件在设备上的存储位置。

    常用分配策略:顺序分配、链接分配、索引分配。

    4、文件访问方法

    文件访问常用的有顺序访问和随机访问。

    5、文件存储设备管理

    文件存储设备有很多大小相同的物理块组成,并以块为单位交换信息。文件存储设备管理实质上是对空闲块的组织和管理,包括空闲块的组织、空闲块的分配、空闲块的回收。

    磁盘存储空间的分配方法主要有以下几种:

    连续分配

    连续分配要求为每个文件分配一组相邻接的盘块,一组盘块地址定义了磁盘上的一段线性地址。采用连续分配方式时,可把逻辑文件中的记录顺序地存储到邻接的各物理盘块中,这样所形成的文件结构称为顺序文件结构,这种分配方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。

    链接分配

    将文件装到离散的盘块中,通过每个盘块的链接指针,将同属于一个文件的多个离散盘块链接成一个链表。消除了空间碎片,提高了空间利用率。

    索引分配

    索引分配为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中,因而该索引块就是一个含有许多磁盘块号的数组。这种方式不会产生碎片,其问题主要在于需要花费较多的外存空间。

    有三种管理方法:索引法、链接法、位图法。

    6、文件控制块和文件目录

    文件控制块(File Control Block)是系统在管理文件时必须的信息的数据结构,也称文件描述词。文件目录就是文件控制块的有序集合,FCB包含了基本信息、保护信息、位置信息和使用信息。

    目录结构的组织,关系到文件系统的存取速度,也关系到文件的共享性和安全性,目前常用的目录结构形式有单级目录、两级目录、多级目录。现代系统一般都采用了多级目录结构。

    7、文件的使用与共享

    一般的文件系统都提供了一组命令用于文件和目录的管理。

    以Linux系统为例,列举相关的命令。

    目录管理命令:建立目录 mkdir,显示目录 ls,改变目录 cd,删除目录 rm -r
    文件管理命令:创建文件 touch,删除文件 rm,查看文件属性 file,更改文件名和位置 mv
    文件存取命令:复制文件 cp、显示文件内容 cat,读写文件一般有应用程序接口来实现,截断文件,设置文件读/写的位置

    参考资料:
    1、File System
    2、【操作系统】文件管理(六)

  • 相关阅读:
    工单组件增强
    一些BAPI
    实例程序
    使用BAPI一定要提交和回滚(错误)
    动态内表值导出为TXT文件
    网页常用功能
    Code Complete
    Typescript 解构 、展开
    Typescript变量声明
    TypeScript基础数据类型
  • 原文地址:https://www.cnblogs.com/cocowool/p/sa_file_system.html
Copyright © 2011-2022 走看看