文件管理

文件管理

1.初始文件管理

1.相关问题

1.文件内部的数据应该怎样组织?

2.文件之间的数据应该怎样组织?

3.从下往上看,OS应该提供哪些功能,才能方便用户、应用程序使用文件?

4.从上往下看,文件数据应该怎么存放在外存(磁盘)上?

2.文件的属性

1.文件名:由创建文件的用户决定文件名,主要四为了方便用户找到文件,同一目录下允许有重名文件。

2.标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。

3.类型:指明文件的类型

4.大小:指明文件大小

5.创建时间、上次修改时间

6.文件所有者信息

7.保护信息:对文件进行保护的访问控制信息

3.文件内部的数据组织形式

1.无结构文件:(文本文件)由一系列二进制或字符流组成

2.有结构文件:(数据库表)由一组相似的记录组成,又称“记录式”文件;

1)记录是一组相关数据项的集合;

2)数据项是文件系统中最基本的数据单位

4.文件之间组织形式

图片说明

5.操作系统应该向上提供哪些功能

1.创建文件(cteate系统调用)

2.删除文件(delete系统调用)

3.读文件(read系统调用)

4.写文件(write系统调用)

5.打开文件(open系统调用)

6.关闭文件(close系统调用)

在读写文件之前,需要“打开文件”

读写文件之后,需要关闭文件

6.从上往下看,文件应该如何存放在外存

1、与内存一样,外存也是由一个个存储单元组成的,每个存储单元可以存储一定量的数据(如1B)。每个存储单元对应一个物理地址

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

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

7.操作系统需要实现的文件管理功能

1.文件共享

2.文件保护

2.文件的逻辑结构

”逻辑结构“,就是指在用户看来,文件内部的数据应该是如何组织起来的

”物理结构“指的是在操作系统看来,文件的数据是如何存放在外存中的

1.无结构文件

文件内部的数据就是一系列二进制流或字符流组成。又称”流式文件

2.有结构文件逻辑结构

由一组相似的记录组成,又称”记录式文件"。每条记录又有如干戈数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字。根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。

1.顺序文件

2.索引文件

3.索引顺序文件

3.顺序文件

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

顺序存储:逻辑上相邻的记录物理上也相邻(类似于顺序表)

链式存储:逻辑上相邻的记录物理上不一定相邻(类似于链表)

串结构:记录之间的顺序与关键字无关;通常按照记录存入的时间决定记录的顺序

顺序结构:记录之间的顺序按关键字顺序排列

图片说明

顺序文件的缺点是:增加/删除一个记录比较困难(如果是串结构则相对简单)

4.索引文件

图片说明

5.索引顺序文件

图片说明
图片说明
图片说明

3.文件目录

目录本身是一种有结构文件,由一条条记录组成。每条记录对应一个在该目录下的文件

1.文件控制块

1、目录文件中的一条记录就是一个”文件控制块“FCB

2、FCB的有序集合称为”文件目录“,一个FCB就是一个文件目录项。

3、FCB中包好了文件的基本信息文件名物理地址逻辑结构物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)

4、FCB实现了文件名和文件之间的映射。使用户(用户程序)可以实现”按名存取”

5、需要对目录进行哪些操作

1)搜索:当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项

2)创建文件:创建一个新文件时,需要在其所属的目录中增加一个目录项

3)删除文件:当删除一个文件时,需要在目录中删除对应的目录项

4)显示目录:用户可以请求显示目录的内容,如果显示该目录中的所有文件及相应属性

5)修改目录:某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项(如:文件重命名)

2.目录结构

1.单机目录结构

早期的操作系统并不支持多级目录,整个系统只建立一张目录表,每个文件占一个目录项。

单级目录实现了“按名存取”,但是不允许文件重名

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

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

2.两级目录结构

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

图片说明

3.多级目录结构

又称树型目录结构

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

系统根据绝对路径一层一层地找到下一级目录。

图片说明

如果每次从根目录查找文件的话,效率会很低,也要进行多次I/O操作,所以提出了相对目录,当用户想要访问某个文件时,可以使用从当前目录出发的相对路径

图片说明

优缺点:树型目录结构可以很方便的对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树型结构不便于实现文件的共享。为此,提出了“无环图目录结构

4.无环图目录结构

图片说明

