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

cpu利用率,系统吞吐量,周转时间,等待时间,响应时间详解(操作系统)

核心比喻再升级

  • CPU:超级打工人。
  • 进程/作业:一件件要完成的任务。
  • 操作系统:工头。
  • 调度算法:工头安排工作的**“指导思想”或“工作方法”**。

现在,我们要来评估工头的这套“工作方法”是否优秀。


1. CPU利用率 (CPU Utilization)
1. CPU 利用率

  • 通俗讲解:这很好理解,就是看我们的超级打工人有多忙。如果一天8小时工作制,他有7个小时都在埋头干活,只有1个小时在发呆等任务,那他的利用率就很高。反之,如果他干1小时活,等7小时,那我们就是花大钱养了个闲人,CPU利用率就很低。
  • 衡量目标:我们当然希望CPU利用率越高越好,因为CPU是很宝贵的资源,不能让它闲着。
  • 计算公式:CPU利用率 = (CPU忙碌的总时间) / (测量的总时间)

2. 系统吞吐量 (System Throughput)

  • 通俗讲解:这个指标衡量的是**“出活儿”的速度**。就是看在固定的时间内(比如一天、一个小时),办公室总共能完成多少件完整的任务。一个好的工作方法,应该能让办公室高效运转,单位时间内产出更多的成果。
  • 衡量目标:吞吐量自然也是越高越好,代表系统处理任务的能力强。
  • 计算公式:系统吞吐量 = (完成的总任务数) / (总共花费的时间)

3. 周转时间 (Turnaround Time)

  • 通俗讲解:这个指标是站在任务本身的角度来看的。它衡量的是一个任务从“出生”到“死亡”所经历的总时间。
    • 想象一下,你把一份“项目A报告”的需求单交给了工头(作业提交),然后这份需求单可能先在工头的收件箱里躺了一会儿(在后备队列等待),然后被工头正式列入“待办清单”(进入就绪队列),接着断断续续地被我们的打工人处理(运行),中间可能还因为要等其他部门的数据而暂停(阻塞),直到最后,打工人把完成的报告交给你(作业完成)。
    • 这整个过程,从你交出需求单到拿到最终报告,所花费的全部时间,就是周转时间。
  • 衡量目标:周转时间当然是越短越好。谁也不希望自己的任务拖太久。
  • 计算公式:周转时间 = 任务完成时间 - 任务提交时间
  • 相关概念
    • 平均周转时间:把所有任务的周转时间加起来,再除以任务总数。这是衡量整体水平的。
    • 带权周转时间:这个更公平。一个耗时10分钟的小任务,和一个耗时10小时的大任务,都花了双倍的时间完成(一个用了20分钟,一个用了20小时)。你觉得哪个更不能接受?当然是小任务!它才10分钟的活,却多等了10分钟。大任务本来就要10小时,多等10小时虽然也很长,但相对比例没那么夸张。带权周转时间就是用来衡量这种“相对等待”的。
    • 计算公式:带权周转时间 = 周转时间 / 任务实际运行时间。这个值越接近1,说明等待时间占比越小,体验越好。

4. 等待时间 (Waiting Time)

  • 通俗讲解:周转时间包含了任务被处理的时间,而等待时间更“纯粹”,它只计算一个任务**“干等着”**的时间。
    • 在我们的比喻中,就是“项目A报告”在工头的“待办清单”(就绪队列)里,排队等着轮到它被处理的时间总和。注意,它不包括任务真正在被处理的时间,也不包括因为它需要等其他部门数据而暂停的时间(那是阻塞时间)。它就是纯粹的、准备好了但CPU没空的等待时间。
  • 衡量目标:等待时间也是越短越好。等待最让人心烦。
  • 计算公式:对于进程来说,等待时间 = 周转时间 - 实际运行时间 - I/O阻塞时间。在很多简化题目中,如果不考虑I/O,可以近似为 等待时间 = 周转时间 - 实际运行时间

5. 响应时间 (Response Time)

  • 通俗讲解:这个指标非常关注用户的**“第一感受”。它衡量的是从你提出请求,到系统第一次给你反馈**所用的时间。
    • 比如,你在电脑上双击打开一个软件。从你双击的那一刻(提出请求),到屏幕上出现软件的启动窗口或者转圈圈的鼠标(首次响应),中间隔的这段时间,就是响应时间。
    • 它不关心软件最终要花多久才能完全加载好(那是周转时间的一部分),它只关心系统“理你”的速度快不快。
  • 衡量目标:对于交互式系统(比如我们用的电脑、手机),响应时间至关重要,必须非常短,否则用户会觉得系统很“卡”。
  • 计算公式:响应时间 = 第一次得到响应的时间 - 提出请求的时间

重点例题与详解

【例题】

假设有4个作业(P1, P2, P3, P4)在不同时间到达一个采用非抢占式短作业优先(SJF)调度算法的系统。它们的到达时间和需要运行的时间(服务时间)如下表所示。

作业到达时间服务时间
P108
P225
P334
P456

