精华内容
参与话题
问答
  • 操作系统基本原理---文件管理

    万次阅读 2018-08-02 22:01:02
    文件管理  操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU 的管理、存储器的管理、设备管理等,主要解决硬件资源的有效和合理利用问题。  软件资源包括各种系统程序、各种...

    文件管理

        操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU 的管理、存储器的管理、设备管理等,主要解决硬件资源的有效和合理利用问题。

        软件资源包括各种系统程序、各种应用程序、各种用户程序,也包括大量的文档材料、库函数等。每一种软件资源本身都是具有一定逻辑意义的相关信息的集合,在操作系统中它们以文件形式存储。

        计算机系统的重要作用之一是能快速处理大量信息,因此数据的组织、存取和保护成为一个极重要的内容。文件系统是操作系统中组织、存取和保护数据的一个重要部分。

        文件管理的功能包括:建立、修改、删除文件;按文件名访问文件;决定文件信息的存放位置、存放形式及存取权限;管理文件间的联系及提供对文件的共享、保护和保密等。允许多个用户协同工作又不引起混乱。文件的共享是指一个文件可以让多个用户共同使用,它可以减少用户的重复性劳动,节省文件的存储空间,减少输入/输出文件的次数等。文件的保护主要是为防止由于错误操作而对文件造成的破坏。文件的保密是为了防止未经授权的用户对文件进行访问。

        文件的保护、保密实际上是用户对文件的存取权限控制问题。一般为文件的存取设置两级控制:第 1 级是访问者的识别,即规定哪些人可以访问;第 2 级是存取权限的识别,即有权参与访问者可对文件执行何种操作。 

        1.文件的逻辑结构

        文件的结构是指文件的组织形式,从用户角度所看到的文件组织形式,称为文件的逻辑结构。

        文件的逻辑组织是为了方便用户使用。一般文件的逻辑结构可以分为两种:无结构的字符流文件和有结构的记录文件。记录文件由记录组成,即文件内的信息划分成多个记录,以记录为单位组织和使用信息。

       记录文件有顺序文件、索引顺序文件、索引文件和直接文件。

        (1)顺序文件。大多数文件是顺序文件。顺序文件的记录定长,记录中的数据项的类型长度与次序固定,一般还有一个可以唯一标识记录的数据项,称为键(key),记录是按键值的约定次序组织的。顺序文件常用于批处理应用,对于查询或更新某个记录的处理性能不太好。

        (2)索引顺序文件。索引顺序文件是基于键的约定次序组织的,而且维护键的索引和溢出区域。键的索引也可以是多级索引。索引顺序文件既适用于交互方式应用,也适用于批处理方式应用。

        (3)索引文件。索引文件是基于记录的一个键数据项组织的。许多应用需按照别的数据项访问文件,为此,常采用索引文件方法,即对主文件中的记录按需要的数据项(一个或几个)建索引,索引文件本身是顺序文件组织。

        (4)直接文件。直接文件又称哈希(Hash)文件。记录以它们在直接访问存储设备上的物理地址直接(随机地)访问。直接文件常用 于需要高速访问文件而且每次仅访问一条记录的应用中。 

        2.文件的物理结构

        文件的物理结构是指文件在存储设备上的存放方法。文件的物理结构侧重于提高存储器的利用效率和降低存取时间。文件的存储设备通常划分为大小相同的物理块,物理块是分配和传输信息的基本单位。文件的物理结构涉及文件存储设备的组块策略和文件分配策略,决定文件信息在存储设备上的存储位置。常用的文件分配策略有:

        (1)顺序分配(连续分配)。这是最简单的分配方法。在文件建立时预先分配一组连续的物理块,然后,按照逻辑文件中的信息(或记录)顺序,依次把信息(或记录)按顺序存储到物理块中。这样,只需知道文件在文件存储设备上的起始位置和文件长度,就能进行存取,这种分配方法适合于顺序存取,在连续存取相邻信息时,存取速度快。其缺点是在文件建立时必须指定文件的信息长度,以后不能动态增长,一般不宜用于需要经常修改的文件。

        (2)链接分配(串联分配)。这是按单个物理块逐个进行的。每个物理块中(一般是最后一个单元)设有一个指针,指向其后续连接的下一个物理块的地址,这样,所有的物理块都被链接起来,形成一个链接队列。在建立链接文件时,不需要指定文件的长度,在文件的说明信息中,只需指出该文件的第一个物理块块号,而且链接文件的文件长度可以动态地增长。只调整物理块间的指针就可以插入或删除一个信息块。

        链接分配的优点是可以解决存储器的碎片问题,提高存储空间利用率。由于链接文件只能按照队列中的链接指针顺序查找,因此搜索效率低,一般只适用于顺序访问,不适用于随机存取。

        (3)索引分配。这是另一种对文件存储不连续分配的方法。采用索引分配方法的系统,为每一个文件建立一张索引表,索引表中每一表项指出文件信息所在的逻辑块号和与之对应的物理块号。

        索引分配既可以满足文件动态增长的要求,又可以方便而迅速地实现随机存取。对一些大的文件,当索引表的大小超过一个物理块时,会发生索引表的分配问题。一般采用多级(间接索引)技术,这时在由索引表指出的物理块中存放的不是文件存放处而是存放文件信息的物理块地址。这样,如果一个物理块能存储 n 个地址,则一级间接索引将使可寻址的文件长度变成 n2 块,对于更大的文件可以采用二级甚至三级间接索引(例如,UNIX 操作系统采用三级索引结构,如图 2-9 所示)。

        索引文件的优点是既适用于顺序存取,又适用于随机存取。缺点是索引表增加了存储 空间的开销。另外,在存取文件时需要访问两次磁盘,一次是访问索引表,另一次是根据索引表提供的物理块号访问文件信息。为了提高效率,一种改进的方法是,在对某个文件进行操作之前,预先把索引表调入内存。这样,文件的存取就能直接从内存的索引表中确定相应的物理块号,从而只需要访问一次磁盘。

        3.文件存储设备管理 

        文件存储设备管理,就是操作系统要有效地进行存储空间的管理。由于文件存储设备是分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理问题。它包括空闲块的组织,空闲块的分配与空闲块的回收等问题。有3种不同的空闲块管理方法,它们分别是索引法、链接法和位示图法。

        (1)索引法。索引法把空闲块作为文件并采用索引技术。为了有效,索引对应于一个 或由几个空闲块构成的空闲区。这样,磁盘上每一个空闲块区都对应于索引表中一个条目,这个方法能有效地支持每一种文件分配方法。

        (2)链接法。链接法使用链表把空闲块组织在一起,当申请者需要空闲块时,分配程 序从链首开始摘取所需的空闲块。反之,管理程序把回收的空闲块逐个挂入队尾,这个方 法适用于每一种文件分配方法。空闲块的链接方法可以按释放的先后顺序链接,也可以按 空闲块区的大小顺序链接。后者有利于获得连续的空闲块的请求,但在分配请求和回收空闲块时系统开销多一点。

        (3)位示图法。该方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使 用情况。每一位仅对应文件存储器上的一个物理块,取值0 和1 分别表示空闲和占用。文件存储器上的物理块依次编号为:0、1、2、…。假如系统中字长为32位,有4096个物

    理块,那么在位示图中的第1个字对应文件存储器上的0、1、2、…、31号物理块;第2 个字对应文件存储器上的32、33、34、…、63号物理块;第128字对应文件存储器上的4064、4065、…、4095号物理块。这样位示图的大小为32字。

        位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况,如图2-10 所示。当其 值为“0”时,表示对应的盘块空闲;为“1”时表示已分配。由所有盘块对应的位构成一个集合,称为位示图。位示图也可描述为一个二维数组map:Varmap:array[1.…m,1.…n]of bit;

        4.树型目录结构

        在计算机的文件系统中,一般采用树型目录结构。在树型目录结构中,树的根结点为根目录,数据文件作为树叶,其他所有目录均作为树的结点。

       根目录隐含于一个硬盘的一个分区中,根目录在最顶层。它包含的子目录是一级子目录。每一个一级子目录又可以包含若干二级子目录,…,这样的组织结构就叫作目录树。

        当前盘和当前目录是系统默认的操作对象。如果用户没有指明操作对象,系统就将用户命令指向当前盘和当前目录。

        路径是指从根目录或者当前目录开始到访问对象(目录或者文件),在目录树中路经的所有目录的序列。例如“c:\dos\lmouse\mouse”就是 Windows 系统中的一条路径。在树型目录结构中,从根目录到任何数据文件之间,只有一条唯一的通路,从树根开始,把全部目录文件名与数据文件名,依次用“/”(UNIX/Linux 系统)或“\”(Windows 系统)连接起来,构成该数据文件的路径名,且每个数据文件的路径名是唯一的。这样,便可以解决文件重名问题。

        从树根开始的路径为绝对路径,如果文件系统有很多级时,使用不是很方便,所以引入相对路径,即从当前目录开始,再逐级通过中间的目录文件,最后到达所要访问的数据文件。

        绝对路径给出文件或目录位置的完全描述,通常由层次结构的顶端开始(根目录),通常第一个字符是“/”(UNIX/Linux 系统)或者是盘符(Windows 系统)。相对路径通常由目录结构中的当前位置开始,一般都比绝对路径要短。

        父目录是指当前路径的上一层目录。每个目录下都有代表当前目录的“.”文件和代表当前目录父目录的“..”文件,相对路径名一般就是从“..”开始的。

    展开全文
  • 操作系统总结之文件管理

    万次阅读 多人点赞 2018-07-07 16:11:32
    文件管理,由于系统的内存有限并且不能长期保存,故平时总是把它们以文件的形式存放在外存中,需要时再将它们调入内存。如何高效的对文件进行管理是操作系统实现的目标。 二:文件和文件系统 ...

    一:主要内容:

    1. 概述
    2. 文件的逻辑结构 ( 顺序文件,索引文件,索引顺序文件,直接文件和哈希文件 )
    3. 外存分配方式
    4. 文件目录管理
    5. 文件存储空间管理
    6. 文件系统的可靠性和安全性
    7. 文件系统的数据一致性控制

    文件管理,由于系统的内存有限并且不能长期保存,故平时总是把它们以文件的形式存放在外存中,需要时再将它们调入内存。如何高效的对文件进行管理是操作系统实现的目标。

    二:文件和文件系统

    2.1

      现代OS几乎都是通过文件系统来组织和管理在计算机中所存储的大量程序和数据的。文件系统的管理功能是通过把它所管理的程序和数据组织成一系列文件的方法来实现的。而文件则是指具有文件名的若干相关元素的集合。元素通常是记录,而记录是一组有意义的数据项的集合。可以把数据组成分为数据项、记录、文件。
      
      ①数据项,数据项是最低级数据组织形式。分为基本数据项(用于描述一个对象某种属性的字符集,是数据组织中可以明明的最小逻辑数据单位,即原子数据,又称为数据元素或字段)和组合数据项(由若干个基本数据项组成)

      ② 记录,是一组相关数据项的集合,用于描述一个对象在某方面的属性,为了能够唯一标识一个记录,需要在一个记录的各个数据项中确定一个或几个数据项,把他们的集合称为关键字,关键字是能够唯一标识一个记录的数据项。

      ③ 文件,文件是具有文件名的一组相关元素的集合,分为有结构文件(又称记录式文件:文件由一组相似记录组成 。如报考某学校的所有考生的报考信息记录)和无结构文件(又称流式文件:被看成是一个字符流。比如一个二进制文件或字符文件)。有结构文件由若干个相关记录组成,无结构文件则被看成一个字符流。文件是文件系统的最大数据单位。文件应该具有自己的属性,包括文件类型(如源文件、目标文件、可执行文件等),文件长度(文件的当前长度,也可能是最大允许长度),文件的物理位置(指示文件在哪一个设备上及在该设备的哪个位置的指针),文件的建立时间(文件最后一次修改时间)。
      
       一个文件可对应若干个记录,一个记录可对应若干个数据项。

      文件系统管理的对象有:文件(作为文件管理的直接对象),目录(为了方便用户对文件的存取和检索,在文件系统中配置目录,每个目录项中,必须含有文件名及该文件所在的物理地址,对目录的组织和管理是方便和提高对文件存取速度的关键),磁盘(文件和目录必定占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能提高对文件的存取速度)。
      

    2.2 文件的属性、基本操作以及文件的打开和关闭

    2.2.1 文件的属性

    ①名称:文件名称唯一,以容易读取的形式保存。

    ②标识符:标识文件系统内文件的唯一标签,通常为数字,它是对人不可读的一种内部名称。

    ③类型:被支持不同类型的文件系统所使用。

    ④位置:指向设备和设备上文件的指针。

    ⑤大小:文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。

    ⑥保护:对文件进行保护的访问控制信息。

    ⑦时间、日期和用户标识:文件创建、上次修改和上次访问的相关信息,用于保护、 安全和跟踪文件的使用。

    2.2.2 文件的基本橾作

      ① 创建文件,在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项,目录项中应该记录新文件的文件名及其在外存的地址等属性。

      ② 删除文件,当已不再需要某文件时,可将其从文件系统中删除,在删除时,系统应先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。

      ③ 读文件,读文件时,须在相应系统调用中给出文件名和应读入的内存目标地址。此时,系统要查找目录,找到指定目录项,从中得到被读文件在外存中的位置。在目录项中,还有一个指针用于对文件进行读/写。

      ④ 写文件,写文件时,须在相应系统调用中给出文件名和其在内存源地址。此时,系统要查找目录,找到指定目录项,从再利用目录中的写指针进行写操作。

      ⑤ 截断文件,如果一个文件的内容已经陈旧而需要全部更新时,一种方法是将此文件删除,再重新创建一个新文件,但如果文件名和属性均无改变,则可采取截断文件的方法,其将原有的文件长度设置为0,放弃原有文件的内容。

      ⑥ 设置文件的读/写位置,用于设置文件读/写指针的位置,以便每次读/写文件时,不需要从始端开始而是从所设置的位置开始操作。可以改顺序存取为随机存取。

    2.2.3 文件的打开和关闭

    来源:当前OS所提供的大多数对文件的操作,其过程大致都是这样两步:首先,检索文件目录来找到指定文件的属性及其在外存上的位置;然后,对文件实施相应的操作,如读/写文件等,当用户要求对一个文件实施多次读/写或其他操作时,每次都要从检索目录开始,为了避免多次重复地检索目录,在大多数OS中都引入了打开这一文件系统调用,当用户第一次请求对某文件系统进行操作时,先利用open系统调用将该文件打开。

    打开是指系统将指名文件的属性(包括该文件在外存上的物理位置)从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(索引号)返回给用户,以后,当用户再要求对该文件进行操作时,便可利用系统所返回的索引号向系统提出操作请求,系统便可直接利用该索引号到打开文件表中去查找,从而避免了对该文件的再次检索,如果用户不再需要对该文件实施操作,可利用关闭系统调用来关闭此文件,OS将会把该文件从打开文件表中的表目上删除掉。

    三:文件的逻辑结构

    • 文件的逻辑结构:从用户角度看文件的组织形式
    • 文件的物理结构:文件在外存上的存储组织形式

    3.1 文件的逻辑结构类型

    无结构文件(流式文件)
    

    无结构文件是最简单的文件组织形式。无结构文件将数据按顺序组织成记录并积累保存,它是有序相关信息项的集合,以字节(Byte)为单位。由于无结构文件没有结构,因而对记录的访问只能通过穷举搜索的方式,故这种文件形式对大多数应用不适用。但字符流的无结构文件管理简单,用户可以方便地对其进行操作。所以,那些对基本信息单位操作不多的文件较适于釆用字符流的无结构方式,如源程序、可执行文件、库函数等。

    有结构文件(记录式文件)
    

    按记录的组织形式可以分为:

    3.1.1 顺序文件

    文件是记录的集合,文件中的记录可以是任意顺序的,因此,它可以按照各种不同的顺序进行排列,一般地,可归纳为以下两种情况。

      ① 串结构,个记录之间的顺序与关键字无关,通常按照时间先后排序,最先存入的记录作为第一个记录,其次,为第二个记录,以此类推。

      ② 顺序结构,文件中所有记录按照关键字排列,可以按照关键词长度从大到小排列。顺序结构的检索效率更高。

      顺序文件的最佳应用场合是在对诸记录进行批量存取时,即每次要读或写一大批记录时,此时,对顺序文件的存取效率是所有逻辑文件中最高的,此外,只有顺序文件才能存储在磁带上,并能有效工作。但是想要增加或删除一个文件比较困难。

    提问:为什么增加或删除一个文件比较困难?

    答:类似于数组的缺点。

    3.1.2 索引文件

      对于定长记录文件,可以方便的实现顺序存取和直接存取,然而,对于变长记录就很难实现。为了解决变长记录检索问题,可为变长记录文件建立一张索引表,对主文件中的每个记录,在索引表中设有一个相应的表项,用于记录该记录的长度 L 及指向该记录的指针(指向该记录在逻辑地址空间的首址),由于索引表按记录键排序的,因此,索引表本身就是一个定长记录的顺序文件。从而可以方便实现直接存取。
    这里写图片描述

    索引表与文件一一对应
    

      由于是按照关键字进行建立的索引,所以在对索引文件进行检索时,首先根据用户(程序)提供的关键字,并利用折半查找检索索引表,从中找到相应的表项,再利用该表项给出的指向记录的指针值,去访问所需的记录。每当要向索引文件中增加一个新纪录时,便须对索引表进行修改。索引表的问题在于除了有主文件外,还需要配置一张索引表,每个记录需要有一个索引项,因此提高了存储费用。优点就是拥有较快的检索速度,适合用于对及时性要求比较高的场合。

    3.1.3 索引顺序文件

    其有效克服了变长记录不便于直接存取的缺点,而且所付出的代价也不算太大,它是顺序文件和索引文件相结合的产物,它将顺序文件中的所有记录分为若干个组,为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有该记录的键值和指向记录的指针。

      这里写图片描述
    在对索引顺序文件进行检索时,首先利用用户(程序)所提供的关键字及某种查找算法去检索索引表,找到该记录组中的第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置,然后,再利用顺序查找法去查找主文件,从中找出所要求的记录。

    3.1.4 直接文件

      对于直接文件,则根据给定的记录键值,直接获得指定记录的物理地址,换言之,记录键值本身就决定了记录的物理地址,这种由记录键值到记录物理地址的转换被称为键值转换。

    3.1.5 哈希(Hash)文件

      利用Hash函数可将记录键值转换为相应记录的地址,为了能实现文件存储空间的动态分配,通常由Hash函数所求得的并非是相应记录的地址,而是指向一目录表相应表目的指针,该表目的内容指向相应记录所在的物理块。
      这里写图片描述
    emmmmmmm , 这个所讲的意思并不是很懂~_~

    四:文件目录管理

    为了能够对文件实施有效的管理,必须对它们加以妥善组织,这主要是通过文件目录实现的,文件目录也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用,对目录的管理要求如下:

      ① 实现按名存取,即用户只须向系统提供所需访问的文件的名字,便能够快速准确地找到指定文件在外存上的存储位置,这是目录管理中最基本的功能。

      ② 提高对目录检索速度,通过合理地组织目录结构的方法,可加快对目录的检索速度,从而提高对文件的存取速度。

      ③ 文件共享,在多用户系统中,应该允许用户共享一个文件。

      ④ 允许文件重名,系统应允许不同用户对不同文件采用相同的名字,以便用户按照自己的习惯给文件命名和使用文件。

    4.1 文件控制块

      为了能对文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为文件控制块FCB,文件管理程序可借助于文件控制块中的信息,对文件施加各种操作,文件与文件控制块一一对应,而人们把文件控制块的有序集合称为文件目录,一个文件控制块就是一个文件目录项。通常,一个文件目录也可被看成是一个文件,称为目录文件。
      
        文件控制块包含基本信息、存取控制信息、使用信息。
        
      ① 基本信息,包括文件名(标识一个文件的符号名,在每个系统中,每个文件都有唯一的名字,用户利用该名字进行存取);文件物理位置(指文件在外存上的存储位置,包括存放文件的设备名、文件在外村上的起始盘块号、指示文件所占用的盘块数或字节数的文件长度);文件逻辑结构(指示文件是流式文件还是记录式文件、记录数,文件是定长还是变长记录);文件物理结构(指示文件是顺序文件、链式文件还是索引文件)

      ② 存取控制信息,包括文件主的存取权限、核准用户的存取权限及一般用户的存取权限。

      ③ 使用信息,包括文件的建立日期和时间、文件上一次修改的日期和时间及当前使用信息(这项信息包括当前已打开该文件的进程数、是否被其他进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上)

    4.2 索引结点

      文件目录通常是存放在磁盘上的,当文件很多时,文件目录可能要占用大量的盘块,在查找的过程中,先将存放目录文件的第一个盘块中的目录调入内存,然后把用户所给定的文件名和目录项中的文件名逐一对比。若未找到指定文件,则再将下一个盘块中的目录项调入内存。在检索目录文件时,只用到了文件名,仅当找到一个目录项(即其中的文件名与指定要查找的文件名相匹配)时,才需要从该目录项中读出该文件的物理地址,而其他一些对该文件进行描述的信息,在检索目录时一概不用,显然,这些信息在检索目录时不需要调入内存。为此,在有的系统中,如UNIX系统,便采用了把文件名和文件描述信息分开的方法,亦即,使文件描述信息单独形成一个称为索引结点的数据结构,简称为i结点,在文件目录中的每个目录项由文件名和指向该文件所对应的i结点的指针所构成。
      这里写图片描述

    每个文件都有唯一的磁盘索引结点(磁盘索引结点信息与文件名等信息一起构成了FCB)
    

    4.3 目录结构

      目录结构的组织,关系到文件系统的存取速度,也关系到文件的共享性和安全性,目前常用的目录结构形式有单级目录、两级目录、多级目录。
      ① 单级目录结构,在整个系统中只建立一张目录表,每个文件占一个目录项,目录项中含文件名、文件扩展名、文件长度、文件类型、文件物理地址、状态位(表示目录项是否空闲)等。每当要建立一个新文件时,必须先检查所有的目录项,以保证新文件名在目录中是唯一的,然后再从目录表中找到一个空白目录项,填入新文件的文件名及其他说明信息,并置状态为1,删除文件时,先从目录中找到该文件的目录项,回收该文件所占用的存储空间,然后再清除该目录项。单级目录的有点是简单并且能够实现目录管理的基本功能-按名存取,但是查找速度慢(查找一个目录项要花费较多的时间),不允许重名(在一个目录表中的所有文件,都不能与另一个文件有相同的名字,这是难以避免的),不便于实现文件共享(每一个用户都有自己的名字空间或命名习惯,因此,应该允许不同用户使用不同的文件名来访问同一个文件)
      这里写图片描述
        ② 两级目录结构,为每个用户建立一个单独的用户文件目录UFD(User File Directory),这些文件目录具有相似的结构,由用户所有文件的文件控制块组成。此外,系统中还有一个主文件目录MFD(Master File Directory)在主文件目录中,每个用户目录文件都占有一个目录项,其目录项包括用户名和指向用户目录文件的指针。
        这里写图片描述
      两级目录结构克服了单级目录的缺点,具有如下优点:提高了检索目录的速度(如果在主目录中有n个子目录,每个用户目录最多为m个目录项,则为查找一指定的目录项,最多只需要检索n+m个目录项)。在不同的用户目录中,可以使用相同的文件名(只要在用户自己的UFD中,每个文件名都是唯一的,不同用户可以有文件名相同的文件)。不同用户还可使用不同的文件名来访问系统中同一个共享文件。但在多个用户需要合作完成一个大任务时,不便于用户之间共享文件。
       ③ 多级目录结构,对于大型文件系统,通常采用三级或三级以上的目录结构,以提高对目录的检索速度和文件系统的性能。多级目录结构又称为树形目录结构,主目录被称为根目录,把数据文件称为树叶,其他的目录均作为树的结点。 
        
       这里写图片描述
       
    说明:方框代表目录文件,圆圈代表数据文件
    1. 应该允许在一个目录文件中的目录项既是作为目录文件的FCB,又是数据文件的FCB,这一信息可用目录项中的一位来指示。如用户A总目录中,目录项A是目录文件FCB,而目录项B和D则是数据文件的FCB。
    2. 系统中的每个文件都有唯一的路径名
    3. 绝对路径与相对路径

    4.4 目录查询技术

      当用户要访问一个已存在的文件时,系统首先利用用户提供的文件名对目录进行查询,找出该文件的文件控制块或对应索引结点,然后,根据FCB或索引结点中所记录的文件物理地址(盘块号),换算出文件在磁盘上的物理位置,最后,再通过磁盘驱动程序,将所需文件读入内存。目前常用的方式有线性检索法和Hash方法。
      ① 线性检索法,其又称为顺序检索法,在树形目录中,用户提供的文件名是由多个文件分量名组成的路径名,此时须对多级目录进行查找,假定用户给定的文件路径名为/usr/ast/mbox,则查找过程如下。  
      这里写图片描述
      
    1. 读入第一个文件分量名usr,用它与根目录文件(或当前目录文件)中各目录项中的文件名顺序地进行比较
    2. 得到匹配项的索引结点号是6
    3. 从6号索引结点中得到usr目录文件放在132号盘块中,将该盘块内容读入内存
    4. 再将路径名中的第二个分量名ast读入,用它与放在132号盘块中的第二级目录文件中各目录项的文件名顺序进行比较
    5. 依次类推

      ② Hash方法,系统利用用户提供的文件名并将它转换为文件目录的索引值,再利用该索引值到目录中去查找,这将提高检索速度。

    五:文件共享(略)

    六:文件保护(略)

    参考文献:

    https://www.cnblogs.com/tangshiguang/p/6746235.html
    https://blog.csdn.net/xiaoyangsavvy/article/details/78260777

    展开全文
  • windows上最好用的文件管理软件 Directory Opus windows 自带的文件管理软件就不用提了,垃圾的一比。而市面上比较流行的文件管理软件 xyploer,total commander 之类我都使用过,其中 total commander 的确是神器,...

    windows上最好用的文件管理软件 Directory Opus

    windows 自带的文件管理软件就不用提了,垃圾的一比。而市面上比较流行的文件管理软件 xyploer,total commander 之类我都使用过,其中 total commander 的确是神器,但是界面太难看,还有学习路径比较陡峭,最后还是放弃了。

    后来我使用了 windows 上的资源管理器增强软件 clover 感觉还是不错的,也使用了很长时间。那为什么现在弃用了呢?因为我之前一直是用 win7 系统,现在转战 win10 系统,发现 clover 在 win10 上表现很差,经常有卡死的现象,实在难以忍受。

    在尝试过多款多标签的文件管理软件之后,我决定选定 Directory Opus,该软件目前可以的版本地址,提取码为 7icx。这款软件比 clover 强大上许多,而且使用起来学习成本很低,界面也美观不少,这是我日常使用界面的截图:

    20190401140543.png

    这款软件可以完美替代 windows 自带的资源管理器,并且可以像在 colver 在同一个窗口打开过个标签也,这部分的设置

    总体上来说是非常另我满意的,快捷键功能也非常丰富,这别要特别提一下的快捷键就是如何从坐标面板跳到右边面板,即 ctrl+tab 其他快捷键都可以从帮助栏下面的快捷键中找到:

    20190401140811.png

    Directory Opus 配合listary,使用可以说是天下无敌了。

    最后,我分享一下我个人使用的皮肤,其实我的皮肤是从 Directoy Opus 社区分享的多个主题皮肤,自己改进而来,我的 Directory Opus 一个完全的配置备份, 提取码:y5we。大家可以根据需要恢复自己想要的部分,至于如何恢复备份,如何导入主题之类的自行百度即可,前人都有分享方法,我就不再赘述。

    展开全文
  • java实现文件管理

    万次阅读 多人点赞 2019-07-30 09:37:11
    ** 文件管理** 显示“DaSai”目录下以”Ex”开头的文件和目录,写了如下代码,请完善之: import java.io.*; class JavaFilter implements FilenameFilter{ String jf; JavaFilter(String s){ jf=s; } //实现...

    ** 文件管理**

    显示“DaSai”目录下以”Ex”开头的文件和目录,写了如下代码,请完善之:

    import java.io.*;
    class JavaFilter implements FilenameFilter{
        String jf;
        JavaFilter(String s){
            jf=s;
        }
        //实现FilenameFilter接口的accept()方法
        public boolean accept(File dir,String name){
            return name.startsWith(jf);//name的前缀是否是参数jf
        }
    }
    public class  Ex{
        public static void main(String[] args) throws Exception {
            File f=new File("/DaSai");
            //过滤以“Ex”开头的文件和目录,存放到字符串数组s中。
            String s[]=____________________________;
            for(int i=0;i<s.length;i++){
                File ff=new File(s[i]);// 根据s[i]创建File类对象
                if(ff.isDirectory())
                    System.out.println(s[i]+" is a directory");
                else
                    System.out.println(s[i]+" is a file");
            }
        }
    }
    
    f.list(new JavaFilter("Ex"))
    
    展开全文
  • 文件管理系统源码下载

    热门讨论 2009-08-21 22:36:51
    文件管理模块不能独立运行,它需要嵌入宿主应用程序当中才能正常使用。使用该程序,可以方便地在线上传、下载、移动、删除、压缩、解压文件和文件夹,并能准确统计出个人空间内文件及文件夹的数量。
  • 文件管理

    万次阅读 多人点赞 2018-10-10 14:59:45
    1.下列文件物理结构中,适合随机访问且易于文件扩展的是() 连续结构 索引结构 链式结构且磁盘块定长 链式结构且磁盘块变长 解析: 文件的物理结构包括连续、链式、索引三种,其中链式结构...
  • 文件管理

    2018-11-29 12:17:38
    待写
  • C# WinForm文件管理系统(终结版)

    热门讨论 2012-02-13 09:07:46
    学生个人文件管理系统 v2.0 A.声明: 1.非源代码。 2.有些用户没有设置自己的数据库服务器就直接登录或者注册,这样是不会成的, 请选择自定义服务器,然后填入自己的IP,数据库用户名以及密码,因为默认服 ...
  • 文件管理概述

    2020-09-25 15:56:28
    1.文件中的属性 2.文件中的数据是如何组织的 3.文件文件之间是如何组织的 4.文件与应用程序的交互 5.文件与硬件的交互 1.属性 1.文件名称 2.文件大小 3.文件目录 4.文件的标识符 5.文件的类型 6.文件的保护信息 2....
  • Windows: 以多根的方式组织文件 C:\ D:\ E:\ Linux: 以单根的方式组织文件 / 1.2 简介 /目录结构: FSH (Filesystem Hierarchy Standard) [root@tianyun ~]# ls / bin dev lib media net root srv usr boot etc ...
  • android 调用系统文件管理

    万次阅读 热门讨论 2018-07-11 09:09:23
    今天,简单讲讲android如何调用系统的文件管理器获取目录下的文件资源。这几天,还是因为搬家的事,导致自己状态很差。和领导说想要辞职,领导说还是先适应一下在说。所以还是坚持了。这个其实也很简单,之前做一个...
  • 操作系统文件管理

    万次阅读 多人点赞 2011-01-06 18:27:00
    如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的属性,以及它们在外存上的位置,而且在多用户环境下,还必须能保持数据的安全性和一致性。显然,这是用户所不能胜任、也不...
  • 用这段代码跳转到系统文件管理器了。 但是没有保存按钮该怎么保存?能不能在跳转的界面上添加个保存按钮 ![图片说明](https://img-ask.csdn.net/upload/201603/30/1459329298_876563.jpg)想要的效果! [图片...
  • Android 文件管理器 Android文件管理器源代码

    千次阅读 热门讨论 2012-07-30 14:55:30
    /**************************************************** 大家都知道写博客会很累的,大热天的。 ... 请不要可怜你的鼠标,(*^__^*) 嘻嘻…… ***************************************************/ ...
  • linux 文件管理

    千次阅读 2018-03-25 21:43:27
    查看文件目录 pwd 显示当前工作目录,不一定是用户主目录。 cd 改变当前工作目录 cd [directory_name] cd不输入位置 默认进入用户主目录 cd ~wj 进入指定用户的主目录 cd .. 进入当前目录的上级目录 ...
  • DocSys - 基于Web的文件管理系统

    万次阅读 2018-11-19 14:05:42
    旨在为个人和企业用户提供一个简单、方便的文件存储方案,采用Windows桌面系统和Apple手机的用户操作习惯,支持使用SVN和GIT进行历史版本管理、支持文件内容全文搜索、支持文件预览、支持文件权限管理、支持用户分组...
  • Android之简单文件管理

    万次阅读 2012-05-07 18:03:12
    这里运用Java I/O、ListActivity、Dialog、Bitmap等实现简单文件管理器,可以查看目录文件,修改文件名,删除文件,打开文件。比较简单,直接看代码: 先看布局文件: layout/main.xml androi
  • 一、选择文件【系统文件管理器】 import android.annotation.SuppressLint; import android.content.ContentUris; import android.content.Context; import android.database.Cursor; import android.net.Uri; ...
  • 纯PHP写的文件管理

    千次阅读 2017-10-29 16:46:36
    最近又来折腾了,突发奇想用PHP写一个文件管理器,所谓文件管理器,就只有一个读取文件夹与修改文件而已,删除文件以及文件夹由于懒,还没有写,代码写的也挺乱,变量名称也不是太规范,哈哈,将就着看吧。...
  • 操作系统作为磁盘文件系统和用户之间的中介,必须在内核中建立自己的文件系统,为与磁盘文件系统相区别,我们把它叫做操作系统的文件管理系统,简称文件管理系统。   文件管理系统与磁盘文件系统的关系 与处理器...

空空如也

1 2 3 4 5 ... 20
收藏数 3,110,064
精华内容 1,244,025
关键字:

文件管理