unix的文件系统是什么 unix文件系统是什么

Unix 文件系统是对存储设备上的数据和元数据开展组织的机制 。UNIX 文件系统是 UNIX 系统的心脏部分,带来了结构分析的目录和文件 。

unix的文件系统是什么 unix文件系统是什么

文章插图
软件介绍Unix 系统的产生和流行促进了操作系统的改革,它的设计思想与在发展过程中积累的丰富经验及教训仍可为大家参考 。文件系统承担系统中文件数据的管理,在整个系统中是至关重要的,文件系统是 Unix 成功的关键 。Unix 系统采用树型文件构造、核心与外核的融合、设备与文件一样的管理模式和操作方法等技术和措施,促使 Unix 文件系统变成当代很优秀的系统 。
管理结构Unix 文件系统是由“硬盘索引 i 节点”、“目录项”去进行管理的,在文件被打开或被引入后还要“内存索引 i 节点”、“客户文件描述表”、“文件表” 。文件系统硬盘构造如图
。管理块关键管理硬盘体系中各部分区域大小及资源(i 节点,磁盘块)的使用情况与管理模式 。i 节点区用于储放该文件系统全部硬盘 i 节点构造,硬盘索引节点包括文件的关键信息如下:文件所有者标志符;文件种类;文件存储许可权;文件联接数量;文件存取时间;文件长短;文件地址索引表 。
Unix 的每个目录项只储放文件名和 i 节点号,共 16 个字节,而文件中除名字之外的信息都储放到 i 节点中,优点是系统各个目录规模大大减少 。在 Unix 文件系统中,为了提高系统效率,降低存储空间的占用,当打开一个文件时,只是将和该文件相关联的目录项和硬盘 i 节点拷贝到主存中,为了对开启的文件进行管理,因此又设置了开启文件监督机构,它又由以下三部分组成:
1.活动 i 节点(内存 i 节点) 。作用是体现文件当前活动的情况,所以它添加了一些项目:内存索引节点情况、设备号、索引节点号、内存索引节点的浏览记数 。
2.开启文件表 。i 节点中只包含有文件的静态信息,但当一个文件被同一过程或不同过程、用同一或不同路径名、同样的或互异操作同时打开后,只靠 i 节点就不能符合要求,因此,开启文件表记录了开启文件所需的一些附加信息:读写情况、引用计数、指向内存索引点指针、读/写位置指针 。
3.客户文件描述符表 。每个用户进程有一个客户文件描述符表,每一个表项就是一个指针,并指向开启文件表的一个表项,这个表的作用是确保每个过程可以开启多个文件,或者对同一个文件以不同形式操作开启 。假设一个过程实行以下代码:
fd1= open(”/etc/pad”,O- RDONLY);
fd1= open(”/etc/pad”,O- RDWD);
则这三个表的作用和关联如图所示

物理结构Unix 文件系统使用的是索引文件构造,在索引节点中建立有 13 个地址项,如图

针对长短不超过 10 个物理块的小型文件,可直接找到该文件所在的盘块号;针对中、大型文件选用一次或2次间接寻址;对特大型文件选用三次间接寻址 。索引节点的优点是:索引节点占用的空间小,对小文件的索引速度快,同时也允许组织大型和特大型文件 。文件最多能占用的物理块数可达到 10256 256^2256^3 个 。
Unix 的数据统计说明,80%为小文件,20%为大文件(其中 1%为超大文件),这组数据就更反映了 Unix 文件系统定制的绝妙和科学 。为了提高储存空间的使用率,允许文件在硬盘上不持续储放,且其寻址方式最多能达到三次 。它缺点是导致浏览文件的寻道时间增加和多次访问硬盘 。在非即时场所是可行的,但在即时场所,它的这一缺陷就突显 。比如:假定硬盘平均寻道时间为 15ms,每个磁盘块大小为 512 字节,某文件尺寸为 3kB,假如持续储放,寻道时间仅需 15ms;假如不持续储放,它要占用 6 个零散的磁盘块,可能位于不同的磁道,因此寻道时间需 90ms,比持续储放多消耗 75ms 。
空闲磁盘块Unix 文件系统根据管理块来达到空闲块管理 。管理块的算法设计如下:struct filsys{int s-isize;/*i 节点区总块数*/int s-fsize;/*文件卷总块数*/int s-nfree;/*直接管理的空闲块数*/int s-free[100];/*空闲块号栈*/int s-ninode;/*直接管理的空闲 i 节点数*/int s-inode[100];/*空闲 i 节点号栈*/……}
空闲块的管理方案是:将空闲块从后往前,多个空闲块(如 100 个)分成一组(最终一组为 99 块),每组最后一块做为索引表,用于登记下一组 100 的物理块号和块数,最前的一组物理块号和块数存放在管理块的 s_free[100]和 s_nfree 中 。这种对空闲块先分组,再把组与组开展链接的管理方案称为组连接法 。对空闲块的分配和释放类似栈,应用后进先出算法 。但其监督机构分成二级,一级常驻内存(管理块的 s-nfree 和 s-free[]),另一级则驻在每组的第一个盘块上 。其优点是常驻内存的只有一个组,而非把所有组的空闲表都加入内存,这个就极大地节约了存储空间,同时软件花销也小 。缺点是可能造成物理块的使用率不匀 。比如:假定当前的 s-nfree= 80,这时某过程释放一个文件块,其占用的物理块号为 300,系统回收它后,s-nfree= 81,s-free= 300 。接着某客户又申请物理空间,文件系统总是从索引表中取最终一项的值,即 s-free 出栈,将 300 号物理块又马上分配应用 。可以想象,300 号块还会面临再释放,再分配的可能 。300 号块多次被应用,而其它空闲块却没被分配应用,即有些物理块可能长期被应用,而有些物理块可能长期得不到应用,所以对外存储器的使用期不好 。
构造和共享Unix 的文件系统选用多级树形目录结构,其优点是高效的解决了文件同名难题,又能够很容易地完成文件共享 。基本文件系统和子文件系统是可安装及可拆卸的,但在多客户条件下,多客户间共享数据一样觉得不便,绝对路径名是文件的唯一标记名,客户无法用此外标记名应用共享文件,因此 Uinx 文件又带来了如下两种链接机制 。
1.硬链接技术 。如果要为文件 1.c 建立一个硬链接 2.c,则只需将 2.c 的目录项指针指到文件 1.c 的 i 节点,同时将 i 节点连接数加 1 即可 。那样客户似乎是增加了一个物理拷贝,可具体却只有一个文件实体,当删掉连接时,只要删掉一个目录项和将连接数减 1 。
2.符号链接技术 。如果要为 usr/sxk/1.c 建立一个符合连接 2.c,则 Unix 根据 read link 读取文件内容,即找到原文件路径名,再通过原文件路径名去开启文件 。符号链接等同于给文件增加了一个别称 。也可为目录创建符号链接,并且可以跨文件系统 。Unix 文件连接的优点是用很小的开销为多客户共享文件带来了有效方式,且能快速定位文件和目录;缺点是对多客户应用文件不能加以并发控制,易导致数据的不一致性 。硬链接只是针对一般文件,而不太适合目录文件和不同文件系统 。
【unix的文件系统是什么 unix文件系统是什么】