




已阅读5页,还剩150页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统 钱群2012年10月8日 操作系统原理 操作系统原理 是计算机科学与技术专业本科生的必修课程之一 也是一门重要的基础课程 正如操作系统是整个计算机系统的核心和灵魂一样 操作系统知识也是整个计算机系统知识体系中的基础和核心 参考书目 操作系统原理教程 第2版 张丽芬刘美华 电子工业出版社 操作系统实用教程 任爱华主编 清华大学出版社 计算机操作系统 汤子瀛等 西安电子科技大学出版社 计算机操作系统 胡志刚 谭长庚 中南大学出版社 计算机操作系统教程 张尧学等 清华大学出版社 课程特点 理论性强 包含有大量的抽象概念 原理性强 较抽象 从实践总结出原理 涉及面广 并行程序 性能问题 结构问题 程序方法论 软件工程等等 计算机体系结构 硬件 软件设计 程序设计语言 数据结构 算法 网络 涉及到计算机科学的很多领域 操作系统是目前最复杂的软件成分 通过学习操作系统核心技术 能够促进其他领域的应用发展 学习本课程的目的 不是如何使用操作系统而是理解操作系统如何工作OS工作方式 工作原理是什么 OS内部算法和数据结构设计OS过程中的问题 解决方案和折中权衡掌握操作系统的开发模式 开发方法和操作系统的分析 设计能力 现代操作系统的基本原理与实现技术 包括操作系统对计算机系统资源的管理策略与方法 操作系统进程管理机制等等 学习方法 认真看书 看好课件 认真复习所讲授的内容并认真完成作业 在完成作业时 要举一反三 弄清楚习题的含义 理清解题的思路 以帮助理解抽象的操作系统理论和概念 善于思考 善于发现问题 提出问题 并努力寻求问题的答案遇到问题请教别人或者参加网上答疑 及时向老师请教 操作系统在计算机系统中的地位 计算机系统由硬件和软件组成操作系统是在硬件基础上的第一层软件是其他软件和硬件之间的接口 组成计算机的任何机械的 磁性的 电子的装置或部件 为了方便用户和充分发挥计算机效能的各种程序的总称 计算机硬件 操作系统 系统工具 应用软件 应用用户 应用开发人员 操作系统 开发人员 操作系统的地位 紧贴系统硬件之上 所有其他软件之下 是其他软件的共同环境 操作系统的定义 操作系统是计算机系统中的一个系统软件 是一些程序模块的集合 它们能以尽量有效 合理的方式组织和管理计算机的软硬件资源合理的组织计算机的工作流程 控制程序的执行并向用户提供各种服务功能使得用户能够灵活 方便 有效的使用计算机 使整个计算机系统能高效地运行 操作系统的基本特征 并发性共享性虚拟性异步性 不确定性 操作系统的基本特征 并发性 并发处理多个同时性活动的能力在计算机系统中同时存在多个程序宏观上 这些程序是同时在执行的微观上 任何时刻只有一个程序在执行 单CPU 即微观上这些程序在CPU上轮流执行并行 与并发相似 但多指硬件支持 由并发引起的问题 活动切换 保护 相互依赖的活动间的同步 并发性和并行性的区别 操作系统中的并发性和并行性是既相似又有区别的两个概念 并发性是指两个或多个事件在同一时间间隔内发生 并行性是指两个或多个事件在同一时刻发生 操作系统的基本特征 共享性 共享操作系统与多个用户的程序共同使用计算机系统中的资源 共享有限的系统资源 操作系统要对系统资源进行合理分配和使用资源在一个时间段内交替被多个进程所用互斥共享 如音频设备 同时访问 如可重入代码 磁盘文件 资源分配难以达到最优化 保护 操作系统的基本特征 虚拟性 虚拟一个物理实体映射为若干个对应的逻辑实体 分时或分空间 虚拟是操作系统管理系统资源的重要手段 可提高资源利用率CPU 每个用户 进程 的 虚处理机 存储器 每个进程都占有的地址空间 指令 数据 堆栈 显示设备 多窗口或虚拟终端 操作系统的基本特征 虚拟性 虚拟化是把计算机的资源 如运算能力 存储空间以及应用程序抽离出来 让资源的使用方式更具效率 操作系统的基本特征 异步性 异步性由共享和并发引起在操作系统中可运行多道用户程序 而每个用户程序的运行时间 要使用哪些系统资源 使用多长时间 使用的资源是共享还是独占的 操作系统在程序运行前是不知道的要求操作系统的设计要很好地解决并发和共享的问题 否则 将会产生不可重现的错误 这种不可重现的错误称为异步性 不确定性 操作系统分类 单用户操作系统批处理操作系统分时系统实时系统嵌入式系统多处理机操作系统网络操作系统分布式操作系统 操作系统的功能 处理机分配 硬件资源管理 存储器管理 硬件资源管理 设备管理 硬件资源管理 文件管理 软件资源管理 作业管理 操作系统的功能 处理机管理 目标 完成处理机资源的分配调度等功能 处理机调度的单位可为进程或线程 进程控制 创建 撤销 挂起 改变运行优先级等 主动改变进程的状态进程同步 协调并发进程之间的推进步骤 以协调资源共享 交换信息能力弱进程通信 进程之间传送数据 以协调进程间的协作 交换信息能力强 也可以用来协调进程之间的推进进程调度 作业和进程的运行切换 以充分利用处理机资源和提高系统性能 作业调度进程调度未必是进程控制操作所引起 可能是时间片轮转 I O操作 同一类型内的公平性 高效率 吞吐量大 作业周转时间等 操作系统的功能 存储器管理 存储分配与回收 系统应能记住每个存储区的状态 实施存储器的分配 回收系统或用户释放的存储区存储保护 保证进程间互不干扰 相互保密 如 访问合法性检查 甚至要防止从 垃圾 中窃取其他进程的信息地址映射 变换 进程逻辑地址到内存物理地址的映射内存扩充 覆盖 交换和虚拟存储 借助于虚拟技术或其它覆盖和交换机技术 为用户提供比主存空间的地址空间 提高内存利用率 扩大进程的内存空间 目标 提高利用率 方便用户使用 提供足够的存储空间 方便进程并发运行 操作系统的功能 设备管理 设备操作 利用设备驱动程序 通常在内核中 完成对设备的操作 设备独立性 提供统一的I O设备接口 使应用程序独立于物理设备 提高可适应性 在同样的接口和操作下完成不同的内容 如FAXModem作为Windows上的打印机设备 设备分配与回收 在多用户间共享I O设备资源虚拟设备 设备由多个进程共享 每个进程如同独占缓冲区管理 匹配CPU和外设的速度 提高两者的利用率 单缓冲区 双缓冲区和公用缓冲区 目标 方便的设备使用 提高CPU与I O设备利用率 操作系统的功能 文件管理 文件存储空间管理 解决如何存放信息 以提高空间利用率和读写性能目录管理 解决信息检索问题 文件的属性 如文件名 文件的读写管理和存取控制 解决信息安全问题 系统设口令 用户分类 文件权限软件管理 软件的版本 相互依赖关系 安装和拆除等 目标 解决软件资源的存储 共享 保密和保护 操作系统的接口 操作接口 命令接口 提供一组命令供用户直接或间接操作程序接口 编程接口或者系统调用 提供一组系统调用供用户程序调用 进程管理 程序和进程 程序 指令或语句序列 体现了某种算法所有程序是顺序的对于单道程序工作环境 程序是一个在时间上有严格次序的操作序列复杂程序的操作必须按照物理次序执行 前面的操作结果为后面所用 程序顺序执行的特征 顺序性资源独占性 封闭性结果的无关性 可再现性 程序顺序执行的特征 顺序性 处理机的操作严格按照程序所规定的顺序执行 即每一个操作必须在下一个操作之前结束 资源独占性 程序在执行过程中独占全部资源 执行过程中不受外界因素影响 结果无关性 程序运行结果与程序执行速度无关 只要环境和初始条件相同 程序重复执行总能得到相同结果 程序并发执行 为了提高计算机的利用率 运行速度和系统的处理能力 并行处理技术应用日益广泛 有些应用可以在操作时间上部分有序有些操作必须在某些操作之后执行有些却可以并行的执行 程序并发执行的特征 间断性 在并发环境下程序的执行是间断性的 执行 暂停 执行失去了封闭性 资源状态由多个程序改变程序执行结果的不可再现性 并发程序执行的结果与其执行的相对速度有关 是不确定的 相同环境和初始条件 重复执行结果不同 进程 定义 Process进程是具有独立功能的程序关于某个数据集合上的一次运行活动 是系统进行资源分配和调度的独立单位又称任务 Task 进程的特征 动态性并发性独立性异步性结构特征 进程的特征 动态性 进程对应程序的执行 是动态的过程 进程是动态产生 动态消亡的 进程在其生命周期 进程由创建而产生 由调度而执行 由撤销而消亡的过程 进程的特征 并发性 独立性 异步性 并发性 多个进程同时在内存中 且能在一段时间内同时运行 独立性 进程是一个能独立运行 独立分配资源 独立接受调度的基本单位 例如 各进程的地址空间相互独立异步性 每个进程都以其相对独立的 不可预知的速度向前推进 进程的特征 结构特征 进程结构 PCB进程控制块 程序段 数据段 动态特征的集中反映 描述要完成的功能 操作对象及工作区 进程和程序的关系 1 动态性和静态性进程是一个动态概念 程序是一个静态概念2 进程控制块进程由 程序 数据 PCB构成3 一对多的关系一个程序可对应多个进程 一个进程为多个程序服务 进程和程序的关系 4 并发性进程更能真实地描述并发 而程序不能5 进程具有创建其他进程的功能 而程序没有6 操作系统中的每一个程序都是在一个进程现场中运行的 进程的基本状态及其转换 进程的三种基本状态 进程在生命消亡前处于且仅处于三种基本状态之一不同系统设置的进程状态数目不同 进程的基本状态及其转换 运行状态就绪状态阻塞状态 运行状态 进程占有CPU 并在CPU上运行在单处理机系统只有一个进程处于执行状态 多处理机系统则有多个处于执行状态 就绪状态 进程已经分配了除处理机以外的所有必要资源 只要再获得处理机就能够执行的状态 这样的进程可能有多个 通常排成一个队列 称就绪队列 阻塞状态 正在执行的进程由于发生某事件而暂时无法继续运行时 放弃处理机而进入的状态 又称等待状态 封锁态 睡眠态 即使CPU空闲 该进程也不可运行引起阻塞的事件 请求I O 申请缓存等 进程的基本状态之间的转换 运行 就绪 阻塞 进程调度程序把处理机分配给进程 进程因某事件 I O变成堵塞状态运行程序主动改变 某事件被解除 如I O完成 外界事件引起 时间片已用光 或优先级调度时 有更高优先级的进程就绪 进程控制块 ProcessControlBlock 概念 系统为了管理进程设置的一个专门的数据结构 用它来记录进程的外部特征 描述进程的运动变化过程 又称进程描述符 进程属性 系统利用PCB来控制和管理进程 所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的 进程控制块 当一个系统创建一个进程时即为它建立了一个进程控制块PCB 当进程撤消时系统则收回为其分配的PCBPCB是进程存在的唯一标志不同操作系统进程控制块的信息有区别 但是一般应包含的信息有 进程标识符 内部 外部 现行状态 CPU现场保护区 存储指针 优先级 资源清单 家族关系 线程 线程的引入是为了减少程序并发执行所付出的时空开销 使操作系统有更好的并发性 进程的两个基本属性 进程是一个可拥有资源的独立单位 进程同时又是一个可以独立调度和分派的基本单位 进程数目不宜过多 进程切换的频率也不宜过高 进程是一个资源拥有者 因而在进程的创建 撤消和切换中 系统必须为了付出较大的时空开销 因而限制了并发程度的进一步提高将进程的资源的拥有者和调度和分派的基本单位拆分开 即让进程只作为资源的拥有者 而让线程作为CPU调度和分派单位 进程是拥有资源的独立单位 线程只有少数资源 如少数寄存器 程序记数器 线程是进程中的一个实体 是CPU调度的基本单位 通常一个进程中有若干个线程 同一个进程中线程共享同一个地址空间 所以线程之间的同步和通信实现起来很容易 线程与进程的比较 为了更好地认识进程和线程 下面从拥有的资源 调度 并发性和系统开销诸方面进行比较 1 拥有的资源进程是拥有资源的一个独立单位 线程自己不拥有系统资源 只有一点必不可少的资源 可以访问其隶属进程的资源 2 调度在引入线程的OS中 把线程作为调度和分派的基本单位 进程调度时 系统要进行进程上下文的切换 需要系统大量的开销 线程调度时 由于同一进程内的线程共享进程的资源 其切换是把线程仅有的一小部分资源变换即可 从而提高了系统的效率 线程切换比进程切换快得多 在由一个进程的线程向另一个进程的线程切换时 将引起进程上下文的切换 线程与进程的比较 2 3 并发性引入线程后 使得系统的并发执行程度更高 进程之间可以并发执行 同一进程内的多线程也可并发执行 多线程共享进程的所有资源 如存取同一主存区 使用不当 可能使系统不安全 线程与进程的比较 3 4 系统开销创建或撤销进程的系统开销大进程切换的开销大同一进程中的多个线程具有相同的地址空间 它们之间的通信和同步易实现 线程与进程的比较 4 进程的控制和调度 进程控制 进程管理 进程控制 进程调度进程控制是进程管理最基本的功能进程控制任务 进程的创建 撤销 进程状态的转变等等进程控制一般由OS内核来实现 原语 原语是操作系统核心部分 常驻内存原语必须在管态下执行 是由若干多机器指令构成的完成某种特定功能的一段程序 具有不可分割性 即原语的执行必须是连续的 在执行过程中不允许被中断 创建 撤消进程以及完成进程各状态之间的转换 由具有特定功能的原语完成 原语和广义指令的区别 原语是不可中断的 在执行过程中关闭了中断广义指令可中断 两者的共同点 都可以被进程调 进程控制原语 创建原语 创建PCB撤消原语 撤消PCB 而不是程序段阻塞原语 保存CPU的现状到PCB中 将进程置阻塞状态 插入等待队列唤醒原语 进程状态改变阻塞变就绪 处理机调度 进程调度 处理机调度的级别 作业调度 JobScheduler 处理机的高级调度 有资格获得CUP 进程调度 ProcessScheduler 处理机的低级调度 真正获得CPU 处理机的交换调度 处于主存就绪或主存阻塞等不具备运行条件的进程换出到外存交换区 进程调度 在多道程序系统中 用户进程数往往超过处理机数 另外 操作系统还要建立若干个系统进程完成系统功能 多进程竞争处理机 将处理机动态地分配给系统中的各个就绪进程 使之执行 由于上述理由 要求实现进程调度 进程调度程序完成分配处理机的任务 何时分配CPU 则是调度时机问题 进程调度 进程调度 就是系统按照某种算法动态 合理地把CPU分配给某一就绪进程 进程调度程序 完成进程调度工作的程序 进程调度的功能1 记录系统中各进程的执行状况管理系统中各进程的进程控制块 将进程的状态变化及资源需求情况及时地记录到进程控制块中 进程调度程序就是通过PCB变化来准确地掌握系统中所有进程的执行情况和状态特征的 当需要时 从就绪队列中选出一个进程占有CPU 进程调度的功能 2 2 根据进程调度算法分配CPU按照系统规定的调度策略从就绪队列中选择一个进程让其占有CPU执行 并记录相关信息 进程调度依据的算法是与系统的设计目标相一致 对于不同的系统 通常采用不同的调度策略 对于批处理系统常采用短作业的进程优先 以减少各作业的周转时间 对于分时系统 更多地采用时间片轮转 具体算法 下面再具体介绍 进程调度的功能 3 3 从进程收回处理机正在运行的进程 当时间片用完 等待某种资源或者有更高优先级的进程需要处理机 必须交出处理机 进程调度方式和调度时机 根据执行进程的处理机是由进程自己释放 还是被强行剥夺 可以将进程调度方式分为以下两种 非剥夺式 Nonpreemptivemode 不可抢占式剥夺式 Preemptivemode 抢占式 1 非剥夺方式一旦把CPU分配给某一进程后 便让它一直运行下去 直到进程完成或发生某事件而不能运行时 才将CPU分给其它进程 该方式通常用在批处理系统中 主要优点是简单 系统开销小 2 剥夺方式允许调度程序基于某种策略 优先级策略 时间片策略等 剥夺现行进程的CPU给其它进程 该方式通常用在分时系统和实时系统中 以便及时响应各进程的请求 进程调度的时机 是指什么情况下引起进程调度程序工作 现行进程完成或错误终止 现行进程提出I O请求 等待I O完成时 转进程调度 在分时系统 按照时间片轮转 分给进程的时间片用完时 优先级调度时 有更高优先级进程变为就绪时 在进程通讯中 执行中的进程执行了某种原语操作 如P操作 阻塞原语和唤醒原语时 都可能引起进程调度 进程调度的时机 进程调度算法 所采用的进程调度算法是与整个系统的设计目标相一致的 在批处理系统中 系统的设计目标是增加系统吞吐量和提高系统资源的利用率 分时系统则保证每个分时用户能容忍的响应时间 因此 进程调度通常采用如下一些算法 进程调度算法 先来先服务 FCFS 该方法按照进程到达的先后顺序排队 每次调度队首的进程 轮转调度 系统把所有就绪进程按先后次序排队 处理机总是优先分配给就绪队列中的第一个就绪进程 并分配一个固定的时间片 如50毫秒 当该运行进程用完规定的时间片时 被迫释放处理机给下一个处于就绪队列中的第一个进程 分配给这个进程相同的时间片 优先级法 处理机分配给就绪队列中具有最高优先级的就绪进程优先占有法 只要不是自身原因被堵塞 就一直运行优先剥夺法 CPU以剥夺的方式被更高优先级进程占用分级轮转调度 进程之间的并发控制 进程通信 进程的状态是基于一定的原因和条件而变化的 而这些原因和条件又常常是由于进程之间的相互制约关系引起的 系统中诸进程之所以有这种关系 是由两方面原因引起的 1 各并发进程对资源的共享2 系统中存在若干协作进程 1 各并发进程对资源的共享互斥关系 通过共享资源而使进程之间产生的关系叫间接制约关系 又叫互斥关系 可用 进程 资源 进程 来描述 2 系统中存在若干协作进程同步关系 通常 一个用户作业涉及一组并发进程 输入 计算和输出进程 这些进程须相互协作完成这项任务 在运行过程中 这些进程可能要在某些同步点上等待协作者发来信息后才能继续运行 进程之间的这种制约关系叫直接制约关系 又叫同步关系 可用 进程 进程 来描述 进程通信 是指进程的上述相互依赖关系 进程之间的这种相互依赖又相互制约 相互合作又相互竞争的关系 也即进程的同步与互斥关系 互斥是同步的一个特例 进程之间的这种关系就叫进程的低级通信 进程间的互斥 共享资源 慢速的硬件设备 如打印机 磁带机等资源软件资源 如共享变量 共享文件等临界资源 某段时间内只允许一个进程使用的资源 不能进程间共享的资源 硬资源 如打印机 磁带机软资源 内存里的数据结构临界区 就是并发执行的进程访问临界资源的那个必须互斥执行的程序段 1 关中断 解决进程之间互斥的方法 进程AClose INT Critical region Open INT 进程BClose INT Critical region Open INT 解决思想在临界区中防止发生进程调度保证临界区操作的完整性方法分析用户控制系统中断是非常危险的本方法对多个CPU系统将失去作用 2 lock unlock在原语里设置一个公共变量代表临界资源的状态 x 使用临界资源必须做如下三步 1 检查锁的设置2 进入临界区 访问临界区3 释放临界资源 开锁 解决进程之间互斥的方法 进程之间的同步 同步原因 一组进程要合作完成一项任务 例 两个用户进程通过共享缓冲区完成其计算和打印任务 计算进程负责将计算结果送入共享缓冲区 打印进程从缓冲区取数据打印 当缓冲区空时 不允许取数据 满时不允许送数据 否则 将出现错误 计算进程与打印进程这种制约关系 不是由于两个进程同时访问共享缓冲区 而是由于它们访问缓冲区时的速度不匹配造成的 为了使进程同步 需要引入信号量机制 信号量 基本原理 两个或多个进程可以通过简单的信号进行合作 一个进程可以被迫在某一位置停止 直到它接收到一个特定的信号 任何复杂的合作需求通过适当的信号结构得到满足 为此 需要使用一个称作为信号量的特殊变量 以便通过信号量传送信号 信号量是一个数据结构定义如下 structsemaphore intvalue Pointer PCBqueue 整型变量 其值大小表示该资源的可用数量 是等待使用该资源的进程排成队列的队列头指针 对信号量S的操作只允许执行P V操作 其中P V操作由原语组成 执行过程中不可分割 P操作原语P S 1 S S 1 请求一个资源2 IfS 0 goon ifS 0 blocked 申请不成功 资源用完 调用阻塞原语 让权等待 V操作原语V S 1 S S 1 释放一个资源2 IfS 0 goon ifSready goon 表示在信号链表 仍有等待该资源的进程 调用唤醒原语 等待进程数等于信号量的绝对值 显然 P V操作的引入 克服了加锁操作的忙等待现象 有效提高了系统的效率操作系统正是利用信号量的状态对进程和资源进行管理和控制的 从物理意义上理解 P操作相当于申请资源 V操作相当于释放资源 进程间的通信 通讯原语是实现进程间的同步与互斥的一种工具低级通信锁机制 开锁和关锁P V操作和信号量管程高级通信消息缓冲通信 系统设立消息缓冲池 进程发消息时 申请一个缓冲区 并把缓冲区链接到接受进程的消息队列上 信箱通信 每个进程建立一个信箱 可容纳多封信件 死锁 死锁 多个进程竞争资源造成的僵局 在无外力作用下 这些进程将永远不能继续向前推进 谓之死锁死锁原因 资源不足 系统提供的资源不能满足每个进程的使用进程推进顺序不当 在多道程序运行时 进程推进顺序不合法 死锁产生的四个必要条件 互斥条件 对于独占资源 每个资源每次只能给一个进程使用 进程一旦申请到了资源后占为己有 则排斥其他进程享受该资源 不剥夺条件 正在使用的资源不可剥夺 进程获得的资源尚未使用完毕之前 只能由占有者自己释放 不能被其他进程强行占用 请求和保持条件 进程因未分配到新的资源而受阻 但对已占有的资源又 死抱住不放 环路等待条件 存在进程的循环等待链 前一进程占有的资源正是后一进城所需求的资源 结果就形成了循环等待的僵持局面 死锁的预防 破坏其产生的必要条件之一资源独占 静态的方法 破坏第三个死锁条件 请求和保持条件 进程在开始运行之前就必须获得全部资源 资源顺序分配 破坏第四个死锁条件 环路等待 将系统全部资源按类进行全局编号排序 进程对资源的请求必须严格按序号递增顺序进行 资源受控动态分配 动态的死锁防止 银行家算法 但是需要事先知道进程的资源要求 死锁的避免 死锁的避免 银行家算法安全状态按某种顺序并发进程都能达到获得最大资源而顺序完成的序列为安全序列 能找到安全序列的状态为安全状态 死锁的检测 死锁的检测 进程 资源图 检查是否有环路1 资源分配图 首先画出资源分配图 2 死锁定理 根据死锁定理 简化资源分配图若能完全简化则消去所有的边 定理 死锁状态的充分条件 资源分配图不可完全简化 死锁的解除 死锁的解除 剥夺资源 或者撤消进程资源剥夺法还原算法 恢复计算状态建立检查点 恢复到局部检查点撤消进程法问题 撤消哪些进程 进程优先级作业类的外部代价运行代价 存储器管理 存储器管理 操作系统的存储管理机构必须解决以下问题内存分配 多个进程同时在系统中运行 都要占用内存 那么内存空间如何进行合理分配 决定了内存是否能得到充分利用 存储保护 多个进程在系统运行必须保证它们之间不能互相冲突 互相干扰和互相破坏 地址变换 程序是在连续区域中 还是划分成若干块放在不同区域中 使事先划分 还是动态划分 这样就会有多种存储方案 这些都与软件和硬件的地址变换技术及其机制紧密相关 存储共享 多个进程可能共享使用同一系统软件 如编译程序 存放编译程序的内存区即为共享区 存储扩充 这里所指的扩充不是对内部存储器硬件上的扩充 而是指利用存储管理软件为进程提供一个比实际内存更大的存储空间 即所谓的虚拟存储管理技术 存储管理 各种存储管理方案单一用户 连续区 存储管理分区式存储管理 固定式 可变式分区 分页式存储管理分段式存储管理段页式存储管理 相关概念 名字空间 地址 逻辑空间 存储 物理空间静态重定位和动态重定位 名字空间 在用汇编语言或高级语言编写的程序中 是通过符号名来访问子程序和数据的 我们把程序中符号名的集合叫做 名字空间 地址空间 一个应用程序经编译后 通常会形成若干个目标程序 这些目标程序再经过链接而形成可装入程序 这些程序的地址都是从 0 开始的 程序中的其它地址都是相对于起始地址计算的 由这些地址所形成的地址范围称为地址空间 其中的地址叫做相对地址 或逻辑地址 又叫虚地址 存储空间 是指物理存储器中全部物理存储单元的集合所限定的空间 每个存储单元都有它自己的编号地址 该地址被称为绝对地址 或物理地址 或实地址 物理地址可直接寻址存储空间的大小 由系统的硬件配置决定的 一个程序只能从地址空间装入到存储空间后才能运行 地址重定位 把程序地址空间的逻辑地址转换为存储空间的物理地址的工作叫地址重定位 又叫地址映射 或地址变换地址重定位的原因 1 地址空间的逻辑地址往往与分配到的存储空间的物理地址不一致 而且不能用逻辑地址在内存中读取信息 2 而处理机执行用户程序时 所要访问的指令和数据地址必须是实际的物理地址 装入程序 负责把用户程序由地址空间装入到存储空间 地址重定位 静态重定位和动态重定位 静态重定位 静态重定位 地址转换工作是在程序装入内存时 由静态重定位装入程序集中一次完成 特点 无硬件变换机构 为每个程序分配一个连续的存储区 在程序执行期间不能移动 内存利用率低 能做到程序和数据的共享 动态重定位 动态重定位 装入程序把程序和数据原样装入到已分配的存储区中 然后把这个存储区的起始地址送入重定位寄存器中 在程序执行时 再将相对地址转换成绝对地址 优点 内存利用率高 在存储区可移动用户程序 移动后 只要修改重定位寄存器即可 程序不必占有连续的存储空间 便于多用户共享同一程序 连续分配存储管理 单一连续分配 单道程序的内存分配固定分区分配 分区大小固定动态分区分配 分区大小可变 单用户单道程序的存储分配 是一种最简单的存储管理方式通常只能用于单用户 单任务OS中 在这种管理方式下 存储器划分为两部分 一部分是操作系统 另一部分是用户作业 采用静态分配方式 即作业一旦进入内存 就要等到它执行结束后才能释放内存 因此不支持虚拟存储方式 优点 易于管理 缺点 对要求内存空间少的程序 造成内存浪费 程序全部装入 存储器利用差 多用户多道程序的存储分配 分区分配 它把内存划分成若干个分区 除了操作系统占用一个分区之外 其余的每一个分区容纳一个程序 分区分配分为 固定式分区和可变式分区 固定式分区 把内存预先划分成几个大小不等的分区当作业到达时 选择一个适合作业要求的最小空闲分给作业 或当没有可用的空闲分区时 让其在该分区队列中等待 优点 简单缺点 内存利用不充分 因为作业的大小不可能刚好等于某个分区的大小 绝大多数已分配的分区中 都有一部分存储空间被浪费掉了 这个被浪费的空间叫做内碎片 可变式分区 根据作业的大小动态地划分分区 使分区的大小正好等于作业大小各分区的大小是不定的内存中分区数据也是不定的 常用的数据结构 分区说明表 空闲区链表 这些用来记录内存的使用情况 分区说明表分区说明表 已分配区表 未分区说明表当为作业分配内存时 1 首先从未分配区表中找一个足以容纳该作业的空闲区 若这个分区比较大 则一分为二 一部分分配给作业 另一部分仍作为空闲区留在表中 2 再在已分配区表中找一个空表目 填入新分配作业的信息 当作业运行完成撤离系统时 1 回收作业占用区2 将该作业占用的已分配区表目置为空 优点 比较直观 简单 与固定分区相比 没有内碎片缺点 由于内存分区个数不定 所以表格长度的设置不好控制 或者表格不够用或者造成表格浪费 常用的可变分区分配算法 可变分区分配算法最佳适应 BestFit 算法首次 最先 适应 FirstFit 算法最坏适应 WorstFit 算法下次适应 NextFit 算法 分页存储管理 基本思想 工作原理 用户程序划分把用户程序按逻辑页划分成大小相等的部分 称为页 从0开始编制页号 页内地址是相对于0编址逻辑地址用户程序的划分是由系统自动完成的 对用户是透明的 一般 一页的大小为2的整数次幂 因此 地址的高位部分为页号 低位部分为页内地址 内存空间按页的大小划分为大小相等的区域 称为内存块 物理页面 页框 内存分配以页为单位进行分配 并按进程的页数多少来分配 逻辑上相邻的页 物理上不一定相邻 相关表 页表 系统为了能在内存中找到每个页面对应的物理块而为进程建立一张页面映像表 简称页表 一般放在内存 页表作用 实现从页号到物理块号的地址映射 动态地址转换 逻辑 物理地址转换 相对页号P 页内偏移地址D 151090 页表 页表始址寄存器 页表长度 页表始址 8 452 2 452 有效 虚 地址 2500 物理地址 2148 8644 内存空间 LOAD1 2500 12345 缺页处理 用户作业当前页面放在内存其它页面在磁盘上若页表中此页面不在内存 有效位 0 则发生缺页中断 陷入 缺页中断处理程序负责把所需页面从磁盘调入内存 修改页表 特征位和物理块号 快表 用页表地址转换过程中 要存取一个数据或一条指令至少要访问主存两次 把程序的执行速度降低一倍 1 一次访页表 确定所存取的数据或指令的物理地址 2 一次根据该地址存取数据或指令 联想寄存器 快表 为了提高存取速度 可在地址变换机构中增设一个具有并行查找能力的高速缓冲寄存器组 又叫联想寄存器 用来存放页表的一部分 页面交换 淘汰算法 抖动 thrashing 现象 也称为 颠簸 刚被淘汰的页面马上又要用 因而又要把它调入 调入不久再被淘汰 淘汰不久再次装入 如此频繁地调入调出 降低系统的处理效率 可能的原因 淘汰算法问题资源紧张问题 淘汰算法 先进先出 FIFO firstinfirstout 最近最久未使用淘汰算法 LRU leastrecentlyused 最佳 优 算法 OPT optimum 时钟页面置换算法 Second ChanceAlgorithm 最不频繁使用淘汰算法 LFU leastfrequentlyused 分段式存储管理 基本思想 用户程序划分按程序自身的逻辑关系划分为若干个程序段 每个程序段都有一个段名 且由一个段号 段号从0开始 每一段也从0开始编址 段内地址是连续的逻辑地址 段号 段内地址 逻辑化程序的分段形式 子程序段X 0 E P 数据段A 0 116 N 1343 子程序段Y 0 F L 工作区B 0 P S 内存划分内存空间被动态的划分为若干个长度不相同的区域 称为物理段 每个物理段由起始地址和长度确定内存分配以段为单位分配内存 每一个在内存中占据连续空间 内存随机分割 需要多少分配多少 但各段之间可以不连续存放 段表 实现从逻辑地址到物理地址的变换 系统为每个进程建立一个段表 段表项 段号 段长和该段在内存的始址 段表始址寄存器 记录进程的段表在内存的始址和段表长度 当访问某段时 其逻辑地址 S W 中的段号S先与段表始址寄存器的段表长度相比较 若S 段表长度 则产生段号越界中断 停止作业运行 否则将段号S与段表始址寄存器的段表始址相加 形成访问段表的内存地址 段表始址寄存器 段表始址 段表长度 2 100 段号S 位移量W 越界中断 段号 段长 始址 0 1 2 3 1k 600 500 200 6k 4k 8k 9200 8292 主存 物理地址 逻辑地址 段表 段式动态地址变换过程 8k 500 100 8k 100 段式与页式管理的比较 1 段是信息的逻辑单位 它是根据用户的需要划分的 因此段对用户是可见的 便于存储保护和信息的共享 页是信息的物理单位 是为了管理内存的方便而划分的 对用户是透明的 页的保护和共享受到限制 2 页的大小固定不变 由系统决定 段的大小是不固定的 它由其完成的功能决定 段式与页式管理的比较 2 3 段式向用户提供的是二维地址空间 页式向用户提供的是一维地址空间 4 段式管理与分区管理一样可能产生主存碎片 而页式管理则很好地消除了碎片 5 段式与页式一样 都需要在作业运行前 全部信息装内存 存储器利用不够充分 6 段式与页式一样 为实现地址变换 处理机要花费较大的开销 为实现管理要提供更多的表格 段页式存储管理 产生背景结合页式段式优点 克服二者的缺点基本思想用户程序划分 按段式划分 对用户来讲 按段的逻辑关系进行划分 对系统讲 按页划分每一段 逻辑地址 内存划分 按页式存储管理方案内存分配 以页为单位进行分配 段号 s 页号 p 页内地址 w 段内地址 段表 记录了每一段的页表始址和页表长度页表 记录了逻辑页号与内存块号的对应关系 每一段有一个 一个程序可能有多个页表 段表寄存器 记录进程的段表在内存的始址和段表长度 段页式地址结构的地址转换 段表的内容是页表的起始地址和页表长度 段表大小 段表始址 段表寄存器 段0的页表 段1的页表 内存空间 段号 s 段内页号 p 页内地址 w 段页式地址结构的组成 在段页式系统中 访问内存中的一条指令或数据 至少需访内三次 1 第一次访问段表 得到页表起始地址 2 第二次访问页表 得到内存页面号 3 第三次将内存页面号与页内地址组成 得到内存地址 这样 虽然增加了硬件成本和系统开销 但在方便用户和提高存储利用率上很好的实现了存储管理的目标 文件管理 相关概念 文件 是指具有符号名的数据信息的集合文件名 就是文件的符号名文件系统 操作系统中统一管理信息资源的一种软件 管理文件的存储 检索 更新 提供安全可靠的共享和保护手段 并且方便用户使用目录 文件系统层次结构的一个非终结节点 一个目录通常包含有许多目录项 每个目录项可以是一个文件或目录 而文件是文件系统层次结构的一个终结节点 即在文件下不可能再包含文件或目录 文件的分类 按文件用途分类系统文件 有关操作系统及有关系统所组成文件库文件 标准子程序及常用应用程序组成文件 允许用户使用但不能修改用户文件 用户的程序代码 数据按文件中的数据分类源文件 源代码 数据文件相对地址目标文件 编译 compile 等产生逻辑地址 需要重定位可执行程序文件 相对地址目标文件相互链接 link 生成的可执行文件 逻辑 绝对地址 文件的逻辑结构 顺序结构的定长记录顺序结构的变长记录带关键字的记录 128 顺序结构的变长记录 带关键字的记录 顺序 索引存取 索引存取 顺序结构的定长记录 顺序 直接存取 无结构的字节流式文件 有结构的记录式文件 文件的物理结构 顺序结构 连续结构 将一个文件中逻辑上连续的信息存放到若干连续的物理块中 这类文件叫连续文件 又称顺序文件链接 串联结构 链表结构 随机结构中 文件存放在直接存取型存储设备上 例如磁盘随机结构 索引结构 散列结构 文件存储空间管理 空白文件目录空白块链位示图 文件目录结构 一级目录结构二级目录结构 主文件目录 用户名 用户目录的存储位置 用户文件目录 用户文件的文件控制块信息 多级目录结构 是二级目录的层次关系的扩充 文件共享和文件保护 基于索引节点的共享 硬链接 新文件中只包含被链接共享的文件的路径名 符号链接 符号链实际上是一个文件 非常简单而且配置有自己的索引节点文件保护 访问控制矩阵 访问控制表 用户权限表 口令保护和密码保护 文件系统的内部实现 虚拟文件系统索引节点 VFSinode虚拟文件系统超级块 VFSsuperblock外存文件系统索引节点 inode 文件 目录 设备存在的标志外存超级块 superblock 整个文件系统相关的管理信息 设备管理 主要内容 概述I O硬件硬件分类设备控制器 通道 DMAI O软件设备控制方式设备驱动程序I O控制 设备的分类 按照设备的从属关系分类 系统设备 用户设备按照资源分配角度分类 独占设备 共享设备 虚拟设备信息交换单位分类 块设备和字符设备 I O设备硬件组成 I O设备的硬件结构机械部分 物理装置 设备本身 是接收模拟信号的各种机械装置电子部分 电子装置 又叫设备控制器 适配器完成设备与主机的连接和通信 设备控制器 是CPU与I O设备的接口分成两大类用于控制字符设备的控制器用于控制块设备的控制器在小型和微型机中 它常采用印刷电路卡插入计算机主板上的总线插槽 设备控制器功能 按照主机与设备之间约定的格式和过程接收计算机发来的数据和控制信号向主机发送数据和状态信号将计算机的数字信号转换成机械部分能识别的模拟信号 或反之实现设备内部硬件缓冲 数据加工等提高性能或增强功能 端口 地址译码 实现对I O地址空间的正确映射 设备控制器的组成 设备控制器与处理机接口三类信号线 数据线 地址线和控制线寄存器 数据寄存器 控制 状态寄存器设备控制器与设备接口一个设备连接一台设备每个接口中含有数据 地址 控制信号 控制器的I O逻辑根据处理机发的地址信号选择设备接口I O逻辑通过一组控制线与处理机交互处理机利用它向控制器发送I O命令 I O逻辑对收到的命令进行译码 通道 早期 外部设备的输入 输出是在CPU的直接控制下 I O设备和CPU之间只能采用串行方式工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货运站场转型升级规划设计方案(范文模板)
- 河南省濮阳市、许昌市两地2022-2023学年高一上学期期末语文 含解析
- 河北师范大学汇华学院《模拟系统集成》2023-2024学年第二学期期末试卷
- 西京学院《电力系统稳态分析》2023-2024学年第二学期期末试卷
- 山东服装职业学院《工程制图与识图》2023-2024学年第二学期期末试卷
- 武汉工程职业技术学院《建设项目管理软件及应用》2023-2024学年第二学期期末试卷
- 长春健康职业学院《阅读教学论》2023-2024学年第二学期期末试卷
- 文华学院《Python与数据分析》2023-2024学年第二学期期末试卷
- 吉林电子信息职业技术学院《国际商务谈判》2023-2024学年第二学期期末试卷
- 广西培贤国际职业学院《犯罪学与刑事政策专题研究》2023-2024学年第二学期期末试卷
- 2024年中考第三次模拟考试题:地理(广东广州卷)(解析版)
- 数字华容道+课时2
- 2024-2030年中国南美白对虾养殖市场规模分析及发展风险研究报告权威版
- 定期清洗消毒空调及通风设施规章制度
- 2024年21起典型火灾案例及消防安全知识专题培训(消防月)
- 消防操作员劳动合同模板
- 肩颈刮痧活动方案
- 中科曙光公司在线测评题
- 人教版小学数学五年级上册课件:7.1扇形统计图的认识
- 2024年江苏省中考化学试卷八套合卷附答案
- 《跨境电商视觉设计》高职 全套教学课件
评论
0/150
提交评论