版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统概念,第十章 文件系统接口,2,本章主要内容,文件概念 访问方法 目录结构 文件系统安装 文件共享 保护,3,10.1 文件概念,文件:抽象的,逻辑概念 存储上外存上,逻辑相关的信息集合的命名; 逻辑外存的最小分配单位。 连续的逻辑地址空间 通常文件表示程序和数据 数据文件 数字的 字符的 二进制的,4,10.1 文件概念(cont.),通常文件表示程序和数据(cont.) 程序文件 源程序 由子程序和函数组成,即由声明和执行语句组成的。 目标程序 一系列字节序列,按目标系统链接器所能理解的方式组成。 可执行程序 一系列代码段,以供装入程序调入内存执行。,5,文件属性,名称:有些OS区
2、分大小写(如Linux,Unix),有些不区分(如DOS, Windows); 类型:由OS和程序定义; 位置:指向设备和设备上文件位置的指针; 大小:目前的大小,以及可允许的最大值; 保护:决定读、写、执行等的访问控制信息; 时间、日期和用户标识:文件创建、上次修改和上次访问都可能有该信息。用于保护、安全和使用跟踪; 文件的信息被保存在目录结构中,而目录结构也保存在外存上。,6,文件操作,一种抽象的数据类型; 最小操作集:创建,读,写,定位,删除和截短。 创建文件 在文件系统中为文件找到空间; 在目录中为新文件创建一个条目。 写文件 文件名; 待写入的内容; 写位置指针。,7,文件操作(co
3、nt.),读文件 文件名; 待读入文件块的内存位置; 读位置指针(当前位置指针)。 在文件内重定位 搜索目录中相应条目; 设置当前文件位置指针为给定值。 截短文件(truncate) 搜索目录; 设置文件长度为0,保留其属性;,8,文件操作(cont.),截短文件(truncate) 释放文件所占磁盘空间。 删除文件 在目录中搜索给定名称的文件; 释放所有的文件空间; 删除相应目录条目。 其它操作 添加,重命名,复制,设置属性,获取属性,9,文件操作(cont.),避免频繁搜索的策略 Open(Fi):在磁盘上的目录结构中查找Fi,并将其内容复制到内存。 访问模式:创建,只读,读写,添加等;
4、打开文件表(Create和Delete除外) 打开文件,并返回指向一个条目的指针。 进程打开文件表:文件指针,存取权限; 系统打开文件表:磁盘位置,访问日期,文件大小等。 Close(Fi):将内存中的Fi的内容复制到位于磁盘上的目录结构中。,10,打开文件,管理打开文件的信息: 文件指针 指向最近读/写文件的位置, 对每个进程唯一 文件打开计数器 记录打开文件的次数,为关闭文件用。 文件磁盘位置 数据访问信息的缓存。 访问权限 单个进程访问文件的模式,存储在进程打开文件表中。,11,打开文件锁,OS 和文件系统提供 调解对文件的访问 锁类型 共享锁和排他锁 实现机制 强制 OS 保证加锁的完
5、整性, 如, windows; 建议 软件开发人员 (进程) 决定,如 UNIX。,12,Java中的文件加锁,加锁 使用getChannel获得文件的 FileChannel ; 使用FileChannel 的lock( )方法获取锁,其API 如下: FileLock lock(long begin, long end, boolean shared) Shared = true, 共享锁 Shared = false, 排他锁 释放锁 使用FileLock 的Release()方法释放锁。,13,File 加锁例子 Java API,FileLock lock(long begin, l
6、ong end, boolean shared) import java.io.*; import java.nio.channels.*; public class LockingExample public static final boolean EXCLUSIVE = false; public static final boolean SHARED = true; public static void main(String arsg) throws IOException FileLock sharedLock = null; FileLock exclusiveLock = nu
7、ll; try RandomAccessFile raf = new RandomAccessFile(file.txt, rw);,14,File 加锁例子 Java API,/ get the channel for the file FileChannel ch = raf.getChannel(); / this locks the first half of the file - exclusive exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE); /* Now modify the data . . . */ / rele
8、ase the lock exclusiveLock.release(); / this locks the second half of the file - shared sharedLock = ch.lock(raf.length()/2+1, raf.length(), SHARED);,15,File 加锁例子 Java API,/* Now read the data . . . */ / release the lock exclusiveLock.release(); catch (java.io.IOException ioe) System.err.println(ioe
9、); finally if (exclusiveLock != null) exclusiveLock.release(); if (sharedLock != null) sharedLock.release(); ,16,文件类型,方便OS按合理方式对文件进行操作; 实现文件类型的常用技术是在文件名称内包含类型 名称和扩展名 Apple Macintonsh的文件有一个创建者属性,用来包含创建它的程序名称。当用户双击表示该文件的图标来打开文件时,就会自动调用相应的程序。 UNIX系统采用幻数(magic number)(保存在文件的开始部分的一个整数值)大致表示文件类型:可执行程序、批处理
10、文件、postscript文件。但不是所有的文件都有幻数。,17,常见的文件类型,18,文件结构,定义 文件中信息的组织方式,及其解释方式; 策略 由操作系统定义多个文件结构,并解释; 问题:操作系统变得庞大; 难以增加新的文件结构类型; 由应用程序包含的代码,对输入文件进行合适的解释; 所有的OS必须至少支持一种结构,即可执行文件结构,以便能装入和运行程序。,19,文件结构,组织方式 无结构的流式文件:字或字节的序列; 简单记录结构 由多个属性构成的一组信息 固定长度 可变长度 复杂结构 格式化文档; 可重定位装载文件。,20,文件结构(cont.),实现 可通过在第一种表示方法中插入适当的
11、控制字符来模拟后两种表示方法。 文件的结构由以下两者来决定 OS 程序,21,10.2 访问方法,顺序访问 读下一个记录; 写下一个记录; 重新设置回到开始位置; 最后写后不能读(重写),22,10.2 访问方法(cont.),直接访问 读第 n个记录 写第 n个记录 定位到第 n个记录 读下一个 写下一个 重写第 n个记录 n = 相应的块号,23,在直接访问文件上模拟顺序访问,CP文件的当前位置,24,索引文件和相关文件的例子,如果索引文件太大,可对索引文件再建索引,25,10.3 目录结构,目录是包含所有文件信息的节点的集合,目录结构和文件都驻留在磁盘上,可以备份到磁带上。,26,一个典
12、型的文件系统组织,Raw, swap Partitions, slices, minidisks Volumes,Device directory Volume table of contents,27,设备目录包含的信息,目录可以看成一个符号表:将文件名转换成目录条目。 名称 类型 地址 当前长度,最大长度 最近访问日期,最近更新日期 用户标识号 保护信息,28,目录操作,搜索文件 创建文件 删除文件 列出目录 重命名文件 跟踪文件系统,29,目录逻辑结构的组织方法,有效:迅速定位文件 命名:方便用户 两个不同的用户的文件名称可以相同 同一文件可以有不同的名称 分组:按文件的属性逻辑分组(如
13、所有java程序,所有图形文件等),30,单层目录,所有文件都包含在同一目录中,便于支持和理解。但存在命名问题与分组问题。,31,两层目录,为不同的用户建立不同的目录 不同用户的文件允许同名 不支持分组 方便查找,32,树型目录,33,树型目录(cont.),有效搜索 分组 当前目录(工作目录) cd /spell/mail/prog type list 绝对路径与相对路径名 创建新文件通常在当前目录中进行 删除文件 rm ,34,树型目录(cont.),创建目录通常在当前目录中进行 mkdir 如,设当前目录为 /mail mkdir count 删除 “mail” 删除以 “mail”为根
14、的子目录树,35,无环图目录,具有共享子目录和文件,36,无环图目录(cont.),无环图:没有环路的图,问题: 两个不同的名字 (别名) 统计, 复制,检索 文件被删除 悬挂指针 采用“菊花链”结构的后备指针 条目保持一个引用计数 新目录条目类型 链接: 一个已经存在文件的别名(指针) 解决链接: 允许指针定位文件。,37,通用图目录,38,通用图目录(cont.),问题 无限循环的搜索 删除一个文件时 一个文件可能引用自己。 如何确保无环? 只允许链接发生在文件,而非子目录上 垃圾收集 自我引用的文件,其引用计数不等于0 垃圾收集涉及遍历整个文件系统,并标记所有可访问的空间。然后,第二次将
15、所有没有标记的部分收集到空闲空间链表上。 每当新链接建立的时候,就采用相应的算法进行检测,以避免环的出现。,39,10.4 文件系统安装,文件系统在访问之前必须已安装好。 尚未安装的文件系统必须安装到安装点上。,40,安装点,41,10.5 文件共享,期望多用户系统上文件的共享 共享可以通过保护机制来实现 在分布式系统上,文件可以跨网络共享。 NFS是一种常见的分布式文件共享方法,42,文件共享:多用户,用户ID 识别不同用户; 允许用户的许可权和保护权。 组ID 允许用户处于该组; 准许组访问权限。,43,文件共享:远程文件系统,允许系统间的文件系统访问 像 FTP一样,通过程序手动连接;
16、匿名访问 自动,无缝使用分布式文件系统; 通过world wide web 半自动连接。 实现方法 Client-server模型; 分布式信息系统; 故障模式。,44,文件共享:远程文件系统(cont.),Client-server模型 允许客户机从服务器上安装RFS; 服务器为多个客户机服务; 客户机或在客户机上的用户标识是不安全的或更复杂。 NFS 标准的UNIX 文件共享协议 公共Internet文件系统(CIFS) 标准的 Windows 协议 标准的 OS 文件调用转换成远程调用,45,文件共享:远程文件系统(cont.),分布式信息系统(分布式命名服务) 统一信息访问接口 为远程
17、计算服务 例如 LDAP(轻量级目录存取协议) DNS(域名系统) NIS(网络信息服务) 活动目录,46,文件共享:远程文件系统(cont.),故障模式 新的故障模式 网络故障; 服务器故障。 从失败中恢复 涉及每一个远程请求情形的状态信息。 无状态协议 如 NFS 包括每个请求中的所有信息 + 允许简单恢复 - 更少的安全性,47,文件共享:一致性语义,一致性语义 标明多用户如何同时访问共享文件; 与进程同步算法类似; 倾向于更少的复杂性,因为 磁盘 I/O; 网络延迟 (为RFS)。 UNIX 语义 -Unix 文件系统 (UFS): 一个用户对已经打开的文件进行写操作,可以被同时打开同一文件的其他用户所见。 通过共享文件指针允许多用户同时读/写文件。,48,文件共享:一致性语义(cont.),会话语义 AFS文件系统 写时不能立即所见; 一旦文件关闭,对其修改只能被以后打开的会话所见。 不可修改共享文件语义 一旦被其创建者声明为共享就不能被修改; 文件名不能重用; 文件内容不能被修改,49,10.6 保护,文件的拥有者/创建者应该能够控制 能做什么? 由谁来做? 访问的类型 读 写 执行 追加 删除 列表,50,访问列表和组,访问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力行业能源安全专家绩效评定表
- 文化艺术品交易中心拍卖师业绩与服务态度绩效评定表
- 证券公司投资顾问策略研究绩效考评表
- 满70岁以上换领驾照三力测试题及答案
- 通信行业技术支持工程师技术能力绩效衡量表
- 公共营养师考试题库(附答案)2025年
- 医疗废物分类及处置流程相关试题(附答案)
- 配电室车工检修维修安全操作规程
- 道路运输车辆动态监控管理制度
- 2026少先队基础知识题库(含答案)
- 2026年高考俄语试题及答案(全国卷)
- (2026年)急性有机磷农药中毒诊治临床专家共识
- 2026年审计部第一季度工作总结及第二季度工作规划
- 2023版非气管插管患者清醒俯卧位实施策略中国专家共识
- 车队驾驶员事故奖惩制度
- 精神科抢救室仪器使用
- 医务人员艾滋病培训课件
- 《重症监护病房成人患者人文关怀规范》(TCALC 007-2025)团体标准解读与实践
- 保洁员培训资料课件完整版
- 中小企业应收账款风险转移的实操案例-工具应用与财务适配的落地借鉴答辩汇报
- 江苏省南京市2026届高三年级9月学情调研英语试卷
评论
0/150
提交评论