处理机调度与死锁

目录

  • 进程调度算法
    • 先来先服务调度算法FCFS
    • 最短作业优先调度算法SJF
    • 最高优先级调度算法***HPF***
    • 高响应比优先调度算法 ***HRRN***
    • 时间片轮转调度算法***RR***
    • 多级队列调度算法MFQ

进程调度算法

进程调度算法也称为CPU调度算法

当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。

调度算法影响的是等待时间(进程在就绪队列中等待调度的时间总和),而不能影响进程真在使用 CPU 的时间和 I/O 时间。

  • 先来先服务调度算法
  • 最短作业优先调度算法
  • 高响应比优先调度算法
  • 时间片轮转调度算法
  • 最高优先级调度算法
  • 多级反馈队列调度算法

先来先服务调度算法FCFS

每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。

在这里插入图片描述

每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。

在这里插入图片描述

在这里插入图片描述

平均等待时间 = 平均周转时间 - 运行时间

在这里插入图片描述

最短作业优先调度算法SJF

优先选取运行时间最短的作业,如果时间一样则先来先服务。有助于提高系统的吞吐量。

在这里插入图片描述

非抢占式:

在这里插入图片描述

等待时间 = 开始运行时间 - 到达时间

周转时间 = 运行结束时间 - 到达时间

平均等待时间 = 平均周转时间 - 运行时间

抢占式:

在这里插入图片描述

由于P2剩余进程时间是2个时间单位是要小于新来的P4进程4个时间单位的,因此先完成P2再去调度P4,而P1还剩5个时间单位,最后再调度。

先算出周转时间 = 运行结束时间 - 到达时间

再用周转时间 - 区间时间来算等待时间

最高优先级调度算法HPF

从就绪队列中选择最高优先级的进程进行运行

进程的优先级可以分为,静态优先级或动态优先级:

  • 静态优先级:创建进程时候,就已经确定了优先级了,然后整个运行时间优先级都不会变化;
  • 动态优先级:根据进程的动态变化调整优先级,比如如果进程运行时间增加,则降低其优先级,如果进程等待时间(就绪队列的等待时间)增加,则升高其优先级,也就是随着时间的推移增加等待进程的优先级

在这里插入图片描述

先算出周转时间 = 运行结束时间

再用周转时间 - 区间时间来算等待时间

高响应比优先调度算法 HRRN

每次进行进程调度时,先计算「响应比优先级」,然后把「响应比优先级」最高的进程投入运行,「响应比优先级」的计算公式:权衡了短作业和长作业

在这里插入图片描述

时间片轮转调度算法RR

每个进程被分配一个时间段,称为时间片(Quantum),即允许该进程在该时间段中运行。

  • 如果时间片用完,进程还在运行,那么将会把此进程从 CPU 释放出来,并把 CPU 分配另外一个进程;
  • 如果该进程在时间片结束前阻塞或结束,则 CPU 立即进行切换;

通常时间片设为 20ms~50ms 通常是一个比较合理的折中值。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

等待时间 = 周转时间(运行结束时间) - 运行时间

在这里插入图片描述

在这里插入图片描述

多级队列调度算法MFQ

多级反馈队列(Multilevel Feedback Queue)调度算法是「时间片轮转算法」和「最高优先级算法」的综合和发展。

顾名思义:

  • 「多级」表示有多个队列,每个队列优先级从高到低,同时优先级越高时间片越短。
  • 「反馈」表示如果有新的进程加入优先级高的队列时,立刻停止当前正在运行的进程,转而去运行优先级高的队列;

在这里插入图片描述

该算法很好的兼顾了长短作业,同时有较好的响应时间。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一天一个设计模式---工厂方法

概念 工厂模式是一种创建型设计模式,其主要目标是提供一个统一的接口来创建对象,而不必指定其具体类。工厂模式将对象的实例化过程抽象出来,使得客户端代码不需要知道实际创建的具体类,只需通过工厂接口或方法来获取所需的对象。…

uniapp中uview组件库丰富的Table 表格的使用方法

目录 #平台差异说明 #基本使用 #兼容性 #API #Table Props #Td Props #Th Props 表格组件一般用于展示大量结构化数据的场景 #平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序√√√√√√√ #基本使用 本组件标签类似HTML的table表格&#…

模型评估:评估指标的局限性

“没有测量,就没有科学。”这是科学家门捷列夫的名言。在计算机科学特别是机器学习领域中,对模型的评估同样至关重要。只有选择与问题相匹配的评估方法,才能快速地发现模型选择或训练过程中出现的问题,迭代地对模型进行优化。模型…

猫头虎分享:Linux 如何安装最新版的Docker和Docker-Compose 教程 ‍

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

教你如何将本地虚拟机变成服务器,供其它电脑访问

场景:最近在做数据仓库的作业,需要团队协作,买不起阿里云服务器,所以想到能不能将我本地机上的虚拟机变成服务器,供其它同学的电脑访问。在虚拟机上安装hadoop和hive,然后同学机子上安装kettle进行连接。最…

