




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第2章进程描述与控制 2 2 1进程状态 进程是程序在并发环境中的执行过程 其基本特征是动态性 并发性 独立性 异步性和结构性 进程是一个主动的实体 而程序是被动的实体 进程的执行必须按一种顺序的方式进行 即在任何时刻至多只有一条指令被执行 处理器的主要功能就是执行驻留在内存中的指令 为了提高效率 处理器可以同时执行多个进程 3 4 2 1 1进程产生和终止 最简单的模型 a 基于这样一个事实 进程要么正在执行 要么没有执行 这样 一个进程就有两种状态 运行和非运行 还有一种模型 b 是设计一种进程队列 队列中的每项都是一个指向进程的指针 无论采用哪种模型 进程的生命周期都同产生和终止联系在一起 5 2 1 1进程产生和终止 1 进程产生通常有4种事件会导致新进程产生 在一个交互式环境中 当一个新用户在终端键入登录命令后 若是合法用户 系统将为该用户建立一个进程 在一个批处理环境中 为了响应一个任务的要求而产生进程 当运行中获取用户程序提出的某种请求后 OS可以代用户程序产生进程以实现某种功能 使用户不必等待 基于应用进程的需要 由已存在的进程产生另一个进程 以便使新程序以并发运行方式完成特定任务 6 2 1 1进程产生和终止 2 进程终止导致进程终止的事件大致有14种 正常结束 超时限制 内存不足 超界 保护错误 算术错误 超越时限 I O失败 非法指令 特权指令 错误使用数据 操作员或OS干预 父进程终止 父进程需要 7 2 1 2进程状态模型 进程的动态性质是由其状态变化决定的 通常操作系统中进程都具有三种状态 运行态 就绪态和阻塞态 进程的生命周期中通常还有创建和消失两种状态 创建和终止状态对进程管理非常有用 8 运行 就绪 等待 进程的状态及其转换 9 2 1 2进程状态模型 运行 进程当前处于运行状态 就绪 进程已准备好运行 阻塞 进程等待某些事件发生 如I O操作 后才能运行 创建 进程刚产生 但还未被操作系统提交到可运行进程池中 消失 进程被操作系统从可运行进程池中释放 10 2 1 2进程状态模型 进程状态转换 转下表 11 2 1 2进程状态模型 12 2 1 3进程挂起 1 进程挂起的状态由于I O操作比CPU计算慢得多 故常会出现内存中所有进程都等待I O的现象 即使运行多个程序 处理器在大多数时间仍处于空闲状态 为此可采用交换方法 将内存中的一部分进程转移到磁盘中 在进程行为模式中需增加一个新的挂起状态 当内存所有进程阻塞时 操作系统可将一进程置为挂起状态并交换到磁盘 再调入另一进程执行 挂起状态与原有的阻塞和就绪状态结合为阻塞挂起状态和就绪挂起状态 13 2 1 3进程挂起 有挂起状态的进程转换图 a 带有一个挂起状态 b 带有两个挂起状态 14 2 1 3进程挂起 进程挂起的原因 15 2 2进程描述 在计算机系统中 操作系统负责调度进程 分配资源 响应用户程序服务的请求 可以认为操作系统管理整个系统资源的使用和控制整个系统的事件 16 2 2 1操作系统控制结构 为了管理进程和资源 操作系统必须掌握每一个进程和资源的当前状态信息 几乎所有操作系统都会用以下4类表来保存信息 内存表 I O表 文件表和进程表 内存表用来跟踪主 实 存和辅 虚拟 存 I O表用来管理I O设备和通道 文件表提供当前存在文件中的信息 文件在辅存中的位置 当前状态及其他性质 进程表用来管理进程 17 18 问题 思考 操作系统最初如何知道创建表 也就是说 操作系统必须知道基本环境的一些知识 如有多少内存 I O设备是什么以及它们的标识号是什么等等 19 思考结果是 BIOS 基本输入输出系统 1 打开电源2 CPU将控制权交给BIOS3 BIOS运行一个程序 通电自测试程序4 BIOS确认所有外部设备 硬盘或扩充卡5 BIOS确定主引导程序或初始程序加载 IPL 设备的位置6 BIOS建立系统资源表 20 7 选择并启用初始输入设备 键盘 和输出设备 显示器 BIOS在上次成功启动时俘获这些设置 并存储到NVR中8 搜索非PnP设备 如外部设备互连 PCI 总线 并将这些设备的数据添加到资源表中9 BIOS解决设备冲突 并配置选择的引导设备10 通过用适当参数呼叫PnP设备并启动这些设备11 启动引导装入程序12 IPL设备将操作系统装到存储器中13 BIOS将控制权交给操作系统 操作系统可以进行其他资源的分配 21 BIOS 主存 CPU SRT NVR PCI总线 PnP 非PnP 电源 外存 I O设备 扩充设备 22 2 2 2进程控制结构 操作系统通过称为进程映象的进程属性集合来控制进程 进程映象中通常包括 用户数据 用户程序 系统栈 进程控制块 进程映像的存储依赖于所使用的存储器管理调度方式 23 24 2 2 3进程属性 进程控制块 PCB 是进程映象中最关键的部分 它含有进程的描述信息和控制信息 是进程动态特性的集中反映 是系统对进程施行识别和控制的依据 操作系统管理进程所需的信息类型都收集在进程控制块中 25 2 2 3进程属性 进程控制块的主要内容有 进程标识 处理器状态信息 进程控制信息 具体内容为 调度和状态信息数据结构 进程间通信 进程特权 存储器管理 资源的拥有和使用 26 27 2 3进程控制 操作系统内核负责控制和管理进程的产生 执行和消亡的整个过程 这主要通过对它们的控制操作实现 操作系统的进程控制操作主要有 创建进程 撤消进程 挂起进程 恢复进程 改变进程优先级 封锁进程 唤醒进程 调度进程等 28 2 3 1执行模式 大多数处理器都至少支持两种执行模式 一种是同操作系统有关的模式 另一种则是同用户程序有关的模式 较低特权模式称为用户模式 较高特权模式指系统模式 控制模式或内核模式 内核是操作系统中最核心功能的集合 29 2 3 2进程创建 一旦OS决定创建一个进程时 便调用进程创建原语Create 进行如下操作 给新进程一个编号并申请空白PCB 为进程分配空间 初始化PCB 设置合适的链接 生成其他一些数据结构 30 2 3 3进程切换 在某时刻 一个正在运行的进程被中断 操作系统就将另一个进程置为运行状态 并对其进行控制 当操作系统掌握控制权时 切换随时会发生 可能将控制权交给操作系统的事件有 中断 陷阱以及监管调用 31 2 3 4上下文切换 上下文切换发生时 可能并不改变当前处于运行态的进程状态 当前运行进程的状态要改变时 操作系统将进行以下步骤完成进程切换 保存处理器内容 对当前运行进程的PCB进行更新 将这个进程的PCB移入适当的队列 挑选其他进程执行 对挑选进程的PCB进行更新 对存储器管理数据结构进行更新 将被选中进程上次移出时的处理器状态进行恢复 32 33 2 3 5操作系统的运行 操作系统的运行方式同普通软件一样 也是一个由处理器执行的程序 a 在进程以外运行 b 在用户进程中运行 c 作为独立进程运行 34 2 3 6微核 微核是一个操作系统的核心 它为组件扩展提供了基础 微核所应遵循的原理是 只有那些绝对必要的操作系统核心功能才能放在内核中 次重要的服务和应用功能则建立在微核之外 35 2 4线程和SMP 线程 Thread 是近年来操作系统中出现的一个非常重要的技术 线程的引入 进一步提高了程序并发执行的程度 从而进一步提高了系统的吞吐量 36 多线程实例1 当你在一台PC上一个QQ时 这一个QQ是一个进程 而当你在一个QQ上和多人聊天时 每一个聊天窗口就是一个线程 2 使用网络蚂蚁下载时 当你打开netant时就有一个进程 你每下载一个东西 就是一个线程 即多线程下载 37 实例解释 再举一个例子现在要完成一个任务 包括采购 计算 推销 客户谈判等 一个公司 只有一个老板 公司相当于资源 有计算机 打印机 资金等其他资源 老板相当于一个进程 如果没有职员的话 老板要完成所有的工作 效率低呀 怎么办 招收职员 分工 此时职员相当于线程 他们共享老板的资源 调度起来也方便 老板给指示就可以了 提示 各个行业并购 资源整合 38 2 4 1线程及其管理 1 线程的引入为了既能提高程序的并发程度 又能减少OS的开销 操作系统设计者引入了线程 把进程的两个基本属性分离开来 引入线程还有一个好处 就是能较好地支持对称多处理器系统 SymmetricMultiprocessor 简称SMP 39 2 4 1线程及其管理 2 线程的定义及特征线程是进程内的一个相对独立的 可独立调度和指派的执行单元 线程具有以下性质 线程是进程内的一个相对独立的可执行单元 线程是操作系统中的基本调度单元 一个进程中至少应有一个线程 线程并不拥有资源 而是共享和使用包含它的进程所拥有的所有资源 线程在需要时也可创建其他线程 40 2 4 1线程及其管理 进程和线程的区别与联系 调度拥有资源并发性系统开销 41 2 4 1线程及其管理 3 线程的状态和管理线程也有一个从创建到消亡的生命过程 虽然在不同的操作系统 线程的状态设计不完全相同 但就绪 运行 阻塞3个关键的状态是共有的 线程中不具有进程中的挂起状态 对具有多线程的进程状态 若一个线程被阻塞 整个进程不被阻塞 线程使用线程控制块 TCB 来描述其数据结构 线程的状态转换是通过相关的控制原语来实现的 42 2 4 2多线程的实现 多线程机制是指OS支持在一个进程内执行多个线程的能力 线程虽在许多系统中实现 但实现的方式并不完全相同 43 2 4 2多线程的实现 1 用户级线程ULT用户级线程由用户应用程序建立 由用户应用程序负责对这些线程进行调度和管理 操作系统内核并不知道有用户级线程的存在 因而这种线程与内核无关 44 优点 线程切换不调用核心调度是应用程序特定的 可以选择最好的算法ULT可运行在任何操作系统上 只需要线程库 缺点 大多数系统调用是阻塞的 因此核心阻塞进程 故进程中所有线程将被阻塞核心只将处理器分配给进程 同一进程中的两个线程不能同时运行于两个处理器上 45 2 4 2多线程的实现 2 内核级线程KLT内核级线程中的所有线程的创建 调度和管理全部由操作系统内核负责 一个应用进程可按多线程方式编制程序 当它被提交给多线程操作系统运行时 内核为它创建一个进程和一个线程 线程在运行中还会创建新的线程 这就是通常所说的 纯KLT方法 46 优点 对多处理器 核心可以同时调度同一进程的多个线程阻塞是在线程一级完成核心例程是多线程的缺点 在同一进程内的线程切换调用内核 导致速度下降 47 2 4 2多线程的实现 3 KLT和ULT结合由于纯KLT和纯ULT各有自己的优点和缺点 因此 如果将两种方法结合起来 则可得到两者的全部优点 将两种方法结合起来的系统称之为多线程的操作系统 48 2 4 3进程与线程的关系 49 2 4 4SMP 按照多处理器之间的通信方式可将多处理器系统划分为两种类型 第一种为共享存储器多处理系统 SharedMemoryMultiprocessor 第二种为分布式存储器系统 DistributedMemory 50 2 4 4SMP 1 SMP的特点 系统中有多个处理器 且每个处理器的地位是相同的 所有处理器共享主存储器 51 2 4 4SMP 2 SMP系统设计问题SMP操作系统设计的关键是 同时并发执行多进程和多线程 调度 同步 存储器管理 可靠性和容错能力 52 多道程序并发执行 1 程序的顺序执行一个程序由若干个程序段组成 而这些程序段必须按照一定的先后顺序执行 称为程序的顺序执行 如下图所示 两个作业之间的运行方式就是单道顺序执行的方式 53 程序顺序执行的特点主要是静态性 孤立性 表现在以下几点 顺序性处理机严格按照程序所规定的顺序执行 即每个操作必须在前一个操作结束之后开始 封闭性程序一旦开始执行 其运行过程和运行结果不会受到其它程序的影响 由于程序独占资源 当程序的初始条件设定之后 其运行状态由程序自身确定 只有程序自身才能改变它 比如 当程序计算时 它就占有CPU 当程序I O时 它就占有外部设备 没有资源共享与竞争 也不会出现因资源被其它程序占有而等待 当然也不会出现因为资源共享不当而产生的错误 可再现性由于程序的执行结果只与初始条件有关 与执行时间无关 因此程序执行的结果可以再现 即 只要程序的初始条件相同 则其执行结果相同 无论其何时执行 也无论运行速度 比如键盘输入的速度是快还是慢 都不会影响最后的运行结果 程序单道顺序执行之所以具有以上特点 是因为单道环境下作业独占系统资源 54 程序的并发执行以及 与时间有关的错误 程序的并发执行 若干个程序段同时在系统中运行 这些程序的执行在时间上是重迭的 一个程序段的执行尚未结束 另一个程序段的执行已经开始 即使这种重迭很小 也称这几个程序段是并发执行的 例如 有P1 P2两个程序 其投入系统中执行的时间如图 则阴影部分所表示的时间就是它们并发执行的时间 55 例1 设有读写两个程序对同一个缓冲区进行读写操作 如果写操作还没有完成系统就调度到读操作 则读的结果可能是空 初始状态 或者是一个已经读过的数据 重复 从而导致输出错误的数据序列 反之 如果缓冲区中的数据还没有完成读出操作就调度到写 则写操作可能覆盖了还没有来得及读出的数据 出现数据输出时缺少数据的错误 56 例2 假设某飞机定票系统在t0时刻有A B C D四个终端程序同时都要对机票库中的某航班当前剩余票数X进行操作 如果每个终端程序的当前定票需求为N 并对共享变量X进行如下操作 在机票数据库中取出当前剩余票数X 判断X 0 有票吗 如果有 X N 票够吗 如果够 则出票 打印票据 X X N 修改剩余票数 将X回写到数据库中 57 例2 不妨假设终端程序A抢先进入系统执行上述程序 亦假设此时X的值是10 程序A当前定票需求N也是10 那么它就可以出票 出票后剩余票数X应该为0 但是 如果程序A在执行完出票操作后正在打印票据时 此时尚未来得及修改X的值并回写到机票库中 所以X还是10 系统调度响应程序B的请求 则程序B所取出的当前剩余票数还是10 因为A还没有来得及修改X的值 如果B的当前需求N在10以内 那么B也可以出票 这样就会导致有多余的N个人在飞机上没有位置 出现拿不到登机牌的错误了 58 结论 上述两例说明 在多道程序并发执行中 由于并发执行的程序共享资源或者互相协作 因其执行速度的不确定性以及多道程序之间缺乏控制所带来的错误称为 与时间有关的错误 导致这种 与时间有关的错误 出现的原因是 与诸程序的执行速度有关 由于多个程序都共享了同一个变量或者互相需要协调同步 对于变量的共享或者互相协作的过程没有进行有效地控制 59 结论 在例2中 如果诸终端程序是按照下述方式执行 则可以避免发生 与时间有关的错误 如果A能够执行得快一点 或者时间片长一点 使它来得及将X的剩余值回写到数据库中 或者A再慢一点 使票没有出 皆不会出现 与时间有关的错误 与诸程序的执行速度有关 如果诸终端程序并发执行时操作的是不同的变量而不是共享变量 也不会出现 与时间有关的错误 共享了同一个变量 如果能够对该共享变量X在其共享过程中加以控制 实现当一个程序还没有使用完时另一个程序就不能使用 那么也可以避免 与时间有关的错误 没有进行有效地控制 60 结论 上述3种避免发生 与时间有关的错误 的方法中 操作系统无法使用前两种 因为 第1种办法不可行是因为并发程序执行时所具有的不确定性是操作系统的特征 操作系统无法控制每个程序所需要的执行速度 第2种办法不可行在于共享是操作系统的特点 是其提高资源利用率的宗旨所在 因此 操作系统只能针对第3种解决方法 在资源分配和使用的过程中通过采取有效的措施来避免发生 与时间有关的错误 保证程序并发执行结果的正确性 61 程序并发执行的特点 多道程序并发执行的特点表现为以下几点 1 失去了程序的封闭性和可再现性多道程序并发执行以后 由于资源共享以及相互协作 打破了程序单道执行时所具有的封闭性 因而也不具有可再现性 例1说明了多个程序之间如果存在协作关系 则在程序的并发执行中也会打破程序的封闭性 出现一个程序执行结果的正确性依赖于另一个程序的执行时间 例2中的飞机定票系统说明了多个程序之间如果存在共享同一个公共变量X 则各程序对该公共变量执行的结果不仅依赖于其初始条件 还依赖于各程序执行时的相对速度及该程序对于该公共变量的执行结果 上述两个例子中的错误都是 与时间有关的错误 都说明了程序在并发执行中不再具有封闭性 62 程序并发执行的特点 2 程序与任务不再一一对应程序并发执行时 多个任务可以共存于一个程序之中 从而使得一个程序对应于多个任务 比如 多个终端用户都对服务器提出某个相同的服务请求 服务器则需要针对每个用户创建一个任务去分别完成 这些针对不同用户的不同任务执行的却是相同的服务程序 另外 一个任务中也可能涉及多个程序调用或转移 从而打破了一对一的关系 63 程序并发执行的特点 3 程序并发执行中存在相互制约的关系多道程序在并发执行时它们之间存在着相互制约的关系 这种制约关系分为以下两种 一种制约关系是因多道并发而导致的对于资源的竞争和共享引起的 比如例2中的诸多定票终端程序 它们对于机票剩余变量X的竞争和共享必须满足一次只能一个终端程序对其进行处理修改 使用完毕后其它终端程序才能使用的制约关系 否则就会产生 与时间有关的错误 这种制约被称为间接制约 另一种制约关系是多道并发的程序相互协作共同完成某个任务引起的 比如例1中的读 写两个进程 它们之间必须满足写了才能读 读后才能写的制约关系 否则也会产生 与时间有关的错误 这种制约被称为直接制约 64 总结 多道程序由于并发执行和共享资源 打破了单道程序由于独占资源所具有的执行过程的封闭性 并发程序在并发执行过程中相互之间会有干扰或制约 而这些干扰和制约的不可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人民交通出版社说课稿-2025-2026学年中职中职专业课汽车制造与维修类66 装备制造大类
- 2025年医卫类病理学技术(正副高)正高-正高参考题库含答案解析(5套)
- 2025年医卫类病案信息技术(师)基础知识-基础知识参考题库含答案解析(5套)
- 2025年医疗项目经理面试必-备预测题及行业分析
- 2025年医卫类病案信息技术(中级)基础知识-相关专业知识参考题库含答案解析(5套)
- 2025年医卫类放射医学(师)相关专业知识-基础知识参考题库含答案解析(5套)
- 二零二五年度房地产抵押贷款合同(开发商贷款)
- 二零二五年度二手房买卖垫资合同保密条款协议
- 二零二五年新型材料使用建筑装饰植筋劳务分包合同
- 二零二五年度教育设施改造工程款项支付担保协议范本
- 工程建设强制性条文-电力工程部分
- 《网络传播概论》考试复习题库(重点160题)
- 苏教版四年级数学上册教案全册
- AO 史密斯热水器EES系列说明书
- 中医体重管理
- 家长会校长讲座
- 昏迷患者的评估
- 高中俄语教材必修一第一课
- 智能家居市场分析报告与操作手册
- 房地产中介服务操作手册
- 管理会计说课
评论
0/150
提交评论