计算机网络-调度算法-2(时间片轮转 优先级调度算法 多级反馈队列调度算法 多级队列调度算法)

文章目录

  • 总览
  • 时间片轮转
    • 时间片大小为2
    • 时间片大小为5
    • 若按照先来先服务算法
  • 优先级调度算法
    • 例题( 非抢占式优先级调度算法)
    • 例题( 抢占式优先级调度算法)
    • 补充
  • 思考
  • 多级反馈队列调度算法
    • 例题
  • 小结
  • 多级队列调度算法

总览

在这里插入图片描述

时间片轮转

分时操作系统是一种允许多个用户共享一台计算机资源的操作系统,它通过时间片轮转的方式为每个用户提供服务
注意其调度算法没有区分任务的紧急程度
在这里插入图片描述

时间片大小为2

在这里插入图片描述
注意此时默认新到达的进程先进入就绪队列,下处理机的进程后进入就绪队列
在这里插入图片描述
P2上处理机,下处理机,此时P3也刚进入就绪队列
在这里插入图片描述
此时P1上处理机,时间片内P4进入就绪队列
在这里插入图片描述
P1时间片结束,进入就绪队列
在这里插入图片描述
P3上时间片,此时时间片内主动放弃,此时也会发生调度
在这里插入图片描述
P2上处理机
在这里插入图片描述
P4上时间片,结束后再放入就绪队列
在这里插入图片描述
P1上处理机,时间片内完成,主动放弃,此时P4上处理机
在这里插入图片描述
此时由于就绪队列为空,所以继续执行P4一个时间片
在这里插入图片描述

时间片大小为5

在这里插入图片描述

若按照先来先服务算法

在这里插入图片描述
先来先服务(FCFS)算法可能会导致进程响应时间增大的原因是缺乏优先级考虑:FCFS算法在选择进程时,仅仅基于进程到达的顺序,而不考虑进程的优先级或者所需的服务时间。这意味着一些需要快速响应的短进程可能会因为排在长进程后面而被延迟处理。

在这里插入图片描述

优先级调度算法

实时操作系统(RTOS)是一种专门为满足实时性要求而设计的操作系统,它能够在外部事件发生时快速接受并处理相应的数据,确保在规定的时间内完成任务并做出响应

在这里插入图片描述

例题( 非抢占式优先级调度算法)

在这里插入图片描述

例题( 抢占式优先级调度算法)

在这里插入图片描述

补充

就绪队列未必只有一个,可以按照不同优先级来组织:有些操作系统可以设置多个就绪队列,每个队列对应不同的优先级。
把优先级高的进程排在更靠近队头的位置:有些操作系统会按照优先级高低在一个就绪队列中动态排队

频繁IO型操作的进程提升其优先级可使得让IO设备尽早投入工作,从而提高资源利用率
在这里插入图片描述

思考

- [ ] List item

多级反馈队列调度算法

实际应用中也可能是非抢占式的

公平:每个进程刚进来都是优先级最高的(优先被处理的)
及时响应:每个新到达的进程都是优先级最高,都会很快被响应
短进程花费时间更少:短进程经过的队列少,相比于长进程,其总共用的时间也少些
不必实现估计进程的运行时间:因为不会按照用户自己定义的时间来决定谁优先执行,都是统一按照队列的流动来的,直接会执行,所以用户造假也没用
灵活调整优先级:如使得IO密集型进程执行完该级的时间后,再将该进程放入原队列,保持其优先级

饥饿:源源不断短进程到来会导致长进程无法得到服务

在这里插入图片描述

例题

P0进入第1级队列,第一级队列的时间片大小只有一个时间片大小,P1执行完一个时间片后,此时还没有结束,便进入下一级队列,
在这里插入图片描述
此时P2到达第一级队列,由于第一级队列此时不为空,处理第一级,处理一个时间片后进入下一级队列,放在队尾
在这里插入图片描述
此时第一级队列为空,会给第二级队列分配时间片,第二级队列队头P1出队,此时分配的时间是两个时间片,此时P1的运行时间还没有全部结束,会被放到第三级队列

在这里插入图片描述
此时第二级队列不为空,P2出队列,运行P2,此时运行一个时间片后,P3进入第一级队列,由于此时第一级队列不为空,此时P2的进程被P1强占,然后P3上处理机
在这里插入图片描述
P3运行一个时间片后,运行完成,被调出内存,然后第二级队列队头P2继续运行,此时运行两个时间片总共运行完成
在这里插入图片描述
此时第一二级队列都空,第三级队列的进程上处理机,此时是四个时间片,此时P1运行完四个时间片后还剩一个时间才能运行2完成

在这里插入图片描述
由于此时P1已经在最下面,此时没办法再往下级队列走了,只会放回原队列队尾,然后再次调入
在这里插入图片描述
然后P1再使用四个时间片中的一个时间片即可完成
在这里插入图片描述

小结

在这里插入图片描述

多级队列调度算法

创建进程后根据分类插入某个队列

