操作系统-10——文件管理

文件和文件系统

1.文件(File)

    1.1 定义:存储在外存上具有标识名的一组相关字符流记录集合。可长期保存和共享。

    1.2 分类:记录式文件、流式文件。(按文件结构划分)

            #记录式文件:数据有4个结构层次:域(字段)、记录、文件、数据库。

                ##磁盘I/O时需将多条记录组装成块才能I/O。以下是三种记录组块的方法。

                    ###固定组块:记录长度固定,若干完整的记录放在一块,块后部可能会有内碎片

                    ###可变长度跨域式组块:记录长度可变,尽可能占满一块。有些记录可能跨越两块,则用指针链接

                    ###可变长度非跨越式组块:记录长度可变,但不跨快,有块内碎片。一个记录的长度不能超过块尺寸

             #流式文件:UNIX将所有文件都看做由字节流组成,如源程序。目标代码等。

            

2.文件系统(File System)

   2.1 定义OS(操作系统)中负责存储管理和操作文件的一组系统实用程序及所需的数据结构

    2.2 功能

                (用户角度)

              #创建、删除、打开、关闭、读、写文件和目录;

              #维护文件属性:文件名,所有者、创建/修改时间、访问权限,长度,外存地址等。

              #文件的透明存取(按名存取)、共享与保护。

                (操作系统角度)

              #目录管理,访问(权限)控制,访问方法,文件操作函数,记录组块,文件分配,磁盘管理和调度。

3.目录

#每个文件都有一个目录项(文件控制块FCB)用以保存它的属性。

#每个目录本身也是一个文件。目录文件是占据整数个磁盘块记录式文件,内容是该目录下所有文件目录项的集合

(PS:即目录本身是一个文件,必须占据整数个磁盘块空间并且本身是记录式文件。目录存储的内容是什么呢?存储的是该目录下所有文件的目录项的集合,即目录存储的是目录项集合。)

#每一个目录至少包含了当前目录父目录两项。

#结构:树形目录。文件由文件路径名和文件名标识。

4.访问权限

#访问权限层次:无权限,知道文件存在,执行,读,在文件尾追加数据,写,更改其他用户的访问权限,删除文件。

(每一项权限都隐含了前面的权限,即高权限包括了低权限。)

!#用户删除文件时,OS不可能删除此文件所在的目录,但可删除与此文件关联的目录项,文件控制块,内存缓冲区。

!#文件首次被打开时,OS会变文件控制块读到内存中。

5.文件分配

3种文件分配方法:连续分配,链接分配,索引分配

#连续分配

    ##为文件分配一组相邻的盘块。(可用FF,BF,WF 分配方法。详情可见 “操作系统——内存分配”)

    ##文件属性简单:起始块号,块数。

    ##顺序访问和随机访问方便:寻道少,I/O快。(优点)

    ##磁盘外碎片多,需紧缩;文件不能动态增长(缺点)

!!#增加或删除块需要将所有后续块向后移或向前移(先读到内存在再写回磁盘)。


#链接分配

    ##每个磁盘块都有一个链接指针,将该文件的多个离散磁盘块链接成一个链表。

    ##动态分配:没有外碎片(优点);寻道多,I/O慢(缺点)

!!#FCB中有<起始块号>,下一块的块号存放在本次盘块的末端。增加或删除块需要将所有前续块读到内存,读取或修改一个块的块号。


#索引分配

     ##把所有磁盘块的地址集中到索引块中。

       ##没有外碎片;随机访问。(优点)

       ##增加了索引块的开销。(缺点)

       ##基于单块盘块进行索引分配


        ##基于长度可变的(磁盘块)分区进行索引分配

            同样一个索引块的开销,可为文件分配更多的磁盘块。


6.磁盘空闲空间管理

#管理方法:位图,空闲区链,索引表,空闲块列表

6.1.位图(bitmap)

# 1bit => 1块的状态    0:空闲,1:已分配

    分配磁盘块时:磁盘块号 i = 字号*字长+位号

    回收i号磁盘块时:字号 = INT (i/字长),位号 = i mod 字长。


6.2空闲区链

#将所有空闲盘块区形成一个链表


6.3索引表

#将所有空闲盘块区的“首块号+块数”放在一个索引表中。


6.4空闲块列表

#将所有空闲盘块数放在磁盘一个保留区里。此表可部分复制到内存,可排序以实现连续分配


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值