文件管理OperatingSystem22020/2/22教学重点文件与文件系统定义文件逻辑结构外存分配方式目录管理文件存储空间管理文件共享32020/2/226.1文件和文件系统系统数据组成1文件系统模型2文件操作342020/2/22文件系统文件系统是多数用户最熟悉的OS子系统,用来组织和管理存储在外存上的大量程序和数据,并为用户提供对程序和数据进行存取、共享和保护的手段优点:保证文件安全、有效提高系统资源利用率、用户操作便捷52020/2/22数据组成文件系统的管理功能通过把它所管理的程序和数据组织成一系列文件的方法来实现数据项:最底层的数据组织形式元素:通常为纪录,是一组有意义的数据项的集合文件:若干相关元素的集合,使用文件名来标识62020/2/22数据组成数据项基本数据项:即原子数据、数据元素,是数据组织中可以命名的最小逻辑数据单位,用于描述一个对象的某种属性的字符集,各属性有相应的数据类型组合数据项(组项):由若干基本数据项组成纪录一组组项的集合,用于描述一个对象在某方面的综合属性形成纪录的数据项中必须指定一个或几个可以唯一标识该纪录的数据项(关键字key),以便区别各个不同纪录文件由创建者所定义的具有文件名的一组相关元素(纪录)的集合文件名是用户访问文件的工具,其长度由各OS自行定义文件属性:通常包括文件名、文件标识符、文件类型、文件长度、文件物理位置、文件建立时间或上次访问修改时间、创建者、访问控制信息72020/2/22文件类型划分文件类型便于OS使用合理方式操作文件按用途分类۩系统文件、用户文件、库文件按数据形式分类۩源文件:由源程序和数据构成的文件۩目标文件:二进制文件,是源文件编译后的产物,但尚未链接۩可执行文件:各目标文件链接后的结果按存取控制属性分类۩只读、读写、只执行按组织形式和处理方式分类۩常规文件、目录文件、设备文件表明文件类型的常用方法是在文件名中包含类型声明82020/2/22文件系统对象及其属性文件系统管理的对象有文件、目录和磁盘存储空间操纵和管理对象的软件集合文件管理系统的核心,包括对文件存储空间管理、目录管理、地址映射机制、文件存取控制管理、文件共享保护等功能的实现文件系统接口图形接口:使用鼠标取得文件系统服务命令接口:使用键盘命令取得文件系统服务程序接口:在程序中通过系统调用取得文件系统服务操纵和管理对象的软件集合文件系统接口对象及其属性用户程序92020/2/22文件操作文件属于抽象数据类型,对其操作需要使用OS提供的系统调用通用OS中除具有6个基本操作外,还定义了更多其他操作以方便用户使用102020/2/22文件操作基本文件操作创建文件:为新文件分配外存空间,在目录中为新文件创建一个纪录文件属性的目录项(条目)写文件:根据给出的文件名和要写入内存,相应系统调用自动寻找该文件目录项中的写指针,并将内容写入,完成写操作后必须更新写指针读文件:根据给出的文件名和应读入的内存目标地址,相应系统调用自动寻找该文件目录项中的读指针,将数据读入指定内存位置后,需要更新读指针设置文件读写位置:该操作用于设置文件读/写指针位置,以便每次读写文件时从所设置位置开始操作,即将顺序存取改为随即存取删除文件:寻找并清空指定文件名对应的目录项,释放该文件所占用的存储空间截断(截短)文件:某文件内容无用而属性有用时,可以仅将其长度设置为0并释放其空间一个进程对文件的当前访问通常为只读/写,因此读写可以使用同一指针,以节省空间、降低系统复杂度112020/2/22文件操作其他常见的文件操作向现有文件之后累加新信息、重命名现有文件、设置文件属性、创建删除目录、改变当前工作目录等文件操作的基本流程搜索文件目录项以找到指定文件的属性及外存基址对文件实施指定操作122020/2/22文件操作为了减少搜索目录项的次数,多数OS引入了打开(open)和关闭(close)两个系统调用open:首次使用某文件时调用,根据文件名搜索目录项,并将目录项复制到包含所有打开文件信息的打开文件表,当再次需要使用该文件时,可通过打开文件表的一个索引指定文件close:当文件不再使用时,进程可以关闭它,OS从打开文件表中删除该条目132020/2/22打开文件表某些系统在首次引用文件时,会隐式的调用open,当打开文件的作业或程序终止时会自动调用close,但多数OS要求程序员显式调用对多用户环境如UNIX中,多个用户可能同时打开一个文件,则open和close的实现更加复杂这类系统通常采用两级内部表:单个进程的表和整个系统的表前者跟踪单个进程打开的所有文件,表内存储该机场所使用的文件信息,如文件权限、文件读写指针等后者以条目形式纪录每个单个进程表的存在,该表包含进程无关信息,如文件存储位置、访问日期、文件大小、文件打开计数器等多个进程打开同一文件时,只需在各进程打开表中增加一个条目,并将该表指向整个系统表的相应条目即可被打开文件关联的信息有:文件指针、文件打开计数、文件磁盘位置、访问权限142020/2/226.2文件逻辑结构文件逻辑结构类型1顺序文件2索引文件3索引顺序文件4直接文件和哈希文件5152020/2/22文件结构文件系统设计的关键在于如何将多个纪录组合成文件以及如何将文件存储到外存文件结构分逻辑结构和物理结构逻辑结构:即文件组织,是用户观点的文件组织形式,包括可以直接处理的数据及其结构物理结构:即存储结构,是文件在外存上的存储组织形式文件逻辑结构的任务提高检索速度便于修改降低文件存储费用162020/2/22文件逻辑结构类型有结构文件(纪录式文件)无结构文件(流式文件)172020/2/22有结构文件有结构文件中的纪录按长度分类定长纪录:所有纪录长度相同,各数据项在纪录中的位置相同,具有相同顺序和长度不定长纪录:由于纪录中数据项数目或每项长度不同导致纪录长度不同,但处理该纪录时长度是可知的采用不同方式组织纪录可以形成顺序文件:以一定顺序组织纪录的、可以快速查找的文件۩文件中的纪录可以按照串结构排序(按存入时间顺序)或顺序结构排序(按关键字顺序),通常顺序文件具有较高的检索效率索引文件:通过索引表组织各纪录索引顺序文件:顺序和索引文件的结合,将顺序文件的多个纪录分组后建立索引表,每组的第一个纪录具有一个索引项,每组内部按照顺序方式组织直接文件182020/2/22无结构文件字符流构成的文件,如源程序、可执行文件、库函数等访问无结构文件时,使用读写指针来指出下一个要访问的字符