初识文件管理
1.文件的定义:一组有意义的信息的集合
2.文件的属性:文件名、标识符、类型、位置、大小、保护消息…
3.文件内部应该如何被组织起来(文件的逻辑结构)
4.文件之间应该如何被组织起来(目录结构)
5.操作系统应向上提供哪些功能(create\delete\open\close\read\write系统调用)
6.文件应如何存放在外存中(文件的物理结构)
7.操作系统如何管理外存中的空闲块(存储空间管理)
8.操作系统需要提供的其他文件管理功能:1.文件共享 2.文件保护
文件就是一组有意义的信息/数据的集合
灵魂N问:
计算机中存放了各种各样的文件,一个文件有哪些属性?
文件内部的数据应该怎样组织起来?
文件之间又应该怎么组织起来?
从下往上看,OS应提供哪些功能,才能方便用户、应用程序使用文件?
从上往下看,文件数据应该怎么存放在外存(磁盘)上?
1.一个文件有哪些属性?
(1)文件名:由创建文件的用户决定文件名,同一目录下不允许有重名文件
(2)标识符:一个系统内的各种文件标识符是唯一的,对用户毫无可读性,只是操作系统用于区分各个文件的一种内部名称
(3)类型:指明文件的类型
(4)位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)
(5)大小:文件的大小
(6)创建时间、上次修改时间、文件所有者信息等
(7)保护信息:对文件进行保护的访问控制信息,比如允许什么用户进行访问
2.文件内部的数据应该怎样组织起来?
1.无结构文件(.txt文本文件—由一些二进制或字符流组成,又称“流式文件”)
2.有结构文件(如数据库表)—由一组相似的记录组成,又称“记录式文件”
记录是一组相关数据项的集合
有结构文件中,各个记录间应该如何组织的问题—应该顺序存放?还是用索引表来表示记录间的顺序?----这是文件逻辑结构重点要探讨的问题
3.文件之间应该怎样组织起来
1.用户可以自己创建一层层的目录,各层目录中存放相应的文件。系统中的各个文件就是通过一层层的目录合理有序的组织起来的
2.目录也是一种特殊的有结构文件(由记录组成),如何实现文件目录是之后探讨的问题。
3.目录就是文件夹
3.操作系统应该向上提供哪些功能?
通过简单的基本操作可以完成更复杂的操作。
4.从上往下看,文件应该如何存放在外存
与内存一样,外存也是由一个个存储单元组成的,每个存储单元可以存储一定量的数据(如1B).每个存储单元对应一个物理地址。
类似于内存分为一个个内存块,外存也会分为一个个块/磁盘块/物理块。每个磁盘块的大小是相等的,每块一般包含2的整数幂个地址(如本例中,一个块包含2^10个地址,即1kb)。同样的类似,文件的逻辑地址也可以分为(逻辑块号,块内地址),操作系统同样需要将逻辑地址转换为外存的物理地址(物理块号、块内地址)的形式。块内地址的位数取决于磁盘块的大小。
操作系统以“块”为单位为文件分配存储空间,因此即使一个文件大小只有10B,但它依然需要占用1kb的磁盘块。外存中数据读入内存时同样以块为单位
文件数据存放在连续的几个磁盘块中?还是
文件数据放在离散的几个磁盘块中。此时,应该如何记录各个磁盘块之间的先后顺序呢?
操作系统又应该怎么管理空闲磁盘块
5.其他需要由操作系统实现的文件管理功能
1.文件共享:使多个用户可以共享使用一个文件夹
2.文件保护:如何保证不同用户对文件有不同的文件操作权限