操作系统---进程调度算法相关习题

news2024/11/16 22:37:19

例题1:某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为1us。在T时刻就绪队列中有3个进程P1、P2和P3,其在就绪队列中的等待时间、需要的 CPU 时间和优先权如下表所示。

若优先权值大的进程优先获得CPU,从T时刻起系统开始进程调度,则系统的平均周转时间为()

由优先级大的进程先获得CPU可知进程的执行顺序为P2-->P3-->P1。

画图更好理解,题目中讲在T时刻有3个进程,且其等待时间分别为15,18,30,就像图中所画:

再根据非抢占式的进程调度,可得到:

P2的周转时间为1+15+24=40us;

P3的周转时间为18+1+24+1+36=80us;

P1的周转时间为30+1+24+1+36+1+12=105us;

平均周转时间为(40+80+105)/3=225/3=75us,因此选择选项D。

例题2:进程P0、P1、P2和P3 进入就绪队列的时刻、优先级(值越小优先权越高)及 CPU执行时间如下表所示。

若系统采用基于优先权的抢占式进程调度算法,则从0ms时刻开始调度,到4个进程都运行结束为止,① 发生进程调度的总次数为():

解析:由于采用抢占式的进程调度所以进程调度的顺序为:

① 0ms时刻,只有P0进入就绪队列,先执行P0,10ms后,P1,P2进入就绪队列,且其优先级P2>P0(值越小优先权越高),P2抢占CPU的使用权:

② P2执行5ms后,优先权更高的P3进入就绪队列,所以P2让出CPU使用权。之后没有比P3优先权更高的进程,所以P3一直执行到执行时间结束(进程结束)。

③ P3执行完成,剩余的未完成的进程中优先级最高的为P2,P2继续执行,直到进程结束:

④ 接下来执行的进程为P0,因为优先级:P0>P1:

⑤ 最后执行优先权最低的P1:

进程调度次数为6次。

② P0,P1,P2,P3的平均周转时间为():

每个进程的周转时间为:“CPU剩余执行时间”为0的行的"结束时间"减去题目表格中的“开始时间”,即:

P0周转时间:130 - 0 =130

P1周转时间:190 - 10 = 180

P2周转时间:40 - 10 =  30

P3周转时间:25 - 15 = 10

平均周转时间:130+180+30+10/4=350/4=87.5

例题3:系统采用二级反馈队列调度算法进行进程调度。就绪队列 Q1采用时间片轮转调度算法,时间片为10ms;就绪队列Q2采用短进程优先调度算法;系统优先调度 Q1队列中的进程,当 Q1为空时系统才会调度 Q2中的进程;新创建的进程首先进入Q1;Q1中的进程执行一个时间片后,若未结束,则转入Q2。若当前Q1,Q2为空,系统依次创建进程P1,P2后即开始进程调度,P1,P2需要的CPU时间分别为30ms和20ms,则进程P1,P2在系统中的平均等待时间为()

进程P1,P2依次创建后进入队列Q1,根据时间片调度算法的规则,进程P1,P2将依次被分配10ms的CPU时间,两个进程分别执行完一个时间片后都会被转入队列Q2,就绪队列Q2采用短进程优先调度算法,此时 P1还需要 20ms 的 CPU 时间,P2还需要 10ms 的 CPU 时间,所以P2会被优先调度执行,10ms后进程P2执行完成,之后P1再调度执行,再过20ms后P1也执行完成。运行图表述如下:

进程 P1、P2的等待时间分别为图中的虚横线部分,平均等待时间=(P1的等待时间 + P2的等待时间)/2=(20+10)/2=15

例题4:假设某计算机系统有4个进程,各进程的预计运行时间和到达就绪队列的时刻见下表(相对时间,单位为“时间配额”)。试用时间片轮转调度算法进行调度(时间配额为2)。分别计算各个进程的调度次序及平均周转时间。

时间片轮转算法按就绪队列的FCFS进行轮转,在时刻2,P1的时间片结束,P1被挂到就绪队列队尾,队列顺序为P2,P3,P1,此时P4还未到达。

