网站大量收购闲置独家精品文档,联系QQ:2885784924

1理管程进32课次二第.2§.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(1)预防死锁 为了使系统中不发生死锁现象,在系统设计初期即选择一些限制条件,来破坏产生死锁的4个必要条件之一或其中几个。这样,系统中就不会出现死锁现象。这种方法对预防死锁的发生非常有效,但有可能降低系统资源的利用率。 (2)避免死锁 由于一方面预防死锁的方法会降低系统资源利用率,另一方面死锁的必要条件的存在未必就一定会使系统发生死锁,因此为提高系统资源的利用率,可采用避免死锁。避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。 (3)检测和解除死锁 由于死锁产生的概率总是比较小的,所以在一些相对简单的系统中,为节省预防或避免死锁中所增加的系统开销,系统中允许出现死锁状态。在这种系统中,专门设置了一个检测机构,可以随时检测出死锁的发生,并能确定与死锁有关的进程和资源,然后采用适当的方法解除系统中的死锁状态。 常用的解除死锁的方法有两种:一是强制性地撤销一些死锁进程,并剥夺它们的资源给其他的进程;另一种是使用一个有效的挂起和解除挂起机构来挂起一些进程,以便从被挂起进程中剥夺一些资源,用来解除死锁。 7.6.2 预防死锁 1.打破“请求和保持”条件 打破“请求和保持”条件,即把进程运行中所要求的所有资源在进程开始运行之前,一次性地分配给进程,只要有一种资源不能满足,该进程就必须等待。这样,进程在运行过程中就不再需要新的资源,这种方法又称为预先静态分配法。 2.打破“不剥夺”条件 打破“不剥夺”条件,即强迫那些请求新资源而没有立即得到满足的进程释放它已保持的其他资源。这意味着一个进程在运行过程可以暂时释放已占有的资源,即允许其他进程剥夺使用该资源,从而破坏了“不剥夺”条件的出现。 3.打破“环路等待”条件 死锁产生时,一定存在一种进程和资源的循环链。打破“环路等待”条件就是在资源的分配过程中,对资源的请求做出某种限制,使环路不可能出现。 7.7 线 程 7.7.1 线程的引入 由于进程是一个资源拥有者,所以在进程的创建、撤消和调度切换以及进程的同步与通信中,系统必须付出较大的时空开销。正因为如此,在系统中所设置的进程数目不宜过多,进程切换的频率也不宜过高,这也就限制了并发程度的进一步提高。 由以上对进程的分析可知,如果将进程的上述两个属性分开,由操作系统分开处理,将使多个程序更好地并发执行,同时又可减少系统的开销。也就是说,对于作为调度和分派的基本单位,不同时作为拥有资源的单位;而对于拥有资源的基本单位,又不对之进行频繁的切换。正是在这种思想的指导下,形成了线程(Thread)的概念。 在引入线程的操作系统中,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。它的执行环境很小,除了自身必需的堆栈、寄存器、优先级等私有资源外,共享其所属进程的资源。 7.7.2 线程与进程的比较 (1)拥有资源 (2)调度 (3)并发性 (4)系统开销 7.7.3 线程的属性 线程具有如下属性。 (1)线程有控制表。 (2)线程共享所属进程的资源。 (3)线程是处理机的独立调度单位,多个线程可以并发执行。 (4)线程有动态性。 7.7.4 线程的状态及其转换 (1)就绪状态。线程已具备了执行的条件,等待线程调度程序调度。 (2)备用状态。由调度程序选定为一个执行对象。 (3)转换状态。若线程已准备好执行,但突然资源不可用,从而成为转换状态。 (4)运行状态。获得CPU正在执行。 (5)等待状态。正在执行的线程,由于某种原因(如I/O操作)不能继续运行下去。 (6)终止状态。线程已执行完成。 线程的状态及其转换如图7.14所示。 图7.14 线程的状态及其转换 7.8 Linux中的进程管理 7.8.1 Linux进程概述 1.进程实体的组成 Linux进程由3部分组成:正文段、用户数据段和系统数据段,如图7.15所示。 图7.15 Linux进程组成 2.进程的状态 进程是一个动态的概念,在其运行的整个生命周期中可根据具体情况不断改变其状态。Linux进程主要有如下几种状态。 (1)运行状态(task_running) (2)等待状态 (3)暂停状态(task_stopped) (4)僵死状态(task_zombie) 图7.16 Linux进程状态转换 7.8.3 Linux的进程调度 7.8.4 Linux进程的同步和通信 1.信号机制 2.管道机制 3.消息队列 4 . 共享内存 5. 信号量 7.3.2 进程同步 1.同步的概念 把异步环境

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档