注意:只有共享计数器为0才能删除文件

3.索引节点(FCB的改进)

图片说明

图片说明

4.文件的物理结构

操作系统需要对磁盘块进行管理:对非空闲磁盘块的管理(存放了文件数据的磁盘块);对空闲磁盘块的管理

本节讨论对非空闲磁盘块的管理方式

1.文件块、磁盘块

图片说明

2.连续分配

要求:每个文件在磁盘上占有一组连续的块

图片说明

优点

1.支持直接访问和随机访问

2.连续分配的文件在顺序读/写时速度最快(移动磁头的时间越短)

缺点

1.物理上采用连续分配的文件不方便拓展

2.物理上采用连续分配存储空间利用率低,会产生难以利用的磁盘碎片(可以用紧凑技术来处理碎片,但是要耗费很大的时间代价)

3.链接分配

链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接显示链接两种。

1.隐式链接

图片说明

因为是离散分配的,所以要拓展文件很方便。也不会产生磁盘碎片

2.显示链接

图片说明

文件逻辑块号到物理地址的转换

图片说明

注意:整个磁盘只有一张FAT表,每个文件目录的目录项中都存放起始块号,类似于头结点,以此找到存放文件数据的所有块

3.总结

图片说明

4.索引分配

1.概念

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块;索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块

目录中需要记录文件的索引块是几号磁盘块

注意:索引分配是为每一个文件创建一张索引表,而在显示链接的链式分配方式中,文件分配表FAT是一个磁盘对应一张。

图片说明

2.实现逻辑块号到物理块号的转变

1)先找到索引表

2)通过索引表,就可以找打所有存放数据的物理块

图片说明

4.链接方案

图片说明

5.多层索引

类似于多级页表

图片说明

存在问题:对小文件不友好,小文件虽然只有一个物理块,但是访问小文件还是要进行多次I/O操作

6.混合索引

7.总结

图片说明

5.总结

图片说明

5.文件的物理结构

本节讨论对空闲磁盘块的管理

图片说明

1.存储空间的划分与初始化

图片说明

2.空闲表法

图片说明

3.空闲链表法

图片说明

1.空闲盘块链

图片说明

2.空闲盘区链

图片说明

4.位示图法

1.方法

图片说明

2.如何分配分配与回收

图片说明

5.成组链接法

1.思想

图片说明

图片说明

2.如何分配和回收

图片说明
图片说明

超级块相当于链头

3.如何回收

图片说明
图片说明

注意:在成组链接法中,空闲盘块是可以不连续的,所以盘块号只是起连接作用,在分配和回收过程中用不到

6.文件的基本操作

1.创建文件

进行create系统调用,需要提供一下介个主要参数

1.所需的外存空间大小

2.文件存放路径

3.文件名

操作系统处理create系统调用时,主要做了两件事

1.在外存中找到文件所需的空间

2.根据文件存放路径的信息找到该目录对应的目录文件,在目录中创建该文件对应的目录项。目录项中包含了文件名、文件在外存中的存放位置等信息。

2.删除文件

进行delete系统调用,如要提供一下几个参数

1.文件的存放路径

2.文件名

操作系统在处理delete系统调用时,主要作了一下几件事

1.根据文件存放路径找到相应的目录文件,从目录中找到文件名对应的目录项

2.根据该目录项记录的文件在外存的存放位置、文件大小等信息,回收文件占用的磁盘块。

3.从目录表中删除文件对应的目录项。

3.打开文件

很多操作系统中,在对文件进行操作之前,要求用户先使用open系统调用“打开文件”,需要提供一下几个主要参数:

1.文件存放路径

2.文件名

3.要对文件的操作类型(r,rw)

操作系统在处理open系统调用时,主要做了几件事:

1.根据文件存放路径找到相应的目录文件,从目录中找到文件名对应的目录项,并检查该用户是否有指定的操作权限。

2.将目录项复制到内存中的“打开文件表“中。并将对应表目的编号返回给用户。之后用户使用打开文件的编号来指明要操作的文件。(之后用户进程A操作文件就不需要每次都重新查目录了,这样可以加快文件的访问速度)

图片说明

4.关闭文件

图片说明

5.读文件

图片说明

6.写文件

图片说明

7.文件共享

操作系统为用户提供文件共享功能,可以让多个用户共享地使用同一个文件

