操作系统春招面试复习之:文件管理

本文详细探讨了操作系统中的文件管理,包括文件与文件系统的定义、文件的分类和逻辑结构、文件的存储介质、文件控制块、文件目录结构、文件的物理结构(连续、链接、索引结构)以及UNIX文件系统的实现。文章还涵盖了文件操作的实现、文件系统的管理和性能优化,如磁盘调度算法。此外,提到了Windows的FAT16和FAT32文件系统,以及文件的安全性和一致性检查。
摘要由CSDN通过智能技术生成

一、文件与文件系统

1.1 文件是什么

  • 文件是对磁盘的抽象
  • 所谓文件是指一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。
  • 信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系
  • 文件内容的意义:由文件建立者和使用者解释

1.2 如何设计一个文件系统

这里先看文件管理的需求:

  • 从用户角度

    文件系统是如何呈现在用户面前:

    *   一个文件的组织
    
    • 如何命名
    • 如何保护文件
    • 可以实施的操作
  • 从操作系统角度:怎样组织、管理文件

    *   文件的描述、分类
    
    • 文件目录的实现
    • 存储空间的管理
    • 文件的物理地址
    • 磁盘实际运作方式(与设备管理的接口)
    • 文件系统的性能

1.3 文件系统

  • 操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用

  • 文件系统要完成哪些任务

    1、统一管理磁盘空间,实施磁盘空间的分配与回收

    2、实现文件的按名存取:名字空间–映射–>磁盘空间

    3、实现文件信息的共享,并提供文件的保护、保密手段

    4、向用户提供一个方便使用、易于维护的接口,并向用户提供有关统计信息

    5、提高文件系统的性能

    6、提供与IO系统的统一接口

1.4 文件的分类

按文件性质和用途分类(UNIX),一般分为普通文件、目录文件、特殊文件(设备文件)、管道文件、套接字

  • 普通文件

    即用户自己建立的文件,包含了用户的信息,一般为ASCII或二进制文件

  • 目录文件

    管理文件系统的系统文件

  • 特殊文件

    字符设备文件:和输入输出有关,用户模仿串行I/O设备,例如终端、打印机、网卡等。

    块设备文件:磁盘

1.5 文件的逻辑结构

  • 无结构的流式文件
    对文件内信息不再划分单位,它是依次的一串字符流构成的文件。
  • 有结构的记录式文件
    用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)。


**说明:**这里是从用户角度看文件,由用户的访问方式确定,这里给出了三种逻辑结构,还可以组织成堆、顺序、索引、索引顺序、散列等结构。第一种是以字节为单位的流式结构,第二种是一种记录式文件结构,最后一种是树形结构。

1.6 典型的文件逻辑结构与文件存取

  • 流式文件:构成文件的基本单位是字符

    文件是有逻辑意义、无结构的一串字符的集合

  • 记录式文件:文件由若干记录组成,可以按记录进行读写、查找等操作。每条记录有其内部结构

  • 文件的逻辑结构与文件存取之间的关系

    顺序存取(访问)

    随机存取:提供读写位置(当前位置)。如UNIXseek操作。

1.7 文件的存储介质

1.7.1 存储介质与物理块

  • 典型的存储介质

    磁盘(包括固态盘SSD)、磁带、光盘、U盘、…

  • 物理块(块block、簇cluster

    信息存储、传输、分配的独立单位

    存储设备划分为大小相等的物理块,统一编号

1.7.2 典型的磁盘结构

1.7.3 磁盘访问

一次访问磁盘的请求:读写、磁盘地址(设备号、柱面号、磁头号、扇区号),内存地址(源/目)

完成过程由三个动作组成:

  • 寻道(时间):磁头移动定位到指定磁道
  • 旋转延迟(时间):等待指定扇区从磁头下旋转经过
  • 数据传输(时间):数据在磁盘与内存之间的实际传输

1.7.4 磁盘空间管理

  • 位图

    用一串二进制位反映磁盘空间中分配使用情况,每个物理块对应一位,分配的物理块为0,否则为1

    申请物理块时,可以在位示图中查找1的位,返回对应的物理块号

    归还时,将对应位转置1

  • 空闲块表

    将所有空闲块记录在一个表中,即空闲块表

    主要两项内容:起始块号,块数

  • 空闲块链表

    把所有空闲块链成一个表

    扩展:成组链接法

磁盘地址与块号的转换

成组链接法设计思想

**说明:**左上角的是一个专用块,表示一些有用信息,而右边大括号中的都是空闲块。所有空闲块我们分成了若干组,典型的是100块是一组,最后一个空闲组只有99个空闲块。专用块中有20个空闲块号,分别对应右边的空闲块组。每次要使用文件的时候,就从专用块中挑选空闲块,一般从801开始分配。820中的第一块实际上是记录了后面一块800中空闲块的空闲块号和总的空块的数量,后面的以此类推。最后一个组中的0则表示最后一组的标志。

成组链接法:分配算法

分配一个空闲块

L单元(空闲块数)

  • 空闲块数 > 1 , i = L + 空闲块数

    从i单元得到一个空闲块号;

    把该块分配给申请者;

    空闲块数减1

  • 空闲块数 = 1, 取出L + 1单元内容(一组的第一块号或0);

    值 = 0无空闲块,申请者等待

    其值不等于零,把该块内容复制到专用块

    该块分配给申请者;

把专用块内容读到内存L 开始的区域。

成组链表法:回收算法

归还一块

L单元的空闲块数

  • 空闲块数 < 100空闲块数加一;

    j := L + 空闲块数

    归还块号填入j单元

  • 空闲块数 = 100, 则把内存中登记的信息写入归还块中;

    把归还块号填入L+ 1单元;

    L单元置成1

二、文件控制块和文件目录

2.1 文件属性

  • 文件控制块(File Control Block:FCB

    为管理文件而设置的数据结构,保存管理文件所需的所有有关信息(文件属性或元数据)

  • 常用属性

    文件名,文件号,文件大小,文件地址,创建时间,最后修改时间,最后访问时间,保护,口令,创建者,当前拥有者,文件类型,共享计数,各种标志(只读、隐藏、系统、归档、ASCII/二进制、顺序/随机访问、临时文件、锁)

  • 基本文件操作

2.2 文件目录、目录项与目录文件

  • 文件目录

    *   统一管理每个文件的元数据,以支持文件名到文件物理地址的转换
    
    • 将所有文件的管理信息组织在一起,即构成文件目录
  • 目录文件

    将文件目录以文件的形式存放在磁盘上

  • 目录项

    *   构成文件目录的基本单元
    
    • 目录项可以是FCB,目录是文件控制块的有序集合

2.3 文件目录结构的演化


**说明:**最初是以一级目录结构,最后慢慢演化成了树形目录结构。

2.4 与目录相关的概念

  • 路径名

    绝对路径名:从根目录开始

    相对路径:从当前目录开始

  • 当前目录/工作目录

  • 目录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值