ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:619.68KB ,
资源ID:6164173      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6164173.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(3 进程管理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

3 进程管理.docx

1、3 进程管理第三章 进程管理3.1进程的基本概念3.1.1程序的执行方式一、顺序执行一个程序的全部指令执行完以后才顺序执行另一个程序的指令。特征: (1)顺序性:每一操作必须在下一操作之前结束(2)资源独占性:顺序执行的程序独占全机资源(3)程序结果的封闭性:程序的运行结果与程序的运行速度无关。(4)执行过程的可再现性:程序的执行的初始条件若相同,最终结果亦完全相同。例:A B A1:r-5; B1:r-10A2:x-2*r*r; B2:x 运行调度程序选择一个新的进程运行2、运行 - 就绪(1)运行进程用完了时间片(2)运行进程被中断,因为一高优先级进程处于就绪状态3、运行 - 阻塞当一进程

2、必须等待时(1)对一资源的访问尚不能进行(2)等待某一进程提供输入 (IPC)4、等待 - 就绪当所等待的事件发生时四、UNIX的进程状态转换在前三种状态的基础上增加了挂起状态,把处于就绪态和阻塞态的部分进程从内存移出到外存3.3进程的描述 程序段描述进程的结构 数据集 进程实体 进程控制块(PCB)一、程序段 完成用户需求功能的指令集二、数据集 程序加工的对象三、进程控制块(PCB)1、进程控制块的描述(1)系统为了管理进程设置的一个专门的数据结构,存放了用于描述该进程情况和控制进程运行所需的全部信息(2)系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志(3)进程与PC

3、B是一一对应的2、包含信息 一个PCB至少包括4类信息,全部或部分放入内存(1)进程标识信息 (2)资源管理信息(3)控制信息 (4)执行现场信息3、进程控制块的作用进程控制块是操作系统中管理、控制进程的重要数据实体,也是进程存在的唯一标志,操作系统通过创建进程控制块创建进程,通过操作进程控制块中的信息为进程分配资源、调度执行、实施控制,最后通过回收进程控制块而撤销进程4、进程控制块的组织方式为了有效地对进程控制块进行管理,应该采用适当的方式把它们组织起来。 目前常用的组织方式有以下两种:(1)按链接方式组织PCB (队列) 不同状态进程分别组成队列空PCB队列 运行态 就绪态 阻塞态1 阻塞

4、态2(2)按索引方式组织PCB (表) 对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB中的地址3.4进程控制进程控制:系统使用一些具有特定功能的程序段创建、撤销进程以及完成进程各状态间的转换,从而达到多进程高效并发执行和协调、实现资源共享的目的。原语:执行过程中不允许中断或不能并发执行的系统程序。一、创建原语1、功能:创建一个具有指定标识符进程2、入口信息:进程标识符、优先级、进程开始地址、初始CPU状态、资源清单等3、实现过程2、进程的撤消原语(1)功能:撤消一个指定的进程(2)入口信息:被撤消的进程名(3)实现过程(4)引起撤消的原因正常结束异常结束(越界错、保护错、

5、特权指令错、非法指令、运行超时、I/O故障等)外界干预(操作员干预、父进程请父进程终止)3、进程阻塞处于运行状态的进程,在其运行过程中期待某一事件发生,如等待键盘输入、等待磁盘数据传输完成、等待其它进程发送消息,当被等待的事件未发生时,由进程自己执行阻塞原语,使自己由运行态变为阻塞态。 (1)功能:停止调用进程的执行,变为等待(2)入口信息:可省 (3)阻塞原语的实现过程 4、进程的唤醒原语(1)功能:唤醒某一处于等待队列当中的进程(2)入口信息:被唤醒进程的名字(3)唤醒原语的实现过程(4)引起唤醒的原因系统服务由不满足到满足 I/O完成新数据到达进程提出新请求(服务) 3.5进程互斥一、定

6、义一组并发进程中的一个或多个程序段因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行二、相关术语1、临界资源一次只允许一个进程使用的资源2、临界区进程的代码段中设计临界资源的程序段3、临界区的控制原则(1)临界区只能顺序执行(2)在临界区内执行的进程必须在有限的时间内释放临界区(3)退出临界区的进程有义务唤醒因进不了临界区而阻塞的进程三、互斥实现加/开锁 W=1 有进程使用W= W=0 无进程使用 Lock(w) if(w=1) 调阻塞原语阻塞当前进程 转进程调度程序 Else w=1 Unlock(w) If(等待队列不空) 调唤醒原语唤醒一个进程 W=0 A B C Lock(

7、w) lock(w) lock(w) 临界区代码 临界区代码 临界区代码 Unlock(w) unlock(w) unlock(w)加/开锁操作进程不断的测试w的值3.6信号量和P、V原语一、信号量信号量定义成一整型量S,代表某种资源,仅通过两个标准原子操作P(S)和V(S)来访问二、P操作意味着请求分配一个单位资源1、过程P(s) s= s -; if (s 0) 该进程状态置为等待状态 将该进程的PCB插入相应的等待队列末尾; 三、V操作意味着释放一个单位资源1、过程V(s) s = s +; if (s 0表示有S个资源可用; S=0表示无资源可用 S0则| S |表示S等待队列中的进程

8、个数 P(S):表示申请一个资源; V(S)表示释放一个资源。信号量的初值应该大于等于02、P.V操作必须成对出现,有一个P操作就一定有一个V操作 当为互斥操作时,它们同处于同一进程 当为同步操作时,则不在同一进程中出现如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前 而两个V操作无关紧要3、P.V操作的优缺点(1)P.V操作优点: 简单,而且表达能力强(用P.V操作可解决任何同步互斥问题)(2)缺点: “不够安全;P.V操作使用不当会出现死锁;遇到复杂同步互斥问题时实现复杂3.9 进程通信 通信:进程间传送数据

9、 控制信息的传送 低级通信(数据量小) 控制进程的执行速度通信 大批量数据传送 高级通信 数据量大) 交换信息 主从式进程的通信方式 会话式 消息或邮箱机制 共享存储区方式一、主从式主从式通信系统的主要特点:1、主进程可自由地使用从进程的资源或数据2、从进程的动作收主进程的控制3、主进程和从进程的关系式固定的例子:终端控制进程和终端进程二、会话式 使用进程 通信进程双方 使用进程调用服务进程提供的服务 服务进程 会话式通信系统的特点:1、 使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可2、 服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成3、 使用进程

10、和服务进程在进行通信时有固定的连接关系。 例子:用户进程与磁盘管理进程三、消息或邮箱机制结构:消息的组成:发送进程名接收进程名操作数据消息或邮箱机制的特点:1、 只要存在空缓冲区或邮箱,发送进程就可以发送消息2、 与会话系统不同,发送进程和接收进程之间无直接连接关系,接收进程可能在收到某个发送进程发来的消息之后,又转去接受另一个发送进程发来的消息3、 发送进程和接收进程之间存在缓冲区或邮箱用来存放被传送的消息例子:P V操作中的例子3.10 死锁3.10.1死锁的概念一、死锁的定义 *并发执行的一组进程彼此相互等待对方占用的资源,在得到对方占用的资源前它并不释放自己所占用的资源,由此形成诸进程

11、循环等待而永远无法执行的僵死状态。二、死锁产生的原因 *1、竞争资源引起的死锁 可剥夺性资源 CPU 内存资源 非剥夺性资源 打印机等非剥夺性资源引起死锁例: 进程A 进程B 申请输入设备 申请输出设备 申请输出设备 申请输入设备 使用处理 使用处理 释放输入设备 释放输出设备 释放输出设备 释放输入设备2、进程推进顺序不当引起死锁 例如:P、V操作中同时出现同步与互斥三、关于死锁的结论1、参与死锁的进程最少是两个 2、参与死锁的进程至少有两个已经占有资源3、参与死锁的所有进程都在等待资源4、参与死锁的进程是当前系统中所有进程的子集注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。四、产

12、生死锁的必要条件(1)互斥条件(资源独占) 在一段时间内某资源只由一个进程占用(2)请求和保持条件(部分分配,占有申请) 进程已经保持了至少一个资源,但有提出了新的资源请求,而该资源又已经被其他进程占有,此时请求进程阻塞,但有对自己已获得的其他资源保持不放(3)不剥夺条件(不可强占) 进程已获得的资源,在未使用完之前不能被剥夺,只能在使用完时由自己释放(4)环路等待条件(发生死锁时必然存在一个进程资源的循环链)五、解决死锁的基本办法 预防死锁 避免死锁 检测死锁 解除死锁3.10.2预防死锁的方法和避免死锁一、预防死锁的方法在系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁

13、的四个必要条件之一。 1)破坏请求和保持条件. 一次性申请所需全部资源,只要有一个资源不满足,取消所有的资源 2)破坏不可剥夺条件 可剥夺资源;即当某进程新的资源未满足时,释放已占有的资源( 3) 破坏环路等待条件资源有序分配法;做法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反二、死锁避免1、定义在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否则予以分配预防死锁的几种策略,会严重地损害了系统性能。因此要施加较弱的限制,从而获得较满意得系统性能来避免死锁由于在避免死锁的

