初识文件管理
文件就是一组有意义的信息/数据集合
计算机中存放了各种各样的文件,一个文件有哪些属性?
- 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件
- 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称
- 类型:指明文件的类型
- 位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)
- 大小:指明文件大小
- 创建时间、上次修改时间
- 文件所有者信息
- 保护信息:对文件进行保护的访问控制信息
文件内部的数据应该怎样组织起来?(文件的逻辑结构)
无结构文件:如文本文件,由一些二进制或字符流组成,又称“流式文件”
有结构文件:如数据库表,由一组相似的记录组成,又称“记录式文件”,记录是一组相关数据项的集合,数据项是文件系统中最基本的数据单位
文件之间又应该怎么组织起来?
从下往上看,OS应提供哪些功能,才能方便用户、应用程序使用文件?
- 可以创建文件:点击新建后,图形化交互进程在背后调用了“create系统调用”
- 可以删除文件:点了删除之后,图形化交互进程通过操作系统提供的删除文件功能,即delete系统调用,将文件数据从外存中删除
- 可以读文件:将文件数据读入内存,才能让CPU处理,双击后,记事本应用程序通过操作系统提供的读文件功能,即read系统调用,将文件数据从外存读入内存,并显示在屏幕上
- 可以写文件:将更改过的文件数据写回外存,我们在记事本应用程序中编辑文件内容,点击保存后,记事本应用程序通过操作系统提供的写文件功能,即write系统调用,将文件数据从内存写回外存
- 打开文件:open系统调用
- 关闭文件:close系统调用
❗️读/写文件之前,需要“打开文件”,读/写文件结束之后,需要“关闭文件”
可用几个基本操作完成更复杂的操作,比如复制文件,先创建一个新的空文件,再把源文件读入内存,再将内存中的数据写到新文件中
从上往下看,文件数据应该怎么存放在外存(磁盘)上?(文件的物理结构)
操作系统又应该怎么管理空闲磁盘块?
其他需要由操作系统实现的文件管理功能
- 文件共享:使多个用户可以共享使用一个文件
- 文件保护:如何保证不同的用户对文件有不同的操作权限