- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.4.2 进程切换 从表面上看,进程切换的功能是很简单的。在某一时刻,一个正在运行的进程被中断,操作系统指定另一个进程为运行态,并把控制权交给这个进程。但是这会引发若干问题。首先是触发进程切换的事件,其次是模式切换与进程切换之间的区别,最后,为实现进程切换,操作系统必须对它所控制的各种数据结构完成相应的操作。 进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生。表3-8给出了可能把控制权交给操作系统的事件。 表3-8 进程执行的中断机制 3.4.2 进程切换 首先考虑系统中断。大多数操作系统区分两种类型的系统中断,一种称为中断,另一种称为陷阱(trap)。前者与某种类型的外部事件相关,如完成一次I/O操作;后者与当前正在运行的进程所产生的错误或异常条件相关,如非法的文件访问。对于普通中断,控制首先转移给中断处理器,做一些辅助工作,然后转到与已经发生的特定类型的中断相关的操作系统例程。例如: 时钟中断:操作系统确定当前正在运行的进程的执行时间是否已经超过了最大允许时间片(即进程在被中断前可以执行的最大时间段),如果超过了,进程必须切换到就绪态,调入另一个进程。 3.4.2 进程切换 I/O中断:操作系统确定是否发生了I/O活动。如果I/O活动是一个或多个进程正在等待的事件,操作系统就把所有相应的阻塞态进程转换到就绪态(阻塞/挂起态进程转换到就绪/挂起态)。操作系统必须决定是继续执行当前处于运行态的进程,还是让具有高优先级的就绪态进程抢占这个进程。 内存失效;处理器访问一个虚拟内存地址,且此地址单元不在内存中时,操作系统必须从外存中把包含这个引用的内存块(页或段)调入内存中。在发出调入内存块的I/O请求之后,操作系统可能会执行一个进程切换,以恢复另一个进程的执行,发生内存失效的进程被置为阻塞态,当想要的块调入内存中时,该进程被置为就绪态。 3.4.2 进程切换 对于陷阱,操作系统确定错误或异常条件是否是致命的。如果是,当前正在运行的进程被转换到退出态,并发生进程切换;如果不是,操作系统的动作取决于错误的种类和操作系统的设计,其行为可以是试图恢复或通知用户,操作系统可能会进行一次进程切换或者继续执行当前正在运行的进程。 3.4.2 进程切换 最后,操作系统可能被来自当前程序的系统调用激活。例如,一个用户进程正在运行,并且正在执行一条请求I/O操作的指令,如打开文件,这个调用导致转移到作为操作系统代码一部分的一个例程上继续执行。通常,使用系统调用会导致把用户进程置为阻塞态。 模式切换 中断阶段是指令周期的一部分。在中断阶段,处理器通过检查中断信号判断是否发生了任何中断。如果没有未处理的中断,处理器继续取指令周期,即取当前进程中的下一条指令。 3.4.2 进程切换 如果存在一个未处理的中断,处理器需要做以下工作: 1)把程序计数器置成中断处理程序的开始地址。 2)从用户态切换到内核态,使得中断处理代码可以包含有特权的指令。 处理器继续取指阶段,并取中断处理程序的第一条指令,它将给中断提供服务。此时,被中断的进程上下文保存在被中断程序的进程控制块中。 3.4.2 进程切换 中断处理程序通常是执行一些与中断相关的基本任务的小程序。例如,它重置表示出现中断的标志或指示器。可能给产生中断的实体如I/O模块发送应答,它还做一些与产生中断的事件结果相关的基本辅助工作。例如,如果中断与I/O事件有关,中断处理程序将检查错误条件;如果发生了错误,中断处理程序给最初请求I/O操作的进程发一个信号。如果是时钟中断,处理程序将控制移交给分派器,当分配给当前正在运行进程的时间片用尽时,分派器将控制转移给另一个进程。 3.4.2 进程切换 在大多数操作系统中,发生中断并非必须伴随进程切换。可能是中断处理器执行之后,当前正在运行的进程继续执行。在这种情况下,所需要做的是当中断发生时保存处理器状态信息,当控制返回给这个程序时恢复这些信息。在典型情况下,保存和恢复功能由硬件实现。 3.4.2 进程切换 进程状态的变化 显然,模式切换与进程切换是不同的。发生模式切换可以不改变正处于运行态的进程状态,在这种情况下,保存上下文环境和以后恢复上下文环境只需要很少的开销。但是,如果当前正在运行的进程被转换到另一个状态(就绪、阻塞等),则操作系统必须使其环境产生实质性的变化。 3.4.2 进程切换 完整的进程切换步骤如下: 1)保存处理器上下文环境,包括程序计数器和其他寄存器。 2)更新当前处于运行态进程的进程控制块,包括将进程的状态改变到另一状态(就绪态、阻塞态、就绪/挂起态或退出态)。还必须更新其他相关域,包括离开运行态的原因和记账信息。 3)将该进程的进程控制块移到相应的队列(就绪、在事件i处阻塞、就绪/挂起)。 4)选择另一个
您可能关注的文档
- 操作系统安全 教学课件 作者 张波云 鄢喜爱 范强 第五章 Windows 系统资源的安全保护.ppt
- 程序设计基础 Java语言 教学课件 作者 余先锋 ch02.ppt
- 仓储与配送管理 第2版 教学课件 作者 秦龙有 主编 第十章 配送中心.ppt
- 常用工具软件实用教程电子教案 第4章 文件编辑与管理软件.PPT
- 程序设计基础 Java语言 教学课件 作者 余先锋 ch03.ppt
- 程序设计基础 Java语言 教学课件 作者 余先锋 ch04.ppt
- 操作系统安全 教学课件 作者 张波云 鄢喜爱 范强 第一章 绪论.ppt
- 程序设计基础 Java语言 教学课件 作者 余先锋 ch05.ppt
- 常用工具软件实用教程电子教案 第5章 文件下载软件.PPT
- 仓储与配送管理 第2版 教学课件 作者 秦龙有 主编 第四章 商品在库保管.ppt
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)