14、策略中,允许进程动态地申请资源。因而,系统在进行资源分配之前预先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,进程等待。其中最具有代表性的避免死锁算法是银行家算法2、安全状态与不安全状态安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直至最大需求,使每个进程都可顺序完成。若系统不存在这样一个序列,则称系统处于不安全状态。(1)安全序列一个进程序列P1,Pn是安全的,如果对于每一个进程Pi(1in),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j i )当前占有资源量之和,系统处于安全状态。 (安全状态一定是没有死锁发生的)(2

15、)安全状态之例 我们通过一个例子来说明安全性。假定系统中有三个进程P1、 P2和P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得5台、2台和2台磁带机,尚有3台空闲未分配,如下表所示: 进 程最 大 需 求已 分 配可 用P1P2P310495223(3)由安全状态向不安全状态的转换如果不按照安全序分配资源,则系统可能会由安全状态进入不安全状态。例如,在T0时刻以后,P3又请求1台磁带机,若此时系统把剩余3台中的1台分配给P3,则系统便进入不安全状态。 因为,此时也无法再找到一个安全序列, 例如,把其余的2台分配

16、给P2,这样,在P2完成后只能释放出4台,既不能满足P1尚需5台的要求,也不能满足P3尚需6台的要求,致使它们都无法推进到完成,彼此都在等待对方释放资源,即陷入僵局,结果导致死锁例:T0时刻资源分配如下: 已分配 还需要 可用资源P0 0 0 1 3 1 2 1 2 1 3 3 2P1 0 3 2 3 1 1 0 4 P2 1 0 1 0 0 6 3 1 P3 1 4 3 0 2 1 2 4(1) 该状态是安全的吗?(要求:给出步骤)(2) 如果进程P1提出资源请求Request(1,1,0,2),系统能否将资源分配给它?(要求:给出步骤)3、利用银行家算法避免死锁 (1)银行家算法中的数据结

