您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 蒲晓蓉_操作系统原理第5章_文件管理
文件管理第五章本章要点•文件管理系统•文件的基本概念、操作•文件目录•文件的逻辑组织与访问•文件记录与数据块的关系•文件共享•文件存储空间与空闲空间的管理?问题•什么是文件?•文件由什么组成?•文件如何命名?•如何保证文件数据的安全?•对文件可以进行哪些操作?•文件在磁盘上如何存储?•磁盘的空白存储区如何管理?5.1文件系统概述文件系统的功能•有效地管理文件的存储空间;•管理文件目录;•完成文件的读/写操作;•实现文件共享与保护;•为用户提供交互式命令接口和程序调用接口。交互式文件系统的基本服务•用户可以创建、删除、读取或更新文件;•一个用户可以受控制地访问其他用户的文件;•可以控制不同用户对不同文件的访问权限;•用户可以根据实际需要重新构造文件;•允许用户在两个文件之间移动数据;•用户能备份文件,且能在文件被毁坏时,恢复文件;•用户可以通过符号名访问文件。文件系统•是指,操作系统中的各类文件、管理文件的软件,以及管理文件所涉及到的数据结构等信息的集合。•有少数文件系统从操作系统中分离出来,独立于操作系统存在•绝大多数操作系统都包含文件管理系统部分。5.2文件系统与数据库管理系统文件系统vs.数据库管理系统•数据库管理系统依赖文件系统-数据库管理系统负责:数据定义及操作-文件系统只处理无结构、无格式的字节流•数据库管理系统独立于文件系统5.3文件文件•文件是一种具有符号名的、相关联元素的有序集合•各种程序、数据集合•一些低速的字符设备,如键盘、终端显示器和打印机等也被看着文件文件中的数据结构—字段或域(Field)•字段具有唯一的值•字段的基本属性:长度、数据类型•字段长度:固定、可变•复合字段:由若干子字段组成—如工资字段:基本工资、工龄工资、职称工资等文件中的数据结构—记录(Record)•一组相关字段的集合—学生记录:学号、姓名、性别、班级、平均成绩、名次、获奖情况等。•记录长度:固定、可变。—可变长记录:字段长可变、字段数目可变—可变长记录:长度字段•记录:关键字,唯一地标识一条记录数据库(Database)•数据库是相关数据的集合,通常由若干数据库表格构成(数据库表格由若干记录构成,记录由若干字段构成)。•数据库还可以由一种或多种类型的文件组成。•数据库一般需要专门的数据库管理系统进行管理,数据库应用程序运行在数据库管理系统之上。对记录的操作•检索所有记录—从文件的第一条记录开始顺序访问文件中的每一条记录。•检索一条记录•检索下一条记录—位置指针:记载当前访问的位置。—从位置指针开始访问逻辑上的下一条记录。•检索前一条记录—类似于“检索下一条记录”。访问位置指针的前一条记录。对记录的操作•插入一条记录—如果文件中的记录存在某种顺序,那么,新记录必须插入到适当的位置,可能需要物理上移动已有的记录。•删除一条记录—删除一条已有的记录,通常需要指定能唯一标识一条记录的关键字。删除操作常常为指定记录注明“被删除”标志,而非真正“抹去”。对记录的操作•更新一条记录—首先访问指定记录,更新其一个或多个字段值,然后将更新的记录内容写回文件。但是,一般不会更新记录的主关键字的值。•检索某些记录—有时需要检索满足某种条件的若干条记录。例如,查询平均成绩90分以上的学生,查询某班的男生信息等。文件的类型按文件的逻辑结构分类•无结构文件—无结构文件可以看成是一个字节流,其文件元素为一个“字符”或“字节”,有时又称为字节流文件,或流文件。•有结构文件—有结构文件的文件元素是一条记录,文件由若干相关记录组成。—根据记录的组织方式不同,可以分为堆文件、顺序文件、索引顺序文件、索引文件和直接(哈希)文件。文件的类型按文件的物理组织结构分类•连续文件把文件中的信息顺序、连续地存储到若干相邻的存储块中。•非连续文件:链接文件、索引文件文件的类型按文件的物理组织结构分类•链接文件—文件中逻辑上连续的信息可以存储到分散各处的存储块中,各盘块通过其内的链接指针相连。—一个文件的所有盘块形成一个链表,或用专门的存储块记载一个文件的所有盘块的起始地址。•索引文件—文件中逻辑上连续的信息可以存储到分散各处的存储块中。—系统为每个文件建立一张索引表,一个索引表项记载一个存储块或一组连续存储块的起始地址。文件的类型按文件的保护级别分类•只读文件—仅允许文件主及授权用户对其进行读操作的文件。—用户的某些文件也可以设置成只读属性,不允许修改。•执行文件—只允许授权用户调用执行,不允许读/写的文件,如系统调用等某些公用程序。文件的类型按文件的保护级别分类•读/写文件—只允许文件主及授权用户进行读或写的文件。•不保护文件—所有用户都可以访问的文件,不受系统的任何保护。文件的类型按文件的性质和用途分类•系统文件指操作系统文件或其它系统文件。一般只能通过操作系统调用为用户服务。•用户文件由用户的程序或数据组成的文件。•库文件由系统提供给用户调用的各种标准过程、函数和应用程序等。这类文件允许用户调用,但不允许用户修改,如Windows的应用程序编程接口API,C语言的标准I/O库函数及通信库函数等。文件的类型按文件中的数据形式分类•源文件•目标文件•可执行文件文件的类型—多媒体文件•集成了数字、字符、格式化文本、可执行程序、图形、图像、声音等信息。•多媒体文件需要的存储空间比传统的数字字符文件大约要高出5倍以上。—例如,一页格式化的文本文件大约需要0.5KB~1KB的存储空间,但同样尺寸的一页彩色图像大约需要10MB存储空间。•一般为变长记录文件。•多媒体文件文件系统不仅要保存数据,而且还要保存大量的数据类型说明信息。对文件的操作•对整个文件的操作—建立文件、撤消文件、打开文件、关闭文件、复制文件、修改文件名、打印或显示文件内容等•对文件中的数据项的操作—读操作、写操作、更新操作、插入操作、删除操作等对文件的操作打开文件(Openfile)•首先,根据文件名查找目录文件(由目录构成的文件),找到该文件的目录信息。•然后,将该目录信息装入主存,建立相应的文件控制块FCB,并将文件的当前使用信息填入FCB中。•最后,返回一个文件内部标识符。•如果该文件具有某种存取控制,如只读,或可读/写,则文件打开时,这种存取控制也将作为参数同时返回。对文件的操作关闭文件(Closefile)•将该文件FCB中的有关信息写入外存的目录信息中;•撤消其FCB;•释放文件占用的其它系统资源,切断用户与该文件的联系。对文件的操作建立文件(Createfile)•分配必要的外存空间;•建立一个目录项,记录新文件的文件名、建立时间等信息。对文件的操作撤消文件(Destroyfile)•也称删除文件。系统删除一个文件必须至少完成两件事:第一,判断该文件可否被删除。若可以被删除,则首先删除文件的目录项,否则,给出相应提示。第二,回收该文件所占用的外存空间。对文件的操作复制文件(Copyfile)•拷贝文件内容及其目录项。•首先查找目录文件,找到该文件的目录项,从中找出该文件的外存地址;•通过该地址找到文件内容;•然后,将其目录项及文件内容,按指定的路径拷贝过去。对文件的操作修改文件名(Rename)•首先在目录文件中查找指定文件名的目录项;•然后将其中的文件名更换成新的文件名。对文件的操作读操作(Read)•给出文件名和所读字节数。•首先查找目录文件,找到指定文件的目录项,从中找出该文件的外存地址;•然后,从该文件读指针所指位置开始,读取指定长度的字节数到缓冲区,同时该文件的读指针顺延指定长度的位置。•最后,返回最新读指针位置值。如果读指针遇到文件结束标志,则给出相应提示信息。对文件的操作写操作(Write)•必须给出文件名和需要写的字节数。•系统从缓冲区中将指定长度的信息写入指定文件写指针位置;•将文件的写指针顺延指定长度的位置。对文件的操作更新操作(Update)•更新文件中的数据项时,系统调用中必须给出文件名、更新数据项的原值及替换值。•首先从文件中查找指定数据项值,若找不到,则给出相应信息;•若找到,则用替换值更新原值。•用户可以指定更新次数或全部自动更新。对文件的操作插入操作(Insert)•在文件的指定位置添加新的数据项。•对于无结构文件,插入一个数据项以后,其后所有字符的索引号将作相应调整;•对于有结构文件,插入一个数据项,一般指增加一条记录,新记录之后的所有记录号也将作相应调整。对文件的操作删除操作(Delete)•删除文件中指定的数据项。•首先查找文件中指定数据项,再将其删除。•若找不到,则返回相应信息。•用户可以指定删除数据项的位置,或将数据项在文件中的所有出现均删除。5.4文件目录文件目录的内容•基本信息:文件名、文件类型、文件组织等;•地址信息:卷(存储文件的设备)、起始地址,(起始物理地址)、文件长度,(以字节、字或块为单位)等。•访问控制信息:文件所有者、访问信息(用户名和口令等)、合法操作等;•使用信息:创建时间、创建者身份、当前状态、最近修改时间、最近访问时间等。文件名文件标识符文件结构文件类型文件组织记录长度当前文件大小最大文件尺寸文件设备物理位置存取控制口令文件建立时间最近存取时间最近修改时间当前存取方式当前的共享状态共享访问时的等待状态进程访问文件所用的逻辑单元号当前的逻辑位置访问元素的当前物理位置下一个元素的物理位置缓冲区大小缓冲区地址指向下一个FCB的指针文件创建者临时/永久文件文件拥有者FCB目录内容的组织方式及分析•目录项:全部目录内容•目录项:部分目录信息,如文件名、文件大小、外存中的存储位置等,其余部分保存在文件头部目录文件及操作•目录文件:多个文件的目录项构成的一种特殊文件。•搜索目录•创建目录•删除目录•显示目录•修改目录目录结构•单级目录结构•两级目录结构•层次目录结构:树型目录、无循环图单级目录结构•所有用户的全部文件目录保存在一张目录表中,每个文件的目录项占用一个表项。目录项1目录项2…File1目录项3目录项nFile2File3Filen图5.1单级目录结构单级目录结构分析•实现简单,易于维护•问题:—重名问题—存放文件数量受限—当目录文件很大时,检索时间长—不便于实现文件共享两级目录结构•主文件目录、用户文件目录SystemUser1User2User3…主目录File1File2…User1目录File1File2…User2目录File1File2…User3目录图5.2两级目录结构两级目录结构分析•一定程度解决了重名问题•提高了文件目录检索效率•简单的文件共享•问题:不便用户文件的逻辑分类;进一步解决重名、共享、检索效率等问题层次目录结构—树型目录子目录文件文件子目录子目录子目录子目录子目录文件主目录图5.3树型目录结构无循环图结构(root)devliuuserbinweisrctty01tty02lpmansttdktkkyp01moonstar图5.4UNIX的无循环图目录结构文件路径•相对路径•绝对路径5.5文件的逻辑组织与访问有结构文件与文件系统•大多数的文件系统是无结构文件系统•实际应用却需要处理各种数据结构,这些数据结构一般不依赖文件系统,而是由相应的应用程序提供。•例如,UNIX的文件系统,它本身不含任何数据结构。但是,UNIX却能支持使用有结构文件的应用程序,如各种基于UNIX操作系统的数据库管理系统、电子邮件系统等。•这类应用程序必须能定义自己的数据结构,并能实现记录与字节流之间的转换。typemessage=recordto:array[]ofaddress;from:array[]ofaddress;subject:array[]ofline;cc:array[]ofaddress;body:array[]ofstring;ProceduregetRecord(void);varmsg:message;beginmsg=allocate(sizeof(message));msg.to=getAddress(…);msg.from=getAddress(…);msg.cc=getAddress(…);m
本文标题:蒲晓蓉_操作系统原理第5章_文件管理
链接地址:https://www.777doc.com/doc-3316281 .html