操作系统进程管理ppt课件.ppt_第1页
操作系统进程管理ppt课件.ppt_第2页
操作系统进程管理ppt课件.ppt_第3页
操作系统进程管理ppt课件.ppt_第4页
操作系统进程管理ppt课件.ppt_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

第三章进程管理ProcessManagement 1 处理机管理是操作系统的基本管理功能之一 它所关心的是处理机的分配问题 也就是说把CPU 中央处理机 的使用权分给某个程序 通常把正准备进入内存的程序称为作业 当这个作业进入内存后我们把它称为进程 处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配 常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容 进程管理的主要功能是把处理机分配给进程以及协调各个进程之间的相互关系 它是由进程调度程序和进程控制 控制进程状态转换 程序这两部分内容组成的 2 提纲 经典的同步问题 四 进程的概念 一 进程的控制 二 进程的同步 三 3 目录 进程的基本概念进程控制进程同步经典进程同步问题管程机制进程通信线程 4 进程的概念 5 1 进程的引入 1前趋图的定义 1前趋图的定义 1前趋图的定义 1 1前趋图的定义 6 1 1前趋图的定义 前趋图是一个有向无循环图 DAG 结点表示一条语句 一个程序段或进程 结点间的有向边则表示在两结点间存在的偏序或前趋关系 前趋 后继 初始结点 终止结点 重量 注 在前趋图中必不能存在循环 Fig2 2前趋图示例 7 1 2程序的顺序执行 顺序是指程序执行时 仅当前一操作完成后 才能执行后继操作 特点 顺序性封闭性 运行时独占资源 与外界封闭 可再现性 8 1 思想 以输入 计算 打印三个操作为例 对于某一作业的三个操作必存在顺序关系 但多个作业之间并不一定 其前趋图如下 可见 多个此类作业是可以并发执行的 1 3程序并发执行 9 2特征 间断性 因为共享资源 程序在执行时可能会走走停停 执行 暂停执行 执行 失去封闭性 多个程序共享系统中的各种资源因而这些程序都可改变系统资源的状态 不可再现性 程序经过多次执行 即使环境初始条件相同 但结果可能不相同 1 3程序并发执行 10 3 例子 例 有程序A N N 1 B print N N 0 设某一时刻N的初值为n 则 若 N N 1 PRINT N N 0 结果为 n 1n 10若 PRINT N N N 1 N 0 结果为 nn 10若 PRINT N N 0 N N 1 结果为 n01 1 3程序并发执行 11 2 进程的定义和特征 12 2 1引入进程的目的 任务 和 任务的执行 截然不同 前者是任务的静态描述 后者体现了任务的动态行为 静态描述和动态行为之间不存在一一对应关系 例 同一段正文 2kB 分别加工两批 8kB 4kB 不同的数据 执行两次 第1次执行用打印机报告某些出错信息 占用10kB内存 第2次执行中无出错数据 不用打印机 但至少需要6kB主存 13 2 2进程的定义 进程 进程是进程实体的运行过程 是系统进行资源分配和调度的一个基本单位 一个任务的一次执行对应一个进程 14 2 3进程的特征 15 2 3进程的特征 1 动态性 进程最基本的特征 进程由创建产生 由调度执行 得不到资源而暂停 由撤消而消亡 进程是有一定生命周期的 程序是指一组有序指令集合 是一个静态的实体 2 并发性 一段时间内 多个进程实体在内存中可同时运行 引入进程的目的就是为了能并发 程序不能并发 3 独立性 进程实体是一个能独立运行 独立获得资源 独立调度的基本单位 程序不能做为一个独立单位 4 异步性 进程是按各自独立 不可预知的速度前进 该特性将导致程序执行的不可再现性 因此OS中必须采取某种措施保证协调运行 16 5 结构特征 为能正确的执行并发 为每一个进程配置了一个数据结构 称为进程控制块 PCB 则一个进程实体就由数据段 程序段 PCB三部分构成 进程实体 数据段 程序段 PCB 进程的结构 程序和进程不一定具有一一对应的关系 2 3进程的特征 17 如何理解进程概念 进程与程序有何差别 阅读菜谱 准备原料 烹制菜肴 饭菜 阅读洗衣机手册 准备衣服 洗衣粉 设定参数 洗衣服 干净衣服 程序 输入 运行 输出 程序 输入 运行 输出 分时切换 洗衣进程 做饭进程 2 4与程序的区别 18 2 4与程序的区别 1 程序是指令的集有序集合 是静态的概念 进程是程序在处理机上的一次执行的过程 是动态的概念 程序可以作为软件资料长期保存 进程是有生命周期的 2 进程是一个独立的运行单位 能与其它进程并行 并发 活动 而程序则不是 3 进程是竞争计算机系统有限资源的基本单位 也是进行处理机调度的基本单位 4 一个程序可以作为多个进程的运行程序 一个进程也可以运行多个程序 19 进程的类型 在系统中同时有多个进程存在 但归纳起来有两大类 1 系统进程执行操作系统核心代码的进程 系统进程起着资源管理和控制的作用 2 用户进程执行用户程序的进程 2 5进程的类型与区别 20 系统进程的特征 1 系统进程是操作系统用来管理系统资源并行活动的并发软件 2 系统进程之间的关系由操作系统自己负责 3 系统进程直接管理有关的软 硬设备的活动 4 在进程调度中 系统进程的优先级高于用户进程 2 5进程的类型与区别 21 系统进程与用户进程的区别 1 系统进程被分配一个初始的资源集合 这些资源可以为它独占 也能以最高优先权的资格使用 用户进程通过系统服务请求的手段竞争使用系统资源 2 用户进程不能直接做I O操作 而系统进程可以做显示的 直接的I O操作 3 系统进程在管态下活动 而用户进程则在用户态 目态 下活动 另一种分类 计算进程 I O进程等注意 在UNIX系统中没有这样对进程进行分类 2 5进程的类型与区别 22 3 进程的状态和转换 23 1 三种基本状态 就绪状态 Ready 进程已分配到除CPU外的所有资源 只等CPU便可运行 可有多个组成就绪队列 执行状态 Running 已获得CPU正在运行 在单处理机系统中只能有一个 阻塞状态 Blocked 因发生某事件 如I O 申请缓冲区等 而暂停执行 等待 睡眠 可有多个此状态进程组成一个或多个 由阻塞原因划分 阻塞队列 3 1进程的基本状态 24 进程的基本状态转换 运行态 阻塞态 就绪态 进程就绪 可以运行 状态转换 进程等待外部事件 阻塞 OS决定由哪个进程占用CPU 进程调度 进程状态 中断 时间片到 中断 时间片到 3 2基本状态转换 25 3 2基本状态转换 运行态变为就绪态强制终止某进程的运行 系统原因 运行态变为阻塞态运行进程等待外部事件发生 自身原因 阻塞态变为就绪态外部事件已经发生 可准备运行就绪态变为运行态停止其他进程运行后 运行该进程占用CPU 进程状态 26 3 2基本状态转换 问题1 为什么不能从阻塞态变为运行态呢 问题2 为什么不能从就绪态变为阻塞态呢 三种状态的变换体现了OS的资源管理作用 进程的核心思想在于运行 CPU资源的分配 进程状态 27 3 2基本状态转换 注意 进程从执行态到阻塞态是主动的 进程发现需要等待某一事件 主动向系统申请进入阻塞态 进程从阻塞态到就绪态是被动的 当系统 或其它进程 发现阻塞进程阻塞的条件已释放 向系统申请将该进程置为就绪态 28 1 新状态 指进程刚刚建立 还没有送入就绪队列 2 终止状态 指进程已经结束 正常 异常 OS已将它从就绪队列中移出 还未撤消 增加新和终止状态进程状态及其转换 新进程 终止 接纳 完成 进程调度 时间片到 I O完成等 I O请求等 中断 执行 阻塞 就绪 3 3新状态和终止状态 29 1 什么是挂起状态 将进程置于静止状态正在执行的进程暂停执行就绪的进程暂不接受调度阻塞的进程即使阻塞事件释放也不能继续执行2 引入挂起状态的原因人为 观察的需要系统 检测的需要 调节系统负荷 3 4进程的挂起状态 30 3 状态的转换 引入挂起状态后 原状态称为 活动 挂起后称为 静止 两种挂起状态 静止就绪与静止阻塞一般情况下 挂起状态的进程将从内存移到外存 图具有挂起状态的进程状态图 3 4进程的挂起状态 31 4 进程的描述 32 1 进程控制块定义 ProcessControlBlock PCB PCB是纪录进程动态特性 运行控制等信息的数据结构 PCB的作用 使一个在多道程序环境下不能独立运行的程序 成一个能独立运行的基本单位 一个能与其它进程并发执行的进程 PCB是进程存在的唯一标识 当系统或父进程创建一个进程时 实际上就是为其建立一个进程控制块 4 1进程控制块的概念 33 进程标识符 进程状态 CPU现场 程序状态字 寄存器内容等 资源清单 优先级 队列指针 家族关系 通信机制 信箱或消息队列 同步机制 信号量 存储位置 动态特性 运行控制 4 1进程控制块的概念 2 进程控制块的内容 34 暂停 断点的处理机环境保存 调度 查PCB的优先级及现场状态 执行 查PCB中处理机的状态信息 恢复现场 执行中查数据 程序的地址及与其他进程合作 PCB应常驻内存 4 1进程控制块的概念 3 进程控制块的作用 35 为了有效的管理进程和资源 操作系统必须掌握每一个进程和资源的当前状态 操作系统通常是通过构造一组表来管理和维护进程和每一类资源的信息 操作系统的控制表分为四类 进程控制表存储控制表I O控制表文件控制表 4 1进程控制块的概念 3 进程控制块的作用 36 4 1进程控制块的概念 3 进程控制块的作用 37 进程控制表用来管理进程及其相关信息 存储控制表用来管理一级 主 存储器和二级 辅 存储器 I O控制表用来管理计算机系统的I O设备和通道 文件控制表用来管理文件 4 1进程控制块的概念 3 进程控制块的作用 38 当一个程序进入计算机的主存储器进行计算就构成了进程 主存储器中的进程到底是如何组成的 操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文 processcontext 当系统调度新进程占有处理器时 新老进程随之发生上下文切换 因此 进程的运行被认为是在进程的上下文中执行的 4 1进程控制块的概念 4 进程映像 39 5 进程上下文组成 用户级上下文 由用户程序块 用户数据块和用户堆栈组成的进程地址空间 系统级上下文 包括进程的标识信息 现场信息和控制信息 进程环境块 及系统堆栈等组成的进程地址空间 寄存器上下文 由PSW寄存器和各类控制寄存器 地址寄存器 通用寄存器组成 4 1进程控制块的概念 40 6 进程有四个要素组成 进程程序块 进程数据块 系统堆栈 用户堆栈 4 1进程控制块的概念 41 7 用户进程在虚拟内存中的组织 4 1进程控制块的概念 42 1 进程标识信息 用于唯一地标识一个进程 外部标识符 用户 用字母 数字构成 便于记忆 内部标识符 系统 唯一整数 通常就是进程的序号 家族联系 还可根据需要设置父进程 子进程 用户标识符 2 处理机状态信息 存储处理机中各种寄存器的内容 被中断时存储 再次运行时用于恢复现场 也称为进程上下文可有通用寄存器 指令计数器 程序状态字PSW 用户栈指针 4 2进程控制块的信息 43 3 进程调度信息 与进程调度和进程对换有关的内容 进程状态 进程优先级 事件 与调度算法有关的其他信息 一般常包括进程已等待的时间和已使用的处理器时间等 4 进程控制信息 程序数据的地址 进程同步和通信机制 消息队列和信号量 资源清单 除CPU外进程所需的全部资源及已分配的资源 链接指针 本进程所在队列的下一个进程的PCB首址 4 2进程控制块的信息 44 在一个系统中 常常含有固定数目的PCB 对它们要进行有效的组织与管理 1 链接方式 相同状态的PCB链接成一个队列 2 索引方式 4 3进程控制块的组织方式 45 4 3进程控制块的组织方式 46 4 3进程控制块的组织方式 47 二 进程控制 48 1 进程控制概念 49 1 1进程控制的作用 进程是有生命周期的 产生 运行 暂停 终止 对进程的这些操作叫进程控制 进程控制的职责是对系统中全部进程实施有效的管理 它是处理机管理的部分 另一部分是进程调度 当系统允许多进程并发执行时 为了实现共享 协调并发进程的关系 处理机管理必须提供对进程实行有效管理 50 进程控制内容包括 进程创建 进程撤销 进程阻塞 进程唤醒 进程挂起 进程激活 进程控制实现机制这些操作都要对应地执行一个特殊的程序段 操作系统核心程序 同时系统也通过系统调用给用户提供进程控制的功能 教材上叫原语 一种特殊的系统调用 1 2进程控制的机制 51 1 2进程控制的机制 52 所谓原语 是机器指令的延伸 由若干条机器指令组成 是一种特殊的系统调用命令 它可以完成一个特定的功能一段系统程序 又称为原语操作 为保证操作的正确性 在许多机器中规定 执行原语操作时 要屏蔽中断 以保证其操作的不可分割性 它的功能由系统通过一段不可分割的操作指令来完成 即一个操作中的所有动作要么全做 要么全不做 原语操作具有原子性 它是不可再分的 原语在系统态下完成 在操作系统内核中 常驻内存 在操作系统中原语作为一个基本的单位出现 1 3进程控制的原语 53 常用的原语进程控制原语进程通信原语资源管理原语其他原语常用的进程控制原语有 创建原语撤消原语阻塞原语唤醒原语等 1 3进程控制的原语 54 2 进程的创建与撤销 55 进程图 子进程可以继承父进程所拥有的资源 但子进程被撤消时 必须归还 撤消父进程时 须先撤消其所有的子进程 PCB中有家族关系表项 以标识自己的父 子进程 是用于描述进程家族关系 创建关系 的有向树 结点代表进程 边代表父子关系 父进程 子进程 祖父进程 祖先 2 1进程创建 1 进程图 56 2 引起创建进程的事件 用户登录 如分时系统中 合法用户进入 则系统为之创建进程 作业调度 如批处理系统中 提供服务 运行中的用户程序提出某种请求 则系统创建进程以完成请求 如 打印文件 应用请求 应用进程根据需要 为自己创建进程 2 1进程创建 57 3 创建过程申请空白PCB分配资源初始化PCB插入就绪队列 查空PCB表 有空PCB 创建失败 取空表PCB i 将参数填入PCB i 将PCB i 插入就绪队列 N Y 进程创建实质上是生成一个PCB 2 1进程创建 58 procedureCreate n S k M R acc begin i GetNewInternalName n 调用查找进程名过程 Id i n 将n登记到第i个PCB的相应表目中 Priority i k 向PCB中登记优先数 Cpustate i S 登记现场状态初始值S MainStore i M 记入主存和资源的初始占有情况 Resources i R Status i Readys 进程初始状态置为 就绪 Parent i 调用本过程的父进程之内部标识号 将它记入子进程PCB的父进程名这一栏 SetAccountingData 在PCB中建立记账信息 Insert RL i 调用Insert 把i插入到就绪队列 参数 进程外部名 2 1进程创建 3 创建函数 59 1引发事件 正常结束 有一条表示进程结束的指令 异常结束 运行中出现错误或故障 如越界错误 保护错 特权指令错 算术运算错 I O故障 外界干预 应外界的请求而终止 2终止过程 由进程终止原语Destroy 完成 功能 撤销指定进程的PCB 收回该进程拥有的全部资源 2 2进程撤销 60 3 进程撤销的过程查找进程查找该进程的PCB中止执行终止子进程归还资源将PCB从所在队列移出释放PCB 2 2进程撤销 61 3 进程的阻塞与唤醒 62 1 请求系统服务未满足 则阻塞 当资源可以满足时 由释放该资源的进程将阻塞进程唤醒 2 启动某种操作 等待其完成 3 新数据未到达 多进程合作时 本进程要用的其它进程的结果尚未到来 4 无新工作可做 某些系统进程 等待工作的到达 3 1引发事件 63 由阻塞原语Block 实现 正在执行的进程本身调用Block 是一个主动的行为 1 停止2 改状态 执行 为 阻塞 插入相应阻塞队列3 重新调度 进行切换 即保留现场 重设现场 BLOCK 输入参数 无返回 转进程调度功能 将现行进程的PCB置成 阻塞 状态后列入阻塞队列 3 2进程阻塞过程及函数 64 进程唤醒过程 由唤醒原语Wakeup 实现 由和阻塞原因相关的进程执行唤醒 1 从阻塞队列中移出2 改 阻塞 为 就绪 3 插入就绪队列 WAKEUP 输入参数 进程号返回 成功或失败标记功能 把指定进程的PCB从阻塞队列摘下 该状态为就绪后 列入就绪队列 3 3进程唤醒过程及函数 65 注 Block和Wakeup是一对作用相反的原语 两者应在不同的进程中成对出现 即在某进程中用到了阻塞 在与之相关的另一进程中一定要有唤醒 3 4进程过程关系 66 1挂起过程 由挂起原语Suspend 实现 1 检查 修改状态 执行 活动就绪 静止就绪 活动阻塞 静止阻塞 2 若原状态为 执行 则设调度标志为 T 3 复制PCB到内存某区域 该进程可能会调至外存 4 检测调度标志 若为 T 则重新调度2激活过程 由激活原语Active 实现 1 将进程调入内存 改状态 静止 活动 2 若新状态为 活动就绪 则根据情况 看是否需重新调度 抢占调度策略 4 进程的挂起与激活 67 本节自学知识 68 操作系统的内核 通常将OS中一些与硬件紧密相关的模块 如中断处理程序 常用设备的驱动程序等 运行频率较高的模块 如时钟管理 进程调度 公共操作等 安排在紧靠硬件的软件层次中 使它们常驻内存 以提高OS的运行效率并对它们加以特殊的保护 通常把这部分称为OS的内核 处理机的执行状态可分为系统态和用户态两种 通常用户程序运行在用户态 OS内核运行在系统态 1 操作系统内核 Kernel 69 2 处理机状态 系统态 systemmode 又称核心态 kernelmode 管态 supervisormode 操作系统运行时所处的状态 它具有较高的权限 能执行一切指令 访问所有寄存器和存储区 用户态 usermode 又称目态 objectmode 是一般用户程序运行时所处的状态 是具有较低特权的执行状态 它只能执行非特权指令 访问指定的寄存器和存储区 目的 保护核心代码不受用户程序有意和无意的攻击 70 3 特权指令与非特权指令 现代计算机的指令系统由特权指令和非特权指令两部分组成 特权指令 只能在管态下才能执行的指令 如开关中断 修改地址映射寄存器 置程序状态字 停机等 非特权指令 在管态和目态下均可执行的指令 这些指令的执行只和运行程序本身有关 不会影响其它程序和操作系统 如数据传送指令 算术运算指令等 71 3 5进程同步 进程同步的主要任务是使并发执行的诸进程之间能有效地共享资源和相互合作 从而使程序的执行具有可再现性 72 三 进程互斥与同步 73 1 进程互斥和同步概念 74 1 1进程间可能存在两种关系 1 资源共享关系 间接相互制约 因多进程共享某资源而产生 此时进程同步要保证进程能互斥地访问临界资源 为此资源要由系统统一分配 2 相互合作关系 直接相互制约 因多进程内容上的联系而产生 此时进程同步要保证进程在执行次序上的协调 例 输入进程A和计算进程B A 单缓冲 B 应保证A B交替执行 75 两个并行的进程A B 如果当A进行某个操作时 B不能做这一操作 进程间的这种限制条件称为进程互斥 关系体现 进程 资源 进程 竞争到某一物理资源时不允许其它进程工作 相互之间不一定清楚其它进程情况 往往指多个进程之间的通信制约 1 2进程互斥 76 临界资源临界区互斥准则 1 2 3 进程互斥 77 1 临界资源一段时间内只允许一个进程访问的资源 若多进程共享某临界资源 则应对其进行同步控制 以实现对临界资源的互斥访问 临界资源可有硬 软资源 硬件资源 如打印机等 诸进程要互斥使用这些资源 软件资源 如共享变量等 对共享变量应作为临界资源处理 即要对它进行互斥访问 1 2进程互斥 78 例1 进程A 生产一个数据 用count计数 count count 1进程B 消费一个数据 则count count 1为提高资源利用率 设A B并发执行 且对count的操作可细化为以下步骤 R表示寄存器 设count初值为1 1 2进程互斥 79 若执行次序为 A 1 A 2 A 3 B 1 B 2 B 3 则count 1若执行次序为 A 1 B 1 A 2 A 3 B 2 B 3 则count 0若执行次序为 A 1 B 1 B 2 B 3 A 2 A 3 则count 2 A R1 count R1 R1 1 count R1 B R2 count R2 R2 1 count R2 因此 对共享变量应作为临界资源处理 即要对它进行互斥访问 1 2进程互斥 80 进入区 临界区 退出区 剩余区 2 临界区把每个进程访问临界资源的那段代码称为临界区 CS 对临界资源的互斥访问即为多进程互斥进入各自的临界区操作 为保证互斥访问 在进入前必需先检测临界资源的状态 进入区 进程中在临界区前用于检查临界资源是否正被访问的代码 退出区 进程中在临界区后的一段代码 用于标记该临界资源已被释放 1 2进程互斥 81 3 互斥准则 同步机制应遵循的原则OS提供互斥工具才能保证进程互斥的进入临界区 互斥工具应能保证如下几点 1 空闲让进 若临界资源空闲 则应允许一个请求的进程进入自己的临界区 2 忙则等待 若临界资源正被使用 则其它申请该资源的进程应该等待 3 有限等待 保证进程可在有限的时间内进入自己的临界区 防止 死等 4 让权等待 当进程应临界资源不能满足而等待时 应释放CPU 防止 忙等 对要进入临界区的进程加以管理 管理的方法有两种 同步和互斥 同步反映了进程间的协作关系 而互斥则反映了进程之间的竞争 1 3进程互斥 82 合作完成同一个任务的多个进程 在执行速度或顺序上必须相互协调的合作关系 关系体现 进程 进程 相互清楚对方的存在及其作用 交换信息 如生产者 消费者关系 发送者 接收者关系等 1 3进程同步 83 进程互斥是进程同步的特例 互斥 共享临界资源间接制约无固定的必然关系 依据临界资源使用否 同步 执行顺序和速度直接制约必然的依赖关系 依据同步信息有否 1 4进程同步与互斥关系 84 1 进程互斥和同步概念 85 2 进程互斥和同步机制 86 互斥与同步机制主要有信号量机制和管程机制信号量机制是一种有效的进程同步机制 信号量机制有特殊变量 信号量 和PV原语 P操作和V操作 组成信号量类型有整型信号量 记录型信号量AND型信号量信号量集 2 1进程互斥和同步机制概述 87 用一个变量描述资源 实现多进程对资源的互斥访问 1 整型信号量 一个整型数 除初始化外 仅能通过两个标准的原子操作wait s 和signal s 访问 即P和V操作 wait s whiles 0dono op s s 1 signal s s s 1 信号量s代表临界资源 数量为1 Wait s 先测试临界资源是否可用 若s 0不可用 循环测试 否则 进入临界区 Signal s 用完临界资源后释放 s s 1 返回 整型信号量机制定义 2 2整型信号量机制 88 整型信号量的缺点 未遵循 让权等待 出现 忙等 为此引入另一种信号量机制 记录型信号量 即 放弃处理机进行等待 让权等待 问题 其他进程可获得处理机 会出现多个进程等待访问同一临界资源 2 2整型信号量机制 89 为解决忙等和多个进程共享资源的情况 引入了一种记录型的信号量 所含内容 1 代表资源数目的整型量 2 进程链表 接纳所有等待进程 1 信号量类型定义 structsemaphore intvalue 信号量的值ProcessQueue WQ r r资源的等待队列指针 2 3记录型信号量机制 90 2 wait 操作 voidwait semaphores s value if s value 0 thenblock s WQ r 1 s value的初值表示系统中某类资源的数目 s又叫资源信号量 s WQ r 表示该资源的阻塞队列 2 wait 表示请求一个单位的资源 s value 1表示该资源数减1 若s value 0 则进程继续运行 2 3记录型信号量机制 91 proceduresignal semaphores s value ifs value 0thenwakeup s WQ r signal 表示释放一个单位的资源 s value表示该资源数加1 若s value0 则进程继续运行 2 若s value初值为1 则等同于互斥信号量 3 signal 操作 2 3记录型信号量机制 92 1 s value 0 代表一类可用资源的数量 绿灯 2 s value 0 表示该类可用资源已经没有资源可以分配 其绝对值代表被阻塞进程数量 红灯 3 s value 0 黄灯 4 P Proberen 操作记为wait操作 V Verhogen 操作记为signal操作 5 Wait操作与signal操作必须成对出现 4 记录型型号量机制说明 2 3记录型信号量机制 93 用一个信号量表示一类资源 在一个进程需要获得两个或更多类资源时才能运行时 可使用多个信号量分别对其进行描述 称为信号量集 1AND型信号量集机制1 引入 设两个进程A B共享两个临界资源D E 可设置两个互斥信号量Dmutex和Emutex 初值为1 processA wait Dmutex wait Emutex processB wait Emutex wait Dmutex 则Dmutex和Emutex值最后都为 1 A B两进程都阻塞 是一种死锁状态 2 4信号量集机制 94 2 Swait Swait S1 S2 Sn ifS1 1and andSn 1thenfori 1tondoSi Si 1endforelse将进程放到第一个不能满足要求的资源的阻塞队列 同时将程序指针指向Swait 的开始endif 2 4信号量集机制 95 3 Ssignal Ssignal S1 S2 Sn fori 1tondoSi Si 1唤醒因这些资源而阻塞的进程 放入就绪队列中endfor 4 AND型信号量集机制的思想 将进程在整个运行过程中所需要的所有临界资源 一次性的全部分配 使用完后再一起释放 只要有一个资源不能满足 则一个也不分配 2 4信号量集机制 96 2 一般 信号量集 机制当进程一次需要N个多类资源时 用AND型信号量集机制则效率太低 另外 有些资源低于下限值时 系统不会分配 为解决这两个问题 对AND进行扩充 设需求分配的资源数量为d 资源的下限值为t 则一般信号量集机制的Swait 和Ssignal 可描述为 2 4信号量集机制 97 Swait S1 t1 d1 Sn tn dn ifS1 t1and andSn tnthenfori 1tondoSi Si diendforelse将进程放到第一个不能满足要求的资源的阻塞队列中 同时将程序指针指向Swait 的开始endif 2 4信号量集机制 98 Ssignal S1 d1 Sn dn fori 1tondoSi Si di唤醒因这些资源而阻塞的进程 放入就绪队列中endfor 2 4信号量集机制 99 几种特殊情况 1 Swait S d d 只有一个信号量即一类资源 允许同时申请d个 下限为d2 Swait S 1 1 只有一个信号量即一类资源 当S 1时 可看作一般的记录型信号量 当S 1时 即为互斥信号量 3 Swait S 1 0 下限为1 每次分配0个资源 这是一种特殊的可作为开关的信号量 当S 1时 允许多个进程进入 当S 1 S 0 时 阻止任何进程进入 2 4信号量集机制 100 3 进程互斥和同步实现方法 101 为临界资源设一信号量mutex 称为互斥信号量 初值为1 信号量mutex是一公用信号量 其取值范围与共享临界资源的并发进程的个数n有关 为1 n 1 P mutex wait mutex 作为进入区V mutex signal mutex 作为退出区 3 1利用信号量实现互斥 102 3 1信号量利用信号量实现互斥 103 varmutex semaphore 1parbeginprocess1 wait mutex CSsignal mutex process2 wait mutex CSsignal mutex parend 注 1 信号量初值的设定非常重要 它表明了在初始情况下系统拥有或可提供的此类资源的数量 2 wait mutex 和signal mutex 必须成对出现 并应分别紧靠临界段的头尾部 考虑 缺少wait 则

温馨提示

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

评论

0/150

提交评论