当前位置: 首页 > article >正文

《操作系统 - 清华大学》 9 -2:进程调度:调度原则

进程调度策略:原则、指标与权衡

在计算机系统中,进程调度策略至关重要。我们讲的就是有不同的这种调度策略,那么调度的原则是什么呢?原则就是选择某一个进程执行的依据,即要基于什么样的标准来挑选最合适的进程去执行,这便是调度的原则。

在考虑进程调度时,有诸多因素需要关注。首先,我们要了解进程在计算机系统中的运行状态。进程主要做的事情是访问内存以及让CPU进行计算。从计算机系统层面看,以CPU为例,会呈现出一种波动现象。在某个时刻,CPU占用百分比可能很高,比如进程在进行复杂、频繁的计算;而有时又会突然下降,这是因为进程可能要进行I/O操作。例如读取硬盘中的文件,数据从硬盘传输到内存需要较长时间,此时CPU空闲无事可做,导致占用率下降。

我们期望在CPU空闲时,也就是某个进程等待I/O操作完成后,让其他处于就绪态的进程能够占用CPU资源继续运行,从而使CPU尽量保持忙碌状态,提高系统资源的利用率。而要做到这一点,就需要合理安排CPU繁忙型进程和I/O繁忙型进程,协调好这些进程,让它们充分利用资源,进而提高整个系统的效率。

这就涉及到调度算法的评价指标。在选择调度方法时,我们需要明确评价指标,常见的指标有CPU利用率、吞吐量、周转时间、等待时间和响应时间

  • CPU利用率:CPU利用率越高,通常认为当前系统的效率越高。如果在一段时间内,整体CPU利用率一直保持较高水平,那么可以说进程调度执行得不错。
  • 吞吐量:对于像Web服务器的网络请求、数据库事务处理这类场景,会涉及到单位时间内完成事情的数量,我们用吞吐量(throughput)来表示。吞吐量越高,意味着进程的效率越好。我们希望系统中的不同进程,或者多个进程的整体吞吐量都很高,这样的调度算法对系统吞吐量的支持就更好。
  • 周转时间:从进程最开始启动(创建进程并使其可以运行),到最后完成工作,这个全过程所花费的时间就是周转时间(turn around time)。它由等待时间和服务时间组成,我们希望周转时间越小越好。因为如果一个进程等待时间很长,而服务时间很短,周转时间就会变长,这是我们不希望看到的情况。
  • 等待时间:这里的等待时间是指处于就绪态的进程,等待变为运行态去占用CPU执行的时间,而非阻塞态进程等待被唤醒的时间。我们期望就绪态进程的等待时间越短越好,这样它们就能更快地在CPU上执行任务。
  • 响应时间:从用户或外部设备发出请求,到该请求被进程处理完毕的这段时间,就是响应时间(response time)。显然,响应时间越快越好,特别是对于交互式应用,比如用户按下键盘,系统需要迅速响应。

这些指标可用于评测和分析调度算法,对其进行量化分析。一般人们希望进程或进程提供的服务能更快,但“快”这个概念比较含糊,而上述常用指标能够对“快”进行量化。需要注意的是,这些指标之间往往相互矛盾,很难同时满足所有指标的最优情况。例如,最小响应时间和最大吞吐量就很难同时实现。因此,我们需要寻找一种调度算法,在这些矛盾的指标之间进行平衡,找到一个折中的状态。

在日常生活中,以对水的需求为例可以帮助我们理解。打开水龙头喝水时,希望一打开就迅速有水出来,这体现的是响应时间快;而用粗水管浇花时,打开水龙头后虽然水流到土地的时间较长,但单位时间出水量大,即吞吐量高。这两种情况都是对“快”的不同需求体现,对应着不同的指标。所以在衡量调度算法时,应尽量采用量化方法,避免使用含糊的表述,以免引起误解 。

对于调度算法,我们期望它能达到以下效果:响应时间越小越好,即提出请求能马上得到反馈;响应时间的波动越小越好,避免出现一会儿快一会儿慢的情况;吞吐量越大越好,比如快速完成文件传输;等待时间越小越好,让程序启动后能马上执行 。

由于这些指标相互矛盾,在设计调度算法时,需要有所侧重,进行权衡。不同的应用场合对调度算法的要求也不同。桌面系统更强调交互性,对调度策略的要求较高;数据中心的服务器则更注重吞吐量,需要提供较大带宽来满足视频等服务请求

以Linux系统为例,它针对桌面(desktop)和服务器(server)的调度设置就不一样,会根据不同的应用需求选择更合适的调度策略和算法。

除了上述指标,还有一个重要的衡量因素——公平。在操作系统中,如今进程数量众多,为确保每个进程都能得到CPU的响应和服务,不能让某个进程占用过多的CPU时间,而其他进程很少。公平性体现在每个进程占用CPU的服务时间大致公平,等待占用CPU执行的等待时间也大致公平。基于公平性,也有相应的调度算法,比如公平共享算法,专门用于保证多用户或多进程系统中,各个进程能公平地享受计算资源。

相关文章:

