操作系统-4.3-文件(文件存储空间管理&&文件的基本操作)

操作系统-4.3-文件

1.文件存储空间管理

在这里插入图片描述

1.1存储空间的划分与初始化

  • 存储空间的划分:将物理磁盘划分为一个个文件卷(逻辑卷,逻辑盘)。
  • 存储空间的初始化:将各个文件卷划分为目录区,文件区。
    • 目录区:主要存放文件目录信息(FCB)、用于磁盘存储空间管理的信息。
    • 文件区:用于存放文件数据。

在这里插入图片描述

1.2存储空间管理—空闲表法

适用于”连续分配方式“。

在这里插入图片描述

1.3存储空间管理—空闲链表法

空闲链表法又分为:

  • 空闲盘块链:以盘块为单位组成一条空闲链。
  • 空闲盘区链:以盘区为单位组成一条空闲链。

在这里插入图片描述

空闲盘块链:

在这里插入图片描述

空闲盘区链:

在这里插入图片描述

1.4存储空间管理—位示图法

在这里插入图片描述
在这里插入图片描述

1.5总结

在这里插入图片描述

2.文件的基本操作

在这里插入图片描述

2.1创建文件

进行Create系统调用时,需要提供的几个主要参数:

  1. 所需的外存空间大小(如:一个盘块,即1KB)
  2. 文件存放路径(“D:/Demo”)
  3. 文件名(这个地方默认为“新建文本文档.txt”)

操作系统在处理Create系统调用时,主要做了两件事:

  1. 在外存中找到文件所需的空间(结合上小节学习的空闲链表法、位示图、成组链接法等管理策略,找到空闲空间)
  2. 根据文件存放路径的信息找到该目录对应的目录文件(此处就是D:/Demo目录),在目录中创建该文件对应的目录项。目录项中包含了文件名、文件在外存中的存放位置等信息。

在这里插入图片描述

2.2删除文件

进行Delete系统调用时,需要提供的几个主要参数:

  1. 文件存放路径(“D:/Demo”)
  2. 文件名(“test.txt”)

操作系统在处理Delete系统调用时,主要做了几件事:

  1. 根据文件存放路径找到相应的目录文件,从目录中找到文件名对应的目录项
  2. 根据该目录项记录的文件在外存的存放位置、文件大小等信息,回收文件占用的磁盘块。(回收磁盘块时,根据空闲表法、空闲链表法、位图法等管理策略的不同,需要做不同的处理)
  3. 从目录表中删除文件对应的目录项

在这里插入图片描述

2.3打开文件

在很多操作系统中,在对文件进行操作之前,要求用户先使用open系统调用“打开文件”,需要提供的几个主要参数:

  1. 文件存放路径(“D:/Demo”)
  2. 文件名(“test.txt”)
  3. 要对文件的操作类型(如: r只读;rw读写等)

操作系统在处理open系统调用时,主要做了几件事:

  1. 根据文件存放路径找到相应的目录文件,从目录中找到文件名对应的的目录项,并检查该用户是否有指定的操作权限。
  2. 将目录项复制到内存中的“打开文件表”中。并将对应表目的编号返回给用户。之后用户使用打开文件表的编号来指明要操作的文件。

在这里插入图片描述

2.4关闭文件

进程使用完文件后,要“关闭文件”,操作系统在处理Close系统调用时,主要做了几件事:

  1. 将进程的打开文件表相应表项删除。
  2. 回收分配给该文件的内存空间等资源。
  3. 系统打开文件表的打开计数器count 减1,若count = 0,则删除对应表项。

在这里插入图片描述

2.5读文件

在这里插入图片描述

2.6写文件

在这里插入图片描述

2.7总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45966440/article/details/119970501