17、构 (a)可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Availablej=K,则表示系统中现有Rj类资源K个(b)最大需求矩阵Max。这是一个nm的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Maxi,j=K,则表示进程i需要Rj类资源的最大数目为K(c)分配矩阵Allocation。这也是一个nm的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocationi,j=K,则表示进程i当前已分得

18、Rj类资源的数目为K。(d)需求矩阵Need。这也是一个nm的矩阵,用以表示每一个进程尚需的各类资源数。如果Needi,j=K,则表示进程i还需要Rj类资源K个,方能完成其任务Needi,j=Maxi,j-Allocationi,j (2)银行家算法设Requesti是进程Pi的请求向量,如果Requestij=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查(a)如果RequestijNeedi,j,便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值(b)如果RequestijAvailablej,便转向步骤(3);否则, 表示尚无足够

19、资源,Pi须等待(c)系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值: Availablej=Availablej-Requestij; Allocationi,j=Allocationi,j+Requestij; Needi,j=Needi,j-Requestij(d)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待(3)安全性算法 (a)设置两个向量: 工作向量Work: 它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安

20、全算法开始时,Work=Available; Finish: 它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finishi=false; 当有足够资源分配给进程时, 再令Finishi=true(b)从进程集合中找到一个能满足下述条件的进程: Finishi=false; Needi,jWorkj; 若找到, 执行步骤(3), 否则,执行步骤(4)。 (c) 当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行: Workj= Workj+Allocationi,j; Finishi= true; go to step 2; (d)如果所有进程的Fini

21、shi=true都满足, 则表示系统处于安全状态;否则,系统处于不安全状态(4)银行家算法之例 假定系统中有五个进程P0, P1, P2, P3, P4和三类资源A, B, C,各种资源的数量分别为10、5、7,在T0时刻的资源分配情况如图所示(a) T0时刻的安全性:(b) (b)P1请求资源:P1发出请求向量Request1(1,0,2),系统按银行家算法进行检查: Request1(1, 0, 2)Need1(1, 2, 2) Request1(1, 0, 2)Available1(3, 3, 2) 系统先假定可为P1分配资源,并修改Available, Allocation1和Need1向量,由此形成的资源变化情况如图 3-15 中的圆括号所示。 再利用安全性算法检查此时系统是否安全 P1申请资源时的安全性检查 (c)P4请求资源:P4发出请求向量Request4(3,3,0),系统按银行家算法进行检查: Request4(3, 3, 0)Need4(4, 3, 1); Request4(3, 3, 0) Available(2, 3, 0),让P4等待。 (d)P0请求资源:P0发出请求向量Requst0(0,2,0),系统按银行家算法进行检查: Request0(0, 2, 0)Need 0(7, 4, 3); Request0(0, 2, 0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1