操作系统概念笔记——第十章:文件系统接口

Posted 叶卡捷琳堡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统概念笔记——第十章:文件系统接口相关的知识,希望对你有一定的参考价值。

第十章:文件系统接口

文件系统由两个不同的部分构成

  • 一组文件(文件用于储存相关数据)
  • 目录结构(目录用于组织系统内的文件并提供有关文件的信息)

10.1 文件概念

文件是记录在外存上的相关信息的具有名称的集合。

从用户角度来说,文件是逻辑外存的最小分配单元。如果数据不在文件中,则不能被写入外存

数据文件的种类

  • 数字
  • 字符数字
  • 二进制

通常,文件由位、字节、行或记录组成

10.1.1 文件属性

文件都有一定的属性,根据系统的不同而不同,通常包括以下属性

  • 名称:文件名是唯一的,按照人熟悉的文字编写
  • 标识符:标识文件系统内文件的唯一标签,通常为数字:对人而言这是不可读的文件名称
  • 类型
  • 位置
  • 大小
  • 保护:决定谁能读、写、执行等的访问控制信息
  • 时间,日期和用户标识

所有文件信息都保存在目录结构中,而目录结构也保存在外存上。

10.1.2 文件操作

操作系统提供系统调用对文件进行创建、读、写、定位、删除和截短

1.创建文件

创建文件的两个步骤

  1. 在文件系统中为文件找到空间
  2. 在目录中为新文件创建一个条目

2.写文件

执行一个系统调用,指明文件名和要写入文件的内容。对于给定的文件名称,系统会搜索目录以查找该文件位置。
系统需要为这个文件维护一个位置的指针。每当发生写操作时,必须更新写指针

3.删除文件

在目录中搜索给定名称的文件。找到后,释放其全部空间以便其它文件使用

4.截短文件

该函数不改变文件属性,只是将其长度设为0并释放其空间

上面这几种对文件的操作都需要给定文件并搜索相关目录条目,为了避免这种重复不断的搜索操作,许多系统要求在首次打开文件时,需要使用系统调用open()

操作系统维护一个包含所有打开文件的信息表(打开文件表),当一个文件需要操作时,可通过该表的一个索引指定文件,而不需要再次搜索。当文件不需要操作时,进程可以关闭它

每个打开的文件有如下信息

  • 文件指针:跟踪上次读写位置作为当前文件位置指针
  • 文件打开计数器:跟踪打开和关闭的数量,在最后关闭时计数器为0。这时,系统可删除此条目
  • 文件磁盘位置
  • 访问权限

文件锁

文件锁提供了类似之前的读者-写者锁
共享锁类似于读者锁,可以由多个进程并发获取
专用锁类似于写者锁,只有一个进程可获取此锁

课本上还有关于Java中文件加锁的例子

10.2 访问方法

文件用于存储信息,而在访问时,需要将这些信息写入计算机内存

文件信息可以按多种方式进行访问。有的系统只提供了一种访问方式,而有的系统则提供了多种访问方式

10.2.1 顺序访问

文件信息按顺序,一个记录接着一个记录地加以处理、

文件也可重新设置到开始位置,有的系统允许向前或向后跳过n个(n有时只能为1)记录
在这里插入图片描述

10.2.2 直接访问

文件由固定长度的逻辑记录组成,以允许程序按任意顺序进行快速的读和写

直接访问基于文件的磁盘模型,磁盘允许对任意文件块进行随机读和写

对于直接访问而言,文件可作为块或记录的编号序列。可先访问块14,再访问块53,再访问块7

对于直接访问文件,读写顺序没有限制

对于直接访问方式,文件操作必须经过修改从而能将块号作为其参数。因此,对于读n的操作,其中n是块号,而不是读下一个。对于写n的操作,不是写下一个。
当然,在有些直接访问中,也保留了读下一个和写下一个的操作

用户向操作系统所提供的块号通常为相对块号。相对块号是相对于文件开始的索引
有的系统块号从0开始,有的从1开始
在这里插入图片描述

10.2.3 其它访问方式

比如根据索引访问,等等。这一部分不太重要,不再赘述

10.3 目录结构

为了管理庞大的文件系统,需要组织这些文件,而这种管理涉及目录

10.3.1 存储结构

磁盘可以整体用于一个文件系统。当磁盘上需要装多个文件系统时,会将磁盘分成若干个部分,这些部分称为分区。每个磁盘分区可以创建一个文件系统

简单来说,可以将存储文件系统的一大块存储空间称为。设备目录记录上的所有文件的具体信息(名称,位置,大小,类型)

在这里插入图片描述

10.3.2 目录概述

目录可看作符号表,它能将文件名称转换成目录条目

关于目录的相关操作

  • 搜索文件
  • 创建文件
  • 删除文件
  • 遍历目录
  • 重命名文件
  • 跟踪文件系统

10.3.3 单层结构目录

单层结构目录,所有文件均在同一目录中
在这里插入图片描述
不足:当有多个用户时,由于单层目录要求有唯一名称,因此两个用户不能命名相同的文件名

10.3.4 双层结构目录

对于双层结构目录,每个用户都有自己的用户文件目录(UFD),每个UFD都有相似的结构,但只列出单个用户的文件
在这里插入图片描述

10.3.5 树状结构目录

用户可以创建自己的子目录,并组织文件

树状结构目录是最常用的目录结构,树有根目录,系统内每个文件都有唯一路径名

通常情况下,每个进程都有一个当前目录。当前目录包括这个进程可能需要用到的大多数文件。当需要文件时,就搜索当前目录。如果所需文件不在此目录中,那么用户必须指定路径名
在这里插入图片描述
其它部分不太重要,老师上课直接略去了,这里就不再赘述

以上是关于操作系统概念笔记——第十章:文件系统接口的主要内容,如果未能解决你的问题,请参考以下文章

第十章读书笔记

第十章 文件系统

深入理解计算机系统 第十章 系统级I/O

第十章 系统级I/O

第十章笔记 日志管理 同步时间

第十章读书笔记