操作系统课件第3章进程管理.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.2.3 进程上下文切换 进程上下文切换发生在不同进程之间而不是同一个进程内 进程上下文切换包含三个部分,涉及三个进程: 3.2.4 进程空间 任何一个进程,都有自己的地址空间,把该空间称为进程空间或虚空间。 进程空间的大小只与处理机的位数有关。程序的执行都在进程空间内进行。用户程序、进程的各种控制表格都按一定的结构排列在进程空间里。 在Unix和Linux系统中,进程空间还被划分为用户空间和系统空间两大部分. 在进程空间被划分为两大部分后,用户程序在用户空间内执行,操作系统内核程序在进程的系统空间内执行。 为了防止用户程序访问系统空间,造成访问出错,计算机系统还通过程序状态寄存器设置不同的执行模式,用户模式和系统模式来进行保护,即用户态和系统态。 思考 ?? 请说说PCB的作用。 ?? 为什么要引入进程的概念? 第3章 进程管理(1) 3.1 进程的概念 3.2 进程的描述 3.3 进程状态及其转换 3.4 进程控制 3.5 进程互斥 3.6 进程同步 3.7 进程通信 3.8 死锁问题 3.9 线程的概念 3.10 线程分类与执行 3.1 进程的基本概念 3.1.1 程序的顺序执行与并发执行 3.1.2 进程的定义 程序的顺序执行 程序是一个静态的概念,是严格按次序执行的计算机操作序列的集合,体现了编程人员要求计算机完成相应功能时所应采取的顺序步骤。 一个较大的程序通常都是由若干个程序段组成。在程序执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作。 例如:在进行计算时,总是先输入用户的程序和数据,然后才能计算,计算完成后再将结果打印出来。 程序的顺序执行 一个程序的多条语句的顺序执行: 程序顺序执行的特点 顺序性:一个程序开始执行必须要等到前一个程序已执行完成。 封闭性:程序一旦开始执行,其计算结果不受外界因素影响。 可再现性:程序的结果与它的执行速度无关(即与时间无关),只要给定相同的输入,一定会得到相同的结果。 多道程序系统中程序执行环境的变化 计算机能够同时处理多个具有独立功能的程序(批处理系统,分时系统、实时系统、网络与分布式系统)。这样的执行环境具有三个特点: 1. 独立性:每道程序都是逻辑上独立的,之间不存在制约关系。 2. 随机性:程序和数据的输入与执行开始时间都是随机的。这种随机性形成了操作系统必须同时处理多道程序的客观要求。 3. 资源共享 – 硬件资源:CPU、输入输出设备,存储器 – 软件资源:各种例行程序、各种共享的数据 – 多道程序环境下执行程序的道数计算机系统中CPU 的个数 – 单CPU中,则有N-1道程序处在等待CPU的状态 – 输入输出设备有限将导致这些设备被共享、内存有限将导致内存被共享 程序的并发执行 所谓程序的并发执行是指:若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。 程序的并发执行 一个程序的多条语句的并发执行: 程序并发执行的特点 例:程序A、B,共享变量N,程序A,执行N:=N+1;程序B执行Print(N),然后将N置0。两个程序以不同速度运行,可能出现三种情况: N:=N+1在Print(N)和N=0之前,此时N值分为N+1,N+1, 0 N:=N+1在Print(N)和N=0之后,此时N值分为N, 0, 1 N:=N+1在Print(N)和N=0之间,此时N值分为N, N+1, 0 问题:并发与并行的区别是什么? 并发(Concurrency) 宏观上存在并行特征,微观上存在顺序性 同一时刻,只有一个事物处于活动状态 示例:分时操作系统中多个程序的同时运行 并发执行的条件:达到封闭性和可再现性 并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。 将程序中任一语句Si划分为两个变量的集合R(Si)和W(Si)其中 R(Si)={a1,a2,……am}是语句Si在执行期间必须对其进行读的变量 W(Si )={b1 ,b2 ,……bn }是语句Si在执行期间必须对其进行修改的变量 如果对于语句S1和S2,有 ① R(S1)∩W(S2)={Φ} ② W(S1)∩R(S2)={Φ} ③ W(S1)∩W(S2) ={Φ} 同时成立,则语句S1和S2可并发执行 前两条保证一个程序的两次读之间数据不变 化;最后一条保证写的结果不丢掉。现在的 问题是这个条件不好检查。 例:若有两条语句c=a-b和w=c+1,判断它们是否可以并发执行? 解:它们的“读集”和“写集”分别为 R(c=a-b)={a,b}; R(w=c+1)={c} W(c=a-b)={c} ; W(w=c+1)={w} R(c=a-b)∩W(w=c+1)={Φ}

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档