P4在3时刻进入就绪队列,排在P1进程后。3时刻的时候,P2进程执行到一半,所以2执行完后,排在P4后面。

所以前两轮的执行顺序是:P1-->P2-->P3-->P1-->P4-->P2-->P3-->P1,各进程轮流执行2个时刻的时间:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git基础概念一览:仓库、协议、原理、服务器搭建全解析

Git基础概念详解 一、引言 二、基础概念概览 三、安全通信与协议 四、Git 服务器搭建与操作 五、Git 工作流程与原理 六、Git 日志与操作 七、总结 一、引言 “ 掌握Git的基本概念是高效进行版本控制的第一步。本文将详细介绍如何创建本地和远程仓库,G…

【HarmonyOS4+NEXT】新建项目指南

🙋‍ 一日之际在于晨 ⭐本期内容:新建项目指南 🏆系列专栏:鸿蒙HarmonyOS4NEXT:探索未来智能生态新纪元 文章目录 创建项目项目结构概述运行项目Preview预览模拟器运行真机运行 ArkUI框架简介总结 创建项目 点击创建一…

撰写LabVIEW开发方案时,怎么结构清晰、内容详实?

撰写LabVIEW开发方案时,结构清晰、内容详实是至关重要的。以下是一些步骤和技巧,帮助你组织和编写一个高质量的LabVIEW开发方案: 1. 封面 项目名称公司名称日期作者 2. 目录 列出各章节及其页码 3. 摘要 项目概述:简要介绍项…

vue、react前端框架实现TodoList页面案例

原始TodoList网页(主要就是链接里网页应用ndex.html、styles.css、script.js ): https://blog.csdn.net/weixin_42357472/article/details/140657576 node、npn安装参考: https://blog.csdn.net/weixin_42357472/article/details/…

昇思25天学习打卡营第16天|GAN 图像生成指南:数据集和模型训练手册

目录 MindSpore 环境配置、MNIST 数据集下载及处理展开。 数据集可视化 隐码构造 模型构建 模型训练 效果展示 模型推理 MindSpore 环境配置、MNIST 数据集下载及处理展开。 首先,通过命令行操作安装特定版本的 MindSpore 库,并查看其版本。接着&a…

从零开始学习网络安全渗透测试之基础入门篇——(四)反弹SHELL不回显带外正反向连接防火墙出入站文件上传下载

一、反弹SHELL 反弹SHELL(Reverse Shell)是一种网络攻击技术,它允许攻击者在一个被入侵的计算机上执行命令,即使该计算机位于防火墙或NAT(网络地址转换)之后。通常,当攻击者无法直接连接到目标…

使用SpringEvent解决WebUploader大文件上传解耦问题

目录 前言 一、SpringEvent涉及的相关组件 1、 事件(Event) 2、事件监听器 3、事件发布器 二、WebUploader大文件处理的相关事件分析 1、事件发布的时机 2、事件发布的代码 三、事件监听器及实际的业务处理 1、文件上传处理枚举 2、文件上传监…

[红明谷CTF 2021]write_shell 1

