版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 文件系统文件系统n OS 实现系统资源管理实现系统资源管理: 硬件资源、软件资源硬件资源、软件资源;n 软件资源软件资源: 程序、数据程序、数据;n 文件管理文件管理: 软件资源以文件形式存于外存空间软件资源以文件形式存于外存空间, 软件资源管理通常称为文件管理软件资源管理通常称为文件管理;n 文件管理由文件系统来完成文件管理由文件系统来完成;n 文件系统在设备管理之上。文件系统在设备管理之上。 文件的概念文件的概念 文件文件: 具有具有符号名符号名而且在逻辑上具有完整意义的而且在逻辑上具有完整意义的 信息项的有序序列。信息项的有序序列。6.1 文件与文件系统文件与文件系统6.1
2、.1 文文 件件编号编号:01kn-1信息项信息项信息项信息项信息项信息项信息项信息项文件名文件名: 符号名符号名, 文件创建时确定文件创建时确定, 访问时用访问时用;信息项信息项: 构成文件的基本单位构成文件的基本单位; 等长或不等长等长或不等长; 有顺序关系有顺序关系;读读/写指针写指针: 信息项的读信息项的读/写位置写位置;读读/写指针写指针文件分类文件分类l 系统文件系统文件, 用户文件用户文件; l 临时文件临时文件, 永久文件永久文件; l 只读文件只读文件, 只写文件只写文件, 读读/写文件写文件;l 磁盘文件磁盘文件, 磁带文件磁带文件, 磁鼓文件磁鼓文件; l 目录文件目录文
3、件, 普通文件普通文件; l 程序文件程序文件, 数据文件数据文件;l 程序文件程序文件 源文件源文件, 目标文件目标文件, 可执行文件可执行文件, 头文件头文件, 库文件。库文件。6.1.1 文文 件件 UNIX文件分类文件分类n普通文件普通文件: 内容可以是程序、数据、图象等内容可以是程序、数据、图象等, 保存在磁盘块中保存在磁盘块中;n目录文件目录文件: 文件描述信息文件描述信息(文件名文件名, 文件号文件号)序列序列, 保存在磁盘块中保存在磁盘块中;n特殊文件特殊文件: 将各种设备作为文件处理。将各种设备作为文件处理。l 界面统一界面统一, 使用文件与使用设备命令相同使用文件与使用设备
4、命令相同, 申请设备申请设备open, 释放释放close, 读读read, 写写write;l 利用文件保护功能可以保护设备。利用文件保护功能可以保护设备。6.1.1 文文 件件6.1.2 文件系统文件系统文件系统文件系统: 文件与管理信息资源的程序集合文件与管理信息资源的程序集合 称为文件系统。称为文件系统。l 为用户提供按名存取文件的手段为用户提供按名存取文件的手段; l 文件的组织形式文件的组织形式;l 外存空间的管理外存空间的管理;l 处于设备管理上层。处于设备管理上层。6.2 文件的访问方式文件的访问方式6.2.1 顺序访问顺序访问: 磁带磁带l 从文件起始位置开始顺序访问从文件起
5、始位置开始顺序访问;l 从文件中间某处开始顺序访问。从文件中间某处开始顺序访问。6.2.2 随机访问随机访问: 磁盘、光盘磁盘、光盘l 按信息项编号随机访问按信息项编号随机访问;l 按关键字按关键字(key)随机访问。随机访问。6.3 文件的组织文件的组织n 文件的组织文件的组织: 又称文件结构又称文件结构;n 逻辑组织逻辑组织: 外部组织形式外部组织形式, 用户看到的文件组织形式。用户看到的文件组织形式。n 物理组织物理组织: 内部组织形式内部组织形式, 物理存储设备上的组织形式。物理存储设备上的组织形式。n OS完成逻辑组织形式到物理组织形式的转换。完成逻辑组织形式到物理组织形式的转换。6
6、.3.1 文件的逻辑组织文件的逻辑组织 流式文件流式文件l 非结构形式的字节序列非结构形式的字节序列(UNIX, Windows, etc);l 构成文件的基本单位是字节。构成文件的基本单位是字节。l 用户可以对非结构的流式文件用户可以对非结构的流式文件 按自定义的结构来处理。按自定义的结构来处理。编号编号:01kn-1字节字节字节字节字节字节字节字节读读/写指针写指针6.3.1 文件的逻辑组织文件的逻辑组织(Cont.) 记录式文件记录式文件: 记录的序列记录的序列l 等长记录等长记录(优点优点: 处理方便处理方便, 速度快速度快; 缺点缺点: 空间浪费空间浪费);l 不等长记录不等长记录(
7、优点优点: 省空间省空间; 缺点缺点: 处理不便处理不便, 速度慢速度慢);l 流式文件是记录式文件的特例。流式文件是记录式文件的特例。编号编号:01kn-1记录记录记录记录记录记录记录记录读读/写指针写指针6.3.2 文件的物理组织文件的物理组织n 物理组织物理组织: 逻辑组织到磁盘块的映射。逻辑组织到磁盘块的映射。文件文件: 记录记录(字节字节)序列序列磁盘磁盘: 块块(block)序列序列n 考虑因素考虑因素: 记录格式记录格式: 等长或不等长等长或不等长, 流式不必考虑流式不必考虑; 空间开销空间开销: 除保存文件内容之外的存储开销除保存文件内容之外的存储开销; 访问速度访问速度: 顺
8、序顺序/随机访问速度随机访问速度; 长度变化长度变化: 动态增长动态增长/减少。减少。n 组织形式组织形式: 顺序结构、链接结构、索引结构、散列结构、倒排结构。顺序结构、链接结构、索引结构、散列结构、倒排结构。6.3.2 文件的物理组织文件的物理组织(Cont.) 顺序结构顺序结构 又称连续结构。又称连续结构。一个文件占有若干连续的磁盘块。一个文件占有若干连续的磁盘块。FCB首块号首块号28块数块数4块块28块块29块块30块块31磁盘空间磁盘空间顺序文件具有如下优点:顺序文件具有如下优点: 实现方式简单。实现方式简单。 存取文件记录较快。由于记录相邻且按照顺存取文件记录较快。由于记录相邻且按
9、照顺序放置,系统如果存取了第序放置,系统如果存取了第B B条记录后,再存取条记录后,再存取B+1B+1条记录时速度较快。条记录时速度较快。 所需的磁盘寻道次数和寻道时间最少。所需的磁盘寻道次数和寻道时间最少。 为了减少对文件的访问时间,大多数的系为了减少对文件的访问时间,大多数的系统文件采用了顺序文件形式存放在存储设备中。统文件采用了顺序文件形式存放在存储设备中。批处理文件,也采用了顺序文件方式存储。批处理文件,也采用了顺序文件方式存储。顺序文件主要具有如下缺点:顺序文件主要具有如下缺点: 文件逻辑结构中需要插入或修改记录,会引起文件物理结文件逻辑结构中需要插入或修改记录,会引起文件物理结构中
10、的物理块移动。特别是文件记录动态增长,会带来很构中的物理块移动。特别是文件记录动态增长,会带来很多的管理问题。多的管理问题。 当文件被删除,存储设备空间被回收并再次分配时,如果当文件被删除,存储设备空间被回收并再次分配时,如果新进入的文件大小小于空闲的物理块数,会剩余一些物理新进入的文件大小小于空闲的物理块数,会剩余一些物理块,产生外部块,产生外部“碎片碎片”。这些外部。这些外部“碎片碎片”很难被再次利很难被再次利用。用。 新文件进入存储设备,在存储设备中搜索连续的吻合的空新文件进入存储设备,在存储设备中搜索连续的吻合的空闲物理块会花费较长的时间。闲物理块会花费较长的时间。 磁盘和软盘不会采取
11、顺序文件方式使用。因为,在多磁盘和软盘不会采取顺序文件方式使用。因为,在多道程序下,如果文件的物理结构为顺序文件方式,则磁盘道程序下,如果文件的物理结构为顺序文件方式,则磁盘的磁头经常在柱面之间移动,很难集中在一个扇区的连续的磁头经常在柱面之间移动,很难集中在一个扇区的连续区域,不适合采用连续分配方式。区域,不适合采用连续分配方式。 链接结构链接结构 又称串联结构又称串联结构, 一文件可存于不连续块中一文件可存于不连续块中, 块间以指针相连。块间以指针相连。6.3.2 文件的物理组织文件的物理组织(Cont.)FCB首块号首块号28块数块数4块块28块块30块块45块块46磁盘空间磁盘空间链接
12、分配具有如下优点:链接分配具有如下优点: 避免了顺序文件要求连续分配存储空间的避免了顺序文件要求连续分配存储空间的问题,消除了物理块的外部问题,消除了物理块的外部“碎片碎片”,外存利,外存利用率更高。用率更高。 通过指针将物理块链接在一起,使得文件通过指针将物理块链接在一起,使得文件的逻辑记录顺序与外存中记录的物理放置完全的逻辑记录顺序与外存中记录的物理放置完全独立开来,克服了外存连续分配不能适应文件独立开来,克服了外存连续分配不能适应文件增长和缩短的缺点。增长和缩短的缺点。链接分配具有如下缺点:链接分配具有如下缺点: 每次文件的访问总是从文件的第每次文件的访问总是从文件的第1 1个物理块开始
13、,个物理块开始,沿链接指针得到其他的物理块。花费的时间很长。沿链接指针得到其他的物理块。花费的时间很长。 链接指针信息的存放需要存储空间,使得存储器可链接指针信息的存放需要存储空间,使得存储器可利用空间减少。利用空间减少。 需要更多的磁盘寻道次数和更长的磁盘寻道时间。需要更多的磁盘寻道次数和更长的磁盘寻道时间。 链接指针的可信度是影响该方法的关键。操作系统链接指针的可信度是影响该方法的关键。操作系统可能会由于系统软件或硬件发生故障,导致链接指针可能会由于系统软件或硬件发生故障,导致链接指针丢失或出错,最终引起文件内容丢失或出错。丢失或出错,最终引起文件内容丢失或出错。显式链接显式链接 图 6-
14、9 显式链接结构 012345物理块号2FCBFAT04516EOF11105EOF0123456789FATFCB A4FCB B9图 MS-DOS的文件物理结构6.3.2 文件的物理组织文件的物理组织(Cont.) 索引结构索引结构 一文件可存于不连续块中一文件可存于不连续块中, 块号记在索引块中。块号记在索引块中。优优 点点: 随机访问速度快随机访问速度快; 长度变化容易,安全系数高。长度变化容易,安全系数高。缺缺 点点: 额外需要索引块额外需要索引块, 存储开销大存储开销大; FCB索引块号索引块号28块数块数4块块43块块87块块97块块98磁盘空间磁盘空间43879798索引块索引
15、块28 索引文件克服了链接文件的缺点,可以直接读写索引文件克服了链接文件的缺点,可以直接读写任意一个记录;也克服了顺序文件的缺点,文件可以任意一个记录;也克服了顺序文件的缺点,文件可以自动增长和删减,从而充分利用了外存空间。自动增长和删减,从而充分利用了外存空间。 索引文件的缺点是访问时不仅存在较多的磁盘寻索引文件的缺点是访问时不仅存在较多的磁盘寻道次数和寻道时间,而且存储索引表需要空间开销,道次数和寻道时间,而且存储索引表需要空间开销,查找索引表需要时间开销。如果文件很大时,索引表查找索引表需要时间开销。如果文件很大时,索引表所占空间可能比文件记录本身还大。所占空间可能比文件记录本身还大。
16、当索引表很长时,查询索引表需要花费很长时间,当索引表很长时,查询索引表需要花费很长时间,为了加快查询,可为索引表再建一个索引,通过这个为了加快查询,可为索引表再建一个索引,通过这个索引查找索引表,这样就构成了二级索引。当然,文索引查找索引表,这样就构成了二级索引。当然,文件越大,索引也越大,此时可以采用多级索引。件越大,索引也越大,此时可以采用多级索引。 如在通常情况下,一个索引表中有如在通常情况下,一个索引表中有1 1 024024个索引项,则可以寻址个索引项,则可以寻址1 1 024024个物理块个物理块。如果一个物理块大小为。如果一个物理块大小为1 1 024B024B,则可以访,则可以
17、访问的文件长达问的文件长达1MB1MB。如果采用两级索引,每。如果采用两级索引,每级索引表都有级索引表都有1 1 024024个表项,一个物理块大个表项,一个物理块大小为小为1 1 024B024B,则可以访问的文件长达,则可以访问的文件长达1G1G。目。目前,前,UNIXUNIX和和LinuxLinux操作系统都采用了索引文操作系统都采用了索引文件方式。件方式。多级索引分配多级索引分配01210510625435635798510510625474035635711259853607401125主索引360第二级索引磁盘空间图 两级索引分配图 混合索引方式 modeowners (2)tim
18、e stamps (3)sizeblock counti.addr (0)i.addr (1)direct blockssingle indirectdouble indirecttriple indirectdatadatadatadatadatadatadatadatadatadata (1) 直接地址。直接地址。 为了提高对文件的检索速度,为了提高对文件的检索速度, 在索引结点中可设置在索引结点中可设置10个直接地址项,个直接地址项, 即用即用iaddr(0)iaddr(9)来存放直接地址。来存放直接地址。 换言之,在这里的每项中所存放的是该文件数据的盘块的换言之,在这里的每项中所存放的
19、是该文件数据的盘块的盘块号。假如每个盘块的大小为盘块号。假如每个盘块的大小为 4 KB,当文件不大于,当文件不大于40 KB时,便可直接从索引结点中读出该文件的全部盘块号。时,便可直接从索引结点中读出该文件的全部盘块号。 (2) 一次间接地址。一次间接地址。 对于大、对于大、 中型文件,中型文件, 只采用直接地址是不现实的。只采用直接地址是不现实的。 为此,可再利用索引结点中的地址项为此,可再利用索引结点中的地址项iaddr(10)来提供一来提供一次间接地址。这种方式的实质就是一级索引分配方式。次间接地址。这种方式的实质就是一级索引分配方式。图中的一次间址块也就是索引块,系统将分配给文件的图中
20、的一次间址块也就是索引块,系统将分配给文件的多个盘块号记入其中。在一次间址块中可存放多个盘块号记入其中。在一次间址块中可存放1K个盘块个盘块号,号, 因而允许文件长达因而允许文件长达4 MB。 (3) 多次间接地址。多次间接地址。 当文件长度大于当文件长度大于4 MB+40 KB时时(一次间址与一次间址与10个直接个直接地址项地址项), 系统还须采用二次间址分配方式。这时,用地系统还须采用二次间址分配方式。这时,用地址项址项iaddr(11)提供二次间接地址。该方式的实质是两级索提供二次间接地址。该方式的实质是两级索引分配方式。系统此时是在二次间址块中记入所有一次间引分配方式。系统此时是在二次
21、间址块中记入所有一次间址块的盘号。在采用二次间址方式时,文件最大长度可达址块的盘号。在采用二次间址方式时,文件最大长度可达4 GB。 同理,地址项同理,地址项iaddr(12)作为三次间接地址,作为三次间接地址, 其所其所允许的文件最大长度可达允许的文件最大长度可达4 TB。 例n假设假设UNIX的的I结点中有结点中有15个盘块地址指针,前个盘块地址指针,前12个指向文件数据盘块,第个指向文件数据盘块,第13个指针指向一级个指针指向一级索引表,第索引表,第14个指针指向二级索引表,第个指针指向二级索引表,第15个个指针指向三级索引表。如果一个盘块有指针指向三级索引表。如果一个盘块有1KB,每,
22、每个索引项需要个索引项需要4字节。字节。1)计算每盘块可以存储多少个索引项。)计算每盘块可以存储多少个索引项。2)试写出计算)试写出计算UNIX的文件最大长度的式子,不的文件最大长度的式子,不用计算。用计算。 3)计算最大需要多少个盘块保存文件的索引,)计算最大需要多少个盘块保存文件的索引,不含不含I结点本身。结点本身。6.3.2 文件的物理组织文件的物理组织(Cont.) 散列结构散列结构 适用于定长记录和按键随机查找的访问方式适用于定长记录和按键随机查找的访问方式; 通常用于构造文件目录通常用于构造文件目录, 一个记录内容就是一个目录项。一个记录内容就是一个目录项。n 计算地址计算地址:
23、hash(key)=addr (在磁盘或文件中的存放位置在磁盘或文件中的存放位置)6.3.2 文件的物理组织文件的物理组织(Cont.)n 冲冲 突突: 给定给定 key1 key2 , 有有 hash(key1) = addr1 , hash(key2) = addr2 , 若若addr1=addr2 , 则发生则发生conflict 。n Conflict resolution: l 顺序探查法顺序探查法: 如发生冲突如发生冲突, 则在冲突位置开始则在冲突位置开始 顺序探查第一个空闲的存储位置顺序探查第一个空闲的存储位置。l 记录中增加两个域记录中增加两个域: 冲突计数冲突计数; 记录位置
24、的空闲标志。记录位置的空闲标志。6.3.2 文件的物理组织文件的物理组织(Cont.)表表7-1 各种文件物理结构的主要特性各种文件物理结构的主要特性特性特性 物理物理 结构结构长度长度变化变化内存内存开销开销外存外存开销开销顺序访问速度顺序访问速度按号随机访问速度按号随机访问速度 按键随机访问速度按键随机访问速度定长定长变长变长定长定长变长变长定长定长变长变长顺序结构顺序结构难难小小小小快快快快快快慢慢慢慢慢慢链接结构链接结构易易小小小小快快快快慢慢慢慢慢慢慢慢索引结构索引结构易易大大大大快快快快快快慢慢慢慢慢慢散列结构散列结构易易小小小小快快6.4 文件目录文件目录6.4.1 文件控制块与
25、目录项文件控制块与目录项n文件控制块文件控制块(FCB)l 文件存在的标志文件存在的标志, 其中保存系统管理文件需要的全部信息其中保存系统管理文件需要的全部信息;l 每个文件一个每个文件一个FCB, 保存在外存保存在外存;l 建立文件时创建建立文件时创建, 删除文件时撤销。删除文件时撤销。n 目录项目录项l 目录文件中的一项目录文件中的一项, 内容为内容为FCB;l 通常目录项名为文件名。通常目录项名为文件名。6.4.2 文件目录与目录文件文件目录与目录文件 文件目录文件目录l 用于检索文件的目录用于检索文件的目录;l 目录项构成的有序序列目录项构成的有序序列;l 给定一个文件名给定一个文件名
26、, 通过查找文件目录找到相应的目录项通过查找文件目录找到相应的目录项(FCB)。 目录文件目录文件l 内容为目录项的文件内容为目录项的文件, 长度固定的记录式文件长度固定的记录式文件;l 实现文件目录的管理。实现文件目录的管理。文件控制块文件控制块FCB文件名文件名文件号文件号文件主文件主文件类型文件类型文件属性文件属性共享说明共享说明文件长度文件长度文件地址文件地址建立日期建立日期最后修改日期最后修改日期最后访问日期最后访问日期口令口令其它其它目录项目录项1(FCB1)目录项目录项2 (FCB2)目录项目录项n (FCBn)普通普通文件文件目录文件目录文件外存外存文件空间文件空间n 目录目录
27、, 文件图示文件图示 :文文件件目目录录6.4.2 文件目录与目录文件文件目录与目录文件(Cont.)文件控制块与文件一样,都存储在磁盘上,一文件控制块与文件一样,都存储在磁盘上,一个典型的文件系统如图所示。个典型的文件系统如图所示。图图 一个典型的文件系统一个典型的文件系统6.4.3 单级目录与多级目录单级目录与多级目录 单级目录单级目录(Single-Level Directory) 整个系统只有一个目录整个系统只有一个目录, 所有文件均登记在该目录中。所有文件均登记在该目录中。FCB1FCB2FCBiFCBnfile1file2fileifilen目录文件目录文件普通文件普通文件单级目录
28、结构单级目录结构特点特点: 优点:简单;优点:简单; 缺点:命名困难缺点:命名困难单级目录例单级目录例:6.4.3 单级目录与多级目录单级目录与多级目录(Cont.) 二级目录二级目录(Two-Level Directory)l 系统目录系统目录(公共目录公共目录), 用户目录用户目录(私用目录私用目录);l 为每个用户单独设置目录。为每个用户单独设置目录。FCB1 FCBj用户目录用户目录普通文件普通文件USER1USERiUSERkFCB1 FCBmFCB1 FCBn系统目录系统目录二级目录结构二级目录结构6.4.3 单级目录与多级目录单级目录与多级目录(Cont.)二级目录例二级目录例:
29、特点特点: 优点:允许不同用户的文件名相同优点:允许不同用户的文件名相同 Can have the same file name for different user;缺点:查找速度慢缺点:查找速度慢6.4.3 单级目录与多级目录单级目录与多级目录(Cont.) 多级目录多级目录(Multi-Level Directory)l 目录为树形结构目录为树形结构;l 叶结点是一般文件或目录文件叶结点是一般文件或目录文件;l 非结节点是目录文件非结节点是目录文件;l 根结点称作根目录文件。每个目录在创建时都根结点称作根目录文件。每个目录在创建时都含有当前目录含有当前目录“”和父目录和父目录“”优点优点
30、:l 便于文件分类便于文件分类;l 查找速度快查找速度快(由于每个文件目录下文件少由于每个文件目录下文件少);l 可以实现文件连接可以实现文件连接(Link)。6.4.3 单级目录与多级目录单级目录与多级目录(Cont.)多级目录例多级目录例:rootUnixbinusrlibdevetcVIusersWangLiSd1d2f1flibclibCClpConsolebinYaccPasswordf26.4.3 单级目录与多级目录单级目录与多级目录(Cont.)n 将将FCB分为次部和主部两部分。分为次部和主部两部分。l 次部,次部,: (文件名文件名, 文件号文件号) u长度固定长度固定(UN
31、IX 16 bytes);u保存在目录文件中。保存在目录文件中。l 主部主部: (其它其它, 连接记数连接记数)u记录长度固定记录长度固定(UNIX 32 bytes);u保存在外存固定区域保存在外存固定区域, 打开时读入内存打开时读入内存;u给定文件号给定文件号, 可计算主部位置。可计算主部位置。改进的好处改进的好处l 可以提高查找速度可以提高查找速度(顺序查找顺序查找)l 可以实现文件连接可以实现文件连接(link)6.4.4 文件目录的改进文件目录的改进改进的文件目录图示改进的文件目录图示:文件号文件号FCB主部主部1FCB1主部主部2FCB2主部主部nFCBn主部主部目录项目录项1(F
32、CB1次部次部)目录项目录项2 (FCB2次部次部)目录项目录项n (FCBn次部次部)文件目录文件目录目目录录文文件件6.4.4 文件目录的改进文件目录的改进(Cont.)图图 UNIX的文件目录(次部)与索引节点(主部)的文件目录(次部)与索引节点(主部) 索引节点也称为索引节点也称为inodeinode。索引节点中的文件信。索引节点中的文件信息有:文件用户标志、文件组用户标志、文件类息有:文件用户标志、文件组用户标志、文件类型、文件存取权限、文件创建时间、文件最近访型、文件存取权限、文件创建时间、文件最近访问时间、文件最后修改时间、文件存放的物理地问时间、文件最后修改时间、文件存放的物理
33、地址等近址等近3232个字节信息。个字节信息。 假设一个文件目录中有假设一个文件目录中有640640个文件控制块,每个文件控制块,每个文件控制块为个文件控制块为48Byte48Byte,盘块大小为,盘块大小为512Byte512Byte。如。如果不采用索引节点,则文件目录需要占用果不采用索引节点,则文件目录需要占用6060个盘个盘块。如果采用索引节点,每个文件目录项占用块。如果采用索引节点,每个文件目录项占用8B8B,则文件目录只需要占用则文件目录只需要占用1010个盘块。个盘块。 6.4.5 根目录与当前目录根目录与当前目录 根目录根目录 树状结构文件系统中树状结构文件系统中, 根结点对应的
34、目录称为根目录根结点对应的目录称为根目录; 根目录保存在外存空间固定位置。根目录保存在外存空间固定位置。 当前目录当前目录 目前正在使用的工作目录称为当前目录。目前正在使用的工作目录称为当前目录。n 查找路径查找路径l 由根目录开始查找由根目录开始查找;l 由当前目录开始查找。由当前目录开始查找。n 查找算法查找算法l 顺序查找顺序查找(UNIX);l hash查找查找;l 对分查找对分查找(要求文件名排序要求文件名排序)。6.4.6 文件目录的查找文件目录的查找6.4.7 目录查询技术目录查询技术 线性检索法线性检索法 图图 查找查找/usr/ast/mbox的步骤的步骤 6.5 文件的共享
35、文件的共享文件共享文件共享: 多个进程共用系统中的同一个文件多个进程共用系统中的同一个文件; 操作系统和文件使用者共同完成文件共享控制。操作系统和文件使用者共同完成文件共享控制。6.5.1 文件共享的目的文件共享的目的 节省存储空间节省存储空间: cc, vi, yacc 的共享的共享; 进程相互通讯进程相互通讯: UNIX pipe()6.5.2 文件共享的模式文件共享的模式异步使用同一文件异步使用同一文件: 任意时刻只能有一个进程任意时刻只能有一个进程使用一个文件使用一个文件;1.同时使用同一文件同时使用同一文件: 多个进程可以同时使用同多个进程可以同时使用同一个文件一个文件(R/W规则规
36、则)。n公共目录公共目录:系统设若干所有用户都能访问的公系统设若干所有用户都能访问的公共目录共目录, 共享文件登记在公共目录中共享文件登记在公共目录中;例如例如UNIX,lib、dev等便是根目录下的公共目录,等便是根目录下的公共目录,WINDOWS中通过设置文件的共享达到该目中通过设置文件的共享达到该目的。的。6.5.3 文件的共享的实现文件的共享的实现n基于索引结点的共享方式基于索引结点的共享方式 : 直接指向被共享文直接指向被共享文件的索引结点。件的索引结点。6.5.3 文件的共享的实现文件的共享的实现图图 基于索引结点的共享方式基于索引结点的共享方式 Wang用户文件目录Test rL
37、ee用户文件目录Test rcount2文件物理地址索引结点Test图图 进程进程B链接前后的情况链接前后的情况 C的目录ownerccount1链接前C的目录ownerccount2建立链接后B的目录B的目录ownerccount1拥有者删除文件后3.连接连接: 通过连接使一个文件具有多个名字通过连接使一个文件具有多个名字, 不同用户通不同用户通过不同名字访问同一个文件过不同名字访问同一个文件;文件主才拥有指向其索引结点的指针;而共享该文件的文件主才拥有指向其索引结点的指针;而共享该文件的其他用户,则只有该文件的路径名,并不让其拥有指向其他用户,则只有该文件的路径名,并不让其拥有指向其索引结
38、点的指针。不会发生在文件主删除一共享文件其索引结点的指针。不会发生在文件主删除一共享文件后留下一悬空指针的情况。后留下一悬空指针的情况。 当文件的拥有者把一个共享当文件的拥有者把一个共享文件删除后,文件删除后, 其他用户试图通过符号链去访问一个已被其他用户试图通过符号链去访问一个已被删除的共享文件时,会因系统找不到该文件而使访问失删除的共享文件时,会因系统找不到该文件而使访问失败,于是再将符号链删除,此时不会产生任何影响。败,于是再将符号链删除,此时不会产生任何影响。6.5.3 文件的共享的实现文件的共享的实现6.5 文件的共享文件的共享(Cont.)文件共享实现链接例文件共享实现链接例:ro
39、otusruserswanglid1d2f1f2, 15f1, 15i_number=15link(“/usr/users/wang/d2/f1”, “/usr/users/li/f2”);unlink(“/usr/users/wang/d2/f1”); 链接也是一种目录和文件的共享方式。在这种方式下链接也是一种目录和文件的共享方式。在这种方式下只是通过一个符号链指向共享的文件或目录。当删除共享只是通过一个符号链指向共享的文件或目录。当删除共享的文件或目录时,除了需要删除文件或目录本身外,还需的文件或目录时,除了需要删除文件或目录本身外,还需要删除链接。删除链接最简单的方法是将符号链删除。实要
40、删除链接。删除链接最简单的方法是将符号链删除。实现方法是为每个文件增加一个链接表,删除链接时先搜索现方法是为每个文件增加一个链接表,删除链接时先搜索文件连接表,然后再删除。但是,搜索链接表需要时间开文件连接表,然后再删除。但是,搜索链接表需要时间开销,会增加系统的负担,影响系统效率。另一种方法是删销,会增加系统的负担,影响系统效率。另一种方法是删除目录或文件的入口,文件空间可以再分配,而不管链接除目录或文件的入口,文件空间可以再分配,而不管链接情况。在需要使用链接时查找文件名或目录名,如果发现情况。在需要使用链接时查找文件名或目录名,如果发现不存在,可以不链接,正如访问非法文件一样。不存在,可
41、以不链接,正如访问非法文件一样。 在在UNIXUNIX和和WindowsWindows操作系统中,符号链文件删除采用的操作系统中,符号链文件删除采用的方法就是删除文件入口,而不管符号链,由用户认识文件方法就是删除文件入口,而不管符号链,由用户认识文件已经删除,完成撤销符号链的工作。已经删除,完成撤销符号链的工作。 6.6 文件系统的实现文件系统的实现6.6.1 内存所需的表目内存所需的表目 系统打开文件表系统打开文件表(系统一个系统一个): 存于存于OS空间空间FCB主部主部文件号文件号共享计数共享计数修改标志修改标志 文文 件件 号号 : 用于确定用于确定FCB主部在外存中的位置主部在外存中
42、的位置; 共享计数共享计数 : 记录使用该文件的进程个数记录使用该文件的进程个数, 为为0时表示该表项为空表项时表示该表项为空表项; 修改标志修改标志 : 若若FCB被修改过被修改过, 则关闭文件时需要把内存的则关闭文件时需要把内存的FCB写回外存。写回外存。6.6.1 内存所需的表目内存所需的表目(Cont.) 用户打开文件表用户打开文件表(每个进程一个每个进程一个)文件文件描述符描述符打开方式打开方式 读读/写指针写指针入口入口(地址地址)0n-1n 文件描述符文件描述符就是用户打开文件表项位置就是用户打开文件表项位置( (非负整数非负整数), ), 打开文件时返回给进程打开文件时返回给进
43、程; ;n 用户打开文件表位置存在进程用户打开文件表位置存在进程PCBPCB中中; ;n 系统可以单设系统可以单设 空间空间, , 也可以放在进程的也可以放在进程的PCBPCB中。中。 用户打开文件表用户打开文件表/系统打开文件表的联系系统打开文件表的联系文件文件描述符描述符打开方式打开方式 读读/写指针写指针入入 口口kl用户打开文件表用户打开文件表进程进程Pi文件文件描述符描述符k进程进程Pj文件文件描述符描述符lPCB共享计数共享计数 其它其它2系统打开文件表系统打开文件表6.6.1 内存所需的表目内存所需的表目(Cont.)n 表项表项: (首空闲块号首空闲块号, 空闲块数空闲块数);
44、 n 表尾标记表尾标记: 空闲块数为空闲块数为0;n 分配方式分配方式: 最先适应最先适应, 最佳适应最佳适应, 最坏适应等最坏适应等;n 存放位置存放位置: 平时外存平时外存, 使用时读入内存系统区。使用时读入内存系统区。 空闲块表空闲块表: 适于连续物理组织结构的文件系统。适于连续物理组织结构的文件系统。 空闲块链空闲块链n 所有空闲块连成一个链所有空闲块连成一个链; n 申请申请/释放以块为单位释放以块为单位, 都对链头操作都对链头操作;n 节省空间节省空间, 但速度慢但速度慢(申请申请/释放都需要释放都需要1次次I/O);6.6.2 外存空间的管理外存空间的管理6.6.2 外存空间的管
45、理外存空间的管理(Cont.) 位示图位示图: 字位映像图字位映像图 n 位示图的位示图的 1 位表示外存一块的状态位表示外存一块的状态; n 申请申请: 找到位示图中为找到位示图中为 0 的字位的字位, 将该字位改为将该字位改为 1 , 返回该字位对应的块号返回该字位对应的块号;n 释放释放: 将位示图中释放块号对应的字位置将位示图中释放块号对应的字位置 0;n 存放位置存放位置: 平时外存平时外存, 使用时读入内存使用时读入内存, 若有修改写回外存。若有修改写回外存。 成组链接成组链接(Unix): 空闲块链与空闲块表的结合。空闲块链与空闲块表的结合。n 多个多个(最多最多100个个) 空
46、闲块为空闲块为1组组, 组之间相互链接组之间相互链接;n 最前面的组缓冲到内存最前面的组缓冲到内存; 组称作组称作超级块超级块。n 超级块结构超级块结构(P393394):struct filesys int s_nfree; /组中空闲块个数组中空闲块个数(100); int s_free100; /s_free0指向下一组指向下一组; /其它为本组中空闲块号其它为本组中空闲块号; super_block;6.6.2 外存空间的管理外存空间的管理(Cont.)空闲块的成组链接图示空闲块的成组链接图示:s_nfree100s_free0s_free1n11s_free99n199100n21n
47、299100n31n399100nj1nj99超级块超级块空闲块组表空闲块组表空闲块的成组链接例空闲块的成组链接例: P394图图13.14空闲块组表空闲块组表空闲块组表空闲块组表6.6.2 外存空间的管理外存空间的管理(Cont.)成组链接的空闲块管理成组链接的空闲块管理: 超级块已读入内存。超级块已读入内存。n 申请申请: s_nfree1, 取块号取块号s_free-s_nfree分配分配; s_nfree=1, 将将s_free0所指连接块读入内存所指连接块读入内存 (作为超级块作为超级块), 分配块号分配块号s_free0。n 释放释放: s_nfree100, s_frees_nf
48、ree+=释放块号释放块号; s_nfree=100, 将将s_nfree和和s_free拷贝到释放块中拷贝到释放块中, 将该块号记录到将该块号记录到s_free0, 写回外存写回外存, s_nfree=1。6.6.2 外存空间的管理外存空间的管理(Cont.)6.7 文件系统的界面文件系统的界面 创建文件创建文件: creat(path_name, fcb_args)n参数说明参数说明lPath_name: 文件路径名文件路径名;lFcb_args: FCB参数。参数。n执行步骤执行步骤:n为此文件分配一个为此文件分配一个FCB主部主部, 初始化初始化;n将文件名和文件号作为将文件名和文件号
49、作为FCB次部填到末级目录中次部填到末级目录中;n以写方式打开。以写方式打开。例如例如: creat(“/usr/li/d1/f1”, mode) 打开文件打开文件: fd=open ( path_name, mode )n参数说明参数说明: path_name: 文件路径名文件路径名; mode: 打开方式打开方式.n执行步骤执行步骤n根据文件路径名查目录找到根据文件路径名查目录找到FCB次部次部;n合法性检查合法性检查(根据打开方式、共享说明、用户身份根据打开方式、共享说明、用户身份);n根据文件号查根据文件号查看该文件是否已被打开看该文件是否已被打开, 如是则共享计数加如是则共享计数加1
50、; 否则取一个空闲的否则取一个空闲的系统打开文件表项系统打开文件表项, 并将外存中并将外存中FCB主主部等信息填入此表项部等信息填入此表项, 共享计数置为共享计数置为1;n在在用户打开文件表用户打开文件表中取一空表项中取一空表项, 填写打开方式和读写指填写打开方式和读写指针针, 并指向并指向系统打开文件表系统打开文件表的对应表项。的对应表项。n返回信息返回信息: fd: 文件描述符文件描述符(用户打开文件表入口用户打开文件表入口), 一个非负整数。一个非负整数。 关闭文件关闭文件: close ( fd )n 参数说明参数说明: fd: 文件描述符。文件描述符。n 执行步骤执行步骤:n由由 f
51、d 查查用户打开文件表用户打开文件表, 找到找到系统打开文件表系统打开文件表入口入口;n系统打开文件表中共享计数减系统打开文件表中共享计数减 1 ; 如减如减 1 后的值为后的值为0且修改标志为且修改标志为 1 , 则将此则将此 FCB 由内存写回外存由内存写回外存FCB主部主部;将将 fd 所对应的所对应的用户打开文件表项用户打开文件表项置为空闲。置为空闲。 6.7 文件系统的界面文件系统的界面(Cont.) 指针定位指针定位: seek ( fd, offset )n参数说明参数说明:l fd: 文件描述符文件描述符;l offset: 新的指针位置。新的指针位置。n执行步骤执行步骤:n
52、由由 fd 查查用户打开文件表用户打开文件表, 找到对应的找到对应的入口入口;n 检查检查参数合法性参数合法性; 将用户打开文件表中文件读写指针位置设定为将用户打开文件表中文件读写指针位置设定为 offset, 后续读写命令由该指针处存取文件内容。后续读写命令由该指针处存取文件内容。6.7 文件系统的界面文件系统的界面(Cont.) 读文件读文件: read ( fd , nrd , buf )n 参数说明参数说明:lfd: 文件描述符文件描述符;lnrd: 读入记录个数读入记录个数;lbuf: 内存起始位置。内存起始位置。n 执行步骤执行步骤:n由由 fd 查查用户打开文件表用户打开文件表,
53、 找到对应的找到对应的入口入口;n合法性检查合法性检查(用户打开文件表中所记录的打开方式、存用户打开文件表中所记录的打开方式、存取方式取方式);n查查系统打开文件表系统打开文件表, 找到文件的地址找到文件的地址;n计算欲访问起始记录的位置计算欲访问起始记录的位置(offset, 物理结构物理结构);n将文件中由当前读指针所确定的将文件中由当前读指针所确定的 nrd 个记录个记录 读入内存中由读入内存中由 buf 起始的区域。起始的区域。 写文件写文件: write ( fd, nwt , buf )n参数说明参数说明: l fd: 文件描述符文件描述符;l nwt : 写出记录个数写出记录个数
54、;l buf: 内存起始位置。内存起始位置。n 执行步骤执行步骤: n由由 fd 查查用户打开文件表用户打开文件表, 找到对应的入口找到对应的入口;n合法性检查合法性检查(用户打开文件表中所记录的打开方式、存取用户打开文件表中所记录的打开方式、存取方式方式);n查查系统打开文件表系统打开文件表, 找到文件的地址找到文件的地址;n计算欲访问起始记录的位置计算欲访问起始记录的位置(物理结构物理结构, offset);n如果需要如果需要, 申请存储块申请存储块;n将内存中由将内存中由 buf 起始的起始的 nwt 个记录写到文件中个记录写到文件中 由当前写指针所确定的区域由当前写指针所确定的区域 (
55、可能切换进程可能切换进程)。 建立连接建立连接: link (old_name , new_name )n参数说明参数说明: l old_name: 已存在的文件路径名已存在的文件路径名;l new_name: 欲连接的文件路径名。欲连接的文件路径名。n执行步骤执行步骤: n 查目录找到文件查目录找到文件old_name的的FCB次部次部, 由此得到文由此得到文件号件号;n 查目录找到文件查目录找到文件new_name的末级目录的末级目录;n 将文件号与将文件号与new_name中末级名字合起来构成一个中末级名字合起来构成一个 新的目录项新的目录项, 将其填入将其填入new_name的末级目录
56、文件的末级目录文件中中;n 将将FCB主部中的连接计数加主部中的连接计数加1. 例如例如: link(“/usr/Li/f1”, “/usr/Zhang/d2/f2”) 断开连接断开连接: unlink ( path_name )n 参数说明参数说明: path_name: 文件路径名文件路径名.n 执行步骤执行步骤:n查目录找到文件查目录找到文件 path_name 的的FCB主部主部;n将连接计数值减将连接计数值减 1;n如减如减 1 后的值为后的值为 0, 则归还该文件所占用的全部存储块则归还该文件所占用的全部存储块, 该文件将被该文件将被撤销撤销;n将将FCB次部由上级目录中清除次部由
57、上级目录中清除. 例如例如: unlink(“/usr/Zhang/d2/f2”)6.8 文件的保护、保密与安全文件的保护、保密与安全n 保护保护: 防止用户对文件进行非授权的访问。防止用户对文件进行非授权的访问。n 保密保密: 防止文件内容泄露。防止文件内容泄露。n 安全安全: 防止文件被破坏。防止文件被破坏。l 自然因素自然因素l 人为因素人为因素6.8.1 文件的保护文件的保护(Protection)nFile owner/creator should be able to control:l what can be done;l by whom .nTypes of accessl R
58、eadl Writel Executel Appendl Deletel List6.8.1 文件的保护文件的保护(Protection) 存取控制矩阵存取控制矩阵: amn, m个用户个用户, n个文件。个文件。f1fjfnu1a11a1ja1nuiai1aijainumam1amjamnaij :rweamd特点特点: 权限规定细权限规定细, 过于繁琐过于繁琐, 占较多存储空间。占较多存储空间。6.8.1 文件的保护文件的保护(Protection)n 用户分成若干类用户分成若干类;n 同类用户对同一文件访问权限相同同类用户对同一文件访问权限相同;n 不同类用户对同一文件访问权限不同不同类
59、用户对同一文件访问权限不同;n UNIX 用户分类用户分类 4类类: 文件主文件主, 同组用户同组用户, 其它用户其它用户, 特权用户。特权用户。 访问权限说明访问权限说明 RWERWERWE文件主权限文件主权限同组用户权限同组用户权限其他用户权限其他用户权限特权用户权限特权用户权限访问权限说明访问权限说明6.8.1 文件的保护文件的保护(Protection) 分级目录分级目录n 多级目录系统中多级目录系统中, 规定不同用户对同一子目录的访问权限规定不同用户对同一子目录的访问权限;n 如果用户不能访问某一目录如果用户不能访问某一目录, 即该用户不能访问该目录下的任何文件。即该用户不能访问该目
60、录下的任何文件。6.8.2 文件的保密文件的保密 口令口令n 创建文件时用户规定一个口令创建文件时用户规定一个口令, 系统将其记在系统将其记在FCB中中;n 访问文件要求给出口令访问文件要求给出口令, 并与并与FCB中口令比较。中口令比较。 特点特点: 简单简单; 保密性不强保密性不强(eg. 对系统操作员不保密对系统操作员不保密)。 密码密码n 保存时加密保存时加密(key);n 读取时解密读取时解密(key). 特点特点: 对文件内容加密对文件内容加密, 速度慢速度慢; 效果好。效果好。n文件加文件加/解密简单实现解密简单实现l 保存时保存时, 用一个用一个key启动一个随机数发生器启动一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三人合伙投资合同书
- 中外合资饭店合作开发合同
- 两大煤矿企业签订战略合作合同
- 二手办公用品采购合同
- 人事招聘委托代理合同规定
- 中西医结合医师培训合同范本
- 中小企业板块上市证券合同范本(版)
- 业务外包合同格式合同
- 个人对个人借款标准合同范本
- 个人住宅改造合同范本(简化版)
- 蛋糕店服务员劳动合同
- 土地买卖合同参考模板
- 2025高考数学二轮复习-专题一-微专题10-同构函数问题-专项训练【含答案】
- 四川省绵阳市2025届高三第二次诊断性考试英语试题(含答案无听力原文及音频)
- 2025年天津市政建设集团招聘笔试参考题库含答案解析
- 2024-2030年中国烘焙食品行业运营效益及营销前景预测报告
- 2025年上半年水利部长江水利委员会事业单位招聘68人(湖北武汉)重点基础提升(共500题)附带答案详解
- 宁德时代笔试题库
- 五年级下册北京版英语单词
- 康复医院患者隐私保护管理制度
- 新课标I、Ⅱ卷 (2024-2020) 近五年高考英语真题满分作文
评论
0/150
提交评论