正在加载图片...
(3)专用处理器分配方式:这种方式有可能造成部分处理机的严重浪费,读者必须了解在 并行程度相当高的多处理器环境下,为什么这种浪费是值得的,它换来了什么好处 4.死锁的基本概念 死锁是指多个进程竞争资源而形成的一种僵局,若无外力的作用,这些进程将无法再向前 推进。可见,死锁状态不同于一般的阻塞状态。在学习时,读者应对下述两个问题有较深刻的 理解和掌握 (1)产生死锁的原因是什么:产生死锁的根本原因是竞争资源和进程推进顺序非法,在学 习时应了解这两个根本原因与0S的两个基本特征并发和其事之间存在着什么样的联系。 (2)产生死锁的必要条件有哪些。产生死锁的必要条件奋互斥条件、请求与保持条件、不 剥夺条件和环路等待条件,在学习时请思考如果其中的一个条件不满足,为什么不会产生死 5.预防死锁的方法 预防死锁是通过摒弃死锁产生的必要条件来达到防止死锁产生的目的的在学习时应了 解下述几个方面的内容 (1)摒弃″互斥″条件:应了解"互斥"条件为什么很难被摒弃,对某些(极少数的)互斥共享 的设备(如打印机)又可通过什么技术来摒弃互斥条件 2)摒弃″请求和保持″条件:读者应了解可通过哪些方法来摒弃″请求和保持”条件它们 对进程的运行和系统资源的利用率造成了什么样的影响。 (3)摒弃″不剥夺″条件:读者应了解可通过哪些方法来摒弃”不剥夺”条件,这些法有什么 缺点 (4)摒弃″环路等待″条件:读者应了解可通过哪些方法来摒弃″环路等待”条件,它对系统 和用户带来了哪些不便,对资源的利用率又有什么影响 (5)各种方法的比较:读者应从实现的简单性和资源的利用率等方面比较上述几种预防 死锁的方法,以了解哪种方法实现最简便,哪种方法可使资源利用率受损最少 6.利用银行家算法避免死锁 银行家算法是一种最有代表性的避免死锁的算法。在学习时应对下述几个方面的内容国 有较好的理解: (1)避免死锁的实质在于如何防止系统进入不安全状态二在学习时,读者必须清晰地认识 到,为什么系统处于安全状态便可避免进入死锁状态,而处于不安全状态则极有可能导致死锁 状态的产生。 (2)在银行家算法中用到了可利用资源向量 Available、最大需求矩阵Max、分配矩阵 Allocation、需求矩阵Ned等数据结构,而在安全性检査算法中则还要用到工作向量Work 和完成向量 Finish等数据结构,读者应对它们的物理意义和相互关系有较好的理解。 (3)安全性检査算法的目的是寻找一个安全序列。在学习时应了解满足什么条件的进程 Pi,其对资源的最大需求可以得到满足,故可顺利完成:当Pi完成后,应如何修改工作向量 Work和完成向量 Finish (4)在利用银行家算法避免死锁时应了解,系统什么时候可以为提出资源请求的进程试行 分配资源,什么时候才可以正式将资源分配给进程。 4.3典型问题分析和解答 1.为什么说多级反馈队列调度算法能较好地满足各方面用户的需要? 答:对终端型作业用户而言,他们提交的作业大多属于交互型作业,作业通常较小,系统只 要能使这些作业在一个队列所规定的时间片内完成,便可使他们都感到满意。对短批处理作业 用户而言,开始时他们的作业像终端型作业一样,如果仅在第一个队列中执行一个时间片即可(3)专用处理器分配方式:这种方式有可能造成部分处理机的严重浪费,读者必须了解在 并行程度相当高的多处理器环境下,为什么这种浪费是值得的,它换来了什么好处。 4.死锁的基本概念 死锁是指多个进程竞争资源而形成的一种僵局,若无外力的作用,这些进程将无法再向前 推进。可见,死锁状态不同于一般的阻塞状态。在学习时,读者应对下述两个问题有较深刻的 理解和掌握: (1)产生死锁的原因是什么:产生死锁的根本原因是竞争资源和进程推进顺序非法,在学 习时应了解这两个根本原因与 OS 的两个基本特征并发和其事之间存在着什么样的联系。 (2)产生死锁的必要条件有哪些。产生死锁的必要条件奋互斥条件、请求与保持条件、不 剥夺条件和环路等待条件,在学习时请思考如果其中的一个条件不满足,为什么不会产生死 锁。 5.预防死锁的方法 预防死锁是通过摒弃死锁产生的必要条件来达到防止死锁产生的目的的在学习时应了 解下述几个方面的内容: (1)摒弃"互斥"条件:应了解"互斥"条件为什么很难被摒弃,对某些(极少数的)互斥共享 的设备(如打印机)又可通过什么技术来摒弃互斥条件。 (2)摒弃"请求和保持"条件:读者应了解可通过哪些方法来摒弃"请求和保持"条件它们 对进程的运行和系统资源的利用率造成了什么样的影响。 (3)摒弃"不剥夺"条件:读者应了解可通过哪些方法来摒弃"不剥夺"条件,这些法有什么 缺点。 (4)摒弃"环路等待"条件:读者应了解可通过哪些方法来摒弃"环路等待"条件,它对系统 和用户带来了哪些不便,对资源的利用率又有什么影响。 (5)各种方法的比较:读者应从实现的简单性和资源的利用率等方面比较上述几种预防 死锁的方法,以了解哪种方法实现最简便,哪种方法可使资源利用率受损最少。 6.利用银行家算法避免死锁 银行家算法是一种最有代表性的避免死锁的算法。在学习时应对下述几个方面的内容国 有较好的理解: (1)避免死锁的实质在于如何防止系统进入不安全状态二在学习时,读者必须清晰地认识 到,为什么系统处于安全状态便可避免进入死锁状态,而处于不安全状态则极有可能导致死锁 状态的产生。 (2)在银行家算法中用到了可利用资源向量 Available、最大需求矩阵 Max、分配矩阵 Allocation、需求矩阵 Need 等数据结构,而在安全性检查算法中则还要用到工作向量 Work 和完成向量 Finish 等数据结构,读者应对它们的物理意义和相互关系有较好的理解。 (3)安全性检查算法的目的是寻找一个安全序列。在学习时应了解满足什么条件的进程 Pi,其对资源的最大需求可以得到满足,故可顺利完成:当 Pi 完成后,应如何修改工作向量 Work 和完成向量 Finish。 (4)在利用银行家算法避免死锁时应了解,系统什么时候可以为提出资源请求的进程试行 分配资源,什么时候才可以正式将资源分配给进程。 4.3 典型问题分析和解答 1.为什么说多级反馈队列调度算法能较好地满足各方面用户的需要? 答:对终端型作业用户而言,他们提交的作业大多属于交互型作业,作业通常较小,系统只 要能使这些作业在一个队列所规定的时间片内完成,便可使他们都感到满意。对短批处理作业 用户而言,开始时他们的作业像终端型作业一样,如果仅在第一个队列中执行一个时间片即可
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有