目录 代码审计check()$_GET["action"] ?? "" 解题 代码审计 <?php error_reporting(0); highlight_file(__FILE__); function check($input){if(preg_match("/| |_|php|;|~|\\^|\\|eval|{|}/i",$input)){// if(preg_match("/| |_||p…

科普文:万字梳理31个Kafka问题

1、 kafka 是什么,有什么作用 2、Kafka为什么这么快 3、Kafka架构及名词解释 4、Kafka中的AR、ISR、OSR代表什么 5、HW、LEO代表什么 6、ISR收缩性 7、kafka follower如何与leader同步数据 8、Zookeeper 在 Kafka 中的作用&#xff08;早期&#xff09; 9、Kafka如何快…

软件测试的实质

一、软件缺陷定义 软件未实现产品说明书要求的功能软件出现了产品说明书指明不应该出现的错误软件实现了产品说明书未提到的功能&#xff1b;如罕见未实现产品说明书虽未明确提及但应该实现的目标软件难以理解、不易使用、运行速度慢&#xff0c;或者软件测试员认为最终用户会…

java——集合介绍【汇总】

一、集合的理解和好处 1.1、数组的不足 1、长度开始时必须指定&#xff0c;而且一旦指定&#xff0c;不能更改 2、保存的必须为同一类型的元素 3、使用数组进行增删&#xff0c;比较麻烦 1.2、集合 1、可以动态保存任意多个对象&#xff0c;使用比较方便! 2、提供了一系…

【前端 16】使用Ajax发送异步请求

Ajax 基础入门&#xff1a;实现异步请求 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。通过使用 Ajax&#xff0c;可以在后台与服务器交换数据&#xff0c;这意味着可以在不影响用户…

解决hook汇编代码时空间不足的一种方法

思路&#xff1a;如下图&#xff0c;使用两条jmp指令。原内存地址使用一条jmp指令跳转到新开辟的内存空间(VirtualAlloc或者VirtualAllocEx函数&#xff09;&#xff0c;在新开辟的内存空间完成处理之后再使用jmp指令跳转到原内存地址合适的位置&#xff08;通常是原内存处被ho…

华为诺亚发布无限上下文大模型,超越SoTA 4.3%

你的大语言模型是不是也患上了"长文健忘症"&#xff1f;当使用大模型遇到长上下文时总是会出现词不达意&#xff1f;别担心&#xff0c;LLM界的"记忆大师"来啦&#xff01;华为诺亚方舟实验室最新推出的EM-LLM模型&#xff0c;就像是给大模型装上了"超…

光伏混合储能直流微网直流母线电压下垂控制MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 此模型以混合储能系统为研究对象&#xff0c;采用基于关联参数SOC的改进下垂控制策略&#xff0c;将初始下垂系数与储能单元SOC的n次幂的比值作为现行下垂系数&#xff0c;通过改变n值&#xff0c;…

2.5 C#视觉程序开发实例2----图片内存管理

2.5 C#视觉程序开发实例2----图片内存管理 1 目标效果视频 mat-buffer 2 Mat 数组的定义 3 图片内存使用场合说明 3.1 程序加载或者切换程序时 3.2 设定时&#xff0c;注册图片 例如注册一个线速的图片 注册流程说明 3.3 外部触发时采集最新图片或者按钮点击时触发拍照 …

计算机毕业设计碾压导师Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

基于Spark的农产品个性推荐系统 相关技术介绍: 1. Python Python是一种高级编程语言&#xff0c;具有简洁、易读、易学的特点&#xff0c;被广泛应用于Web开发、数据分析、人工智能等领域。 在此系统中&#xff0c;我们使用Python进行后端开发&#xff0c;利用其强大的语法…

图形引擎实战:Unity性能分析工具原理介绍

最近在维护一个Unity性能分析工具&#xff0c;类似UPR&#xff0c;客户端采集信息&#xff0c;WEB端显示数据。下面简单介绍下原理。 数据来源 Profiler数据 熟悉Unity的同学对Profiler一定不会陌生&#xff0c;我们的性能数据主要来源于它&#xff0c;主要包含函数耗时&…

Linux基础操作(下)

软件安装&#xff0c;CentOS系统和Ubuntu是使用不同的包管理器 CentOS使用yum管理器&#xff0c;Ubuntu使用apt管理器 在CentOS系统中&#xff0c;使用yum命令联网管理软件安装 yum语法: yum [-y] [install | remove | search ] 软件名称 在Ubuntu系统中&#xff0c;使用apt命…

如何跨越 LangChain 应用研发的最后一公里

说 [LangChain] 是现在最流行的 AI 应用开发框架&#xff0c;应该没有人出来反对吧。LangChain 的出现极大地简化了基于大型语言模型&#xff08;LLM&#xff09;的 AI 应用构建难度&#xff0c;如果把 AI 应用比作一个人的话&#xff0c;那么 LLM 相当于这个人的“大脑”&…