精华内容
下载资源
问答
  • 计算机中存放了各种各样的文件: 一个文件具有哪些属性? 文件内部的数据应该被怎样组织起来? 文件之间又应该怎么组织起来? 从下往上看Operation System应该提供哪些功能才能方便用户、应用程序使用文件? 从...
    • 文件管理

    文件也属于系统资源,其就是一组有意义的信息、数据集合。

    计算机中存放了各种各样的文件:

    1. 一个文件具有哪些属性?
    2. 文件内部的数据应该被怎样组织起来?
    3. 文件之间又应该怎么组织起来?
    4. 从下往上看Operation System应该提供哪些功能才能方便用户、应用程序使用文件?
    5. 从上往下看,文件数据应该怎么存放在外存(磁盘)上?

    1一个文件具有哪些属性?

    1. 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件
    2. 标识符:文件名并不唯一,因为在不同文件夹中可以使用相同文件名。一个系统的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称
    3. 类型:指明文件的类型。操作系统可以根据文件的类型设定一个默认的打开的应用程序
    4. 位置:文件的存放路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)
    5. 大小
    6. 创建时间
    7. 上次修改时间
    8. 文件所有者信息
    9. 文件的保护信息:对文件进行保护的访问控制信息。同一个文件对于不同的用户可能有不同的权限

    2文件内部的数据应该被怎样组织起来?

    • 无结构文件(例如文本文件):由一些二进制或者字符流组成,又称“流式文件”
    • 有结构文件(例如数据库表):有一组相似的记录组成,又称为“记录式文件”,记录是一组相关数据项的集合,数据项是文件系统中最基本的数据单位

    具体如何组织起来,是文件的逻辑结构要讨论的问题

    3文件之间又应该怎么组织起来?

    树状结构,根目录下有很多目录,也有一些普通文件,而这些目录下,还可以创建更深一层的目录,以及存放一些普通文件...所谓目录,就是熟悉的文件夹。普通用户自己可以创建一层一层的目录,各层目录中存放相应的文件。系统中的各个文件就通过一层一层的目录合理有序地组织起来了。目录其实也是一种特殊的结构文件,由记录组成。

    4Operation System应该向上提供哪些功能?

    以创建一个txt文件并向其写数据、读数据为例

    1. 可以创建文件,点击新建之后,GUI进程在背后调用了“create系统调用”
    2. 可以读文件,将文件数据读入内存,才能让CPU处理。双击文件后,记事本应用程序通过操作系统提供的读文件功能,即“read系统调用”,将文件数据从外存读入内存,并显示在屏幕上。
    3. 可以写文件,将更改过的文件数据写回外存。在记事本应用程序中编辑文件内容,点击保存后,记事本应用程序将通过操作系统提供的写文件功能,即“write系统调用”将文件数据从内存写回外存

    向上提供的几个最基本功能:

    1. 创建文件:create系统调用
    2. 删除文件:delete系统调用
    3. 读文件:read系统调用
    4. 写文件:write系统调用
    5. 打开文件:open系统调用
    6. 关闭文件:close系统调用

    在读写文件之前,需要打开文件。这里的打开关闭文件不是常规的那种打开关闭有一点赋予相应权限的含义

    很多操作可以使用这些基本操作组合完成

    5从上往下看,文件应该怎么存放在外存中?

    和内存一样,外存也是由一个个存储单元组成的,每个存储单元可以存储一定量的数据。每个存储单元对应一个物理地址。

    类似于内存分为一个个“内存块”,外存会分为一个个“块/磁盘块/物理块”,每个磁盘的大小是相等的,每块一般包含2的整数幂个地址,同样类似的是,文件的逻辑地址也可以分为(逻辑块号,块内地址),操作系统同样需要将逻辑地址转换为外存的物理地址(物理块号,块内地址)的形式。块内地址的位数取决于磁盘块大小。

    操作系统以“块”为单位为文件分配存储空间,因此即使一个文件大小只有10B,但他依然需要占用1KB的磁盘块。外存中的数据读入内存时同样以块为单位。

    这里类比进程的调度,只不过此时对象是文件。

    6其他需要有操作系统实现的文件管理功能

    • 文件共享:使多个用户可以共享使用同一个文件
    • 文件保护:如何保证不同的用户对文件有不同的操作权限

     

    • 文件的逻辑结构

    所谓逻辑结构,指的是在用户看来,文件内部的数据应该是如何组织起来的。而物理结构指的是在操作系统看来,文件的数据是如何存放在外存中的。

    类似于数据结构中的逻辑结构和物理结构。例如线性表就是一种逻辑结构,在用户角度看来,线性表就是一组有先后关系的元素序列。

    线性表这种逻辑结构可以用不同的物理结构实现,如顺序表/链表,顺序表的各个元素在逻辑上相邻,在物理上也相邻;而链表的各个元素在物理上可以是不相邻的。因此顺序表可以实现“随机访问”,而链表无法实现“随机访问”

    可见,算法的具体实现与逻辑结构、物理结构都有关。文件也一样,文件的操作的具体实现与文件的逻辑结构、物理结构都有关。

    按文件是否有结构进行分类,可以分为无结构文件、有结构文件两种

    无结构文件

    文件内部的数据就是一系列二进制流或字符流组成,又称“流式文件”。例如windows系统中的.txt文件。文件内部的数据实际就是一系列的字符流,没有明显的结构特性,因此也不需要讨论无结构文件的逻辑结构问题

    有结构文件

    有一组相似的记录组成,又称“记录式文件”。每条记录由若干个数据项组成。例如数据库表文件。一般来说,每条记录都有一个数据项可以作为关键字,作为识别不同记录的ID。根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。可变长记录更为灵活,能更好地利用内存空间。

    有结构文件的逻辑结构

    • 顺序文件
    • 索引文件
    • 索引顺序文件

    顺序文件

    文件中的记录一个接一个地顺序排列(逻辑上),记录是定长或可变长的。各个记录在物理上可以顺序存储或链式存储。

    在物理上采用顺序存储额基础上,根据记录是否按照关键字顺序排列可分为串结构和顺序结构

    • 串结构:记录之间的顺序和关键字无关
    • 顺序结构:记录之间的顺序按照关键字顺序排列

    索引文件

    对于可变长记录文件,要查找第i个记录,必须先顺序地查找前i-1个记录,这个时间复杂度为O(n)。而可变长记录文件却是在很多场景中都有应用,所以应当想办法去解决这个问题,让可变长文件中的记录也能被随机访问。由此引入了索引表

    通过建立一张索引表来加快文件检索速度。每条记录对应一个索引项。包括索引号、记录的长度、指向逻辑文件中记录的指针。

    索引表本身是定长记录的顺序文件。因此可以快速地找到第i个记录对应的索引项。

    可将关键字作为索引号内容,若按照关键字顺序排列,对应的索引表还可以支持按照关键字折半查找。

    每当需要增加/删除一个记录时,需要对索引表进行修改。由于索引文件有很快的检索速度,所以主要用于对信息处理的及时性要求比较高的场合。索引表检索方便,修改复杂。

    另外,可以用不同数据项作为关键字建立多个索引表。

    索引顺序文件

    因为如果一个记录就对应一个索引表项的话,那很可能索引表项需要的存储空间会比文件所需要的存储空间还大,这就带来了资源的浪费。所以由此引出了索引顺序文件。

    索引顺序文件是索引文件和顺序文件思想的结合。索引顺序文件中,同样会为文件建立一张索引表,但不同的是,并不是每一个记录都对应一个索引表项,而是一组记录对应一个索引表项。也就是先将文件中的各个记录按照关键字进行分组,然后让索引表的表项对应一组记录,注意一个索引表项对应的是一组记录,不再是一个记录,这就大大地节省了存储空间。同时,每一个分组内的记录不需要按照关键字排序,所以一个分组就相当于是一个串结构的顺序文件。

    可知这种策略可以让索引表瘦身,同时这种方式也是具有很高的检索效率的。

    为了进一步提高检索效率,可以为顺序文件建立多级索引表。

     

    • 文件目录

    使用文件目录使得文件之间的组织结构清晰,易于查找;编程时也可以很方便地使用文件路径找到一个文件,用户可以很轻松地实现按名存取

    文件控制块

    文件控制块是用于实现文件目录的关键数据结构。

    目录本身就是一种有结构文件,由一条条记录组成。每条记录对应一个放在该目录下的文件。每条记录包括了文件名、类型(txt、目录…)、存取权限(只读、只写、读/写…)、物理位置(外存x号块)等数据项。

    当我们打开某一个文件夹(目录)时,操作系统会在当前所在的目录表中找到该文件夹名称的关键字对应的目录项,也就是记录。然后从外存中将该目录的信息读入内存,于是打开的目录中的内容就可以显示出来了。

    一个文件目录项,也就是文件目录表中的一条记录,就是一个FCB,一个文件对应一个FCB(这个说法没问题,因为目录本身也是一个文件)。FCB的有序集合称为文件目录。FCB中包含了文件的基本信息(文件名、物理地址、逻辑地址、物理结构等等),存取控制信息(是否可读/可写,禁止访问的用户名单等等),使用信息(文件的建立时间、修改时间等等)

    最重要的、最基本的是文件名、文件存放的物理地址。因为FCB实际上实现了文件名和文件之间的映射,使用户(用户程序)可以实现按名存取

    操作系统需要对目录进行那些操作

    • 搜索:当一个用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项
    • 创建文件:创建一个新文件时,需要在其所属的目录中增加一个目录项
    • 删除文件:但删除一个文件时,需要在目录中删除相应的目录项
    • 显示目录:用户可以请求显示目录的内容,如显示该目录中的所有文件以及相应的属性
    • 修改目录:某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项,例如文件重命名

    目录结构

    单级目录结构

    整个系统只有一张目录表,每个文件占一个目录项。文件名也为目录项的一个属性。单级目录实现了按名存取,但是不允许文件重名。

    在创建一个文件时,需要先检查目录表中有没有重名文件,确定不重名后才能运行建立文件,并将新文件对应的目录插入目录表中

    显然,单级目录结构不适用于多用户操作系统

    两级目录结构

    早期的多用户操作系统,采用两级目录结构,分为主文件目录MFD,Master File Directory 和用户文件目录UFD,User File Directory

    主文件目录记录用户名及相应用户文件目录的存放位置,用户文件目录则是有FCB组成。

    两级目录结构允许不同用户的文件重名,也可以通过检查此时登陆的用户名是否匹配得以在目录上实现访问限制,但是两级目录结构依然缺乏灵活性,用户不能对自己的文件进行分类

    多级目录结构

    又称为树形目录结构,不同目录下的文件可以重命名

    用户或用户进程要访问某个文件时要用文件路径名标识文件,文件路径名是一个字符串。各级目录之间用“/”隔开。从根目录出发的路径称为绝对路径。

    例如:Me.jpeg的绝对路径是/Photos/2019/Me.jpeg

    系统根据绝对路径一层一层地找到下一级目录。刚开始从外存读入根目录的目录表;找到“Photos”目录的存放位置后,从外存读入对应的目录表;再找到“2019”目录的存放位置,再从外存读入对应的目录表;最后找到文件“Me.jpeg”的存放位置。

    注意,目录本身就是一个有结构文件,所以其也是存放在外存中,需要的时候获取进入内存。

    很多时候,用户会连续访问同一目录内的多个文件。显然,如果每次都从根目录开始查找,是很低效的,所以可以设置一个当前目录。例如,此时已经打开了“Photos”的目录文件,也就是说,这张目录表已经调入内存,那么就可以把它设置为当前目录。当用户想要访问某个文件时,可以使用从当前目录出发的相对路径。

    树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。

    由此提出了无环图目录结构

    无环图目录结构

    无环图目录结构实际上就是在树形目录结构的基础上多了指向同一个文件的有向边。树本身就是特殊的图。因为指向了同一个文件,所以就能实现文件的共享了。这种结构在删除文件时会有所不同,不一定是直接删除相应的文件本身,因为它可能还被其他目录所指向,所以借助每个文件的计数器存储指向该文件的目录数,来帮助删除文件操作的实现。

    注意共享文件和复制文件是不同的,共享文件中,不同目录指向的是同一个文件,而复制文件则是不同目录指向各自不同的文件。虽然它们内容相同

    索引结点

    索引结点是在FCB的基础上进行改进,可以视为进一步地瘦身。因为是记载查找各级目录的过程中只需要用到文件名这个属性,只有文件名匹配的时候,才需要读出文件的其他信息。所以可以考虑对目录表精简后得到索引结点表来提升效率。

    正是因为对目录表精简得到索引结点表,所以相应的用于检索的索引表所占用的内存空间减小了,一个磁盘内能包含的目录项增加了,也就是说对于目录项固定的情况,所需要的磁盘数减少了,那么在检索的过程中启动磁盘的次数也就减少了。因为IO操作是十分耗时的,所以启动磁盘的次数越少,就越能够提高效率。

    只有当找到文件名对应的目录项时,才需要将索引结点调入内存,索引结点中记录了文件的各种信息,包括文件在外存中的存放位置,根据这个位置能够找到文件。

    存放在外存中的索引结点称为磁盘索引结点,当索引结点放入内存后称为内存索引结点。

    相比之下内存索引结点中需要增加一些信息,比如:文件是否被修改、此时有几个进程正在访问该文件等。

     

    展开全文
  • 文件系统的功能大多中间层-对对象操纵和管理的软件集合上实现,包括:①对文件存储空间的管理;②对文件目录的管理;③用于将文件的逻辑地址转换为物理地址的机制;④对文件的读和写的管理;⑤对文件的共享与保护....

    1.在操作系统的引论部分介绍过操作系统的主要功能有:处理机管理功能、存储器管理功能、设备管理功能、文件管理功能。

    2.文件管理功能:专门管理在外存上的文件,并把对文件的存取、共享和保护等手段提供给用户。文件系统的功能大多在中间层-对对象操纵和管理的软件集合上实现,包括:①对文件存储空间的管理;②对文件目录的管理;③用于将文件的逻辑地址转换为物理地址的机制;④对文件的读和写的管理;⑤对文件的共享与保护等功能。在实现这些功能时,OS通常采取层次组织结构(即在每一层中包含了一定的功能,处于某个层次的软件只能调用同层或更低层次中的功能模块)

    3.文件管理功能的优点:方便了用户,保证了文件的安全性,有效地提高了系统资源的利用率。

    4.实现方式:将其管理的程序和数据通过组织为一系列文件的方式实现。

    5.文件:具有文件名的若干相关元素的集合。

    6.元素:通常是记录。

    7.记录:一组有意义的数据项的集合。

    8.基于文件系统的概念,把数据组成分为三级:数据项、记录、文件

    9.数据项:最低级的数据组织形式。有基本数据项和组合数据项两种类型。

    (1)基本数据项:用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称字段。

    (2)组合数据项:由若干个基本数据项组成,简称组项。例如“工资”是一个组项,可由“基本工资”、“工龄工资”、“奖励工资”等基本项组成。

    10.记录:一组相关数据项的集合,用于描述一个对象在某方面的属性。为了能唯一地标识一个记录,须在一个记录的各个数据项中确定出一个或几个数据项,把它们的集合称为关键字,即关键字是唯一能标识一个记录的数据项。

    11.文件:由创建者所定义的、具有文件名的一组相关元素的集合。文件在文件系统中是一个最大的数据单位。分有结构文件和无结构文件。

    12.有结构文件:文件由若干个相关记录组成。

    13.无结构文件:被看成是一个字符流。

    14.文件的属性:文件类型、文件长度、文件的物理位置、文件的建立时间。

    (1)文件类型

    ①按用途分类:系统文件、用户文件、库文件。

    ②按文件中数据的形式分类:源文件、目标文件、可执行文件。

    ③按存取控制属性分类:只执行文件、只读文件、读写文件。

    ④按组织形式和处理方式分类:普通文件、目录文件、特殊文件。

    (2)文件长度:长度单位可以是字节、字、块等。

    (3)文件的物理位置:文件所在的设备及所在设备中地址的指针。

    (4)文件的建立时间:最后一次的修改时间等。

    15.文件名&扩展名

    (1)文件名:不同的系统对文件名的规定不同,例如在UNIX和Linux系统中是区分大小写的。

    (2)扩展名:又称后缀名,是添加在文件名后的若干个附加字符,用于指示文件的类型,长度一般为1~4个字符。例如扩展名bin表示该文件是一个可执行的二进制文件。

    16.文件系统的模型由低到高分为三个层次:对象及其属性、对对象操纵和管理的软件集合、文件系统的接口。

    (1)对象及其属性:文件系统管理的对象有:文件、目录、磁盘(磁带)存储空间。

    (2)对对象操纵和管理的软件集合:文件管理系统的核心部分。一般把与文件系统有关的软件分为四个层次

    I/O控制层:也称设备驱动程序层,是文件系统的最低层,主要由磁盘驱动程序等组成。

    基本文件系统层:处理内存与磁盘间数据块的交换。

    基本I/O管理程序:完成与磁盘I/O有关的事务——将文件的逻辑块号转换为物理块号、管理磁盘中的空闲盘块、I/O缓冲的指定等。

    逻辑文件系统:处理与记录和文件相关的操作——允许用户和应用程序使用符号文件名访问文件及记录、实现对文件和记录的保护等。

    (3)文件系统的接口:为方便用户使用,文件系统以接口的形式提供了一组对文件和记录操作的方法和手段,分两种类型的接口:命令接口、程序接口。

    ①命令接口:用户与文件系统直接交互的接口。

    ②程序接口:用户程序与文件系统的接口。例如creat、open。

    17.文件操作

    (1)基本文件操作:创建文件、删除文件、读文件、写文件、设置文件的读/写位置(可以改顺序存取为随机存取)

    (2)文件的“打开”“关闭”操作:

    ①打开:系统将指名文件的属性从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(索引号)返回给用户。即在用户和指定文件之间建立一个连接。

    ②关闭:断开用户与指定文件之间的连接。

    (3)其他文件操作:允许用户直接设置和获得文件的属性、进行有关目录的操作等。

    18.用户看到的文件称为逻辑文件,由一系列逻辑记录组成。

    19.文件结构分为:逻辑结构、物理结构。

    (1)文件的逻辑结构:即文件组织,从用户观点出发所观察到的文件组织形式。

    (2)文件的物理结构:即文件的存储结构,指系统将文件存储在外存上所形成的一种存储组织形式,用户不可见。

    20.文件逻辑结构分类:文件是否有结构、文件的组织方式。

    (1)是否有结构:有结构文件、无结构文件。

    有结构文件:定长记录(相同的顺序和长度)、变长记录(长度不同:数据项数目不同、数据项本身长度不定)。

    无结构文件:即流式文件,文件的长度以字节为单位,一个记录仅有一个字节。举例:源程序、可执行文件、库函数等采用流式文件。

    (2)文件的组织方式:顺序、索引、索引顺序。

    ①顺序文件:由一系列记录按某种顺序排列所形成的的文件,可定长记录可变长记录。

    ②索引文件:为可变长记录文件建立一张索引表,为每个记录设置一个表项,加速对记录的检索速度。

    ③索引顺序文件:顺序文件与索引文件相结合,为一组记录中的第一个建立索引表项。

    21.顺序文件:顺序文件按排列方式分串结构(按存入时间先后排序)和顺序结构(按关键字排序)。顺序文件的优点是适用于记录的批量存取,所有逻辑文件中顺序文件存取效率最高;缺点是增删记录困难以及应用交互时性能差。顺序文件查找记录地址的方式有:隐式寻址方式和显式寻址方式,后者可实现对定长记录文件的直接或随机访问,却不适用于定长记录。

    22.索引文件:按关键字建立索引,把对变长记录顺序文件的顺序检索转变为对定长记录索引文件的随机检索。

    23.索引顺序文件特征:克服了变长记录的顺序文件不能随机访问及记录不便删插的缺点;记录是按关键字的顺序组织的;引入文件索引表实现对索引顺序文件的随机访问;增加了溢出文件来记录新的增删改记录。

    24.如果在一个顺序文件中所含有的记录数为N,则为检索到具有指定关键字的记录,平均须查找N/2个记录。换成索引顺序文件平均须查找N½个记录。索引顺序文件的效率比顺序文件约提高N½/2倍。

    25.目录管理的功能:实现“按名存取”;提高对目录的检索速度;文件共享;允许文件重名。

    26文件控制块(FCB)的组成:基本信息类(文件名、文件物理位置、文件逻辑结构、文件物理结构)、存取控制信息类、使用信息类。

    注:进程实体(进程)的组成:程序、相关数据段、进程控制块(PCB)。

    进程控制块(PCB)的组成:进程标识符、处理机状态、进程控制信息、进程调度信息。

    作业控制块(JCB)的组成:作业标识、用户名称、用户账号、作业类型、作业状态、调度信息、资源需求、资源使用情况等。

    27.单级文件目录(按名存取):查找速度慢、不允许重名、不便于实现文件共享。

    28.两级文件目录:用户文件目录(UFD)、主文件目录(MFD)。优点是检索速度提高、不同用户目录中可重名、不同用户可用不同文件名访问同一个共享文件。

    29.树形目录:相对路径、绝对路径(从树根开始的路径)。UNIX、Linux、Windows采用树形文件目录。

    展开全文
  • 计算机操作系统——文件管理(1)

    千次阅读 2014-02-26 20:02:47
    文件和文件系统 文件系统的结构,是由文件管理部分和操作系统I/O部分组成的。 文件管理部分:操作系统...文件系统设计的关键要素,是将这些记录构成一个文件的方法,以及将一个文件存储到外存上的方法。 文件

    文件和文件系统

    文件系统的结构,是由文件管理部分和操作系统I/O部分组成的。
    文件管理部分:操作系统内存中的文件对象,并按文件的逻辑格式将对文件对象的操作转化成对文件块的操作。
    操作系统I/O部分:负责内存中的物理块与物理磁盘中的数据交换。

    文件分类

    通常,文件是由一系列的记录组成的。文件系统设计的关键要素,是指将这些记录构成一个文件的方法,以及将一个文件存储到外存上的方法

    文件的逻辑结构

    这是从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织(FileOrganization)。

    例如,用户创建的txtcppwordexcelppt等,都属于文件的逻辑结构。

    ①无结构文件:字符流,又称流式文件。--源程序、可执行文件、库函数等

    ②有结构文件:由若干个相关记录组成,又称记录型文件,如下图。--数据结构、数据库等


    文件的物理结构

    又称文件的存储结构,指文件在外存上的存储组织形式。这不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。

    例如,采用FAT32NTFSEXT3EXT4Linux swap等,都属于文件的物理结构。


    文件系统模型

    文件系统管理的对象有:①文件;②目录;③磁盘空间;

    模型层次图:



    文件的逻辑结构

    分类

    1. 记录型文件,按记录的组织方式可分为:
    ①顺序文件

    顺序文件中记录的排序方式:
    1)串结构,各记录之间的顺序与关键字无关,通常由时间决定。----每次检索必须从头开始。
    2)顺序结构,所有记录按关键字排序。----采用折半查找、插值查找、跳步查找等来提高检索效率。


    ②索引文件

    定长记录文件----顺序存取方便、直接存取方便
    变长记录文件----顺序存取方便、直接存取困难

    为变长记录文件建立一张索引表,对主文件中的每个记录,在索引表中设有一个相应的表项,用于记录该记录的长度L及指向该记录的指针(指向该记录在逻辑地址空间的首址)。由于索引表是按记录键排序的,因此,索引表本身是一个定长记录的顺序文件,从而也就可以方便地实现直接存取。


    ③索引顺序文件
    索引顺序文件(Index Sequential File)可能是最常见的一种逻辑文件形式。它有效地克服了变长记录文件不便于直接存取的缺点,而且所付出的代价也不算太大。它将顺序文件中的所有记录分为若干个组(例如,50 个记录为一个组);为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有该记录的键值和指向该记录的指针。


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

    ⑤哈希文件
    目前应用最广的一种直接文件。它利用Hash 函数(或称散列函数),可将记录键值转换为相应记录的地址。但为了能实现文件存储空间的动态分配,通常由Hash函数所求得的并非是相应记录的地址,而是指向一目录表相应表目的指针,该表目的内容指向相应记录所在的物理块,如下图所示。例如,若令K为记录键值,用A作为通过Hash函数H 的转换所形成的该记录在目录表中对应表目的位置,则有关系A=H(K)。通常,把Hash函数作为标准函数存于系统中,供存取文件时调用。


    2. 流式文件

    其长度以字节为单位。对流式文件的访问,则是采用读/写指针来指出下一个要访问的字符。可以把流式文件看做是记录式文件的一个特例。在UNIX 系统中,所有的文件都被看做是流式文件,即使是有结构文件,也被视为流式文件,系统不对文件进行格式处理。


    文件的外存分配方式

    对换空间的管理:具有对换功能的OS中,将外存分为文件区(用于存放文件)和对换区(用于存放从内存中换出的进程)。由于通常的文件都是较长久的驻留在外存上,故对文件区管理的主要目标,是提高文件存储空间的利用率。为此,对文件区采取离散分配方式。然而,进程在对换区中驻留的时间是短暂的,对换操作又较频繁,故对对换空间(swap分区)管理的主要目标,是提高进程换入和换出的速度。为此,采取的是连续分配方式,较少考虑外存中的碎片问题。

    连续分配

    1、连续分配(Continuous Allocation)要求为每一个文件分配一组相邻接的盘块。一组盘块的地址定义了磁盘上的一段线性地址。
    2、物理结构:顺序式。
    3、如同内存的动态分区分配一样,随着文件建立时空间的分配和文件删除时空间的回收,将使磁盘空间被分割成许多小块,这些较小的连续区已难于用来存储文件,此即外存的碎片。同样,我们也可以利用紧凑的方法,将盘上所有的文件紧靠在一起,把所有的碎片拼接成一大片连续的存储空间。

    链接分配

    1、分类:
    ①隐式链接
    在采用隐式链接分配方式时,在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。
    隐式链接分配方式的主要问题在于:它只适合于顺序访问,它对随机访问是极其低效的。

    ②显式链接----FAT/NTFS
    把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。该表在整个磁盘仅设置一张。表的序号是物理盘块号,从0 开始,直至N-1;N为盘块总数。在每个表项中存放链接指针,即下一个盘块号。在该表中,凡是属于某一文件的第一个盘块号,或者说是每一条链的链首指针所对应的盘块号,均作为文件地址被填入相应文件的FCB 的“物理地址”字段中。由于查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。由于分配给文件的所有盘块号都放在该表中,故把该表称为文件分配表FAT(File Allocation Table)。

    2、物理结构:链接式。

    扇区(盘块):512B
    簇:2n个连续的扇区

    【FAT12】
    特点:FAT每个表项宽度为12位,最多允许有4096个表项,以扇区为基本分配单位。因此在以扇区为基本分配单位时,每个磁盘分区的最大容量仅为8MB(4096 × 512B)。
    缺陷:容量有限,只能支持8+3格式的文件名。要增大容量,就得以簇为基本分配单位,但又会增大簇内碎片,降低空间利用率。



    【FAT16】
    特点:FAT每个表项宽度为16位,最多允许有65536个表项,以簇为基本分配单位,每个簇中可以有的扇区数为4、8、16、32、64。因此在以有64个扇区的簇为基本分配单位时,每个磁盘分区的最大容量为2048MB(2^16 × 64 × 512B)。
    缺陷:容量有限,只能支持8+3格式的文件名。要增大容量,就增大簇内的扇区数,但又会增大簇内碎片,降低空间利用率。

    【FAT32】
    特点:FAT每个表项宽度为32位,最多允许有4 294 967 296个表项,以簇为基本分配单位,每个簇中的扇区数为8,簇的大小为4KB。每个磁盘分区的最大容量为4 KB × 2^32 = 2 TB(这个地方纠结了很久,应该是书上写错了,理论上说,FAT32如果以4KB大小的簇为基本分配单位,那么每个磁盘分区的最大容量应该为4KB× 2^32 = 16TB;但是如果以512B的扇区作为基本分配单位,那么每个磁盘分区的最大容量应该为512B × 2^32 = 2TB;但实际Windows XP将FAT32的最大分区限制在了32GB,为什么?
    缺陷:
    ①由于文件分配表的扩大,运行速度比FAT16格式要慢;
    ②FAT32 有最小管理空间的限制,FAT32 卷必须至少有65 537 个簇,所以FAT32 不支持容量小于512 MB的分区(为什么,不是2^16 × 4KB = 256 MB吗?);
    ③FAT32 的单个文件的长度也不能大于4 GB(FAT32文件系统寻址单位为32位,即根目录中每个文件(目录)所占32字节,根据规定,文件长度一项属性:占4个字节
    ④FAT32 最大的限制在于兼容性方面,FAT32 不能保持向下兼容;

    【NTFS】

    索引分配

    为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中,因而该索引块就是一个含有许多盘块号的数组。在建立一个文件时,只需在为之建立的目录项中填上指向该索引块的指针。
    1、分类:
    ①单级索引分配;

    ②多级索引分配;

    ③混合索引分配;

    2、物理结构:索引式。

    总结









    展开全文
  • 操作系统中文件系统-文件的分类

    千次阅读 2015-03-24 17:30:48
    一、文件的概念 1. 文件(file) (1) 文件是软件机构,软件资源的管理方式; (2) 具有符号名的一组相关元素的有序序列,是一段程序或数据的集合; (3) 一组赋名的相关联字符流的集合,或者是相关记录。...

    一、文件的概念

    1. 文件(file)

    (1) 文件是软件机构,软件资源的管理方式;

    (2) 具有符号名的一组相关元素的有序序列,是一段程序或数据的集合;

    (3) 一组赋名的相关联字符流的集合,或者是相关记录。而记录是有意义的信息集合。

    二、文件的管理功能

    1.分配与管理外部存储器,用户以文件形式存放信息,“按名存取”,文件的机内码与磁盘、光盘等外存的地址建立起相对应的表格联系。

        2.提供合适的存储方法,例如,键盘命令以及程序中使用系统调用控制,包括文件的创建(create)、打开(open)、关闭(close)、读写(read/write)、删除(delete,erase)和重命名或改名(rename)等。

        3.文件的共享与保护,解决文件命名中的冲突和存取权限的控制。

    三、文件的分类

    1. 按文件性质和用途

    (1) 系统文件:由系统软件构成的文件。只允许用户通过系统调用 或系统提供的专用命令来执行它们,不允许对其进行读写和修改。这些文件主要有操作系统核心和各种系统应用程序或实用工具程序和数据组成。例如:msdos.sys、io.sys、及UNIX系统下的核心文件 /unix。

    (2) 库文件:这类文件允许用户对其进行读取和执行,但不允许对其进行修改,主要由各种标准子程序库组成。如:C语言的 *.LIB、UNIX系统下的/lib、/usr/lib 目录下的文件。

    (3) 用户文件:这类文件是用户通过操作系统保存的用户文件,由文件的所有者或所有者授权的用户才能使用,用户将这些文件委托和操作系统保管。主要由用户的源程序、可执行目标程序、用户数据库组成。如:*.c、*.dbf、*.o等。

    2. 按操作保护分类

    (1) 只读文件(read only):只允许文件主及被核准的用户去读文件,而不允许写文件。如-r------。

    (2) 可读写文件(read/write):允许文件主及被核准的用户去读和写文件。如:-rw-------。

    (3) 可执行文件(execute):允许文件主及被核准的用户去调用执行文件而不允许读和写文件。如:-----x----。

    (4) 各个操作系统的保护方法和级别有所不同。

          DOS操作系统的文件保护有三种:系统(system ,S)、隐藏(hide,H)、可写(write,W)。

    UNIX操作系统的文件保护有九种,即分三组,分别为文件主(user)、同组(group)、其他(other)。每组均有r、w、x的权限控制。

    3. 按使用情况分类

    (1) 临时文件(temporary file):用于系统在工作过程中产生的中间文件,一般有暂存的目录,如:\temp、/tmp、/temporary file,正常情况下,工作完毕后回自动删除,异常中断时可能会残留一些临时文件。

    (2) 永久文件:指受系统管理的各种系统文件和用户文件,经过安装、编辑、编译生成的文件,存放在软盘、硬盘、光盘等外部设备上。

    (3) 档案文件:系统或一些使用工具软件包在工作过程中记录在案的文档资料文件,以便查阅历史档案。如:*.hst,*.log,*.CHK等。

    4. 按用户观点分类(UNIX或Linux操作系统)

    (1) 普通文件(常规文件):是系统中最一般组织格式的文件,用ls l命令列文件清单时,首项特征为:“-”,如:-rwx-rx--xx。普通文件包含系统文件、用户文件和库函数文件、实用程序文件等。

    (2) 目录文件:是由文件的目录信息构成的特殊文件,操作系统将目录也称为文件,便于统一管理。这类文件包含两类信息,文件名和节点码(i-node),用ls l命令列文件清单时,首项特征为“d(directory),如:drwx-rx-rx。

    (3) 特殊文件(设备驱动程序文件):在UNIX或Linux中所有的I/O设备都被看成特殊文件,通过链接方式,它与设备驱动程序紧密相连。用ls l命令列文件清单时,首项特征为“c”(char字符型)或“b”(block块型)。

    5. 按存取的物理结构分类

    (1) 顺序(连续)文件:文件中的记录,顺序地存储到连续的物理块中,顺序文件中所记录的次序,与它们存储在物理介质上存放的顺序是一致的。如:存放在磁带上的文件。

    (2) 链接文件:文件中的记录可存放在并不相邻的各个物理块中,通过物理块中的链接指针组成一个链表来管理,形成一个完整的文件,又称为直接存取文件或指针串联文件。

    (3) 索引文件:文件的记录可存储在并不相邻的各个物理块中,记录和物理块之间通过索引表项按关键字存取文件,通过物理块中的索引表的管理,形成一个完整的文件。 

    6. 按文件的逻辑存储结构分类

    (1) 有结构文件:由若干个记录所构成的文件,又称为记录式文件。根据记录的长度特点又可分为定长记录文件和可变长记录文件。如:目前常用的数据库文件大多是定长记录文件。

    (2) 无结构文件:这是直接由字符序列所构成的文件,又称为流式文件。一般来说,操作系统就是这种文件结构,可以把流式文件看成是记录文件的特例,即其中每个记录只含有一个字符。

    7. 按文件的数据形式分类

    (1) 源文件:是指源程序和数据构成的文件,一般由ASCII码、EBCD码或汉字编码组成。

    (2) 目标文件:由源程序经过相应的计算机编译程序编译,但尚未经过链接程序链接时的目标代码所形成的文件,它属于二进制文件,内部地址为相对地址。通常目标文件类型为*.OBJ(DOS)、*.o(UNIX)。

    (3) 执行文件:目标文件经过与计算机系统提供的库函数及相关的子程序链接后形成的文件。它是二进制文件,可在操作系统的支持下运行。

    8. 多媒体文件格式简介

    (1) 多媒体的主要技术手段

    (a) A/D、D/A转换技术(Digital to analog conversion

    (b) 文件压缩技术及压缩算法

    主要有MPEG(motion photographic expert group:运动图像专家组)的MPEG1、MPEG2及MPEG3

    (2) 声音文件

       WAV文件:Windows提供的声音文件格式;

       MIDI文件:MIDI-musical instrument data interface

       au文件:UNIX支持的声音文件

       mp3文件:采用MPEG3算法

    (3) 图像文件

      BMP文件:位图文件

      其它有JPG文件、IMG文件、MPEG文件。

    (4) 超文本文件

      以 .htm,*.html为扩展名的文件, HTML-hypertext markup language 超文本链接标记语言是Internet 的标准文本格式。使用HTML格式还可以在电子邮件中添加图形和指向Web网站的链接(超级链接)。

    *.PDF(portable document format:便携文档格式):是Adobe公司开发的文件格式。目前世界上不少文档说明书采用这种格式。

    (5) 其它文件


    展开全文
  • 操作系统——文件系统

    千次阅读 多人点赞 2015-02-02 09:17:40
    总之,一个操作系统,负责处理文件相关事宜的部分,就称为文件系统。 可以从两个观点来看待文件系统: 用户观点:所谓用户,就是计算机的使用者以及应用程序的编程人员。对于他们来说,他们关心的是文件系统所...
  • 一口气搞懂「文件系统」,就靠这 25 张图了

    万次阅读 多人点赞 2020-08-13 21:48:43
    文件系统是操作系统负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。 文件系统的基本数据单位是文件,它的...
  • 本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习。一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止。我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念、...
  • 一文读懂什么是分布式文件系统

    千次阅读 2019-10-25 23:20:26
    一文读懂什么是分布式文件系统什么是分布式文件系统一般文件系统什么是分布式文件...我们先要知道什么是文件系统概念上大家可以查google、百度,这里仅举例子说明什么是文件系统有助于大家理解,我们知道一台...
  • 计算机操作系统是什么?

    千次阅读 2018-05-06 15:00:24
    能不能有一种东西作为中介,能驱动所有的硬件,并且提供一个开发接口给工程师来开发程序,那这样子,程序的运行就只需要看是不是同一个操作系统即可,而不用顾虑硬件功能(因为生活,操作系统只有...
  • 什么是文件系统

    万次阅读 2018-09-30 14:06:42
    文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即存储设备上组织文件的方法。操作系统负责管理和存储文件信息的软件机构称为文件管理系统...
  • 分布式文件系统概述

    千次阅读 2017-11-27 13:48:17
    分布式文件系统简介普通...当然具体解释就是文件系统管理的物理存储资源不一定直接连接本地节点上,而是通过计算机网络与节点相连,也就是集群文件系统,可以支持大数量的节点以及PB级的数据存储。常见的专有的分布式
  • 深入理解操作系统原理之文件系统

    万次阅读 多人点赞 2017-07-04 15:15:39
    操作系统对系统的软件资源(不论是应用软件和系统软件)的管理都以文件方式进行,承担这部分功能的操作系统称为文件系统。 1、文件 计算机系统对系统软件资源:无论是程序或数据、系统软件或应用软件都以文件...
  • 计算机操作系统核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-14 22:00:41
    操作系统之基础篇 一、 操作系统概述  1. 操作系统的演进   无操作系统:人工操作,用户独占...  关于多道程序设计:是指在计算机内存同时存放多个程序,多道程序在计算机的管理程序之下相互穿插运行。  2....
  • 常见分布式文件系统

    千次阅读 2015-12-14 11:48:46
    分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供...
  • 文件系统

    万次阅读 2018-09-05 09:17:21
    操作系统层:即文件系统,操作系统如何将各个硬件管理并对上提供更高层次接口; 单机引擎层:常见存储系统对应单机引擎原理大概介绍,利用文件系统接口提供更高级别的存储系统接口; 分布式层:如何将多个...
  • 计算机的层次结构计算机系统的基本组成计算机硬件的基本组成计算机的软件与硬件的关系计算机的工作过程(指令执行的过程)3.计算机的性能指标 ==(重点)==二、计算机发展历程1.计算机硬件的发展2. 计算机的分类按...
  • 计算机文化基础—计算机硬件系统

    千次阅读 2017-03-16 17:12:00
    第2章 计算机硬件系统 本章内容 ... 人类所使用的计算工具从简单到复杂、从低级到高级的发展过程,相继出现了如算盘、计算尺、手摇机械计算机、电动机械计算机等。 1946年2月,世界上第一台数字电...
  • 计算机软件系统

    千次阅读 2018-03-27 23:38:51
    1、系统软件系统软件是管理、控制、和维护计算机及其外部设备,提供用户与计算机之间操作界面等方面的软件,它并不专门针对具体的应用问题。代表性的系统软件有:操作系统、数据库管理系统以及各种程序设计语言的...
  • 操作系统:第一章 计算机系统概述

    万次阅读 2020-10-27 20:41:04
    操作系统计算机系统中最基本的系统软件,目标是向上层提供方便易用的服务。 操作系统系统资源的管理者 提供的功能:处理机管理、存储器管理、文件管理、设备管理 目标:安全、高效 命令接口 联机命令接口:...
  • 计算机操作系统

    万次阅读 2018-10-14 09:35:23
    系统调用 大内核和微内核 中断分类 二、进程管理 进程与线程 进程状态的切换 进程调度算法 进程同步 经典同步问题 进程通信 三、死锁 必要条件 处理方法 鸵鸟策略 死锁检测与死锁恢复 死锁预防 死锁避免 四...
  • 操作系统计算机系统中最基本的系统软件,能控制和管理整个计算机系统的硬件与软件资源。 操作系统的基本特征包括并发、共享、虚拟和异步。并发和共享是操作系统两个最基本的特征。 操作系统的功能: 处理机管理:...
  • 任何计算机都必须加载相应的操作系统之后,才能构成一个可以运转的、完整的计算机系统。操作系统的功能是否强大,决定了计算机系统的综合能力;操作系统的性能高低,决定了整个计算机系统的性能;操作系统本身的...
  • 第四章 文件系统 多程序多用户的系统上,读取数据有以下问题: 如何找到信息? 如何防止一个用户读取另一个用户的数据 如何知道哪些块是空闲的? 通过前面的学习, 我们知道 操作系统对处理器进行...
  • 文件系统模型

    千次阅读 2013-04-05 12:58:05
    其实在计算机方面好多底层的复杂管理都是通过分层的设计方式来进行简化的(这软件工程体现的也十分明显) 文件系统的模型可以分为三个层次。 一、文件系统的接口(最接近用户的)  为了方便用户使用操作系统,...
  • 计算机系统的层次与操作系统简介

    千次阅读 2018-05-04 15:32:01
    计算机系统的层次与操作系统简介一、硬件层 包括计算机的各个部分,控制器,运算器(CPU)、存储器、输入设备和输出设备。二、软件层 包括由汇编及高级语言等开发出来的应用程序。三、操作系统层(OS) 是连接...
  • 文件系统和目录结构

    千次阅读 2018-09-14 16:22:54
      Linux以文件的形式对计算机中的数据和硬件资源进行管理,也就是彻底的一切皆文件,反映Linux的文件类型上就是:普通文件、目录文件(也就是文件夹)、设备文件、链接文件、管道文件、套接字文件(数据通信的...
  • 计算机操作系统知识点总结

    千次阅读 多人点赞 2019-01-26 13:25:15
    大三学习操作系统时所做的总结,上传到论坛以备日后复习使用。 第一章操作系统概述 1)计算机软件是程序和与程序相关的文档的集合 2)按功能可把软件分为“系统软件”和“应用软件”两部分 系统软件:操作系统...
  • 计算机操作系统-操作系统的定义

    千次阅读 2019-01-14 12:12:57
    计算机系统的层次结构 用户 应用程序 操作系统 ...其中,操作系统: ...从操作系统层往两侧看:负责管理协调硬件、软件等...Operating System是控制和管理整个计算机系统的硬件和软件资源,并合理地组...
  • 第四章 文件系统 1.早期的UNIX系统,可执行文件(a.out)以一个非常特別的魔数开始,这 个数不是随机选择的。这些文件都有文件头,后面是正文段和数据段。为什么要为可执行文件挑选一个非常特别的魔数,而其他...
  • 分布式文件系统

    万次阅读 2018-09-05 10:24:44
    分布式文件系统 相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file... 这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通。借由通信协议...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,961
精华内容 123,184
关键字:

在计算机中文件系统是指