书生大模型全链路开源体系

书生浦语大模型全链路开源体系开源了哪些东西 数据书生万卷:一个2TB的涵盖多种模态与任务的数据集预训练InternLM-Train:微调XTuner:可供你低成本微调模型的工具箱部署LMDeploy:一个服务端场景下、transformer 结构 LLM 部署工具…

【模拟IC学习笔记】Cascode OTA 设计

辅助定理 增益Gm*输出阻抗 输出短路求Gm 输入置0求输出阻抗 求源极负反馈的增益 随着Vin的增加,Id也在增加,Rs上压降增加,所以,Vin的一部分电压体现在Rs上,而不是全部作为Vgs,因此导致Id变得平滑。 Rs足…

Python书籍推荐,建议收藏

学习Python的书籍可太多了,从入门到放弃,应有尽有啊 入门书籍 根据豆瓣评分的高低,这里介绍了一些经典入门书籍,大家根据自身情况选择尝试 《Python编程:从入门到实践(第二版)》 非常经典且非…

搜维尔科技:第九届元宇宙数字人设计大赛作品规范解读!

作品提交 参赛小组需要将作品上传至百度网盘,并将分享链接发送至frankaxis3d.cn邮箱。邮寄格式如下: 邮件标题:作品名称元宇宙数字人设计大赛作品 邮件内容标明:学校名称、院系名称、作品名称、作者名称、联系电话及指导老师名…

vue中鼠标拖动触发滚动条的移动

前言 在做后端管理系统中,像弹窗或大的表单时,经常会有滚动条的出现,但有些时候如流程、图片等操作时,仅仅使用鼠标拖动滚动条操作不太方便,如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 功能设计 如…

【leetcode】力扣算法之删除链表中倒数第n个节点【中等难度】

删除链表中倒数第n个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 用例 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 输入:head [1], n 1 输出:[] 输入:head …

蓝牙模块在电动汽车充电设施中的创新应用

随着电动汽车的普及,充电设施的便捷性和智能化成为关键的发展方向。蓝牙技术作为一种无线通信技术,在电动汽车充电设施中发挥着越来越重要的作用。本文将深入探讨蓝牙模块在电动汽车充电设施中的创新应用,以提高充电体验、提升管理效率&#…

“程序员面试之道:成为求职战场上的不可忽视的力量“

文章目录 每日一句正能量前言面试经历面试技巧后记 每日一句正能量 看淡拥有,不刻意追求某些东西,落叶归根,那些属于你的,总会回来。 前言 在现代科技发展日新月异的时代,程序员无疑扮演着重要的角色。他们是代码的创…

我的1827创作纪念日

机缘 习惯性早上打开电脑,看看CSDN上的资讯,了解行业动态、当前新的技术和大佬的分享。自己动手写应该是2019 年 01 月 08 日,当时应该是在用安装和使用Oracle,遇到一些问题,写下第一篇博客 Oracle存储过程常见问题及…

经典算法-遗传算法的解走迷宫例子

经典算法-遗传算法的一个简单例子 使用遗传算法走迷宫,如果能从起点顺利走到终点,就能获胜。 迷宫如下图所示,绿点为迷宫起点,橙色点为迷宫终点。 LLM大模型相关文章: 大模型查询工具助手之股票免费查询接口 GPT实…

flex布局(3)

九、骰子 *{margin:0;padding: 0;box-sizing: border-box; } .flex{display: flex;flex-flow: row wrap;justify-content: space-between;align-items: center;align-content: space-between;padding:20px; } .touzi{width: 120px;height: 120px;background-color: aliceblue;…

Allure04-用例失败截图

Allure04-用例失败截图 高清B站视频链接 使用pytest_runtest_makereport钩子函数实现allure报告添加用例失败截图 以下是conftest.py实现内容 #!/usr/bin/env python # -*- coding: utf-8 -*- # 作者:扶摇 import allure import pytest from selenium import webd…

Linux下进程控制

文章目录 创建进程fork创建进程fork返回值写诗拷贝fork常规用法fork失败的原因 进程终止进程正常终止查看进程退出码_exit函数exit函数exit 和 _exit 的区别return退出 进程等待进程等待的方式wait方法(系统调用)waitpid方法(系统调用) WEXITSTATUS 和 WIFEXITED阻塞等待和非阻…

powerdesigner导出sql将name放到comment注释上

1. 批量设置 2. 脚本 Option Explicit ValidationMode True InteractiveMode im_Batch Dim mdl the current modelget the current active model Set mdl ActiveModel If (mdl Is Nothing) ThenMsgBox"There is no current Model " ElseIf Not mdl.IsKindOf(PdPD…

互斥、自旋、读写锁的应用场景

互斥、自旋、读写锁的应用场景 锁🔒1、互斥锁、自旋锁2、读写锁:读写的优先级3、乐观锁和悲观锁总结: 锁🔒 ​ 多线程访问共享资源的生活,避免不了资源竞争而导致错乱的问题,所以我们通常为了解决这一问题…