交互式进程需要及时的响应,所以优先级高于批处理进程
在这里插入图片描述
固定优先级:高优先级队列不空就先运行高优先级,这样会导致如果系统进程内有内容,那么交互式进程就永远不会被响应
时间片划分:每个时间片分为多个部分,然后分给各个队列中的某个进程执行,那么在时间片片内,任何一类的进程都会响应一次

注意这里各个类型队列中还有不同的调度方法,下列是一个举例(各个队列还可以采用不同的调度算法)
系统进程队列中依然存在许多优先级不同的进程,此时系统进程队列采用优先级调度,此时依然会选择优先级高的进程执行
交互式队列采用时间片轮转调度保证各个各个进程都在一定时间内被响应到
批处理队列:先来先服务,因为不关心响应时间

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++进阶08】哈希的应用(位图and布隆过滤器)

一、位图 1.1 位图的概念 面试题 给40亿个不重复的无符号整数,没排过序 给一个无符号整数,如何快速判断一个数是否在 这40亿个数中。【腾讯】 能想到的解决思路: 遍历,时间复杂度O(N)排序(O(NlogN)) 利用二分查找: logN放到哈…

ChatGPTAI聊天机器人新功能推出后,更加智能和便捷的同时又曝出安全问题变得犯二?

OpenAI的AI聊天机器人ChatGPT前段时间推出的新功能,付费用户现在可以通过输入“”并从列表中选择自定义GPT,将自定义GPT引入对话中。这个功能的推出,让GPT能够了解完整的对话上下文,并且能够根据不同的用例和需求“标记”不同的自…

探索ESP32 C++ OOP开发:与传统面向过程编程的比较

探索ESP32 OOP开发:与传统面向过程编程的比较 在嵌入式系统开发中,ESP32是一个强大的平台,可以应用于各种项目和应用场景。在编写ESP32代码时,我们可以选择使用面向对象编程(OOP)的方法,将代码…

嵌入式学习第十五天!(内存管理、链表)

1. 内存管理: 1. malloc void *malloc(size_t size); 功能:申请堆区空间 参数:size:申请堆区空间的大小 返回值:返回获得的空间的首地址,失败返回NULL 2. free void free(void *ptr); 功能:释…

【golang】13、viper 配置库 | 配置文件读写 | 使用方式 | 源码逻辑分析

文章目录 一、使用方式1.1 特性1.2 优势1.3 设置1.3.1 默认值1.3.2 配置文件1.3.3 写配置文件1.3.4 监听配置文件变化1.3.5 从 io.Reader 读配置1.3.6 Setting Overrides1.3.7 使用 Alias1.3.8 环境变量1.3.9 命令行 Flags1.3.8.1 Flag 接口 1.3.9 配置中心1.3.9.1 未加密1.3.9…

TypeScript Array(九) 数组

1.TypeScript Array 数组 1.1. 描述 数组对象是使用单独的变量名来存储一系列的值。  &emsp比如,你现在有一组数据,存单独变量如下: var data1"Android"; var data2"Java"; var data3"Harmony";那如果有…

网安人必看!CISP家族顶流证书攻略

网络安全已成为当今的热门领域,证书在职业发展中的重要性不言而喻。但是,证书市场五花八门,选择适合自己的证书可是个大问题。别担心,今天我们就来聊聊CISP家族的几个热门认证,让你在网络安全领域的发展更加顺利&#…

Redis -- 开篇热身,常用的全局命令

“我不能改变风向,但我可以调整我的帆船来到达我想去的地方。”——希腊哲学家亚里士多德 目录 Redis重要文件 启动停止脚本 配置文件 持久化文件存储目录 核心命令 set get 全局命令 keys exists del expire ttl 过期策略是如何实现的 定时器 type…

【mysql】InnoDB引擎的索引

目录 1、B树索引 1.1 二叉树 1.1.1 二分查找(对半查找) 1.1.2 树(Tree) 1.1.2.1 树的定义 1.1.2.2 树的特点 1.1.2.3 二叉树 1.1.2.4 二叉查找(搜索)树 1.2 B树 1.2.1 聚簇索引(clust…

【开源学习】TB-gateway -- 基本配置与使用

【开源学习】TB-gateway -- 基本配置与使用 tb-gateway 安装部署centOS 7 安装(不推荐)Docker 安装(推荐) tb-gateway 通用配置文件连接配置模块 thingsboard存储配置模块 storage远程调用配置模块 grpc连接器配置模块 connectors…

网络安全防御保护 Day3

正式开始前分享一个关闭日志弹窗的命令(在用户视图中输入):undo terminal trapping 快被弹窗高出高血压了 AR1上构建环回 LSW2上配置vlan LSW7上的vlan配置(我已经配置好了,但是有日志弹窗影响,为了截图就再敲一次所以有报错&…

【Linux系统】文件系统和软硬链接

前言 之前的博客介绍过了打开的文件是如何被操作系统管理起来的,但是绝大多数文件是没有被打开的,静静地躺在磁盘上。 这些文件也应该要被操作系统管理起来,以方便系统快速地在磁盘上查找它们,进而加载到内存。 这套管理方式就…