计算机操作系统第三章处理机调度与死锁习题及答案

简介: 计算机操作系统第三章处理机调度与死锁习题及答案

进程调度的因素


引起进程调度的原因有:进程结束;时间片用完;被抢占;调用原语被阻塞;I/O请求


某进程被唤醒后立即进入运行,我们就说这个系统采用的是抢占调度方法,对吗?为什么?


不对,抢占调度方法定义:允许调度程序根据某种原则,将已分配给该进程的处理机,重新分配给另一进程,由题不能判断CPU是否处于空闲状态

高级调度和低级调度的主要任务是什么?为什么引入中级调度?


(1)高级调度又称为作业调度。它是批处理系统中使用的一种调度。主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中


(2)低级调度又称进程调度。它是距离硬件最近的一级调度。其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU


(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。此时的进程状态为挂起状态。当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态


何谓死锁?产生死锁的原因和必要条件是什么?


何谓死锁:


死锁是指多个进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。


产生死锁的原因:


(1)竞争资源


(2) 进程间推进顺序不当


产生死锁的必要条件:


(1) 互斥条件:一个资源每次只能被一个进程使用。

(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。


在银行家算法中,若出现下面的资源分配情况:



试问: (1)该状态是否安全? (2)当进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?


【答案】


解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:

        Work Need   Allocation Work+Allocation Finish

P0    1622  0012   0032         1654                   true

P3    1654  0652   0332         1986                   true

P4    1986  0656   0014         19910                 true

P1   19910 1750   1000         29910                 true

P2   29910 2356 1 3 5 4 3 12 14 14 true

从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是安全的。

(2)P2提出请求Request2(1,2,2,2),按银行家算法进行检查:

·Request2(1,2,2,2) ≤Need(2,3,5,6)

·Request2(1,2,2,2) ≤Available(1,6,2,2)

·试分配并修改相应数据结构,资源分配情况如下:

     Allocation Need   Available

P0 0032         0012   0400

P1 1000         1750

P2 2576         1134

P3 0332         0652

P4 0014         0656

再利用安全性算法检查系统是否安全,可知系统资源Available(0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2


系统中有五个进程P1,P2,P3,P4,P5,如表。规定进程的优先数越小优先级越高。试描述在采用下述内种调度算法时,各个进程运行过程,并计算采用每种算法的进程平均周转时间。假设忽略进程的调度时间。


(1)先来先服务调度算法


(2)短进程优先调度算法


(3)剥夺式优先级调度算法


(4)非剥夺式优先级调度算法



【答案】






相关文章
|
17天前
|
算法 调度 UED
探索操作系统的心脏:调度算法的奥秘与影响
【10月更文挑战第9天】 本文深入探讨了操作系统中至关重要的组件——调度算法,它如同人体的心脏,维持着系统资源的有序流动和任务的高效执行。我们将揭开调度算法的神秘面纱,从基本概念到实际应用,全面剖析其在操作系统中的核心地位,以及如何通过优化调度算法来提升系统性能。
|
2天前
|
算法 大数据 Linux
深入理解操作系统之进程调度算法
【10月更文挑战第24天】本文旨在通过浅显易懂的语言,带领读者深入了解操作系统中的进程调度算法。我们将从进程的基本概念出发,逐步解析进程调度的目的、重要性以及常见的几种调度算法。文章将通过比喻和实例,使复杂的技术内容变得生动有趣,帮助读者建立对操作系统进程调度机制的清晰认识。最后,我们还将探讨这些调度算法在现代操作系统中的应用和发展趋势。
|
15天前
|
分布式计算 算法 大数据
探索操作系统的核心:调度与内存管理机制
【10月更文挑战第11天】 本文深入探讨了操作系统中两大核心功能——调度与内存管理机制。通过分析调度算法、进程状态转换及内存分配策略等关键方面,揭示了它们如何共同维护系统性能和稳定性。旨在为读者提供对操作系统内部运作的深刻理解,同时引起对优化策略的思考。
36 5
|
19天前
|
算法 调度 UED
探索操作系统的心脏:深入理解进程调度
【10月更文挑战第7天】在数字世界的海洋中,操作系统是那艘承载着软件与硬件和谐共处的巨轮。本文将带你潜入这艘巨轮的核心区域——进程调度系统,揭示它如何精准控制任务的执行顺序,保障系统的高效运行。通过深入浅出的语言,我们将一起解码进程调度的奥秘,并借助代码示例,直观感受这一机制的魅力所在。准备好,让我们启航吧!
|
19天前
|
算法 调度 UED
深入理解操作系统的进程调度算法
【10月更文挑战第7天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。它不仅影响系统的性能和用户体验,还直接关系到资源的合理分配。本文将通过浅显易懂的语言和生动的比喻,带你一探进程调度的秘密花园,从最简单的先来先服务到复杂的多级反馈队列,我们将一起见证算法如何在微观世界里编织宏观世界的和谐乐章。
|
17天前
|
算法 Unix Linux
深入理解操作系统:进程管理与调度策略
【10月更文挑战第9天】本文将带你进入操作系统的核心,探索进程管理的奥秘。我们将从基础的概念出发,逐步深入到进程的创建、调度和同步等关键机制。通过理论与实际代码示例的结合,你将获得对操作系统中进程管理更深层次的理解和应用能力。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和知识,让你在操作系统的学习之旅上更进一步。
|
21天前
|
算法 调度 开发者
操作系统的心脏:深入理解进程调度
本文将探讨操作系统中至关重要的部分——进程调度。进程调度负责管理计算机的CPU时间分配,确保多任务环境中每个进程都能公平地获得处理资源。通过深入分析不同的调度算法,如先来先服务(FCFS)、短作业优先(SJF)和优先级调度,本文揭示了它们的优势、缺陷及适用场景。我们还将讨论现代操作系统如何实现这些算法,并评估多级反馈队列等高级调度策略如何提高系统效率。无论是开发者设计更高效的应用程序,还是用户优化自己的使用体验,了解进程调度的基本原理和实践应用都是不可或缺的一环。
|
19天前
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
4月前
|
安全 Linux 网络安全
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
|
3月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。