软件技术基础处理器管理PPT课件_第1页
软件技术基础处理器管理PPT课件_第2页
软件技术基础处理器管理PPT课件_第3页
软件技术基础处理器管理PPT课件_第4页
软件技术基础处理器管理PPT课件_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NO 1 第四章操作系统 4 2处理器管理 一 基本概念与术语 在多道程序系统中 处理器数小于程序数 于是处理器就在各程序间进行切换 因此在一个处理器上要交叉运行若干道程序 处理器管理就是要解决用户递交的作业何时调入内存 在调入内存的各个作业程序间如何分配处理器 以达到各道程序能协调一致运行 而系统资源又能得到最大程度的利用 基本概念与术语 作业和进程 特权指令 处理器状态 处理器管理 NO 2 第四章操作系统 4 2处理器管理 作业和进程 作业 作业步作业是用户在一次算题过程中或一个事务处理中要求计算机系统所作工作的集合 一个作业由一系列的作业步组成 一个作业步运行的结果产生下一个作业步所需的文件 例如一个C语言程序要经历编辑 编译 连接 运行四个作业步 NO 3 第四章操作系统 4 2处理器管理 进程和程序在多道程序系统中 多道程序并发运行 为了竞争有限的资源 相互间存在依赖与制约关系 它们在系统中的状态是不断变化的 即时而运行 时而停顿 因此引入新的概念 进程 一旦操作系统接受了某用户的作业 并把它调入内存执行 系统就为此作业创建一个或多个进程 因此进程可以看成是程序的一次执行 即是在指定内存区域中的一组指令序列的执行过程 多个进程可以并发进行 并可能由于各种原因随时中断 NO 4 第四章操作系统 4 2处理器管理 从对进程的描述来看 进程既与程序有关 又与程序不同 它们的区别是 进程是程序的执行 因此属于动态的概念 而程序是一组指令的集合 属于静态的概念 进程既然是程序的执行 因此它是有生命过程的 进程有诞生 创建进程 和死亡 撤消进程 应此进程的存在是暂时的 而程序的存在是永久的 NO 5 第四章操作系统 4 2处理器管理 特权指令 处理器状态每个处理器都有自己的指令系统 在多道程序环境中为了保证系统正常工作 将指令系统中的指令分为两类 1 特权指令 只能由操作系统使用 2 非特权指令 供一般用户使用 对应两种不同的指令 处理器有两种执行状态 管态 又称主态 执行状态 此时处理器执行特权指令 目态 又称算态 题目状态 此时处理器处于用户执行状态 NO 6 第四章操作系统 4 2处理器管理 从Intel80386开始 出于安全性和稳定性的考虑 该系列的CPU可以运行于ring0 0级环 至ring3 3级环 从高到低四个不同的权限级 对数据也提供相应的四个保护级别 运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据 只有ring0层的代码才可以对物理硬件直接进行访问 NO 7 第四章操作系统 4 2处理器管理 处理器管理在大型通用系统中 可能有数百个作业等待处理 处理器管理又称处理器调度 就是解决如何从这些作业中挑选一些进入主存运行 又如何在主存各进程间分配处理器 它一般分为两级 作业调度 又称高级调度或宏观调度 它的主要功能是按照某种调度原则 选取某些作业进入内存 为它们分配必要的资源 建立相应的进程 并当作业完成后做好一切善后工作 进程调度 又称低级调度或微观调度 它的主要功能是按照某种调度原则 实现处理器在各进程间的转换 NO 8 第四章操作系统 4 2处理器管理 二 作业调度 1 作业状态转换及作业控制块一个作业从进入系统到运行结束 一般要经历以下四种状态 提交 收容 执行 完成 NO 9 第四章操作系统 4 2处理器管理 提交状态 用户向机房提交作业或通过终端键盘将作业输入 其作业所处的状态为提交状态 收容状态 作业的全部信息已经输入外存等待运行 又称为后备状态 NO 10 第四章操作系统 4 2处理器管理 执行状态 作业被作业调度程序选中进入内存 称为执行状态 完成状态 作业执行完毕 释放其占用的全部资源 准备退出系统 NO 11 第四章操作系统 4 2处理器管理 为了管理和调度作业 系统为每个作业建立一个作业控制块 JCB JobControlBlock 是作业存在的标志 它详细记录每个作业的有关信息 不同系统的JCB不完全相同 取决于系统对作业调度的要求 主要有 作业名 用户作业的名称 状态 输入 收容 执行 优先数 根据作业的重要程度 由系统或用户确定 运行时间 用户根据经验估计完成本作业所需时间 位置 本作业在外存中的起始地址 NO 12 第四章操作系统 4 2处理器管理 长度 作业的地址空间 外设申请 作业运行时要求的外部设备 所有的JCB可按作业的优先数大小或作业到达系统的时间顺序构成一个作业队列 如下图所示 作业控制块与作业队列 NO 13 第四章操作系统 4 2处理器管理 2 作业调度的功能按照某种调度算法 从所有处于后备状态的作业队列中挑选作业进入主存 调用存储管理和设备管理程序 为被选中的作业分配内存和外设 做好运行前的准备为选中的作业建立相应的进程 作业运行完毕时回收该作业占用的资源 输出必要的信息 撤消该作业的JCB与相应的进程 NO 14 第四章操作系统 4 2处理器管理 3 作业调度算法调度算法的考虑因素很多 但这些因素应和主观上的目标一致 通常调度算法应达到的目标为 运行尽可能多的作业使处理器保持忙碌状态使I O设备得到充分利用对所有作业公平合理上述这些目标往往存在冲突 要想同时满足是不可能的 只能根据需要兼顾某些目标 NO 15 第四章操作系统 4 2处理器管理 考虑的因素越多 算法就越复杂 从而增加系统的开销 对资源的利用反而不利 因此 大多数操作系统往往采用比较简单的调度算法 下面介绍几种常用的作业调度算法 先来先服务算法 这是一种最简单的调度算法 它按作业录入的先后次序建成进行调度 这种算法优先考虑等待时间最长的作业 忽视它要求运行时间的长短 效率低 对短作业不利 容易被大作业垄断 短作业优先调度算法 以每个作业JCB中提供的运行时间为依据 总是选取运行时间最短的作业 对短作业有利 但可能使长作业得不到运行的机会 NO 16 第四章操作系统 4 2处理器管理 响应比高者优先 是介于先来先服务和短作业优先算法之间的一种折中算法 兼顾了运行时间短和等待时间长的作业 响应比 作业响应时间 估计运行时间 1 作业等待时间 作业估计运行时间计算后备作业队列中每个作业的响应比 然后挑选响应比最高的投入运行 它实际上优先考虑短作业 但也兼顾等待时间长的作业 NO 17 第四章操作系统 4 2处理器管理 优先数调度算法 选取优先数最高作业首先运行 优先数的确定可由用户指定 也可根据作业运行时间的长短和对资源要求的多少来规定 如 每当作业调度程序挑选作业时 要遍访后备队列 为每个作业算出一个优先数 然后根据优先数大小挑选作业 NO 18 第四章操作系统 4 2处理器管理 例题1 在多道操作系统控制下 作业反复运行多次 它的运行时间都相同吗 例题2 现有2道作业同时执行 一道以计算为主 另一道以输入输出为主 怎样赋予作业进程占有处理器的优先级 使作业作业的平均周转周期最短 作业周转时间 作业完成时刻 作业递交时刻 作业运行时间 作业等待时间 NO 19 第四章操作系统 4 2处理器管理 例题3 有5个批处理作业 A B C D E 几乎同时到达一个计算中心 估计运行的时间分别为2 4 6 8 10分钟 它们的优先数分别为1 2 3 4 5 对下面的每种调度算法 分别计算作业的平均周转时间 1 最高优先级优先 2 时间片轮转 时间片为2分钟 3 FIFO 作业到达的顺序为C D B E A 4 短作业优先 NO 20 第四章操作系统 4 2处理器管理 a 优先级调度算法 NO 21 第四章操作系统 4 2处理器管理 b 时间片轮转法调度 NO 22 第四章操作系统 4 2处理器管理 c 先来先服务法调度 NO 23 第四章操作系统 4 2处理器管理 d 短作业优先法调度 NO 24 第四章操作系统 4 2处理器管理 三 进程调度 当作业管理程序将在用户作业调入内存后 作业即以进程形式出现 进程数目总是大于CPU数目 各进程必将为争夺CPU而竞争 得到CPU的运行 得不到的只有等待 在内存中的多个进程具有不同的状态 他们随着系统运行而不断改变 进程调度的任务就是控制 协调各进程对CPU的竞争 按照一定的调度算法 使某一就绪进程得到CPU 转换成运行状态 进程是系统并发活动的体现 用动态的观点看 操作系统是进程的动态和并发执行 进程并发执行 在一定时间内系统内2个或2个以上的进程同时处于开始运行但尚未结束的状态 并且次序不是事先确定的 NO 25 第四章操作系统 4 2处理器管理 1 进程的定义 进程有很多各式各样的定义 如 程序在处理机上的运行进程是这样的计算部分 它可以与别的进程并行运行在自身的虚拟地址空间运行的一个单独的程序 一个具有一定独立功能的程序关于某个数据集合的一次运行活动 进程既和程序有关 又与程序不同 NO 26 第四章操作系统 4 2处理器管理 原来程序的概念已经难以刻画和反映系统中的情况 程序概念反映不了动态性 系统中的程序实际上是处于不断变化的状态 程序反映不了系统中的并行特性 运行于不同的集合上 将属于不同的进程 进程的特征 动态性 进程是程序的执行 进程有生命过程 是短暂的 并发性 多个进程可同存于内存中 能在一段时间内同时运行 独立性 独立运行的基本单位 独立获得资源和调度的基本单位 完成某个功能的指令的集合 NO 27 第四章操作系统 4 2处理器管理 异步性 各进程按各自独立的不可预知的速度向前推进进程的组成包括程序和数据 以及进程控制块 一个程序可对应多个进程 一个进程可包含多个程序 调用其他程序 共同组成一个 运行的活动 2 进程的状态转换进程有三种基本状态 就绪 运行 阻塞进程在生命消亡前处于且仅处于三种基本状态之一 并且在单处理器系统中 任何时刻只有一个进程处于运行状态 其他进程分别处于就绪和阻塞状态 不同操作系统设置的进程状态数目不同 NO 28 第四章操作系统 4 2处理器管理 1 就绪状态 进程已具备各种必要的资源 只等待获得CPU 得到CPU即可运行 2 运行状态 系统根据调度算法 将CPU分配给某一个就绪进程使之运行 该进程就处于运行状态 当运行的进程由于分配的CPU时间已到或是由于I O要求 则必须交出CPU就转入就绪或阻塞状态 3 阻塞 等待 状态 进程在运行中由于要等待I O设备或发生其它错误时 就转入阻塞状态 待到阻塞原因消除后 重新回到就绪状态 即使CPU空闲 它也不能运行 进程的三种基本状态 NO 29 进程各状态之间转换的示意图 状态变化 就绪状态 运行状态运行状态 就绪状态运行状态 阻塞状态阻塞状态 就绪状态 等待 运行就绪 等待 不具有下列转换 NO 30 第四章操作系统 4 2处理器管理 引起进程状态转换的原因 1 CPU调度 从就绪队列中调度一个进程到CPU上运行 该进程就从就绪状态变为运行状态 与此同时 原运行进程从运行状态变为就绪状态2 进程在运行过程中需要等待某一事件 如等待分配某一资源 等待IO操作完成等 这时进程主动推出CPU 并使自己处于阻塞状态3 进程所等待的事件发生了变化 如I O完成了 进程就解除阻塞状态 变为就绪状态4 任何一个指定时刻必须且只能处于一种状态 NO 31 五状态进程模型 新状态 一个进程刚刚建立 但尚未将其送入就绪队列时的状态 终止状态 一个进程已经正常或异常结束 OS已将它从就绪队列移出 但尚未撤销 NO 32 第四章操作系统 4 2处理器管理 3 进程控制块 PCB 为了刻画进程的动态变化 通常把进程表示为由程序段 私有数据块和进程控制块组成 程序部分描述进程本身所要完成的功能 而 私有数据块 是接受程序规定操作的一组存储单元的内容 是操作的对象 为了描述一个进程和其它进程以及系统资源的关系 以及一个进程在各个不同时期所处的状态 采用了一个与进程相联系的数据块 称为进程控制块 PCB 系统利用PCB来控制和管理进程 所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的 NO 33 第四章操作系统 4 2处理器管理 PCB中的内容 进程描述信息 进程标识符 processID 唯一 通常是一个整数 进程名 通常基于可执行文件名 不唯一 用户标识符 userID 进程组关系进程控制信息 当前状态 优先级 priority 代码执行入口地址 程序的外存地址 运行统计信息 执行时间 页面调度 NO 34 第四章操作系统 4 2处理器管理 进程的队列指针 进程的消息队列指针所拥有的资源和使用情况 虚拟地址空间的现状 打开文件列表CPU现场保护信息 寄存器值 通用 程序计数器PC 状态PSW 地址包括栈指针 指向赋予该进程的段 页表的指针 NO 35 第四章操作系统 4 2处理器管理 PCB表的组织方式 1 索引方式 有着相同状态的进程的PCB组织在一个表格中 就绪 运行 等待进程表 系统中有一些固定单元分别指出各表的起始地址 NO 36 第四章操作系统 4 2处理器管理 2 队列方式 把具有相同状态的所有进程的PCB按优先数排成一个或多个 每个优先级一个 队列采集队列形式时 每个进程的PCB中要增加一个链指针的表目项 以指向队列的下一个进程的PCB地址 NO 37 第四章操作系统 4 2处理器管理 PCB的主要作用 记录进程的有关信息标识信息 状态信息 调度信息 通讯信息 已占用资源信息 标志进程的存在操作系统根据系统中是否存在进程的PCB来知道该进程存在与否 PCB是进程存在的具体物理标志和体现 是进程调度的主要数据基 NO 38 第四章操作系统 4 2处理器管理 OS根据PCB来对并发执行的进程 进行控制和管理 调度前 要从各进程的PCB中知道现行的状态及优先级 调度时 根据PCB中保存的CPU状态信息恢复现场 并根据指令和数据的内存地址 找到程序和数据 进程执行过程中 当需要与其他进程同步 通信时 也需要访问PCB 当进程因某种原因暂停执行时 需要保存CPU环境 NO 39 第四章操作系统 Linux中的PCB 在linux中每一个进程都由structtask struct数据结构来定义 这就是通常所说的PCB 它相当大 usr src linux 2 4 include linux sched h pid tpid 进程IDvolatilelongstate 进程状态unsignedlongpolicy 调度策略 FIFO roundrobin intprio 进程优先级structthread structthread CPU寄存器状态信息structtask struct next task prev task 构成一循环的双向链表 通过它可以遍历执行所有的现存进程 有关详细 参考UnderstandingLinuxKernel byrtsys pdf NO 40 第四章操作系统 Linux中进程信息察看 UID进程属主的用户ID号 PID进程ID号 PPID父进程的ID号 C进程最近使用CPU的估算 STIME进程开始时间 以 小时 分 秒 的形式给出 TTY该进程建立时所对应的终端 表示该进程不占用终端 TIME报告进程累计使用的CPU时间 CMD是command 命令 的缩写 往往表示进程所对应的命令名 NO 41 第四章操作系统 4 2处理器管理 进程控制对系统中全部进程实施有效的管理 即它应具有创建进程 撤消进程 改变进程状态的功能 进程控制一般有原语来实现 在树型结构系统中 一个进程能够创建一个或多个进程 前者称为父进程 后者称为子进程 这样就形成了一个进程家族 如下图所示 NO 42 第四章操作系统 4 2处理器管理 原语是机器指令的延伸 由若干条机器指令构成 用以完成某一特定功能的程序段 它与一般过程的区别在于 它们是属于 原子操作atomicopertation 即一个操作中的所有动作 要么全做 要么全不做 原语在执行期间是不允许被中断的 常用的进程控制原语 创建原语 终止原语 阻塞原语 唤醒原语 NO 43 第四章操作系统 4 2处理器管理 创建进程原语1 申请空白PCB 为新进程分配唯一的标识符 并从PCB集合中索取一空白的PCB2 为新进程分配资源 如内存3 初始化进程控制块 a 初始化标识符信息 将系统分配的标识符 父进程标识符填入新的PCB b 初始化处理器状态信息 使程序计数器指向程序入口地址 栈指针指向栈顶c 初始化处理器控制信息 设置进程状态和优先级4 设置对应的链接 如把新进程加到就绪队列的链表中 NO 44 第四章操作系统 4 2处理器管理 终止进程原语1 根据被终止进程的标识符 从PCB集合中检索出该进程的PCB 从中读出该进程的状态2 回收进程所占的全部资源3 递归删除其所有子进程 以妨它们成为不可控4 删除PCB5 若删除的是正在运行的进程 则请求重新调度 NO 45 第四章操作系统 4 2处理器管理 进程的阻塞与唤醒阻塞 正在执行的进程 当所期待的某一事件尚未出现时 该进程便通过调用阻塞原语 block 将自己阻塞 并插入到具有相同事件的阻塞队列 进程阻塞是进程的自身的一种主动行为 唤醒 当被阻塞进程所期待的事件出现时 如I O操作完成 则由合作进程调用唤醒原语 wakeup 将其唤醒 处于阻塞状态的进程是绝不可能叫醒它自己的 NO 46 第四章操作系统 4 2处理器管理 5 线程的引入进程的两个基本属性 进程是一个可拥有资源的基本单位 进程同时又是一个可独立调度和分派的基本单位 进程作为一个资源拥有者 在创建 撤消 切换中 系统必须为之付出较大时空开销 1 创建进程 系统在创建进程时 必须为之分配其所必需的 除处理机以外的所有资源 如内存空间 I O设备以及建立相应的PCB结构 NO 47 第四章操作系统 4 2处理器管理 2 撤消进程 系统在撤消进程时 又必须先对这些资源进行回收操作 然后再撤消PCB结构 3 进程切换 在对进程进行切换时 由于要保留当前进程的CPU环境和设置新选中进程的CPU环境 为此需花费不少处理机时间 由此可见 由于在进程的创建 撤销 切换中 系统必须为之付出较大的时空开销 导致了系统中进程的数量不宜过多 进程切换的频率不宜过高 但这也就限制了并发程度的进一步提高 NO 48 第四章操作系统 4 2处理器管理 为解决此问题 人们想到将进程的上述两个属性分开 即对作为调度和分派的基本单位 不同时作为独立分配资源的单位 对拥有资源的单位 不对之进行频繁切换 线程因而产生 在引入线程的OS中 线程是进程中的一个实体 是被系统独立调度和分派的基本单位 线程自己基本不拥有系统资源 只拥有少量必不可少的资源 程序计数器 一组寄存器 栈 NO 49 第四章操作系统 4 2处理器管理 线程可与同属一个进程的其它线程共享进程所拥有的全部资源 一个线程可以创建和撤消另一个线程 同一进程中的多个线程之间可以并发执行 由于线程之间的相互制约 导致了线程在运行过程中也呈现间断性 相应的 线程也同样有就绪 阻塞 执行三种基本状态 NO 50 第四章操作系统 4 2处理器管理 线程与进程的比较 1 调度 在传统的操作系统中 拥有资源的基本单位和独立调度 分派的基本单位都是进程 在引入线程的系统中 线程是调度和分派的基本单位 而进程是拥有资源的基本单位 在同一个进程内线程切换不会产生进程切换 由一个进程内的线程切换到另一个进程内的线程时 将会引起进程切换 2 并发性在引入线程的操作系统中 不仅进程之间可以并发执行 而且在一个进程中的多个线程之间亦可并发执行 因而使操作系统具有更好的并发性 从而能更有效地使用系统资源和提高系统吞吐量 NO 51 第四章操作系统 4 2处理器管理 3 拥有资源 不论是传统的操作系统 还是设有线程的操作系统 进程都是拥有资源的一个独立单位 线程一般不拥有系统资源 但它可以访问隶属进程的资源 即一个进程的所有资源可供进程内的所有线程共享 4 系统开销 进程的创建和撤消的开销要远大于线程创建和撤消的开销 进程切换时 当前进程的CPU环境要保存 新进程的CPU环境要设置 线程切换时只须保存和设置少量寄存器 并不涉及存储管理方面的操作 可见 进程切换的开销远大于线程切换的开销 同一进程内的各线程由于它们拥有相同的地址空间 它们之间的同步和通信的实现也变得比较容易 NO 52 第四章操作系统 4 2处理器管理 6 进程调度算法由于进程数多于处理器 它们必然竞争处理器 进程调度就是按一定策略 动态地把处理机分配给就绪队列中的某个进程 主要是协调进程对CPU的争夺使用 进程调度与作业调度有相似之处 不过进程调度仅负责CPU分配 而作业调度要负责CPU之外的资源 进程调度算法有些和作业调度相似 NO 53 第四章操作系统 4 2处理器管理 1 先来先服务调度算法在进程调度中 采用FIFO算法调度时 每次从就绪队列中 选择一个最先进入该队列的进程 把处理器分配给它 使之运行 该进程一直运行到完成或发生某事件阻塞时 才放弃CPU 属于不可抢先策略 目前已经很少采用 但常被结合在其他调度策略中 如对于具有相同优先级的进程 可使用先来先服务的原则 NO 54 第四章操作系统 4 2处理器管理 2 优先级调度算法按进程的优先级大小来调度 使高优先级进程得到优先处理 进程的优先级由系统按一定的原则赋给 在实际系统中 通常采用动态优先数策略 即一个进程的优先级不是固定的 而是随许多因素的变化而变化 如进程的等待时间 已使用的处理器时间或其他资源的使用情况等 优先级策略 非抢占的优先级调度法 一旦某个进程在运行 高优先级进程无法抢占 可抢先优先级调度算法 任何时刻都严格按照高优先级进程在处理器上运行的原则进行进程的调度 高优先级进程可以抢先于低优先级进程 NO 55 第四章操作系统 4 2处理器管理 3 时间片轮转算法进程就绪队列按进程到达的时间来排序 也就是按照先来先服务原则 但进程每次只占有一个时间片 完了必须释放重新排队等待运行 此算法对时间片大小的选择十分重要 太大退化为先来先服务 太小增大系统开销 选择时要考虑下面几个因素 1 系统对响应时间的要求2 就绪队列中进程的数目3 系统的处理能力 NO 56 第四章操作系统 4 2处理器管理 4 多级反馈队列调度算法 在轮转法中 加入到就绪队列的进程有如下3种情况 1 分配它的时间片用完 但进程还未完成 就回到就绪队列的末尾等待下一次调度去继续执行 2 分配给该进程的时间片未用完 只是等待IO或由于进程的互斥与同步关系而被阻塞 当阻塞解除后就回到就绪队列 3 新创建的进程进入就绪队列 如果对这些进程区别对待 给予不同的优先级和时间片 可提高系统资源的利用率 NO 57 第四章操作系统 4 2处理器管理 调度方法 可以将就绪队列分为N级 每个就绪队列分配给不同的时间片 优先级高的为第一级队列 时间片最小 随着队列级别的降低 时间片加大 各队列按照先进先出调度算法 当一个新进程就绪后进入第一级队列 如果进程由于等待而放弃CPU后 进入等待队列 一旦等待的事件发生 则回到原来的就绪队列 NO 58 第四章操作系统 4 2处理器管理 当有一个优先级更高的进程就绪时 可以抢占CPU 被抢占进程回到原来一级就绪队列的末尾 当第一级队列空时 才去调度第二级队列 依此类推 当时间片到后 进程放弃CPU 回到下一级队列 多级反馈队列调度与优先级法在原理上的区别一个进程在它执行结束之前 可能需要反复多次通过反馈循环执行 而不是优先级中的一次执行 NO 59 第四章操作系统 4 2处理器管理 课本上的几点说明 照顾IO型进程是宗旨 目的在于充分利用外设以及对用户交互及时响应 此外 第1级队列的时间片应大于大多数IO型进程产生一个IO请求所需时间 CPU型会降低到低级别的队列 但也得到了较大的时间片 从而减少了进程间转接的次数 有些CPU型进程 偶尔产生一次IO请求 但完成后仍旧需要很长的处理器等待时间 为减少进程的调度次数 就让其回到原来所在队列 而不是从高级队列逐渐下降 NO 60 第四章操作系统 4 2处理器管理 7 多道程序并发运行出现的问题 进程的同步与互斥 1 同步与互斥现象 同步 是指系统中多个进程中发生的事件存在某种时序上的关系 需要相互合作 共同完成一项任务 具体说 一个进程运行到某一点时要求另一伙伴进程为它提供消息 在未获得消息之前 该进程处于等待状态 获得消息后被唤醒进入就绪状态 例 司机与售票员的配合 NO 61 第四章操作系统 4 2处理器管理 售票员关门后司机才能启动车辆 司机停车后售票员才能开门 司机和售票员的行动需要一定的协调 同样 二个进程之间有时也有这样的依赖关系 必须要有一定的同步机制保证它们的执行次序 NO 62 第四章操作系统 4 2处理器管理 互斥 当各进程要求共享资源 而有些资源需要互斥使用 因此各进程间竞争这些资源 进程的这种关系为进程的互斥 例如 二个不同的进程同时要求使用打印机 如果不加以控制 打印出的就是不同内容的夹杂 又例如 有两个进程P1 P2都对公共变量count作加1操作P1 R1 count P2 R2 count P1 R1 R1 1 count R1 P2 R2 R2 1 count R2 Count中只增加1 NO 63 第四章操作系统 4 2处理器管理 NO 64 第四章操作系统 4 2处理器管理 临界资源 一次只允许一个进程使用的资源 临界资源可能是硬件 也可能是软件 变量 数据 表格 队列等 临界区 指一个程序片段的集合 这些程序片段分散在不同的进程中 对某个共享的数据结构 共享资源 进行操作 在进程中涉及临界资源的程序段叫临界区 注 临界区是对某一临界资源而言的 对于不同临界资源的临界区 它们之间不存在互斥 如有程序段A B是关于变量X的临界区 而C D是关于变量Y的临界区 那么 A B之间需要互斥执行 C D之间也要互斥执行 而A与C B与D之间不用互斥执行 NO 65 第四章操作系统 4 2处理器管理 使用临界区的时候必须遵循以下原则 有空让进 当无进程在临界区 任何有权使用临界资源的进程可进入等待 不允许二个及以上的进程同时进入临界区多中择一 当同时有多个进程要求进入临界区时 只能让其中之一进入临界区 其他进程等待 NO 66 第四章操作系统 4 2处理器管理 2解决进程同步与互斥的工具 解决同步与互斥的工具有很多 可以由硬件或软件实现 下面介绍一种用同步原语对某信号量进行操作以实现同步与互斥的方法 通常称为P V操作 1965年 由荷兰学者迪科斯彻 Dijkstra 提出 所以P V分别是荷兰语的test proberen 和increment verhogen 一种卓有成效的进程同步机制 最初提出的是二元信号量 互斥 推广到一般信号量 多值 同步 P V操作是原语 NO 67 第四章操作系统 4 2处理器管理 信号量 semaphore 是表示资源的物理实体 它只能被二个标准的同步原语 P V操作 所访问 操作系统利用它的状态对进程和资源进行管理 P操作P s s s 1if s 0 status q blocked 将进程q置为 阻塞 Insert Q q 将q插入阻塞队列Q中 5 return NO 68 第四章操作系统 4 2处理器管理 P操作P s s s 1if s 0 status q blocked 将进程q置为 阻塞 Insert Q q 将q插入阻塞队列Q中 5 return 当s 0时信号灯数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论