请计算:

  1. 这4个作业的完成时间、周转时间、等待时间和带权周转时间。
  2. 该调度过程的平均周转时间和平均等待时间。

【例题详解】

第一步:画出甘特图,确定执行顺序和时间点。

SJF(短作业优先)算法的核心是:当需要选择下一个作业时,从所有已到达且在等待的作业中,选择一个服务时间最短的来执行。因为是非抢占式的,所以一旦一个作业开始运行,它就会一直运行到结束。

  • 时刻 0:系统启动,只有 P1 到达。没有其他选择,CPU 开始执行 P1。
    • [ P1 ]
  • 时刻 8:P1 执行完毕。此时,P2(时刻2已到)、P3(时刻3已到)、P4(时刻5已到)都已经到达了就绪队列。我们需要在 P2、P3、P4 中选择一个服务时间最短的。
    • P2 服务时间 = 5
    • P3 服务时间 = 4
    • P4 服务时间 = 6
    • P3 最短,所以接下来执行 P3。
    • [ P1 (0-8) | P3 ]
  • 时刻 12 (8 + 4):P3 执行完毕。此时,就绪队列中还剩下 P2 和 P4。
    • P2 服务时间 = 5
    • P4 服务时间 = 6
    • P2 较短,所以接下来执行 P2。
    • [ P1 (0-8) | P3 (8-12) | P2 ]
  • 时刻 17 (12 + 5):P2 执行完毕。只剩下 P4 了,执行 P4。
    • [ P1 (0-8) | P3 (8-12) | P2 (12-17) | P4 ]
  • 时刻 23 (17 + 6):P4 执行完毕。所有作业完成。

最终的甘特图为: |---P1---(8)---P3---(12)---P2---(17)---P4---(23)|

第二步:根据甘特图和公式进行计算。

我们将所有计算结果整理到一个表格中,方便查看。

作业到达时间服务时间完成时间周转时间 (完成-到达)等待时间 (周转-服务)带权周转时间 (周转/服务)
P10888 - 0 = 88 - 8 = 08 / 8 = 1.0
P2251717 - 2 = 1515 - 5 = 1015 / 5 = 3.0
P3341212 - 3 = 99 - 4 = 59 / 4 = 2.25
P4562323 - 5 = 1818 - 6 = 1218 / 6 = 3.0

第三步:计算平均值。

  1. 平均周转时间

    • (P1周转 + P2周转 + P3周转 + P4周转) / 4
    • = (8 + 15 + 9 + 18) / 4
    • = 50 / 4 = 12.5
  2. 平均等待时间

    • (P1等待 + P2等待 + P3等待 + P4等待) / 4
    • = (0 + 10 + 5 + 12) / 4
    • = 27 / 4 = 6.75

最终答案

  • 各作业的指标如上表所示。
  • 系统的平均周转时间为 12.5。
  • 系统的平均等待时间为 6.75。

http://www.lryc.cn/news/584169.html

相关文章:

  • 二进制安全-汇编语言-06-包含多个段的程序
  • QBoost 2025版:加速手机性能,提升使用体验
  • pytorch深度学习-Lenet-Minist
  • 从零开始搭建深度学习大厦系列-2.卷积神经网络基础(5-9)
  • 基于 Flutter 的开源文本 TTS 朗读器(支持 Windows/macOS/Android)
  • 从零实现一个GPT 【React + Express】--- 【2】实现对话流和停止生成
  • Flink Exactly Once 和 幂等
  • Spring for Apache Pulsar->Reactive Support->Message Consumption
  • wpf使用webview2显示网页内容(最低兼容.net framework4.5.2)
  • 以太网基础⑤UDP 协议原理与 FPGA 实现
  • 西电考研录取:哪些省份考研上岸西电更容易?
  • websocket的客户端(发送接收json的消息)
  • TCP-与-UDP-协议详解:原理、区别与应用场景全解析
  • 自动驾驶环境感知:天气数据采集与融合技术实战
  • 关键字前跟空格或首字母, 关键字后跟空格或标点符号; 标点符号后面不是必须跟空格;
  • Duplicate cleaner pro 的使用技巧
  • 汽车加气站操作工分类有几种
  • 制作一款打飞机游戏78:游戏选项
  • 城市脉搏中的隐形守护者
  • 羊肚菌自动采收车设计cad【7张】+三维图+设计说明书
  • U-Boot 2025.07 引入的 “uthreads” 优势介绍
  • 【三维重建】开源slam数据集介绍
  • ssh: connect to host github.com port 22: connection refused
  • 微服务架构下某汽车APP电商模块订单服务自动化测试方案(Python蹭个场)
  • 庄懂的水特效AP01/L16/Water
  • 【TCP/IP】10. 引导协议与动态主机配置协议
  • 汽车功能安全-软件集成和验证(Software Integration Verification)【目的、验证输入、集成验证要求】9
  • RHCE考试 ——笔记
  • 接口(上篇)
  • 编译OpenHarmony-4.0-Release RK3566 报错