《操作系统 - 清华大学》 9 -2:进程调度:调度原则

进程调度策略:原则、指标与权衡 在计算机系统中,进程调度策略至关重要。我们讲的就是有不同的这种调度策略,那么调度的原则是什么呢?原则就是选择某一个进程执行的依据,即要基于什么样的标准来挑选最合适的进程去执行…...

CSS—选择器详解:5分钟动手掌握选择器

个人博客:haichenyi.com。感谢关注 1. 目录 1–目录2–引言3–种类4–优先级 引言 什么是选择器? CSS选择器是CSS(层叠样式表)中的一种规则,用于指定要应用样式的HTML元素。它们就像是指向网页中特定元素的指针&#…...

Java——String

在 Java 中,String 类是用于表示不可变字符序列的核心类,提供了丰富的 API 用于操作字符串。以下是 String 类的关键特性和常用方法详解: 一、String 的核心特性 不可变性(Immutable) 一旦创建,字符串内容不…...

Channel State Information 信道状态信息

Channel State Information(CSI,信道状态信息)是无线通信系统中的一个重要概念,指的是接收端或发送端对无线信道特性的估计和反馈。CSI可以用于优化无线通信性能,例如信道均衡、预编码、波束成形等,以提高数…...

python中单例模式应用

数据库连接池单例模式 1. 为什么使用单例模式 创建数据库连接是一个昂贵的过程(涉及网络通信、认证等)。单例模式的连接池可以在程序启动时初始化一组连接,并在整个生命周期中重用这些连接,而不是每次请求都新建连接。同时还可…...

StarRocks 在爱奇艺大数据场景的实践

作者:林豪,爱奇艺大数据 OLAP 服务负责人 小编导读: 本文整理自爱奇艺工程师在 StarRocks 年度峰会的分享,介绍了爱奇艺 OLAP 引擎演化及引入 StarRocks 后的效果。 在广告业务中,StarRocks 替换 ImpalaKudu 后&#x…...

Easy Trans Spring Boot Starter ---Spring系列的字段翻译库

Easy Trans Spring Boot Starter 使用文档 1. 简介 easy-trans-spring-boot-starter 是一个基于 Spring Boot 的库,用于简化数据翻译和转换操作。它可以帮助你将数据库中的枚举值、状态码等转换为用户友好的文本,或者将一种数据格式转换为另一种格式。…...

JAVA入门——IO流

一、了解File类 这个类里面提供了一些文件相关的方法,了解即可,方法有很多,不好背下面这个是最常用的只能对文件本身操作,不能读取数据 public File[] listFiles();//获取当前路径下的所有内容 注意:如果是需要权限才…...

Spring Boot 流式响应豆包大模型对话能力

当Spring Boot遇见豆包大模型:一场流式响应的"魔法吟唱"仪式 一、前言:关于流式响应的奇妙比喻 想象一下你正在火锅店点单,如果服务员必须等所有菜品都备齐才一次性端上来,你可能会饿得把菜单都啃了。而流式响应就像贴…...

Android Binder 用法详解

Binder 是 Android 系统中的一种进程间通信(IPC)机制,它允许不同进程之间进行高效通信。Binder 在 Android 系统中被广泛使用,例如在 Activity 与 Service 的交互中。 Binder 的基本组成 实现 Binder 通信通常包含以下几个关键部…...

在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思?

在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思? 在 Ubuntu(或其他基于 GNOME 文件管理器的 Linux 发行版)中,文件或文件夹的右下角出现一把“锁”标志,通常表示 你当前的用户没有该文件/文件夹的写…...

达梦数据库如何收集表和索引的统计信息

命令: DBMS_STATS.GATHER_TABLE_STATS(OWNNAME >HIDC,TABNAME > SYS_OSS,ESTIMATE_PERCENT>100,METHOD_OPT > FOR ALL COLUMNS SIZE AUTO,DEGREE > 2,CASCADE > true); dbms_stats.gather_table_stats:用于收集目标表,目…...

大语言模型:从诞生到未来的探索

1 发展历程 1.1 早期探索:基础积累 大语言模型的发展并非一蹴而就,其源头可以追溯到自然语言处理的早期阶段。早期的自然语言处理系统主要基于规则和模板,通过人工编写的语法规则来处理文本。例如,早期的机器翻译系统就是根据预…...

DeepSeek-V3:AI语言模型的高效训练与推理之路

参考:【论文学习】DeepSeek-V3 全文翻译 在人工智能领域,语言模型的发展日新月异。从早期的简单模型到如今拥有数千亿参数的巨无霸模型,技术的进步令人瞩目。然而,随着模型规模的不断扩大,训练成本和推理效率成为了摆在…...

【多模态】Magma多模态AI Agent

1. 前言 微软杨建伟团队,最近在AI Agent方面动作连连,前两天开源了OmniParser V2,2月26日又开源了Magma,OmniParser专注在对GUI的识别解析,而Magma则是基于多模态技术,能够同时应对GUI和物理世界的交互&…...

DeepSeek掘金——DeepSeek R1驱动的PDF机器人

