第四章设备与IO管理.ppt

刘乃琦-操作系统原理、设计及应用

收藏

压缩包内文档预览:(预览前5页/共127页)
预览图 预览图 预览图 预览图 预览图
编号:74277596    类型:共享资源    大小:7.90MB    格式:ZIP    上传时间:2020-04-19 上传人:独** IP属地:江苏
20
积分
关 键 词:
刘乃琦 操作系统 原理 设计 应用
资源描述:
刘乃琦-操作系统原理、设计及应用,刘乃琦,操作系统,原理,设计,应用
内容简介:
操作系统原理 设计及应用 电子科技大学计算机学院操作系统课程组 RecommendedReadingOperatingSystemInternalsandDesignprinciples WilliamStallings TsingHuaUniversityPressAppliedOperatingSystemConcepts AbrahamSilberschatzetc HigherEducationPress计算机操作系统原理与实例分析 蒲晓蓉etc 机械工业出版社 2004计算机操作系统 汤子瀛etc 西安电子科技大学出版社 第一章计算机操作系统概论操作系统的目标 作用和模型 l操作系统 是裸机上的第一层软件 它是对硬件系统功能的首次扩充 是填补人与机器之间的鸿沟 用户 计算机 OS 操作系统的目标 方便性 操作系统使计算机更易于使用有效性 操作系统允许以更有效的方式使用计算机系统资源 可扩展性 在操作系统中 允许有效地开发 测试和引进新的系统功能 开放性 实现应用程序的可移植性和互操作性 要求具有统一的开放的环境 操作系统的主要功能 处理机管理存储器管理设备管理文件管理方便用户使用的用户接口 处理机管理功能 按照一定的算法把处理机分配给进程 线程 并对其进行有效的管理和控制 1 进程控制主要功能 为作业创建进程 撤消已结束的进程 以及控制进程在运行过程中的状态转换 2 进程同步主要任务 为多个进程的运行进行协调 两种协调方式 进程互斥方式 指诸进程 线程 在对临界资源进行访问时 应采用互斥方式 进程同步方式 指进程相互合作去完成共同的任务时 诸进程之间的协调 实现进程同步采用信号量机制 3 进程通信进程通信 是进程之间的信息交换 当相互合作的进程 线程 处于同一计算机系统时 通常在它们之间是采用直接通信方式 即由源进程利用发送命令直接将消息 message 挂到目标进程的消息队列上 以后由目标进程利用接收命令从其消息队列中取出消息 4 调度在后备队列上等待的每个作业 通常都要经过调度才能执行 在操作系统中作业运行需经作业调度和进程调度才能执行完成 作业调度是从后备队列中按照一定的算法 选择出若干个作业 为它们分配其必需的资源 将它们调入内存后 为它们建立进程 插入就绪队列 进程调度是从进程的就绪队列中选出一新进程 把处理机分配给它 使进程投入执行 存储器管理任务 为多道程序的运行提供良好的环境 方便用户使用存储器 提高存储器的利用率以及能从逻辑上扩充内存 存储器管理功能有4个 1 内存分配内存分配有两种方式 静态分配方式 每个作业运行之前分配好内存空间 在作业的整个运行期间不再改变 动态分配方式中 每个作业在运行前或运行中 均可申请新的附加内存空间 以适应程序和数据的动态增涨 内存分配的机制中应具有这样的结构和功能 内存分配的数据结构 该结构用于记录内存空间的使用情况 内存分配功能 为用户程序分配内存空间 内存回收功能 当用户不再需要的内存时 系统能回收内存的功能 2 内存保护 内存保护的主要任务 是确保每道用户程序都只在自己的内存空间内运行 彼此互不干扰 内存保护机制 是设置两个界限寄存器 越界检查都由硬件实现 3 地址映射地址空间 目标程序或装入程序限定的空间 称为 地址空间 单元的编号称为逻辑地址 又称为相对地址 内存空间 由内存中的一系列单元所限定的地址范围称为 内存空间 其中的地址称为 物理地址 地址映射 运行时 将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址 称为地址映射 4 内存扩充借助于虚拟存储技术从逻辑上去扩充内存容量 使用户所感觉到的内存容量比实际内存容量大得多 扩充内存必须具有内存扩充机制 1 请求调入功能 在程序运行过程中 若所需的程序和数据尚未装入内存 可由OS从磁盘中将所需部分调入内存 继续运行 2 置换功能 将内存中的一部分暂时不用的程序和数据调出到磁盘上 然后再将所需调入的部分装入内存 设备管理功能 设备管理的主要任务 完成用户进程提出的I O请求 为用户进程分配其所需的I O设备 提高CPU和I O设备的利用率 提高I O速度 方便用户使用I O设备 设备管理具有的功能 1 缓冲管理 有效地缓和CPU和1 O设备速度不匹配的矛盾 提高CPU的利用率 对于不同的系统 可以采用不同的缓冲区机制 2 设备分配 设备分配的基本任务 是根据用户进程的I O请求 按照某种设备分配策略 为之分配其所需的设备 为了实现设备分配 系统中应设置设备控制表 控制器控制表等数据结构 用于记录设备及控制器的标识符和状态 以供进行设备分配时参考 不同的设备类型 独占 共享 而采用不同的设备分配方式 3 设备处理设备处理程序又称为设备驱动程序 设备处理其基本任务 是用于实现CPU和设备控制器之间的通信 即由CPU向设备控制器发出I O命令 要求它完成指定的I O操作 反之由CPU接收从控制器发来的中断请求 并给予迅速的响应和相应的处理 处理过程 检查请求的合法性 设备空闲否 向控制器发I O命令 启动I O执行 文件管理功能 文件管理的主要任务 是对用户文件和系统文件进行管理 以方便用户使用 并保证文件的安全性 文件管理的主要功能 1 文件存储空间的管理 是对诸多文件及文件的存储空间 实施统一的管理 基于数据结构 MCB 对存储空间进行分配和回收的功能 2 目录管理为每个文件建立目录项 并对众多的目录项加以有效的组织与管理 例如 按名存取 文件共享 3 文件的读 写管理和保护 1 文件的读 写管理 是根据用户的请求 从外存中读取数据或将数据写入外存 2 文件保护 即存取控制功能 防止未经核准的用户存取文件 防止冒名顶替存取文件 防止以不正确的方式使用文件 OS的服务 作用 计算机用户需要的用户命令由OS实现的所有用户命令所构成的集合常被人们称为OS的Interface 用户接口 有时也称为命令接口 命令的表示形式 字符形式 较灵活但因繁琐而难记 菜单形式 试图在字符终端上提供友好的用户界面 图形形式 因直观而易记但不灵活 应用软件需要的SystemCall 系统调用 由OS实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口 ApplicationProgrammingInterface API 用户接口 1 命令接口 用户可通过该接口向作业发出命令以控制作业的运行 1 联机用户接口 这是为联机用户提供的 它由一组键盘操作命令及命令解释程序所组成 2 脱机用户接口 用户用JCL把需要对作业进行的控制和干预 事先写在作业说明书上 然后将作业连同作业说明书一起提供给系统 当系统调度到该作业运行时 再调用命令解释程序 对作业说明书上的命令 逐条地解释执行 该接口即为批处理接口 2 程序接口该接口是为用户程序在执行中访问系统资源而设置的 是用户程序取得操作系统服务的惟一途径 它是由一组系统调用组成 每一个系统调用都是一个能完成特定功能的子程序 每当应用程序要求OS提供某种服务 功能 时 便调用具有相应功能的系统调用 不同的系统其调用形式不同 3 图形接口图形用户接口采用了图形化的操作界面 用非常容易识别的各种图标 icon 来将系统的各项功能 各种应用程序和文件 直观 逼真地表示出来 用户可用鼠标或通过菜单和对话框 来完成对应用程序和文件的操作 1 3操作系统的形成与发展 推动操作系统发展的 硬件升级和新型硬件的出现 OS都应能适应 新的服务 为适应用户的要求或系统管理员的需要 需要扩展操作系统以提供新的服务 纠正错误 任何一个操作系统都有错误 在使用一段时间后发现了错误就需要进行纠错 当然 纠错本身可能会产生新的错误 计算机体系结构的不断发展 操作系统的发展 50年代中期出现了第一个批处理系统 60年代中期产生了分时系统 80年代之后出现了 微机系统 多处理机系统 计算机网络系统 传统计算机划代 世界上第1台计算机 第1代电子管计算机 名称 ENIAC ElectronicNumericalIntegratorandComputer 目的 用于第二次世界大战后期的弹道计算 诞生时间 1946年2月15日 诞生地 美国宾夕法尼亚大学 世界上第一台投入运行的电子计算机ENIAC 1946 2 美国世界上第一台按存储程序控制功能设计的计算机EDVAC 1946 1950 美国世界上第一台投入运行的实现存储程序控制的计算机EDSAC 1947 1949 英国计算机时代的开始 以1951年UNIVAC 投入运行为标志 第一台批量生产的商用计算机 从此 计算机走向社会 计算机诞生中的三个第一 第2代晶体管计算机 1947年 美国贝尔电话实验室发明了晶体管 利用半导体锗和硅制作的晶体管开始用于计算机的制造上 晶体管体积小 反应速度快 使计算机的运算速度和处理能力得到很大提高 程序设计方面研制出通用的算法和语言出现批处理操作系统主要应用于科学计算 数据处理和实时控制等方面 第3代集成电路计算机 苹果 Apple 计算机 程序设计方面 提出 多道程序 和 分时系统 概念 出现了系列计算机 远程终端联机系统 应用于系统模拟 系统控制 智能模拟等新的领域 第4代大规模集成电路计算机 大规模集成电路 LSI 超大规模集成电路 VLSI 器件的使用是第四代计算机的主要标志 应用领域 军事预警 尖端科学 航天科学 天气预报等 第5代智能计算机 广泛使用多媒体技术 使人们能够用语音 图像 视频等更为自然的方式与计算机进行信息交互 硬件系统支持高度并行和快速推理 软件系统能够处理知识信息 超大规模集成电路 第6代生物计算机 利用蛋白质分子制造出基因芯片 研制生物计算机是当今计算机技术的最前沿 阻抗低 能耗少 发热量极小 生物芯片 1 微型化体积更小 重量更轻 价格更便宜 且功能更强 现代计算机的发展趋势 2 巨型化目前世界上还有很多领域 如国防 百年天气预测和地震分析等 都需要功能更为强大的计算机 为中国银行引进了大型计算机数据处理系统 为国家气象中心引进了中期气象预报数据分析系统 计算机网络化的出现 掀起了电子计算机发展史上的第三次浪潮 网络化将计算机连成网络 可实现计算机的相互通信和资源共享 在第一次浪潮中 信息处理是关键 第二次浪潮的情景是每张桌子上摆有一台计算机 第三次浪潮是把所有这些计算机都连接在一起 计算机网络的发展速度异常迅猛 全球网络化时代的到来已经指日可待 4 多媒体化使人们面对图 文 声并茂的计算机信息 5 智能化让计算机能够模仿人脑的功能 即对信息具有智能处理能力 1 4操作系统的分类 无操作系统时的计算机系统1 人工操作方式一台计算机的所有资源由用户独占 降低了计算机资源利用率 人操作慢 出现了严重的人机矛盾 2 脱机输入输出方式在外围计算机的控制下 实现输入输出 主要解决了CPU与设备之间不匹配的矛盾 单道批处理系统 在内存中仅存一道作业运行 运行结束或出错 才自动调另一道作业运行 单道批处理系统主要特征 自动性 顺序性 单道性 单道批处理系统主要优点 减少人工操作 解决了作业的自动接续 单道批处理系统主要缺点 平均周转时间长 没有交互能力 多道批处理系统 一 多道程序的概念 在内存中存放多道作业运行 运行结束或出错 自动调度内存中的另一道作业运行 多道程序带来的好处 1 提高CPU的利用率 2 提高内存和I O设备利用率 3 增加系统吞吐率 二 多道批处理系统主要特征 多道性 无序性 调度性 进程调度和作业调度 三 多道批处理的主要优点 提高了资源利用率和吞吐能力 多道批处理的主要缺点 平均周转时间长 没有交互能力 处理机管理 分配和控制CPU 存储器管理 内存分配与回I O设备管理 I O设备的分配与操纵 文件管理 文件的存取 共享和保护 作业管理 如何组织作业运行 四 多道批处理系统需要解决的问题 操作系统的定义操作系统是一组控制和管理计算机硬件和软件资源 合理地对各类作业进行调度 以及方便用户使用的程序的集合 分时系统 一 分时系统的产生用户需要 人机交互 共享主机 便于用户上机二 分时系统实现的方法简单分时系统具有 前台 和 后台 的分时系统多道分时系统三 分时系统实现中的关键问题 及时接收 实现多个用户的信息及时接收 及时处理 及时控制作业的运行 多路性 多个用户分时使用一台计算机 独立性 独立运行 不混淆 不破坏 及时性 系统能在很短的时间得到回答 交互性 能实现人机对话 四 分时系统的特征 五 影响响应时间的若干因素 Ti 响应时间 NQ To s Twap改善响影时间的方法采用重入码减少信息的对换量采用虚拟存储技术 减少信息对换量 用户数 时间片 系统开销 信息交换时间 实时系统 所谓实时系统 是计算机及时响应外部事件的请求 在规定的时间内完成对该事件的处理 并控制所有实时设备和实时任务协调一致的运行 一 实时系统分为两类1 实时控制系统2 实时信息处理系统二 实时任务的类型1 按任务执行是否为周期性来化分2 按截止时间来化分 三 实时系统的特征多路性 能对多个对象进行控制 独立性 独立运行 不混淆 不破坏 交互性 仅限于访问系统中某些特定的专用服务程序 可靠性 高可靠性 应具有过载防护能力 及时性 不同的系统要求不一样 控制对象必须在截止时间内完成 操作系统的基本特征 现代OS的四个基本特征 1 并发2 共享3 虚拟4 不确定性并发是最重要的特征 其它特征都以并发为前提 并发 并发 并行性和并发性 并发执行的过程 并行性是指两个或多个事件在同一时刻发生 并发性是指两个或多个事件在同一时间间隔内发生 任务共行 从宏观上看 任务共行是指系统中有多个任务同时运行 从微观上看 任务共行是指单处理机系统中的任务并发 TaskConcurrency 即多个任务在单个处理机上交替运行 或多处理机系统中的任务并行 TaskParallelism 即多个任务在多个处理机上同时运行 共享 所谓共享是指系统中的资源可供内存中多个并发执行的进程共同使用 1 互斥共享方式 把在一段时间内只允许一个进程访问的资源 称为临界资源 系统中的临界资源可以提供给多个进程使用 但一次仅允许一个进程使用 称为互斥共享方式 2 同时访问方式 从宏观上看 资源共享是指多个任务可以同时使用系统中的软硬件资源 从微观上看 资源共享是指多个任务可以交替互斥地使用系统中的某个资源 例如磁盘 虚拟 所谓虚拟是指通过某种技术把一个物理实体变为若干个逻辑上的对应物 虚拟处理机 分时实现虚拟设备 SPOOLING技术虚拟存储器 虚拟存储管理实现 不确定性 1 执行结果不确定 2 异步性 是指进程以异步的方式执行 进程是以人们不可预知的速度向前推进 操作系统的体系结构 操作系统是一个大型系统软件 其结构已经历了四代的变革 第一代的OS是无结构的 第二代OS采用了模块式结构 第三代是层次式结构 第四代是把工程学引入到软件开发的过程中 从而形成了软件工程学 传统的操作系统结构 操作系统中增加了越来越多的功能 并且随着底层硬件更高的性能 更加通用 操作系统的大小和复杂性也随着增加 为了控制该软件的复杂性 在开发OS时 先后引入了分解 模块化 抽象和隐蔽等方法 开发方法的不断发展 促进了Os结构的更新换代 1 无结构操作系统 在早期开发操作系统时 设计者只是把他的注意力放在功能的实现和获得高的效率上 缺乏首尾一致的设计思想 OS是为数众多的一组过程的集合 各过程之间可以相互调用 在操作系统内部不存在任何结构 因此 有人把它称为整体系统结构 设计出的操作系统既庞大又杂乱 缺乏清晰的程序结构 编制出的程序错误很多 给调试工作带来很多困难 增加了维护人员的负担 2 模块化OS结构 1 模块化结构使用分块结构的系统包含若干module 模块 其中 每一块实现一组基本概念以及与其相关的基本属性 块与块之间的相互关系 所有各块的实现均可以任意引用其它各块所提供的概念及属性 2 模块化OS的优缺点优点 提高了OS设计的正确性 可理解性和可维护性 增强了0S的可适应性 加速了OS的开发过程 缺点 对模块的划分及对接口的规定要精确描述很困难 从功能观点来划分模块时 未能将共享资源和独占资源加以区别 3 分层式OS结构 使用分层系统结构包含若干layer 层 其中 每一层实现一组基本概念以及与其相关的基本属性 层与层之间的相互关系 所有各层的实现不依赖其以上各层所提供的概念及其属性 只依赖其直接下层所提供的概念及属性 每一层均对其上各层隐藏其下各层的存在 层次的设置时应考虑的几个因素 1 程序嵌套 通常OS的每个功能的实现 并非是只用一个程序便能完成的 而是要经由若干个软件层才有可能完成 因此在考虑实现OS时 每个功能可能形成的程序嵌套 2 运行频率 将那些经常活跃的模块放在最接近硬件的层 3 公用模块 把供多种资源管理程序调用的公用模块 设置在最低层 以便调用 4 用户接口 命令接口 程序接口以及图形用户接口 这些接口应设置在OS的最高层 直接提供给用户使用 常见OS总体结构 双模式基础平台子系统总体结构风格 双模式基础平台子系统其总体结构包含两个模式模块 它们分别在两种不同的CPU特权模式下运行 注 习惯上 人们把双模式基础平台子系统的这两个模式模块分别称为核外子系统和核心子系统 把核外子系统所使用的CPU的模式称为UserMode 把核心子系统所使用的CPU特权模式称为KernelMode 双模式结构图 1 5当前主流操作系统简介 WindowsUnixLinux 第二章进程与并发控制 2 1并发与进程 2 1 1并发概念 并发分为应用级并发和系统级并发 应用级并发是指若干应用程序的并发执行 系统级并发是指计算机操作系统自身软件的并发执行 2 1 2程序的顺序执行与并发执行 1 程序的顺序执行例子 S1 a x y S2 b a 5 S3 c b 1 2 程序顺序执行时的特征顺序性 处理机的操作严格按照程序所规定的顺序执行 封闭性 程序运行时独占全机资源 程序一旦开始执行 其执行结果不受外界因素影响 可再现性 只要程序执行时的环境和初始条件相同 都将获得相同的结果 3 程序的并发执行 对于具有下述四条语句的程序段 S1 a x十2S2 b y十4S3 c a十bS4 d c b可画出的并行图 2 程序并发执行时的特征 间断性 由于它们共享系统资源 以及为完成同一项任务而相互合作 致使在这些并发执行的程序之间 形成了相互制约的关系 相互制约将导致并发程序具有 执行 暂停 执行 这种间断性的活动规律 失去封闭性 是多个程序共享系统中的各种资源 因而这些资源的状态将由多个程序来改变 致使程序的运行已失去了封闭性 不可再现性 程序在并发执行时 由于失去了封闭性 导致不可再现性 举例 有两个循环程序A和B它们共享一个变量N 程序A每执行一次时 都要做N N 1操作 程序B每执行一次时 都要执行Print N 操作 然后再将N置成 0 程序A和B以不同的速度运行 这样 可能出现其计算结果不可再现性 亦即 程序经过多次执行后 虽然它们执行时的环境和初始条件相同 但得到的结果却各不相同 程序A和B以不同的速度运行出现的情况 1 N N 1 在Print N 和N 0之前执行 即执行次序 N N 1n 1Print N n 1N 002 N N 1 在Print和N 0之后执行 即执行次序 Print N nN 00N N 113 N N 1 在Print和N 0之间执行 即执行次序 Print N nN N 1n 1N 00 红色表示执行结果 各不相同 2 1 3进程及其运行环境 1 进程的特征 1 结构特征为使程序 含数据 能独立运行 应为之配置一进程控制块 即PCB 而由程序段 相关的数据段和PCB三部分便构成了进程实体 所谓创建进程 实质上是创建进程实体中的PCB 而撤消进程 实质上是撤消进程的PCB 2 动态性进程的实质是进程实体的一次执行过程 因此 动态性是进程的最基本的特征 动态性表现 它由创建而产生 由调度而执行 由撤消而消亡 可见 进程实体有一定的生命期 程序是一组有序指令的集合 其本身并不具有运动的含义 因而是静态的 3 并发性指多个进程实体同存于内存中 且能在一段时间内同时运行 4 独立性指进程实体是一个能独立运行 独立分配资源和独立接受调度的基本单位 5 异步性指进程按各自独立的 不可预知的速度向前推进 或说进程实体按异步方式运行 进程的定义 1 进程是程序的一次执行 2 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 3 进程是程序在一个数据集合上运行的过程 它是系统进行资源分配和调度的一个独立单位 2 2进程的状态转换 2 2 1进程的执行轨迹 进程执行要由调度程序管理才能占用CPU执行 举例 3个进程的执行轨迹 图2 6三个进程交替执行轨迹 2 2 2两状态进程模型 2 2 3五状态进程模型 进程的三种基本状态1 就绪 Ready 状态 当进程已分配到除CPU以外的所有必要资源后 只要再获得CPU 便可立即执行 2 执行状态 进程已获得CPU 其程序正在执行 3 阻塞状态 正在执行的进程由于发生某事件而暂时无法继续执行时 便放弃处理机而处于暂停状态 把这种暂停状态称为阻塞状态 有时也称为等待状态 进程的三种基本状态及其转换 进程五状态及转换模型 Running 占用处理机 单处理机环境中 某一时刻仅一个进程占用处理机 Ready 准备执行Blocked 等待某事件发生才能执行 如等待I O完成等New 进程已经创建 但未被OS接纳为可执行进程 并且程序还在辅存 PCB在内存Exit 因停止或取消 被OS从执行状态释放 进程五状态转换图 单 多阻塞队列 2 2 4进程的挂起状态 挂起状态 使执行的进程暂停执行 静止下来 1 引入挂起状态的原因 1 终端用户的请求 2 父进程请求 3 负荷调节的需要 当实时系统中的工作负荷较重 把一些不重要的进程挂起 以保证系统能正常运行 4 操作系统的需要 操作系统有时希望挂起某些进程 以便检查运行中的资源使用情况或进行记账 第五章文件系统原理与应用 5 1概述 5 1 1文件概念与类型1 文件 文件是一种具有符号名的 相关联元素的有序集合 2 用户按照信息的逻辑功能将文件分类存储以利于以后的使用 3 文件是信息在磁盘上存储的基本逻辑单位 4 文件名对于文件是非常重要的 它是文件系统和用户之间的联系纽带 用户利用文件名访问文件 没有文件名 用户则无法使用文件 5 命名方式及相关规则因操作系统不同而不同 例如 文件名的长短 设备文件的概念 由于对这类设备的I O和对文件的读写操作相同 因此也被看着文件 通常称为设备文件 传输的信息均由一组顺序出现的字符序列组成 通常称为流设备 通常对设备文件的命名不同于普通文件 需要特别规定 文件系统的概念 文件系统是指操作系统中的各类文件 管理文件的软件 以及管理文件所涉及到的数据结构等信息的集合 目前 有少数文件系统从操作系统中分离出来 独立于操作系统存在 但绝大多数操作系统都包含文件管理系统部分 2 文件的类型 按照不同的分类标准 可将文件大体分为以下几类 1 按文件的物理组织结构分类a 连续文件b 链接文件c 索引文件 2 按文件的保护级别分类a 只读文件b 执行文件c 读 写文件d 不保护文件 3 按文件的性质和用途分类a 系统文件b 用户文件c 库文件 4 按文件中的数据形式分类源文件b 目标文件c 可执行文件 5 按文件结构化组织分类 按照文件的结构化组织分类 可以分为无结构的流文件和有结构文件 流文件由一组顺序出现的字符序列组成 有结构的文件中 文件由若干个相关记录组成 记录 流转换功能 将结构化的记录 展开 成字节流 或将字节流转换成结构化的记录 流 块转换功能 将流转换到一块中存储到磁盘 或将块转换成流 记录 流转换它就是一个结构化的 或高级 文件系统 若一个操作系统只提供流 块转换功能 称它为低级的文件系统 流文件系统 结构化文件与流文件的联系 举例 windows和unix这种系统则把结构化留给应用程序 Windows和UNIX提供了低级文件系统 IBMMVS实现了一个结构化的文件系统 Macintosh提供了一些记录 流转换功能 它可以被称为高级文件系统 6 多媒体文件 多媒体文件是一种集成了数字 字符 格式化文本 可执行程序 图形 图像 声音等信息的高度结构化文件 多媒体文件需要的存储空间比传统的数字字符文件大约要高出5倍以上 一页格式化的文本文件大约需要0 5KB 1KB的存储空间 但同样尺寸的一页彩色图像大约需要10MB存储空间 支持多媒体文件的文件系统通常都要为应用程序提供大量的格式转换函数或多媒体文件访问例程 这种文件系统不仅要保存数据 而且还要保存大量的数据类型说明信息 如何在内存与外存之间高效地传送多媒体数据等问题已向传统的文件存储机制提出了挑战 5 1 2文件系统的设计目标 功能及实现 1 文件系统的设计目标包括以下两个方面 1 有效地组织管理文件 需要设计相应的管理数据结构来组织管理这些文件集 数据结构包括文件控制块 文件目录 为加快访问速度 需要相应有一套的缓存管理机制 2 提供方便的用户接口 文件系统会提供若干访问文件系统的系统调用或系统命令 用户能够方便有效地使用文件系统提供的功能 Windows的资源管理器就是一个最好的实例 2 文件系统功能 从用户的角度来看 文件系统主要实现 按名存取 功能 用户只需要记住文件名 以及操作文件的各种命令即可 具体实现对用户透明 从系统的角度来看 文件系统必须能够有效地管理文件的存储空间 管理文件目录 完成文件的读 写操作 实现文件共享与保护 为用户提供交互式命令接口和程序调用接口等功能 3 文件系统的实现模型 1 文件系统接口 命令 系统调用和图形窗口的文件系统访问功能 2 逻辑功能层 根据接口层所发下的文件访问需求 通过相关的文件控制块 文件目录 文件分配表等 获取访问存储介质的物理参数 形成相应的驱动命令 启动实施I O处理 3 物理驱动层 将逻辑功能层所发下的命令转化为相应的驱动程序的动作 完成对文件物理存储设备的处理 5 1 3文件系统与数据库系统 文件系统与数据库管理系统有何区别与联系呢 1 数据库管理系统中定义的各种数据结构对文件系统透明 文件系统只处理无结构 无格式的字节流 文件系统还需要向数据库管理系统提供 记录 流转换 接口 数据库系统严格依赖文件系统 那么该数据库管理系统的性能通常都不太高 2 为了提高数据库管理系统的性能 许多数据库管理系统并不依赖于操作系统提供的文件系统 而具有独立的数据组织及存取机制 直接操纵文件存储设备 存储管理程序大多能提供一些低级接口 文件 记录 字段之间有什么联系呢 1 字段 字段是基本的数据单位 用于描述一个对象的某种属性 每个字段都具有一个唯一的值 字段具有长度和数据类型两个基本属性 字段长度又分为固定长度和可变长度两类 一个字段还可以由若干子字段组成 称之为复合字段 复合字段的值取决于组成它的各个分字段的值 2 记录 是一组相关字段的集合 是应用程序可处理的数据单位 记录长度也可分为固定长度和可变长度两种类型 例如 一个学生使用学号 姓名 年龄及所在系班 关键字是惟一能标识一个记录的数据项 3 文件 文件是若干相关记录的集合 对文件的操作包括 创建文件 删除文件 设置文件的访问权限等 4 数据库 Database 数据库是相关数据的集合 通常由若干数据库表格构成 数据库表格由若干记录构成 记录由若干字段构成 数据库还可以由一种或多种类型的文件组成 5 2磁盘存储器的管理 文件存储空间的分配单位是磁盘块而非字节 文件分配方式 可采取连续分配方式或离散分配方式 为了实现存储空间的分配 系统必须能记住存储空间的使用情况 为此 系统为分配存储空间而设置相应的数据结构 系统提供对存储空间进行分配和回收的手段 常用的磁盘空间的管理方式有 空闲分区表 空闲分区链表 索引及位示图 5 2 1文件的组织与实现 3 分区 分区的引入外存空间被分成若干大小相同的数据块 将物理上连续的若干数据块组成一个文件分区 一个文件将能存储在某些连续的存储空间中 分区大小分区越小 文件分配到的分区数目将会很多 用于管理分区的数据结构如表格等将会很大 增加管理复杂度 且单个文件的访问效率会降低 分区越大 文件中的数据相邻存储的可能性越大 有利于提高文件访问性能 但若此时分区是固定大小的则可能造成空间的浪费 可变大小的大分区和固定大小的小分区 以一个数据块为单位 是两种比较好的选择 这两种分区模式同时适合于预分配和动态分配方法 为文件分配分区可以采用首次适应 下次适应和最佳适应分配算法 4 文件存储空间的分配技术 1 连续分配 连续分配以该方式管理的文件称为连续文件 为每个文件分配连续的存储空间 连续分配的优缺点 优点 简单 容易实现 对于顺序文件 能很快检索文件中的数据块 连续读 写多个数据块内容时 性能较好 缺点 它不利于文件尺寸的动态增长 该分配方案可能会导致磁盘碎片 严重降低外存空间的利用率 采用紧凑技术整理 2 链接分配 为文件分配非连续的若干数据块 数据块之间用指针相连 这种分配方式称为链接分配 以该方式管理的文件称为链接文件 2 链接分配 分配的优点 链接分配技术不要求文件存储到彼此相邻的数据块中 消除连续分配引起的碎片 提高了外存空间的利用率 链接分配技术还能适应文件尺寸的动态增长 缺点链接分配技术适合于文件的顺序存取 但对于随机存取却相当低效 为了提高文件检索速度及减少块内指针占用的存储空间 有的操作系统将文件分区设置为若干个 数目相同或不同 连续的数据块 称之为簇 Cluster 链接分配 1 利用专门的索引块存储索引信息 2 一个数据块容纳不了一个文件的所有分区时 需要若干个索引结点进行存储 建立二级索引或多级索引 3 索引分配 3 索引分配 索引分配的优缺点 优点 索引分配方法支持文件的直接存取 索引分配能满足文件的动态增长需要 只需要更新索引结点的内容 就可以把新增加的分区记录下来 利用多级索引 可以支持大型文件的存取 缺点 建立一个索引表占存储空间 基于可变分区的索引分配 5 2 3有结构文件的记录 块转换 根据记录长度固定还是可变 以及一条记录是否可以分开存储在不同数据块中 常有三种记录组块方法 固定组块法 可变长跨块组块法 可变长非跨块组块法 5 2 3有结构文件的记录 块转换 1 固定组块法 数据块由若干条固定长度的记录组成 一条记录必须完整地存储在一个数据块中 不能被分开存储在不同数据块中 数据块中可能会存在一些不能容纳一条完整记录的空间 称为内部碎片 2 可变长跨块组块法 如果允许记录被划分存储在不同数据块中 则能解决内部碎片问题 采用可变长跨块组块技术时 跨块记录的读 写会引起两次I O操作 而且 修改这类文件 增加或删除记录 也非常困难 3 可变长非跨块组块法 如果不允许记录跨块存储 则可以有效解决I O效率较低的问题 可变长非跨块组块法不可避免会存在内部碎片 浪费存储空间 5 2 3空闲磁盘空间的管理 文件系统的主要任务之一就是合理组织空闲存储块 即时为请求存储的文件分配空闲空间 常用的磁盘空间的管理方式有 空闲分区表 空闲分区链表 索引及位示图 1 空闲分区表 采用空闲分区表管理磁盘空闲空间 将磁盘空间中各个空闲分区登记在一张表中 一个分区对应一个表项 每个表项包含有空闲分区号 分区起始块号 分区长度等主要信息 空闲分区表的特点 空闲分区表实现简单 将各空闲分区按照长度从小到大的顺序进行排列 再利用有效的查找算法 如折半查找 冒泡法查找等 能很快找到需要大小的空闲分区 当存储空间中的空闲分区分布较分散且数量较多时 空闲分区表将会很大 一个很大的空闲分区表一次性全部装入内存 则需要很大的内存空间 而且会降低空闲分区表的检索速度 2 空闲分区链表 通过指针将各个空闲分区连接起来 并记载各空闲分区大小 称为空闲分区链表 采用空闲分区链表法不存在空闲分区表的额外空间开销 空闲分区链表法也存在一些问题 当使用一段时间以后 可能会使空闲分区链表中包含太多小分区由于链接指针 如果一个文件需要很多空闲分区 这种操作模式将大大降低文件存储速度 由许多离散小分区组成的文件时 将回收的小分区链接到空闲分区链表中需要很长时间 若一个文件申请连续存储空间 则需要花费较长的时间查找相邻的空闲分区 3 索引 索引方法为空闲分区建立索引表 可以基于空闲存储块建立索引 也可以基于可变分区建立索引 索引特点 基于可变分区建立索引比基于存储块建立索引的效率高 根据索引项查找空闲分区 将会提高文件存储效率 利用索引方法管理空闲空间 适合于各种文件分配法 4 位示图 位示图利用二进制位0 1表示存储空间中存储块的使用状态 空闲分区用0表示 已分配分区用1表示 用位示图表示存储空间的使用状态 可以容易地找到一个或一组连续的空闲分区 位示图需要占用的存储空间大小为 磁盘容量 字节数 8 数据块大小 搜索一个很大的位示图将会降低文件系统的性能 5 3文件目录及文件控制块 对目录管理的要求如下 1 实现 按名存取 2 提高对目录的检索速度 3 文件共享 4 允许文件重名 5 3 1文件目录 整个文件系统中包含所有文件说明信息的集合称为 文件目录 其中每个文件对应有一个目录项 描述了该文件的目录信息 文件的目录信息系统中由多个文件的目录项构成一种特殊的文件 称为目录文件 目录文件具有固定格式 由系统进行管理 用户不能直接访问目录 组织目录信息的方式 不同文件系统组织目录信息的方式是不同的 1 只将一些必要信息如文件名 文件大小 外存中的存储位置等保存在文件目录中 例如 UNIX系统的目录仅有文件名和指针 2 有的文件系统将一个文件的全部目录内容信息组织成一个目录项 例如 DOS系统的目录 常见的目录结构 有三种目录结构 1 单级目录结构整个系统中 所有用户的全部文件目录保存在一张目录表中 每个文件的目录项占用一个表项 目录项中主要记载的信息有 文件名及扩展名 文件的物理地址 其它属性 如文件长度 建立日期 文件类型等 单级目录结构的优缺点 单级目录的优点 简单且能实现目录管理的基本功能 按名存取 单级目录缺点 1 查找速度慢 2 不允许重名 3 不便于实现文件共享 2 两级目录 为每一个用户建立一个单独的用户文件目录UFD 再建立一个主文件目录MFD 在主文件目录中 每个用户目录文件都占有一个目录项 其目录项中包括用户名和指向该用户目录文件的指针 两级目录结构优点 1 提高了检索目录的速度 2 在不同的用户目录中 可以使用相同的文件名 3 不同用户还可使用不同的文件名来访问系统中的同一个共享文件 3 层次目录结构 1 树型目录结构 主目录在这里被称为根目录 把数据文件称为树叶 其它的目录均作为树的结点 路径名和当前目录的概念 2 路径名 从树的根 即主目录 开始 把全部目录文件名与数据文件名 依次地用 连接起来 即构成该数据文件的路径名 pathname 系统中的每一个文件都有惟一的路径名 绝对路径是指 从根目录开始 遍历与文件名相连的子目录 连同文件名一起构成的文件路径表示方式 3 当前目录 为每个进程设置一个 当前目录 又称为 工作目录 进程对各文件的访问都相对于 当前目录 而进行 通常称为相对路径 增加和删除目录 增加目录 在用户要创建一个新文件时 只需查看在自己的UFD及其子目录中 有无与新建文件相同的文件名 若无 便可在UFD或其某个子目录中增加一个新目录项 目录删除采用下述两种方法处理 1 不删除非空目录 2 可删除非空目录 5 3 2文件控制块 当一个文件被进程打开以后 系统将在内存中为之建立一个称为 文件控制块FCB FileControlBlock 的数据结构 用于记载文件在内存中的使用情况 FCB的地址将被记录到它的PCB中 以利于以后进程对它的使用 文件系统将把文件目录项和文件分配表中的全部或大多数信息 以及当前使用文件的有关信息 填入文件控制块FCB中 典型的FCB 5 3 3 按名存取 文件的实现过程 打开文件表 每打开一个文件系统就会返回给该进程打开文件的FCB 文件控制块 地址指针 一个进程对应一个打开文件表 该表中记录了该进程已打开的所有文件的FCB 文件控制块 地址指针 文件表方便进程对这些文件的进行存取 在进程控制块 PCB 中有一个指向打开文件表的指针 5 3 4FAT文件系统目录 文件分配表及文件控制块的实现 1 目录及文件分配表的实现文件分配表是用来描述文件数据在磁盘上的块分布的一个数据结构 管理磁盘的最大单位叫磁盘卷 一个磁盘卷可以跨越多个物理磁盘 也可以是一个物理磁盘的一个区域 个磁盘卷通常被格式化成一种物理文件系统格式 FAT文件系统是根据其组织形式 根目录必须存放在磁盘卷的一个固定位置 这样才可以正确地找到启动系统所需要的文件 FAT文件系统保存了两个文件分配表 这样当其中一个遭到破坏时可以保护磁盘卷 使用引导扇区来装载操作系统的核心文件 2 文件分配表 FAT FAT文件系统格式化的盘卷以簇为单位进行分配 簇的概念 磁盘上描述基本单位的划分方法 以位来考虑 根据簇的不同 FAT文件系统有三个不同的版本 FAT中的每个簇号可取的表项值及其含义 簇编号是 0 xFFFF 表明该簇是文件的未簇 文件分配表举例 每个文件的目录项中都给出了它在卷上的首簇号每个已分配簇包含指向文件的下一个簇的簇编号 3 FAT根目录 在硬盘上 根目录有512项 位于根目录上的每个文件和子目录 在根目录中都包含一个目录项 每个目录项的大小为32字节 4 FAT子目录 子目录是由一个文件来实现的 即目录文件 子目录 在根目录表中能够查到其子目录项 根据其首簇号找到子目录文件的具体位置 其内容为子目录表 根目录和子目录的区别 是根目录位于磁盘上一个特殊的位置并且具有固定的大小 这样便于查找 5 FAT32文件系统的扩展 微软公司定义了新的基于FAT模式的文件系统 即FAT32文件系统 应用于windows9x和windowsMe系统 FAT32文件系统的文件分配表簇标识为32位 高4位保留 真正有效的是28位 簇大小能达到32KB FAT32理论上拥有8TB的寻址能力 FAT32的根目录区不再是固定区域 固定大小 根目录已改为根目录文件 通过引导区的信息找出根目录文件的具体位置 从而找到根目录表 根与子目录文件相同的管理方式 根目录下的文件数目不再有限制 文件的查找 在FAT文件系统中 当访问一个文件时 通过文件名在目录表中查到其首簇号 通过首簇号查FAT表得到其数据所在位置 2 文件控制块的实现 当打开一个FAT的文件时 把要打开文件的管理控制信息从辅存的目录表和FAT表中读到内存 形成FCB 将FCB的地址以一个文件描述符 FD 的形式返回给用户进程 文件操作均可通过FD得到该打开文件的描述信息 在用户和实际物理文件之间建立一条 通道 或者 操作界面 5 3 5LINUX文件系统目录 文件分配表及文件控制块的实现 Linux是一个unix类操作系统 Linux中用EXT2文件系统结构 在EXT2文件系统中 查找文件的过程 当访问一个文件时 通过文件名在 目录表 中查到其 索引节点号 通过 索引节点号 查 索引节点表 通过 索引节点表 得到其 索引节点 通过索引节点得到文件数据所在位置 1 目录及文件分配表的实现 ext2文件系统的物理结构 整个盘卷由多个数据块组构成 一个数据块代表一个文件系统 ext2的物理结构中各字段的含义 超级块 存储着描述文件系统大小和形状的基本信息 组描述符 描述它的数据结构 块位图大小 索引节点位图大小 索引节点表大小 空闲块数 空闲索引节点数 已用目录数等重要信息 块位图 描述了该块组中数据块空间的使用情况 在数据块分配和数据块撤消时使用 索引节点位图 描述了该块组索引节点表所占空间的信息 在索引节点的分配和撤消中使用 索引节点表 记录了本块组中索引节点集合 数据块 用于存放文件数据 1 ext2的目录 一个文件对应有一个目录项 目录项包含该文件对应的索引节点号 文件名 名字长度等信息 目录是一些特殊的文件 称为目录文件 其中包含了该目录下所有文件的目录项集合 目录文件结构示例图 2 ext2的索引节点 每一个文件都对应一个索引节点 ext2的索引节点中的信息含义 Mode 用户拥有的权限 R W E OwnerInformation 文件或目录所有者的用户和组标识符 Size 文件大小 Timestamps 索引节点建立的时间和索引节点最后修改的时间 Datablocks 描述的文件的数据块的 2 文件控制块的实现 当打开一个EXT2文件时 把要打开文件的管理控制信息从辅存的目录项和索引节点中读到内存 形成FCB 并将该FCB的地址以一个文件描述符 FD 的形式返回给用户进程 根据FD可获得文件的描述信息 通过这些信息用户可对实际物理文件进行操作 5 4文件系统缓存管理 5 4 1文件缓存管理的概念磁盘高速缓存机制 DiskCache 是指利用内存中的存储空间 来暂存从磁盘中读出的一系列盘块中的信息 它是一组在逻辑功能上属于磁盘 而在物理上是驻留在内存中的盘块 因此访问通过内存实现 5 4 2缓存类型 1 面向系统的文件缓存组成文件系统的对象分为两类 1 文件数据信息 2 文件目录 文件分配表这样的数据结构 为使用户有效访问文件数据而增加的一些描述和管理文件的管理信息 在文件访问过程中 是通过文件名查找相应的管理文件的数据结构 从而得到文件数据所存放的物理位置 从而实现了按名存取 缓冲区的分类 1 文件目录高速缓存区目录高速缓存区用来缓存经常访问的文件的目录 2 文件分配表高速缓存区文件分配表高速缓存区用来缓存经常访问的文件分配信息 3 数据块高速缓存区数据块高速缓冲区用于缓存经常访问的磁盘数据块 文件访问过程 在管理块高速缓冲时 不同文件系统用到了不同的算法 常用的算法思想 对于读操作 若块不在高速缓存中 首先要把它读到高速缓存 再拷贝到所需的地方 对于写操作 需要把该块直接写到磁盘上 同时缓存在内存中 目录及文件分配信息是访问频率很高的数据结构 如果在缓冲区能找到所访问的目录及文件 则可提高访问速度 2 面向用户的文件缓存 虚拟盘 在内存中建立的仿真磁盘称为虚拟盘 RAM 虚拟盘的设备驱动程序可以接受所有标准的磁盘操作 但这些操作的对象不是磁盘而是内存 通过建立RAM盘 用户可以在内存中管理自己常使用的文件 缺点 一旦系统或电源发生故障 或系统重启动时 原来保存在RAM盘中的数据就会丢失 它是易失性存储器 优点 访问文件在内存中进行 提高了访问速度 5 4 3缓存一致性设计 避免出现一个数据有多个不同副本的情况 需要在效率和一致性方面权衡的问题 写穿透方式 在数据块被修改时 该块同时写回磁盘 这种方式为写穿透方式的高速缓存 MS DOS中 每写一个字符 访问一次磁盘 该方式一致性好 但效率低 非写穿透方式 在数据块被修改时 该块并不及时写回磁盘 这种方式为非写穿透方式的高速缓存 例如 UNIX把字符保持在高速缓存中 每30秒把这个块写回磁盘 或者当这个块要被覆盖时 写回磁盘 该方式效率高 但一致性差 5 4 4LINUXVFS的缓存管理 LINUX的虚拟文件系统 VFS 将实际的文件系统的数据结构转换成统一的内存VFS的数据结构来到达兼容多种文件系统类型 VFS的缓存实现分为三个具体的缓存类型 1 数据缓存 2 索引节点缓存 3 目录缓存 1 数据缓存 任何一个从块设备中读取的数据块或者往块设备中写入的数据块都要通过缓存 缓存中的数据块是以拥有此数据块的设备的设备标识符和缓冲区的块号来唯一标识的 缓存由两部分组成 第一部分是空闲的缓冲区链表 第二部分是非空闲的缓冲区 由指针数组构成的散列表 散列表中hash值由设备的标识符和数据块的块号产生的 表中的指针指向具有相同hash值的缓冲区 数据缓存结构 Linux系统现在支持以下几种类型 1 干净的 clean 未被使用的 新的缓冲区 2 锁定的 locked 已经被锁定的缓冲区 等待数据的写入 3 已用的 dirty 也就是缓冲区中包括已改变的新数据 这些数据将要被写入到磁盘中 4 共享的 shared 可以共享的缓冲区 5 非共享的 unshared 现在不能被共享 缓存管理的bdflush守护进程 linux系统使用bdflush内核守护进程来完成缓存管理 内核守护进程bdflush 在系统启动时作为一个系统的线程运行 在大部分时间中 此守护进程都处于睡眠状态 等待系统中被改动的数据块缓冲区的数量增大到一定的值 bdflush守护进程将被唤醒 内核守护进程bdflush的任务是当缓存中被改动的缓冲区数量太多时 提供一个管理功能 2 索引节点缓存 VFS提供的索引节点缓存可以加快对系统中文件的存取 VFS索引节点缓存使用散列表实现 表项的hash值是通过索引节点号和存储文件系统的物理设备号计算出来的 各表项指向具有相同hash值的VFS索引节点链表的指针 VFS索引节点缓存的操作 一 如果系统在索引节点缓存中找到索引节点 那么此索引节点的计数器将加1 表明又有一个进程在使用该索引节点 否则 系统必须申请一个空闲的VFS索引节点 系统读取该索引节点到内存缓存 如果系统已经没有可分配的空闲索引节点时 那么必须查找一个已用的索引节点 将那些用户计数器为0的索引节点重新分配 说明系统中没有任何进程正在使用这些索引节点 一些非常重要的索引节点 如文件系统的根目录索引节点 它们的索引节点计数器总是大于0 以保证永远不能被重新分配 VFS索引节点缓存的操作 二 不论用什么方法找到一个新的索引节点 系统都必须调用一个特殊的子程序来把实际文件的信息添加到此索引节点中 当向新的索引节点中写入信息时 锁定此索引节点 将索引节点计数器置为1 直到索引节点中的信息写完后 再解锁 如果它被锁定时 则其他需要访问该索引节点必须等到解锁后才能进行 3 目录缓存 为了加速对常用目录的存取 VFS维护一个两层LRU目录缓存项链表 目录缓存包括一个散列表 表的hash值由设备号和目录名来计算的 每个表项指向具有相同hash值的目录缓存链表的指针 当读取一个目录时 目录的详细信息将添加到目录缓存中 一层 二层 5 5文件共享 文件共享是指多个用户进程访问同一个文件 5 5 1文件共享的控制文件共享的有效控制需要考虑同时存取和存取权限问题 控制存取权限就是控制授权用户以合法的方式访问文件 允许多个用户同时读文件内容 但不允许同时修改 或同时读且修改文件内容 当用户修改文件内容时 将整个文件作为临界资源 锁定整个文件 不允许其他共享用户同时读或写文件 解锁后才能读或写文件 也可以仅仅锁定指定的一条记录 允许其他共享用户读 写该文件的其它记录 为共享用户设置的存取权限的类型 一 1 无 用户不知道文件的存在 用户无法获知该文件的目录信息 当然更不会知道文件的内容 2 探知 用户可以检测文件的存在及其文件主 还可以向文件主申请增加对该文件的存取权限 3 执行 用户可以装载并执行指定文件 但不允许拷贝文件内容 4 读 允许用户读文件内容 包括拷贝文件和执行文件 但有些系统严格地将浏览文件内容和拷贝权限分开 可以控制文件只能被浏览 不能被拷贝 5 追加 允许用户向文件添加数据 通常只能将数据添加到文件尾 但是 不能修改或删除文件内容 为共享用户设置的存取权限的类型 二 6 更新 允许用户修改 删除 增加文件内容 包括创建文件 重写文件的全部或部分内容 移动文件的全部或部分数据等操作 7 更改权限 允许用户修改赋予其他用户的存取权限 一般只有文件主才能更改共享该文件的其他用户对该文件的存取权限 有的系统允许文件主将更改文件存取权限赋予其他某个用户 但必须限制授权用户更改的权限范围 否则 可能使文件主失去对自己文件的拥有权利 8 删除 允许用户删除文件 5 5 2文件共享的实现 根据实现文件共享的方式不同 可以分为3种实现方 1 利用链接目录项实现法 链接目录项要求在文件目录项中设置一个链接指针 用于指向共享文件的目录项 2 利用索引节点实现法 通过共享文件索引节点来共享文件 3 利用URL实现法 通过URL方式共享文件 1 链接目录项实现文件共享 根据链接指针内容找到共享文件的目录项 读取该目录项中文件起始位置等信息 操作该文件 每当有用户进程共享文件时 共享文件目录项中的 共享计数 加1 当用户不再共享该文件 撤消链接指针时 共享计数 减1 只有当共享文件用户数为1时 假设文件被创建时 共享计数为1 该文件主才有权删除共享文件 B1的共享计数器 3 2 利用索引节点实现文件共享 记录共享该文件的用户数 3 利用URL实现文件共享 一个完整的URL包括访问文件的方法 协议 文件所在的主机域名 目录路径名和文件名几部份 例如 协议 域名 路径名 5 6文件系统的开放性设计 文件系统的开放性指支持多种不同的文件系统 以保证一个操作系统能最大程度的支持各种文件系统格式数据的管理 建立一个开放的系统架构 保证各种不同文件系统的有效加入 5 6 1概述 1 接口层 文件系统通常提供了两种类型的接口 1 命令接口 这是用户与文件系统之间的接口 用户可以通过键盘终端键入命令 取得文件系统的服务 2 程序接口 它作为用户程序与文件系统之间的接口 用户程序可通过文件系统调用取得文件系统的服务 2 逻辑层 逻辑层支持文件系统的开放性实现 逻辑层定义一种统一的逻辑文件目录 逻辑文件分配表来管理不同的物理文件系统 它向上支持接口层的各种接口功能 向下为各个物理文件系统提供了统一的接入接口标准 一个物理文件系统要想被支持 应按照这个接口标准来编写自己的物理文件系统 逻辑层具有的功能 1 它对各个物理文件系统的数据结构进行归纳提炼 以一种统一的数据结构进行管理 2 接受接口层的各种系统调用 如write open等 3 实现文件的保护与共享 4 支持各个物理文件系统间的相互访问 5 实现逻辑文件目录及逻辑文件分配表缓存的管理 6 接受OS的其它模块 如进程模块 内存模块等 的操作请求 7 将用户或系统其它模块对文件系统的请求转化为具体物理文件系统支持的请求格式 调用相应的物理文件系统功能 3 物理层 物理文件系统是具体文件操作特性功能的实现 具体包括 1 选择文件所在设备 进行逻辑块号到物理块号的转换 2 空闲盘块的管理 3 数据块 物理文件目录 物理文件分配表缓存的管理 4 硬件层负责驱动I O操作和对设备的中断信号进行处理 5 6 2物理文件系统的注册与注销 一个开放性文件系统能够支持各种按照其开发标准设计的物理文件系统 某具体的物理文件系统要得到支持 需要有一个注册的过程 该过程负责按照逻辑文件系统定义的标准接口 将物理文件系统的各个功能实现的地址注册到系统中 1 注册 注册过程通常是在文件系统初始化时完成 各物理文件系统的初始化过程中通常包含注册功能 将自己 嵌入 到整个文件系统中 将物理文件系统的各个功能实现的地址注册到系统中 逻辑文件系统会根据内核预定义的支持的物理文件系统依次调用各个物理文件系统的初始化过程 FS1注册前后 linux文件系统的注册实现过程 逻辑文件系统维护了一个已注册的文件系统链表 一个物理文件系统的注册实际上是向该链表中插入一个自己的file system type 2 注销 将物理文件系统从系统中删除 实质是释放该文件系统在内存中的相关数据结构 以linux文件系统为例 则是从file systems链表中将对应的物理文件系统结构删除 并释放相应的内存空间 5 7文件系统可靠性设计 文件系统是计算机资源最重要的部分 如果文件系统遭受破坏 恢复所有信息是非常困难的工作 有时甚至根本无法恢复 常用的保护方法有定期备份文件 保护文件系统数据的一致性等 5 7 1系统备份 备份方法 完整备份方法 即每次备份时 都拷贝数据区的全部内容 不论其中某些数据是否在备份区已经存在 增量转储方法 转储程序在进行转储时 首先检查每个文件在最后一次转储以后是否发生了变化 如果这期间文件未被更改过 则此次不必转储该文件 否则 需要转储该文件 并修改该文件的最新转储时间 5 7 2文件系统数据的一致性 影响文件系统可靠性的另一个问题是文件系统数据的一致性 许多计算机系统都安装并运行一个检验程序 随时检查文件系统的一致性 以确保文件系统数据的一致可靠 文件系统的一致性检查分为两种 磁盘块的一致性检查和链接一致性检查 1 磁盘块的一致性检查 为了检查磁盘块的一致性 可以建立两张表 一张表统计磁盘上每个盘块在文件中出现的次数 称为数据块计数表 另一张表统计每个盘块在磁盘空闲空间信息表中的出现次数 称为空闲块计数表 每一个磁盘块在两张表中分别设置一个计数器 其初始值为0 a 正常 正常情况下 两张表中对应磁盘块计数器值应为互补 不正常的情况 b 存储块信息丢失 c 空闲表中重复登记某个存储块 d 数据块被重复登记 2 链接一致性检查 链接一致性检查需要建立一张文件计数器表 每个文件对应其中的一个计数器 统计文件的索引节点个数 检验程序从系统的根目录开始查找 每当在目录中找到一个索引节点号时 便将该计数器表中相应文件的计数器加1 当检查完全部目录以后 将文件计数器表中各文件索引节点计数器值逐个与文件索引节点中原有的链接计数Count相比较 如果一致 则系统正常 否则
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:刘乃琦-操作系统原理、设计及应用
链接地址:https://www.renrendoc.com/p-74277596.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!