> 文章列表 > 操作系统(四)——文件管理

操作系统(四)——文件管理

操作系统(四)——文件管理

文章目录

  • 第四章 文件管理
    • [4.1.1] 初识文件管理
      • (一)文件的属性
      • (二)文件内部的数据应该怎样组织起来
      • (三)文件之间应该怎样组织起来
      • (四)操作系统应该向上提供哪些功能
      • (五)从上往下看,文件应如何存放在外存
      • (六)其他需要由操作系统实现的文件管理功能
      • 小结
    • [4.1.2] 文件的逻辑结构

第四章 文件管理

[4.1.1] 初识文件管理

操作系统(四)——文件管理

  计算机中存放了各种各样的文件,一个文件有哪些属性?

  文件内部的数据应该怎样组织起来?

  文件之间又应该怎么组织起来?

  从下往上看,操作系统应提供哪些功能,才能为它的上层,即方便用户、应用程序使用文件?

  从上往下看,文件数据应该怎么存放在外存(磁盘)上?

  从最熟悉的Windows操作系统出发。

(一)文件的属性

  一个文件有哪些属性?

  文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件

  标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称(所以这个名称不向用户展示,右键-属性里也没有,这是操作系统内部自己用的)。(比如,虽然我同一目录下不能有重名文件,但是不同目录下可以有,比如两个目录下都有test.txt文件,那么该怎么区分他俩?就需要唯一标识符)

  类型:指明文件的类型。

  位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)。

  大小:指明文件大小。

  创建时间、上次修改时间、文件所有者信息

  保护信息:对文件进行保护的访问控制信息。(用户组)

(二)文件内部的数据应该怎样组织起来

操作系统(四)——文件管理

  无结构文件(如文本文件)——由一些二进制或字符流组成,又称“流式文件”。

操作系统(四)——文件管理

  有结构文件(如数据库表)——由一组相似的记录组成,又称“记录式文件”。

  记录是一组相关数据项的集合。(如上图中的一行就是一个记录)

  数据项是文件系统中最基本的数据单位。(如上图中的某行某列)

操作系统(四)——文件管理

  有结构文件中,各个记录间应该如何组织的问题——应该顺序存放?还是用索引表来表示记录间的顺序?——这是“文件的逻辑结构”重点要探讨的问题。

(三)文件之间应该怎样组织起来

操作系统(四)——文件管理

操作系统(四)——文件管理

  所谓的“目录”其实就是我们熟悉的“文件夹”。

  用户可以自己创建一层一层的目录,各层目录中存放相应的文件。系统中的各个文件就通过一层一层的目录合理有序的组织起来了。

  目录其实也是一种特殊的有结构文件(由记录组成),如何实现文件目录是之后会重点探讨的问题。

(四)操作系统应该向上提供哪些功能

向上提供的几个最基本的功能

  • 创建文件(create系统调用)

  • 删除文件(delete系统调用)

  • 读文件(read系统调用)

  • 写文件(write系统调用)

  • 打开文件(open系统调用)

  • 关闭文件(close系统调用)

    (这里的打开、关闭文件,和我们理解的双击某文件打开、点叉号关闭是不太一样的,后续再说)

    读/写文件之前,需要“打开文件”。读/写文件结束之后,需要“关闭文件”。

  可以用几个基本操作完成更复杂的操作,比如“复制文件”,先创建一个新的空文件,再把原文件读入内存,再将内存中的数据写到新文件中。

  操作系统在背后做的处理会在以后进行探讨。

操作系统(四)——文件管理

  可以“创建文件”,点击新建后,图形化交互进程在背后调用了“create系统调用”。

操作系统(四)——文件管理

  可以“读文件”,将文件数据读入内存,才能让CPU处理(双击后,“记事本”应用程序通过操作系统提供的“读文件”功能,即read系统调用,将文件数据从外存读入内存,并显示在屏幕上)。

  可以“写文件”,将更改过的文件数据写回外存(我们在“记事本”应用程序中编辑文件内容,点击“保存”后,“记事本”应用程序通过操作系统提供的“写文件”功能,即write系统调用,将文件数据从内存写回外存)。

操作系统(四)——文件管理

  可以“删除文件”(点了“删除”之后,图形化交互进程通过操作系统提供的“删除文件”功能,即delete系统调用,将文件数据从外存中删除)。

(五)从上往下看,文件应如何存放在外存

操作系统(四)——文件管理

  与内存一样,外存也是由一个个存储单元组成的,每个存储单元可以存储一定量的数据(如1B)。每个存储单元对应一个物理地址。

  类似于内存分为一个个的“内存块”,外存会分为一个个“块/磁盘块/物理块”。每个磁盘块的大小是相等的,每块一般包含2的整数幂个地址(如本例中,一块包含2102^{10}210个地址,即1KB)。同样类似的是,文件的逻辑地址也可以分为(逻辑块号,块内地址),操作系统同样需要将逻辑地址转换为外存的物理地址(物理块号,块内地址)的形式。块内地址的位数取决于磁盘块的大小。

  操作系统以“块”为单位为文件分配存储空间,因此即使一个文件大小只有10B,但它依然需要占用1KB的磁盘块。外存中的数据读入内存时同样以块为单位。

操作系统(四)——文件管理

操作系统(四)——文件管理

  文件是否应该需要存放在连续的几个磁盘块中?

  文件如果比较大,是不是应该存放在离散的几个磁盘块中?

  对于空闲的磁盘块,操作系统又应该怎样管理?

  这些是在“文件的物理结构”部分会探讨的内容。

(六)其他需要由操作系统实现的文件管理功能

  文件共享:使多个用户可以共享使用一个文件。

  文件保护:如何保证不同的用户对文件有不同的操作权限。

  之后会结合Windows操作系统的实际应用进行探讨。

小结

操作系统(四)——文件管理

[4.1.2] 文件的逻辑结构

漂亮主播大全