- 1、本文档共167页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c第二章进程管理汇编
例如,有两个程序A和B,它们共享一个变量N(初始值为x)。 A: N:=N+1 B: Print(N): N:=0: 程序A和B并发执行,以不可预知的速度运行,可出现以下三种情况: (1)N:=N+1在Print(N)和N:=0之前,此时得到的N值分别为x+1, x+1, 0。 (2)N:=N+1在Print(N)和N:=0之后,此时得到的N值分别为x, 0, 1。 (3)N:=N+1在Print(N)和N:=0之间,此时得到的N值分别为x, x+1, 0。 补充:并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。1966年,由Bernstein(波恩斯坦)给出并发执行的条件。若两个程序P1和P2满足下述条件,便能并发执行且有可再现性: (R(P1)?W(P2))?(R(P2)?W(P1))?(W(P1)?W(P2))={} 解释: 运算的读集R(Pi)是指在运算执行期间参考的所有变量的集合: 运算的写集W(Pi)是指在运算执行期间要改变的所有变量的集合。 例 S1: a:=x+y R(S1)={x,y} W(S1)={a} S2: b:=z+1 R(S2)={z} W(S2)={b} S3: c:=a-b R(S3)={a,b} W(S3)={c} S4: d:=c+1 R(S4)={c} W(S4)={d} 可见: 语句S1和S2可以并发执行吗? 语句S1和S3可以并发执行吗? 语句S2和S3可以并发执行吗? 语句S3和S4可以并发执行吗? 语句S2和S4可以并发执行吗? 进程实体由三部分构成: (1)程序(段):进程要进行的操作。 (2)数据段:包括操作的数据和程序自己的变量。 (3)进程控制块PCB(Process Control Block):存放进程标识符、进程运行的当前状态、程序和数据的地址、程序运行时的CPU环境等。 进程与程序的区别 进程是动态的,程序是静态的:程序是有序代码的集合,它可以复制:进程是程序在数据集上的一次执行。 进程是暂时的,程序是永久的:进程是一个状态变化的过程,有它的撤销,程序可长久保存。 进程具有结构特征,由程序段、数据段和进程控制块三者组成,而程序仅是指令的有序集合,是进程的组成部分之一。 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程: 进程的其它两种状态 新状态 当一个新进程刚刚建立,还未将其放入就绪队列时的状态,称为新状态。 终止状态 当一个进程已经正常结束或异常结束,操作系统已将其从系统队列中移出,但尚未撤消,这时称为终止状态。 内容概述 补充内容 处理机的执行状态分系统态和用户态两种: (1)系统态(管态、核心态):有较高特权,能执行一切指令,访问所有寄存器和存储区。 (2)用户态(目态):有较低特权,能执行规定指令,访问指定寄存器和存储区。 用户程序运行在用户态,不能执行OS指令及区域。 OS内核运行在系统态,进程控制是由OS内核实现的。 2.2 进 程 控 制 进程控制是进程管理中最基本的功能,主要包括以下几个方面 创建新进程 终止已结束进程 终止由于某事件而无法运行下去的进程 负责进程的状态转换 原语(primitive) 由若干条指令构成的“原子操作(atomic operation)”过程,在执行期间不可中断,以保证其正确性。作为一个整体而不可分割。许多系统调用就是原语。 系统调用并不都是原语。进程A调用read(),因无数据而阻塞,在read()里未返回。然后进程B调用read(),此时read()被重入。系统调用不一定一次执行完并返回该进程,有可能在特定的点暂停,而转入到其他进程。 2.2 进 程 控 制 2.2.1 进程的创建 2.2.2 进程的终止 2.2.3 进程的阻塞与唤醒 2.2.4 进程的挂起与激活 2.2 进 程 控 制 2.2.1 进程的创建 2.2.2 进程的终止 2.2.3 进程的阻塞与唤醒 2.2.4 进程的挂起与激活 2.2 进 程 控 制 2.2.1 进程的创建 2.2.2 进程的终止 2.2.3 进程的阻塞与唤醒 2.2.4 进程的挂起与激活 2.2 进 程 控 制 2.2.1 进程的创建 2.2.2 进程的终止 2.2.3 进程的阻塞与唤醒 2.2.4 进程的挂起与激活 内容概述 2.3 进程同步 2.3.1 进程同步的基本概念 2.3.2 信号量机制 2.3.3 信号量的应用 一个循环进程顺序执行的誊抄 输入:f 输出:g while (f 不为空) do begin input : outpu
文档评论(0)