注意:多个用户共享同一个文件,意味着系统中只有”一份“文件数据。并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。与复制不同

1.基于索引节点的共享方式(硬链接)

1、索引节点中设置一个连接技术变量count,用于表示链接到本索引节点上的用户目录项数。

2、实质上是不同用户的目录项指向同一个索引节点,不同用户的文件名可以不同,共同指向同一个索引节点。起别名

3.如果某个用户决定要删除该文件,则只是把用户目录中与该文件对应的目录项删除,且索引节点的count-1;如果count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。count = 0,删除文件

2.基于符号链的共享方式(软连接)

1、用户A和用户B共享同一个文件,采用软连接的方式,实际上,操作系统会为某个用户新建一个”链接文件“,这类型的文件类似于Window中的快捷方式,该文件中存放的是共享文件的路径。

2、访问共享文件的过程:先访问连接文件,使用特殊的访问方式,找到链接文件中存放的路径,进而找该路径下的文件,即可最终找到共享文件。

3、对于软连接的方式,如果删除共享文件,则软连接会实效,找不到实际的共享文件。如果仅删除链接文件,则原来的文件时不会被影响。(类似于window中的快捷方式,快捷方式就是一种链接文件

4、由于软连接方式访问共享文件时要查询多级目录,会有多级磁盘I/O,因此用软连接访问速度相较于硬链接慢一些。

8.文件保护

1.口令保护

1、为文件设置一个”口令“,用户请求访问该文件时,必须提供”口令“。

2、口令一般存放在文件对应的FCB索引节点中。用户访问文件需要先输入”口令“,操作系统会将用户提供的口令与FCB中存储的口令进行对比,如果正确,则允许该用户访问文件。

3、优点:保存口令的空间开销不多,验证口令的时间开销也很小。

4、缺点:正确的”口令“存放在系统内部,不够安全。

2.加密保护

1、使用某个“密码”对文件进行加密,在访问文件时需要提供正确的”密码“才能对文件进行正确的解密。(公钥加密、私钥解密

2、优点:保密性强,不需要在系统中存储”密码“

3、缺点:编码/译码,或者说加密/解密要花费一定时间。

3.访问控制

1、在每个文件的FCB(或索引节点)中增加一个访问控制列表(ACL),该表中记录了各个用户可以对该文件执行哪些操作。

图片说明

2、精简的访问列表:当用户很多时,每个用户一个访问控制列表不太现实;解决方案时:以”组“为单位,标记各”组“用户可以对文件执行哪些操作

图片说明

3、实现灵活,可以实现复杂的文件保护功能。

9.文件系统的层次结构

1.层次结构

图片说明

2.例子

图片说明

10.磁盘管理

1.磁盘的结构

1.磁盘:磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据。

2.磁道:的盘面被划分成一个个磁道。这样的一个”圈“就是一个磁道

图片说明

3.如何在磁盘中读写数据

图片说明

4、盘面、柱面、物理地址

图片说明

5、磁盘的分类

图片说明

盘片是否可以更换又可以分为:可换盘磁盘、固定盘磁盘

2.磁盘调度算法

1.一次读磁盘、写磁盘的时间

图片说明

总的平均存取时间 = 寻找时间 + 延迟时间 + 传输时间

注意

1)延迟时间传输时间都与磁盘转速相关,且为线性相关。而转速硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间

2)操作系统唯一可以优化的时间是寻道时间磁盘调度算法会直接影响寻道时间

2.减少磁盘延迟时间的方法

原理:读完一个扇区后,需要一段时间处理才可以继续读入下一个扇区

1)交替编号:可以有效减少磁盘转动的圈数

2)错位命名:
图片说明

3.磁盘地址结构的设计

图片说明

3.先来先服务算法FCFS

图片说明

4.最短寻找时间优先算法SSTF

图片说明

5.扫描算法SCAN-电梯算法

图片说明

6.LOOK调度算法

解决SCAN算法的缺点的第一个问题

7.循环扫描算法C-SCAN

解决SCAN算法缺点的第二个问题,响应不平均

图片说明

8.C-LOOK算法

解决C-SCAN算法的缺点

图片说明

9.磁盘管理

1.磁盘初始化

图片说明

2.引导块

图片说明

3.坏块的管理

图片说明

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务