文章目录
本文章由公号【开发小鸽】发布!欢迎关注!!!
老规矩–妹妹镇楼:
![](https://i-blog.csdnimg.cn/blog_migrate/eac8cddaf63e8708f2618fc814be45dd.jpeg)
一. 文件系统
(一) 概述
文件系统专门管理外存储器上的信息,对文件存储器中的空间进行管理,对于用户来说,可以按照文件名来存储信息。
(二) 文件和文件系统
1. 文件
文件是具有符号名,在逻辑上具有完整意义的一组相关信息项的集合,一个文件包括文件体和文件说明,文件体是文件真实的内容,文件说明是操作系统为了管理文件所用到的信息。
2. 文件系统
文件管理系统,就是操作系统中实现文件统一管理的一组软件和相关数据的集合。
(三) 文件的逻辑结构
文件的逻辑结构分为两大类,一个是有结构的记录式文件,由多个记录构成的,另一个是无结构的流式文件,是由一串顺序字符流构成的文件。
1. 有结构的记录式文件
所有的记录都是描述一个实体集的,记录的长度分为定长和不定长。
2. 无结构的流式文件
文件体为字节流,不划分记录,通常采用顺序访问方式,并且每次读写访问可以指定任意数据长度,以字节为单位。
(四) 存储介质
为了有效管理文件存储设备,将文件存储器空间划分为大小相等的物理块,作为内外存之间传送信息的基本单位。存储设备按照存取时间变化的不同分为顺序存储设备和直接存取设备。
1. 磁带
磁带是顺序型存储设备。
2. 磁盘
(1) 概述
磁盘是直接存储设备,它的存储时间不依赖于数据所处的位置。此案中包含多个盘片,每个盘片有两个面,每个面上有若干条磁道,磁道之间留有必要的空隙,在每条磁道上存储相同数据的二进制位,显然内存磁道的密度比外层高。磁盘密度是指每英寸中所存储的二进制位数。
(2) 磁盘结构
每条磁道又分为若干个扇区,每个扇区的大小相当于一个盘块,一般一个扇区的容量为600字节,其中512字节用于存放数据,其余字节存放控制信息。每个扇区包含标识符和数据,标识符包括磁道号,磁头号,扇区号来标识一个扇区地址。
(2) 磁盘的类型
固定头磁盘:在每条磁道上都有一个磁头,进行并行读写;
移动头磁盘:每一个盘面仅有一个磁头,串行读写;
(3) 磁盘访问时间
寻道时间:将磁头移到指定磁道的时间;
旋转延迟时间:扇区移动到磁头下经历的时间;
传输时间:数据传输的时间;
寻道和旋转时间占比最大,而数据传输时间很短,因此如果零散地传输数据,则每次都需要寻道和旋转,最好是集中传输数据。
(五) 文件的物理结构
文件的内部组织形式,即文件在物理存储设备上的存放方法。
1. 连续结构
顺序结构,依次存放在连续编号的物理块中。对于定长记录的文件,只要知道当前记录的逻辑地址,可以快速确定下一个记录的逻辑地址;对于变长记录的文件,需要设置读写指针。该结构的最佳应用是在对文件进行批量存取时,整个连续地址直接取,缺点是不利于记录的增删改动。
2. 链接结构
串联结构,将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块中都有指针指向下一个物理块。
3. 索引结构
可以存放在不连续的物理块中,为每个文件建立一张索引表,索引表记录的文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在文件对应的文件目录项中。一个文件的索引表占用多个物理块,多个物理块的索引表之间有两种组织方式:链接文件方式和多重索引方式。链接文件即多个索引表链接在一起,多重索引即一层索引嵌套另一层索引。
(六) 文件目录
1. 文件目录的内容
为了实现按名存取,系统需要为每个文件设置用于描述和控制文件的数据结构,它至少包含文件名和存放文件的物理地址,这个数据结构成为文件控制块FCB。FCB的有序集合称为文件目录,专用于文件的检索。
2. FCB
FCB包含三类信息:基本信息类,存取控制信息类和使用信息类。
(1) 基本信息类
包括文件名和文件的物理地址。
(2) 存取控制信息类
文件的存取权限。
(3) 使用信息
文件的各种使用信息,如建立日期,修改日期等。
3. 文件目录
文件目录由FCB组成,专用于文件的检索,可以存放在固定位置,也可以以文件的形式存放在磁盘上,这种特殊的文件为目录文件。
4. 目录结构
目录结构的组织方式影响到文件的存取速度,常见的目录机构有三种:一级目录结构,二级目录结构和多级目录结构。
(1) 一级目录结构
整个目录组织就是一个线性结构,系统为每个文件分配一个目录项。
(2) 二级目录结构
由主文件目录MFD和用户目录UFD组成的,在主目录中,每个用户文件目录都有一个目录项,其目录项包括用户名和指向该用户目录文件的指针。用户目录是由用户的所有文件的目录项组成的。
优点:
提高检索目录速度;
解决不同用户目录中的重名问题;
缺点:
没有解决多用户的文件共享问题;
(3) 多级目录结构
采用树形目录结构,每个节点就是一个目录,叶节点是文件,UNIX和DOS等操作系统都采用多级目录结构。用户要访问一个文件,必须指出文件所在的路径名,即从根目录到该文件的路上的所有目录名的组合。
相对路径指的是当一个进程运行时访问的文件大多局限在某个范围内,因此为每个进程或用户设置一个当前目录,进程对各文件的访问都相对于当前目录而设置路径,即相对路径,可以缩短搜索路径,提高检索速度。
(七) 文件共享
文件共享是指不同用户进程使用同一文件,可节省大量内存,减少由于文件复制而增加的访问外存的次数。文件共享有多种形式:
1. 基于索引节点的共享
(1) 静态共享
无果文件系统中允许一个文件同时属于多个文件目录项,但是实际上文件只有一处物理存储,这种多个文件目录项对应一个文件实体的多对一关系为文件链接,不管用户是否在使用系统,它的文件链接关系都存在,因此成为静态共享。
(2) 动态共享
只有进程存在时才会出现共享关系。
2. 利用符号链接共享
将两个文件目录表指向同一个索引节点的链接称为文件硬链接,不利于文件主删除源文件,因为必须先删除所有对应的文件硬链接,否早会造成目录指针为空。因此提出了新的链接方法:符号链接,为共享的用户创建一个link类型的新文件,登记在该用户共享目录项中。
该link型文件包含链接文件的路径名,用户通过该文件来访问真正的文件,利用符号链接可以跨越文件系统,甚至可以跨越计算机。
(八) 磁盘高速存储
磁盘的IO速度比内存的访问速度低很多,人们想方设法在提高IO速度,最主要的方法是采用磁盘高速缓存技术。
利用内存中的存储空间来暂存从磁盘中读出的块信息,分为两种形式:
(1) 在内存中开辟一个单独的存储空间作为块高速缓存,大小固定;
(2) 将所有未利用的内存变为一个缓冲池,供请求分页和磁盘IO共享,此时的磁盘缓存是不固定的。
(九) 磁盘调度
1. 概述
磁盘是被多个进程共享的设备,当多个进程请求访问时,系统每个时刻只允许一个进程启动磁盘进行IO,因此操作系统需要采用一种适合的调度算法,使得个进程对磁盘的平均访问时间最短。磁盘调度先进行移臂调度,再进行旋转调度,访问磁盘最耗时的是寻道,因此目标就是使得寻道时间最短,即移臂耗时最短。
2. 磁盘移臂调度算法
(1) 先来先服务(FCFS)
根据进程请求先后访问磁盘,时间较长。
(2) 最短寻道时间优先(SSTF)
如果进程要求访问的磁道与当前磁头所在的磁道距离最近,寻道时间最短,则优先调度该进程,但是无法保证平均时间最短,同时还会造成饥饿现象。
(3) 扫描算法(SCAN)
对SSTF优化后的算法,不仅考虑磁道之间的距离,还考虑磁头当前的移动方向,会顺着移动方向来寻找距离最近的磁道,到达顶后会调整为反方向,继续寻道,避免了饥饿现象的发生。这种算法类似电梯运行,因此称为电梯算法。
(4) 循环扫描调度算法(CSCAN)
如果在扫描过了一个磁道,就有进程需要访问该磁道,这时该进程就需要等待很久,为了减少这种延迟,CSCAN规定磁头只做单向移动。
3. 磁盘旋转调度算法
首先到达磁头位置的扇区先进行传送操作。