DeepSeek掘金——DeepSeek R1驱动的PDF机器人 本指南将引导你使用DeepSeek R1 + RAG构建一个功能性的PDF聊天机器人。逐步学习如何增强AI检索能力,并创建一个能够高效处理和响应文档查询的智能聊天机器人。 本指南将引导你使用DeepSeek R1 + RAG构建一个功能性的PDF聊天机器人…...

DeepSeek在PiscTrace上完成个性化处理需求案例——光流法将烟雾动态可视化

引言:PiscTrace作为开放式的视图分析平台提供了固定格式的类型参数支持个性化定制处理需求,本文一步步的实现光流分析按照不同需求根据DeepSeek的代码处理视频生成数据。 光流法(Optical Flow)是一种基于图像序列的计算机视觉技术…...

explore与explode词源故事

英语单词explore来自古法语,源自拉丁语,由前缀ex-(出来)加词根plor-(叫喊)以及末尾的小尾巴-e组成,字面意思就是“喊出来,通过叫喊声赶出来”。它为什么能表示“探索”呢&#xff1f…...

LeeCode题库第三十七题

37.解数独 项目场景: 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请…...

【数字信号处理:从原理到应用的深度剖析】

一、数字信号处理的原理 数字信号处理(DSP)是一种通过数学算法对信号进行分析、处理和转换的技术。其核心在于对离散时间信号的操作,目的是提取有用信息或将信号转换为更易于解释的形式。 (一)信号的数字化过程 1. …...

MySQL 数据库安全配置最佳实践

文章目录 MySQL 数据库安全配置最佳实践账户与权限管理账户最小化原则权限最小化配置密码策略强化 认证与访问控制禁用匿名账户启用安全认证 网络安全防护访问源限制禁用远程root访问启用SSL加密 日志审计与监控全量审计配置二进制日志管理 服务端安全加固关键参数配置文件权限…...

小红书自动评论

现在越来越多的人做起来小红书,为了保证自己的粉丝和数据好看,需要定期养号。 那么养号除了发视频外,还需要积极在社区互动,比如点赞、评论等等,为了节省时间,我做了一个自动化评论工具。 先看效果 那这个是…...

OpenCV图像认知(一)

OpenCV: 是由Intel公司俄罗斯团队发起并参与和维护的一个计算机视觉处理开源软件库,支持与计算机视觉和机器学习相关的众多算法 OpenCV-Python: OpenCV-Python是一个Python绑定库,旨在解决计算机视觉问题。 Python是一种由Gui…...

自学微信小程序的第六天

DAY6 1、使用录音API首先需要通过wx.getRecorderManager()方法获取到一个RecorderManager实例,该实例是一个全局唯一的录音管理器,用于实现录音功能。 表32:RecorderManager实例的常用方法 方法名称 说明 start() 开始录音 pause() 暂停录音 resume() 继续录音 stop() 停止…...

C++动态与静态转换区别详解

文章目录 前言一、 类型检查的时机二、安全性三、适用场景四、代码示例对比总结 前言 在 C 中,dynamic_cast 和 static_cast 是两种不同的类型转换操作符,主要区别体现在类型检查的时机、安全性和适用场景上。以下是它们的核心区别: 一、 类…...

Qt6.8编译项目找不到文件——6.8.2\msvc2022_64\include\QtWidgets\QMainWindow does not exist.

问题:Error: dependent ‘…\Qt6.8.2\6.8.2\msvc2022_64\include\QtWidgets\QMainWindow’ does not exist. jom: D:\Temp\untitled1\build\Makefile [release] Error 2 20:20:43: 进程"D:\ProgramFiles\Develop\Qt6.8.2\Tools\QtCreator\bin\jom\jom.exe"…...

AI工具导航平台功能模块之混合分类器功能说明文档

AI工具导航平台功能模块之混合分类器功能说明文档 这是我最近正在开发的AI工具信息平台的部门功能模块混合分类器的说明文档,我的AI工具信息平台基于streamlit架构,整理出来与大家分享。 该程序的混合分类器采用规则引擎与深度学习模型协同工作的架构&…...

【时序预测】在线学习:算法选择(从线性模型到深度学习解析)

——如何为动态时序预测匹配最佳增量学习策略? 引言:在线学习的核心价值与挑战 在动态时序预测场景中(如实时交通预测、能源消耗监控),数据以流式(Streaming)形式持续生成,且潜在的…...

某个设备的RJ45网口接头为何不可连接任何POE设备

某个设备的RJ45网口接头不可连接任何POE设备 1.POE设备是什么? POE设备是指支持通过以太网线传输电力和数据的设备,即“Power over Ethernet”(PoE)技术的设备。这种技术允许网络设备在传输数据的同时,通过标准的RJ4…...

发展中的脑机接口:SSVEP特征提取技术

一、简介 脑机接口(BCI)是先进的系统,能够通过分析大脑信号与外部设备之间建立通信,帮助有障碍的人与环境互动。BCI通过分析大脑信号,提供了一种非侵入式、高效的方式,让人们与外部设备进行交流。BCI技术越…...