- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 处理机调度与死锁 3.1 分级调度 完成状态: 当作业运行完毕,但它所占用的资源尚未全部被系统回收时,该作业处于完成状态。 2.中级调度 3.低级调度 3.1.2 作业与进程的关系 作业是用户向计算机提交任务的任务实体。一个作业是指在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作。一个作业总是由一个或多个进程组成的。作业分解为进程的过程是:系统首先为一个作业创建一个根进程。然后,在执行作业控制语句时,根据任务要求,系统或根进程为其创建相应的子进程。最后,进行进程调度,为各子进程分配资源和调度各子进程执行,以完成作业要求的工作。 3.2 作业调度 3.2.1 作业调度的功能 3.3 进程调度 3.3.2 进程调度的时机 3.3.3 进程上下文的切换 3.3.4 Linux系统中进程调度发生的时机 3.2.2 调度算法的评价及准则 1.面向用户的准则 2.面向系统的准则 (2)响应时间快 2.面向系统的准则 3.4 调度算法 3.高响应比优先调度算法 4. 优先级调度算法 解: (1)各作业进入时间和结束时间如下: 5. 轮转调度算法 2.多级队列调度算法 3.多级反馈队列调度算法(一种比较理想的调度算法) 3.5 Linux系统的调度算法 3.5.1 Linux系统的进程调度策略 3.5.2 Linux系统的优先级调度策略 3.5.3 实时进程的调度策略 实现实时调度的基本条件 1.提供必要的调度信息 (1)就绪时间; 该任务成为就绪状态的起始时间 (2)开始/完成截止时间; (3)处理时间; 指一个任务从开始执行直至完成所需的时间 (4)资源要求; 指任务执行时所需的一组资源 (5)优先级; 如果某任务的开始截止时间已经错过,就会引起故障,则应为该任务赋予“绝对”优先级;如果开始截止时间的推迟对任务的继续运行无重大影响,则可为该任务赋予“相对”优先级,供调度程序参考 . 死锁问题 3.6.2 产生死锁的原因及必要条件 不可剥夺性资源是指:进程一旦占有该资源,就不可抢占,不管其它进程的优先权是否高于当前进程,只能在该进程用完后自行释放,这种资源如打印机、磁带机等。大多数情况下,我们所讲引起的死锁的资源竞争,是指对于不可剥夺性资源的竞争。 2.死锁产生的必要条件 (1)互斥条件 对于一个排它性资源,某一时刻最多只能由一个进程占有,不能同时分配给两个以上的进程。必须要在占有该资源的进程放弃该资源后,其它进程才能占有该资源。如打印机是临界资源,各进程必须互斥地使用。 (2)占有且申请条件 (4)环路等待条件 3.6.3 解决死锁问题的基本方法 为保证系统的正常运行,应事先采取措施,预防或避免死锁的发生。在系统已出现死锁后,要及时检测到死锁并解除死锁。目前用于处理死锁问题的方法有以下几种: 1.死锁的预防 2.死锁的避免 3.死锁的检测 4.死锁的解除 3.死锁的检测 4.死锁的解除 3.7 死锁的预防与避免 3.7.1 死锁的预防 1.摒弃占有且申请条件 (2)释放已占资源策略 2.摒弃不可抢占条件 3.摒弃环路条件 3.7.2 死锁的避免 1.安全状态 2.由安全状态向不安全状态的转化 3.银行家算法 3.8 利用银行家算法避免死锁 3.8.2 银行家算法的实现 2.银行家算法的描述 3.安全性算法 安全算法的步骤: 3.8.3 银行家算法的应用 3.9 死锁的检测与解除 3.9.1 死锁检测的时机 3.9.2 死锁的检测 4.死锁检测中的算法 3.9.3 死锁的解除 1.终止进程 当死锁解除后,应当在适当的时机让被终止的进程重新执行。当重启运行进程时应让进程从头开始执行,也有的系统在进程执行的过程中设置校验点,当重新启动时让进程回退到发生死锁之前的那个校验点开始执行。设置校验点的办法对执行时间长的进程来说是有必要的,但系统的开销较大。 2.抢占资源 (3)进程的“饿死” 如果经常从同一个进程中抢占资源,则该进程总是处于资源不足的状态而不能完成,该进程就会被“饿死”。因此,一般情况下总是从已执行时间短的进程中抢夺资源,以免该现象的发生。 此外,还有进程回退策略,即让参与死锁的进程回退到没有发生死锁前的某一点处,并由此点处继续执行,以求再次执行时不再发生死锁。虽然这是个较理想的办法,但是操作起来系统开销极大,要有堆栈这样的机构记录进程的每一步变化,以便以后的回退。 (2) p1释放资源后,便可使p2获得资源而继续运行,直至p2完
原创力文档


文档评论(0)