zoukankan      html  css  js  c++  java
  • 第六章文件系统6_1

    6.1文件和文件系统

    6.1.1文件

    研究文件系统有两种不同的观点:一种是用户,另一种是系统观点

    1.文件的概念

    文件是具有符号名的、在逻辑上有完整意义的的一组相关信息的有序集合。通常放在外存上面。

    2.文件的类型

    1. 按用途分:系统文件、库文件、用户文件。库文件是由系统提供给用户调用的各种标准过程、函数和应用程序等,用户对于库文件只能读取,不能进行修改。
    2. 按文件的保护级别:只读文件、读写文件、只执行文件、不保护文件。
    3. 按存取方法:顺序存取文件、随机存取文件
    4. 等等

    6.1.2文件系统

    所谓文件系统,是指被管理文件,对文件进行管理的一组软件集合以及实现管理功能所需要的数据结构的总体。
    文件系统应具备以下几种功能:

    1. 文件存储空间的管理
    2. 文件目录管理:文件系统的最基本功能就是实现文件的“按名存取”
    3. 文件地址映射
    4. 文件的读写管理
    5. 文件共享与保护

    6.1.3文件操作

    包括文件的创建、删除、打开、关闭、读文件、写文件、设置文件的读写指针、获取文件的属性、重命名文件、锁定文件。

    6.2文件的结构和存取

    • 用户看到的文件称为逻辑文件,它是由一系列的逻辑记录组成的。
    • 文件的逻辑结构,是用户直接处理的数据及其结构,又称为文件组织。用户角度
    • 文件的物理结果,又称为存储结构(与存储介质和外存的分配方式有关)系统角度

    6.2.1文件的逻辑结构

    在进行文件的逻辑结构时,通常考虑一下几个方面:

    1. 提供的操作手段简单易用
    2. 能够提高文件信息的检索速度
    3. 方便文件内容易于修改
    4. 是数据空间紧凑,降低文件的存储费用
    5. 系统的灵活性好

    1.有结构的文件

    • 有结构文件是指整个文件由若干条记录构成,因此也称为记录式文件
    • 对于有结构文件,记录是用户程序和文件系统进行信息交换的基本单位;
    • 数据组织形式分为三级:数据项、记录、文件;
    • 同时记录式文件分为:定长记录文件和变长记录文件
    1. 顺序文件:可分为串结构:按照时间顺序,先后排序,与关键字无关和顺序结构:按照关键字排序。顺序文件的优点是顺序存取的效率高但是缺点是不利于文件的查找、动态增加、删除
    2. 索引文件:
      为主文件中的每个记录在索引表中分别设置一个表项,记录指向记录的指针以及记录的长度,索引表按照关键字排序,因此本身也是一个定长记录的顺序文件。优点是可以随机访问,利于文件的增加和删除,主要是解决了对于不定长记录文件不能随机访问的问题但是会增加存储空间的开销。
    3. 索引顺序文件:是顺序文件和索引文件的结合,它将顺序文件中的所有记录分成若干组,建立一张索引表,其中记录每一组第一条记录的关键字和指向该记录的指针。索引顺序文件的逻辑文件依然是一个顺序文件,当进行检索时,利用用户提供的关键字以及某种查找算法,找到该记录所在记录组的第一个记录表项,然后再利用顺序查找法去查找主文件
      1. 如果在顺序文件中的记录数为N,对于顺序查找平均查找N/2,对于索引顺序文件只要查找N^(1/2)个记录。
      2. 克服了变长记录顺序文件的缺点。但还是要配置一张索引表,增加内存开销。
    4. 直接文件和散列(hash)文件:直接文件是建立关键字和相应记录物理地址之间的对应关系,即通过关键字直接找到物理地址。通常hash函数转换结果是指向记录相应表目的指针,而不是物理地址,表目内容就是物理地址。

    2.无结构文件

    内部不在划分记录,而是由一组相关信息组成的有序字符流,又称为流式文件,其基本单位为字节。大量的源程序、可执行程序、库函数都是流式文件形式。Unix、Linux、Windows系统中都被看走流式文件。

    6.2.2文件的物理结构

    • 物理块(又称为磁盘块或者簇)是磁盘上面的一组连续扇区,它是文件分配和传输信息的基本单位。簇的大小一般是2^n个扇区,如512B、1KB、2KB.....
    • 物理块的大小与逻辑记录的大小无关。
    • 给文件分配磁盘空间的时候,可以采用静态分配和动态分配。

    1.连续文件

    • 连续文件又称为顺序文件,个人觉得跟逻辑结构中的顺序文件是相对应的。
    • 首先就要分配好空间,分配前就要说明创建文件所需的磁盘空间大小。
    • 优点是顺序存取速度快,通常存放系统文件。
    • 也可以方便的实现文件的随机存取????在逻辑结构中不是说不能够实现随机存取吗?
    • 缺点存储文件要求有连续的存储空间,容易产生磁盘碎片,降低了磁盘的利用率。不方便动态增长。

    2.链接文件

    根据链接指针处理方式的不同,可以分为隐式链接和显示链接。

    1. 隐式链接:
      1. 文件所占据的磁盘块中最后一个单元中设置一个链接指针,用于指向下一个磁盘块的盘块号。
      2. 缺点是只可以对文件进行顺序存取,效率低,可靠性也比较低。
    2. 显示链接:
      1. 为了实现文件的随机存取,把链接文件的各磁盘块的连接指针,显示的存放在外存的一张链接表中。
      2. 文件分配表(FAT)根据表项的长度分为FAT12(12表示12位)、FAT16....MS-DOS、Windows都采用FAT。
      3. 由于FAT是以磁盘上的物理盘块为序,故FAT的表项数是由磁盘块的数量决定的。
      4. 这里有一个知识点,就是计算FAT的大小,给出磁盘分区的大小和单个磁盘块大小后,然后计算一共有多少个盘块,可以用几位二进制位表示,确定好磁盘块号的大小(每个磁盘块号的大小取半个字节的大小一个字节B有八位二进制),最后直接用盘块的数量乘以盘块号的大小。

    3.索引文件

    1. 单级索引文件
      1. 系统为每个文件建立一张索引表,每个逻辑块占一个表项,以逻辑块号为序,表项内容为该逻辑块对应的物理块号。
      2. 优点是支持高效的随机访问。
      3. 不会产生外部碎片,也支持文件的动态增长。
    2. 多级索引文件
      1. 就是在一级索引的基础上再增加一个二级索引。
      2. 优点是提供对大文件的支持。
      3. 缺点是访问一个磁盘块需要启动磁盘的次数随着索引的增加而增加。
    3. 混合多级索引文件
      1.将多种索引分配方式相组合形成一种文件。

    6.2.3文件存取

    1. 文件系统把用户组织的逻辑文件按一定的方式转化成物理文件存放到存储介质上。存储结构不仅和存储介质的物理特性有关,还和文件的存取方式有关。
    2. 根据文件的存取顺序,存取方法可分为顺序存取和随机存取。文件逻辑结构不管是有结构的记录文件还是流式文件,都可以使用顺序存取或是随机存取的方式。
    3. 顺序存取基本上所有的物理结构的存储方式都可以。
    4. 随机存取是系统把它组织成索引文件,定长记录的连续文件和显示的链接文件。不过显示的链接文件需要顺序的检索FAT表,因此随机存取的效率比较低。
    作者:睿晞
    身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
    劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
    曾有一个业界大牛说过这样一段话,送给大家:   “华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    maven3自定义archetype
    Struts2传参碰到的奇怪问题
    easyui1.2.6 validate输入框验证在火狐下的一个bug
    easyui+ztree 后台管理系统模板
    html table中单元格自动换行
    windows重装后,不重装oracle,直接恢复数据库
    Debug---Eclipse断点调试基础
    Spring3 MVC请求参数获取的几种方法[转载]
    jQuery插件之ajaxFileUpload[转载]
    Spring MVC 3.0 深入及对注解的详细讲解[转载]
  • 原文地址:https://www.cnblogs.com/tsruixi/p/10738625.html
Copyright © 2011-2022 走看看