Windows操作系统-处理机管理(上).ppt_第1页
Windows操作系统-处理机管理(上).ppt_第2页
Windows操作系统-处理机管理(上).ppt_第3页
Windows操作系统-处理机管理(上).ppt_第4页
Windows操作系统-处理机管理(上).ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

进程和进程控制线程进程互斥和同步进程间通信死锁问题处理器调度 第三章处理机管理 上 进程和进程控制 进程的定义和描述进程的状态转换进程控制Windows的进程管理 进程的定义和描述 进程的定义 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 进程的特征 动态性 具有动态的地址空间独立性 各进程的地址空间相互独立并发性 宏观上各进程同时运行结构化 进程的地址空间是结构化的 进程和进程控制 进程与程序的区别 进程是动态的 程序是静态的 程序是有序代码的集合 进程是程序的执行 通常进程不可在计算机之间迁移 而程序通常对应着文件 是静态的 可以复制 进程是暂时的 程序的永久的 进程是一个状态变化的过程 程序可长久保存 进程与程序的组成不同 进程的组成包括程序 数据和进程控制块 即进程状态信息 进程与程序的对应关系 通过多次执行 一个程序可对应多个进程 通过调用关系 一个进程可包括多个程序 进程的定义和描述 进程和进程控制 进程控制块 每个进程在OS中的登记表项 可能有总数目限制 OS据此对进程进行控制和管理 PCB中的内容会动态改变 处于核心段 通常不能由应用程序自身的代码来直接访问 而要通过系统调用访问 进程控制块 PCB processcontrolblock 是由OS维护的用来记录进程相关信息的一个数据结构 进程和进程控制 进程的定义和描述 进程控制块的内容 进程描述信息 进程标识符 processID 唯一 通常是一个整数 进程名 通常基于可执行文件名 用户标识符 userID 进程组 processgroup 进程控制信息 当前状态 优先级 priority 代码执行入口地址 程序的外存地址 运行统计信息 执行时间 页面调度 阻塞原因资源占用信息 虚拟地址空间的现状 打开文件列表CPU现场保护结构 寄存器值 通用 程序计数器PC 状态PSW 地址包括栈指针 进程和进程控制 进程的定义和描述 PCB的组织方式 链表 同一状态的进程其PCB成一链表 多个状态对应多个不同的链表 各状态的进程形成不同的链表 就绪链表 阻塞链表索引表 同一状态的进程归入一个index表 由index指向PCB 多个状态对应多个不同的index表 各状态的进程形成不同的索引表 就绪索引表 阻塞索引表 进程和进程控制 进程的定义和描述 进程上下文 context 用户级上下文 进程的用户地址空间 包括用户栈各层次 包括用户正文段 用户数据段和用户栈 寄存器级上下文 程序寄存器 处理机状态寄存器 栈指针 通用寄存器的值 系统级上下文 静态部分 PCB和资源表格 动态部分 核心栈 核心过程的栈结构 不同进程在调用相同核心过程时有不同核心栈 进程上下文是对进程执行活动全过程的静态描述 进程上下文由进程的用户地址空间内容 硬件寄存器内容及与该进程相关的核心数据结构组成 进程和进程控制 进程的定义和描述 五状态进程模型 五状态进程模型 状态转换 进程的状态转换 进程在从创建到终止的全过程中一直处于一个不断变化的过程 为了刻画进程的这个变化过程 操作系统把进程分成若干种状态 进程和进程控制 状态 新建状态 New 进程刚创建 但还不能运行 一种可能的原因是OS对并发进程数的限制 OS在进程新建状态的工作 分配和建立PCB表项 建立资源表格 如打开文件表 并分配资源 加载程序并建立地址空间表 结束状态 Exit 进程已结束运行 回收除PCB之外的其他资源 并让其他进程从PCB中收集有关信息 如记帐 将退出码exitcode传递给父进程 进程的状态转换 五状态进程模型 进程和进程控制 运行状态 Running 占用处理机资源并运行 处于此状态的进程的数目小于等于CPU的数目 在没有其他进程可以执行时 如所有进程都在阻塞状态 通常会自动执行系统的idle进程 相当于空操作 就绪状态 Ready 进程已获得除处理机外的所需资源 等待分配处理机资源 只要分配CPU就可执行 可以按多个优先级来划分队列 如 时间片用完 低优 I O完成 中优 页面调入完成 高优阻塞状态 Blocked 由于进程等待某种条件 如I O操作或进程同步 在条件满足之前无法继续执行 在该事件发生前即使把处理机分配给该进程 也无法运行 如 等待I O操作的完成 进程的状态转换 五状态进程模型 进程和进程控制 进程状态转换 创建 Create 新进程 创建一个新进程 以运行一个程序 提交 Admit 收容一个新进程 进入就绪状态 由于性能 内存 进程总数等原因 系统会限制并发进程总数 调度运行 Dispatch 从就绪进程表中选择一个进程 进入运行状态 释放 Release 由于进程完成或失败而中止进程运行 进入结束状态 运行到结束 分为正常退出Exit和异常退出abort 执行超时或内存不够 非法指令或地址 I O失败 被其他进程所终止 就绪或阻塞到结束 可能的原因有 父进程可在任何时间中止子进程 进程的状态转换 五状态进程模型 进程和进程控制 超时 Timeout 由于用完时间片或高优先进程就绪等导致进程暂停运行 事件等待 EventWait 进程要求的事件未出现而进入阻塞 可能的原因包括 申请系统服务或资源 通信 I O操作等 事件发生 EventOccurs 进程等待的事件发生 如 I O操作完成 申请资源成功等 进程的状态转换 五状态进程模型 进程和进程控制 五状态进程模型没有区分进程地址空间位于内存还是外存 而在操作系统中引入虚拟存储管理技术后 需要进一步区分进程的地址空间状态 这个问题的出现是由于进程优先级的引入 一些低优先级进程可能等待较长时间 从而被对换至外存 这样做的目的是 提高处理机效率 就绪进程表为空时 有空闲的内存空间来提交新进程 以提高处理机效率 为运行进程提供足够内存 资源紧张时 暂停某些进程 如 CPU繁忙 或实时任务执行 内存紧张用于调试 在调试时 挂起被调试进程 从而对其地址空间进行读写 挂起进程模型 进程的状态转换 进程和进程控制 单挂起进程模型 挂起进程模型 进程的状态转换 进程和进程控制 双挂起进程模型 挂起进程模型 进程的状态转换 进程和进程控制 Admit Running Ready Suspend Exit Ready Blocked Dispatch Timeout Event Wait Event Occurs Release Blocked Suspend Suspend New Event Occurs Activate Suspend Activate Admit Suspend 就绪状态 Ready 进程在内存且可立即进入运行状态 阻塞状态 Blocked 进程在内存并等待某事件的出现 阻塞挂起状态 Blocked suspend 进程在外存并等待某事件的出现 就绪挂起状态 Ready suspend 进程在外存 但只要进入内存 即可运行 挂起进程模型 进程的状态转换 状态 进程和进程控制 挂起 Suspend 把一个进程从内存转到外存 可能有以下几种情况 阻塞到阻塞挂起 没有进程处于就绪状态或就绪进程要求更多内存资源时 会进行这种转换 以提交新进程或运行就绪进程 就绪到就绪挂起 当有高优先级阻塞 系统认为会很快就绪的 进程和低优先级就绪进程时 系统会选择挂起低优先级就绪进程 运行到就绪挂起 对抢先式操作系统 当有高优先级阻塞进程因事件出现而进入就绪状态时 系统可能会把运行进程转到就绪挂起状态 挂起进程模型 进程的状态转换 状态转换 进程和进程控制 Running Ready Suspend Ready Blocked Dispatch Timeout Event Wait Event Occurs Blocked Suspend Suspend Event Occurs Activate Suspend Activate Suspend 激活 Activate 把一个进程从外存转到内存 可能有以下几种情况 就绪挂起到就绪 没有就绪进程或挂起就绪进程优先级高于就绪进程时 会进行这种转换 阻塞挂起到阻塞 当一个进程释放足够内存时 系统会把一个高优先级阻塞挂起进程激活 系统认为会很快出现所等待的事件 挂起进程模型 进程的状态转换 状态转换 进程和进程控制 Running Ready Suspend Ready Blocked Dispatch Timeout Event Wait Event Occurs Blocked Suspend Suspend Event Occurs Activate Suspend Activate Suspend 事件发生 EventOccurs 进程等待的事件发生 可能的情况有 阻塞到就绪 针对内存进程的事件发生 阻塞挂起到就绪挂起 针对外存进程的事件发生 挂起进程模型 进程的状态转换 进程和进程控制 状态转换 Running Ready Suspend Ready Blocked Dispatch Timeout Event Wait Event Occurs Blocked Suspend Suspend Event Occurs Activate Suspend Activate Suspend 收容 Admit 收容一个新进程 进入就绪状态或就绪挂起状态 进入就绪挂起的原因是系统希望保持一个大的就绪进程表 挂起和非挂起 挂起进程模型 进程的状态转换 进程和进程控制 状态转换 Admit Running Ready Suspend Ready Dispatch Timeout New Suspend Activate Admit Suspend 双挂起进程模型 挂起进程模型 进程的状态转换 进程和进程控制 Admit Running Ready Suspend Exit Ready Blocked Dispatch Timeout Event Wait Event Occurs Release Blocked Suspend Suspend New Event Occurs Activate Suspend Activate Admit Suspend 进程控制 进程控制 就是操作系统使用一些具有特定功能的程序段来创建与撤消进程以及完成进程状态的转换 从而达到多个进程高效率地并发执行和协调 实现资源共享 进程控制主要体现在进程的创建与撤消 以及进程的阻塞与唤醒 操作系统对进程的控制是依据用户命令和系统状态来决定的 用户可在一定程序上对进程的状态进行控制 具有特定功能的程序段 原语 进程和进程控制 进程控制 原语 primitive 由若干条指令构成的 原子操作 atomicoperation 过程 作为一个整体而不可分割 要么全都完成 要么全都不做 许多系统调用就是原语 注意 系统调用并不都是原语 进程A调用read 因无数据而阻塞 在read 里未返回 然后进程B调用read 此时read 被重入 系统调用不一定一次执行完并返回该进程 有可能在特定的点暂停 而转入到其他进程 进程和进程控制 进程控制 进程和进程控制 创建原语 进程的存在以PCB为标志 所以创建新进程的主要任务就是为进程建立PCB 将调用者提供的有关信息填入PCB的各数据项中 开始 分配PCB空间 将有关信息填入PCB的数据项 将PCB送入相应状态PCB链表 结束 进程控制 进程和进程控制 撤消原语 进程完成其任务之后 系统应及时回收它占有的资源 开始 搜索PCB链表 释放该进程所占有的资源 释放PCB结构本身 结束 有此PCB 异常处理 No Yes 进程控制 进程和进程控制 阻塞原语 开始 将CPU当前状态存入PCB 设置进程状态为阻塞状态 将PCB置入阻塞队列 转处理机调度 进程控制 进程和进程控制 唤醒原语 开始 从阻塞队列删除该PCB 设置进程状态为就绪状态 将PCB置入就绪队列 转处理机调度 Windows的进程管理 Windows的进程由执行体进程块EPROCESS表示 EPROCESS即进程对象 进程对象的属性 PID PCB AccessToken BasePriority 句柄表 指向进程环境块PEB的指针 亲和处理器集合等在Windows中 PCB也称为内核进程块KPROCESS 即内核进程对象EPOCESS和KPROCESS位于内核空间 PEB位于用户空间 进程和进程控制 Windows的进程结构 Windows的进程管理 进程和进程控制 进程创建 CreateProcess 函数用于创建新进程及其主线程 以执行指定的程序 新进程可以继承 打开文件的句柄 各种对象 如进程 线程 信号量 管道等 的句柄 环境变量 当前目录 每个句柄在创建或打开时能指定是否可继承 新进程不能继承 优先权类 内存句柄 DLL模块句柄CREATE NEW CONSOLE表示新进程有一个新的控制台CREATE NEW PROCESS GROUP表示新进程是一个新的进程组的根 Windows的进程管理 进程和进程控制 进程退出 ExitProcess 或TerminateProcess 则进程包含的线程全部终止 ExitProcess 终止一个进程和它的所有线程 它的终止操作是完整的 包括关闭所有对象句柄 它的所有线程等 TerminateProcess 终止指定的进程和它的所有线程 它的终止操作是不完整的 如 不向相关DLL通报关闭情况 通常只用于异常情况下对进程的终止 Windows的进程管理 进程和进程控制 与进程管理相关的内核变量 PsActiveProcessHead进程链表头PsInitialSystemProcess系统进程 系统线程的宿主 PsIdleProcess空闲进程 Windows的进程管理 进程和进程控制 线程 线程的引入操作系统对线程的实现方式进程和线程的比较Windows的线程 如果说在操作系统中引入进程是为了使多个程序能够并发执行 提高资源利用率和系统吞吐量 那么引入线程 THREAD 的目的则是减少程序并发执行所付出的时空开销来 进一步提高系统的并发程度 线程 线程的引入 进程 资源 存储器 文件 分配单位和CPU调度 分派单位 由于进程是资源拥有者 因而在创建 终止 切换过程中 系统必须为之付出较大的时空开销 正因为如此 系统中并发执行的进程的数目不宜过多 进程切换才频率也不宜过高 这样就限制了系统的并发程度 解决这一问题的思路 将进程的两个基本属性分开 由操作系统分别处理 线程概念的引入在支持线程的操作系统中 进程只作为资源分配单位 而线程则作为CPU调度 分派单位 线程 线程的引入 线程 作为CPU调度单位 只拥有必不可少的资源 如 线程状态 寄存器上下文和栈同样具有就绪 阻塞和执行三种基本状态线程的优点 减小并发执行的时间和空间开销 线程的创建 退出和调度 因此容许在系统中建立更多的线程来提高并发程度 线程的创建时间比进程短 线程的终止时间比进程短 同进程内的线程切换时间比进程短 由于同进程内线程间共享内存和文件资源 可直接进行不通过内核的通信 线程 进程与线程的关系 线程 线程的引入 OS对线程的实现方式 内核维护进程和线程的上下文信息 线程切换由内核完成 一个线程发起系统调用而阻塞 不会影响其他线程的运行 时间片分配给线程 所以多线程的进程获得更多CPU时间 依赖于OS核心 由内核完成创建和撤销 Windows支持内核线程 内核线程 kernel levelthread 线程 用户线程 user levelthread 用户线程的维护由应用进程完成 内核不了解用户线程的存在 用户线程切换不需要内核特权 用户线程调度算法可针对应用优化 不依赖于OS核心 应用进程利用线程库提供的创建 同步 调度和管理线程的函数来控制用户线程 如 数据库系统Informix 图形处理AldusPageMaker 调度由应用软件内部进行 通常采用非抢先式和更简单的规则 一个线程发起系统调用而阻塞 则整个进程在等待 时间片分配给进程 多线程则每个线程就慢 线程 OS对线程的实现方式 进程和线程的比较 地址空间和其他资源 如打开文件 进程间相互独立 同一进程的各线程间共享 某进程内的线程在其他进程不可见通信 进程间只能使用IPC线程间可以直接读写进程数据段 如全局变量 来进行通信也需要同步和互斥手段的辅助 以保证数据的一致性调度 线程上下文切换比进程上下文切换要快得多 线程 线程切换和进程切换 线程 进程和线程的比较 Windows的线程 线程 线程对象 Windows线程由执行体线程块ETHREAD表示 即线程对象 其中包含内核线程块K

温馨提示

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

评论

0/150

提交评论