OS学习之文件系统

文件系统是操作系统中负责存取与管理文件信息的程序和数据结构,位于OS核心的最外层。文件系统在OS中的地位如下图所示:

 

基本任务:

1)解决文件信息的逻辑组织,确定文件信息的逻辑结构;

2)给每个文件确定一个目录结构,并把系统中所有文件的目录合理地组织起来,实现对文件目录的管理

3)决定文件信息在文件空间(磁盘、磁带、光盘等)的存储方式,即解决文件的物理结构

4)文件存储空间的管理

5)文件属性的设置,提供文件的保护和共享机制

6)文件卷的组织

7)提供使用文件的一组系统调用命令,向用户提供按名存取文件的简单、方便的接口

 

文件的结构:

 

文件卷是指对于存取文件信息的戒指,按照文件系统的要求划分为必要的区域,对信息加以组织,可以存储文件,称为文件卷。它是卷资源表,目录结构和文件集合及其存储介质的统一体。

举例:UNIXMS-DOS的文件卷

 

文件的逻辑结构:1)记录式结构.分为定长和不定长。2)流式结构。把文件处理为有序字符的集合,任何输入都作为文件内容,并且加以存储。

 

目录组织:

1)单级目录结构。文件少可用,文件不允许重名。

2)多级目录与文件的绝对路径名

3)相对路径名及目录检索。”.”指当前目录,”..”父目录。

 

文件的物理结构

1)连续结构。将一个文件的信息存放在外存的连续编号的物理块中。

优点:1)结构简单,只需指出首块号和总块数;

      2)当需要连续存取时效率高。

缺点:不便于文件尺寸的动态增长。当需要增添信息时,为保持连续结构,先申请一片更大的空间,将所有的信息复制过去再进行添加。

 

2)链接结构。允许将逻辑上连续的文件块存放到不连续的物理块中,为了保持所有文件块的逻辑顺序,在每一个文件块中设置一个指向存放下一个逻辑块的物理块指针。当最后一块的指针域为空指针,表示它已是最后一块。

优点:便于文件动态增删

缺点:在对块进行操作前必须把它前面所有的块逐块读入内存。

 

3)索引结构。在文件目录中设置一张文件物理块的索引表,表中依序登记各个逻辑块所对应的物理块。索引表通常放在磁盘块中,在读写文件前要一次性把他读入内存。

优点:可以实现对文件块的随机存取

 

文件存储空间管理

1)空白文件目录

文件存储空间中,一个连续的未分配区域当作一个空白文件,系统为这些文件单独建立一个目录,称为空白文件目录。对应于么每个空白文件,在这个目录中建一个表目,包括它的第一块的物理地址和块数。对文件进行增删时,要对空白文件目录进行调整。

2)位示图

在内存中为所有的磁盘块设置一张位示图,利用字节映像表(一串二进制位)来反映磁盘空间的分配情况,每一位对应一个物理块,0表示空闲,1表示已分配。

3)空白块链

为了记住存储空间的分配情况,可以把其中所有的“空白块”链接在一起。当用户创建或增长文件需要一块或者几块时,就从链头去下。回收磁盘块时,则把回收的块链入空闲块链。

 

文件保护

1)存取控制矩阵。

一维列出使用文件的全部用户,另一维列出存入系统的全部文件。

优点:一目了然

缺点:对于文件多、用户多的系统,存取控制矩阵中有太多的无关项,保存的是一个稀疏矩阵,将为之付出许多额外时空开销。

 

2)存取控制表

只用一个表登记控制矩阵中用户文件相关联的项目,把用户分为若干类。为每一个文件加你一个存取控制表,以记录各类用户对该文件的存取权限。UNIX把用户分为三类:文件主、伙伴、其他。

 

3)口令

用户在建立一个文件时,同时提出一个口令。系统在为此文件建立FCB时,记下该口令。然后,文件主把该口令告诉允许共享该文件的用户。

 

文件系统的系统调用

1)用户程序的接口。

文件系统调用是用户程序和文件操作系统之间的接口。

 

2)文件句柄

在用户进程的PCB中,有一张用户打开文件表,每一个表目雍怡阁无符号小整数代表(即文件句柄)。进程每使用一个文件,在open后,便取得一个文件句柄。0表示标准输入(通常是键盘),1表示标准输出(通常是显示屏),2表示标准出错(通常是显示屏).

 

Open的实现(以UNIX为例)

1)检索目录。先调用检索目录过程检索目录,若找到文件并且有打开文件后指定的文件操作的权限,则进入第二步;否则作出错误处理;

2)分配内存索引结点。为被打开文件分配一个内存i结点,并调用读磁盘过程,将磁盘上i结点的内容复制到内存i结点中,并设置文件引用计数i_count1。若该文件已经打开,则在设置文件引用计数i_count1后,将偏移量设置为0.

3)分配系统文件表项。为文件分配“内存系统文件表”的一个表项,使表项指向刚刚分配到的内存索引结点。

4)分配用户文件描述表项。在进程的PCB的用户文件描述表中取得一个空表项,表中序号为打开文件的描述符fd

5)返回用户文件描述字fd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值