文件
---就是一组有意义的信息/数据集合
文件的属性
文件名: 同一目录下不允许有重名文件
标识符: 一个系统内的各文件表示符唯一,对用户来说无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称
类型: 指明文件的类型
位置: 文件存放的路径、在外存中的地址
大小:
创建时间、上次修改时间、文件所有者信息
保护信息: 对文件进行保护的访问控制信息
文件类型:
无结构文件 如文本文件–由一些二进制或字符流组成,又称“流式文件”
有结构文件(如数据库表) – 由一组相似的记录组成,又称“记录式文件”,记录是一组相关数据项的集合,目录也是一种特殊的有结构文件(由记录组成)
操作系统应该向上为文件系统提供哪些功能
1. “创建文件”, create/open 系统调用
2. “读文件”, 将文件数据读入内存,才能让CPU处理,应用程序通过操作系统提供的“读文件”,功能,即“read”系统调用,将文件数据从外存读入内存,并显示在屏幕上
3. 可以“写文件”, 将更改过的文件数据写回外存,即write系统调用,将文件数据从内存写回外存
4. 可以删除文件
5. 打开文件(open系统调用)–读写文件之间需要打开文件
6. 关闭文件(close系统调用)–读写文件结束需要关闭文件
外存也类似于内存分为一个个“内存块”,外存会分为一个个的“磁盘块”。每个都是大小相等的2的次幂
操作系统以“块”为单位为文件分配内存空间,因此即使一个文件大小只有10B,但它依然需要占用一个块大小,如1024B
操作系统提供的其他功能:
7. 文件保护
8. 文件共享
按文件是否有结构分类,可以分为无结构文件、有结构文件两种
无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”
有结构文件:由一组相似的记录组成,又称“记录式文件”。每条记录又若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字(作为识别不同记录的ID)
根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种
根据有结构文件中的各条记录在逻辑上如和组织,可以分为三类
顺序文件
索引文件
索引顺序文件
顺序文件: 文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储
定长记录的顺序文件, 若物理上采用顺序存储,则可实现随机存取,若能再保证记录的顺序结构,则可实现快速检索(即根据关键字快速找到对应记录)
索引表本身是定长记录的顺序文件,因此可以快速找到第i个记录对应的索引项可将关键字作为索引号内容,若按关键字顺序排列,则还可以支持按照关键字折半查找 ,每当要增加/删除一个记录时,需要对索引表进行修改。由于索引文件有很快的检索速度,因此主要用于对信息处理的及时性要求比较高的场合
索引顺序文件是索引文件和顺序文件思想的结合。 索引顺序文件中,同样会为文件建立一张索引表,但不同的是:并不是每个记录对应一个索引表项,而是一组记录对应一个索引表项