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

计算机操作系统(十一)调度器/调度程序,闲逛调度与调度算法的评价指标

计算机操作系统(十一)调度器/调度程序,闲逛调度与调度算法的评价指标

  • 前言
  • 一、调度程序
    • (一)什么是调度程序?
    • (二)哪些情况会触发调度程序工作?
    • (三)两种调度策略的区别
  • 二、闲逛调度:
  • 三、调度算法的评价指标:
    • (一)CPU利用率:
    • (二)系统吞吐量:
    • (三)周转时间:
    • (四)等待时间:
    • (五)响应时间:


前言

  • 在上一篇博客中,我们探讨了调度的概念与层次体系,以及进程调度的触发时机和进程调度方式。
  • 本篇博客将进一步深入剖析调度器(又称调度程序)、闲逛调度机制,同时解析调度算法的核心评价指标

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的操作系统博客专栏
https://blog.csdn.net/2402_83322742/category_12916780.html?spm=1001.2014.3001.5482


一、调度程序

在这里插入图片描述

(一)什么是调度程序?

就像班主任给学生安排考试顺序一样,调度程序是操作系统里专门负责分配CPU资源的"管家",它的核心工作是决定接下来让哪个进程使用CPU。
在这里插入图片描述

(二)哪些情况会触发调度程序工作?

  1. 创建新进程
  • 比如你打开一个新的游戏软件,系统就会创建一个新进程。
  • 这时候调度程序需要考虑:是马上让新进程运行,还是让它排队等待?
  1. 进程退出
    当一个进程完成任务退出时,比如你关闭了正在看的视频软件,调度程序就会重新分配CPU资源,让其他等待的进程有机会运行。

  2. 运行进程阻塞

  • 当一个进程需要等待输入输出(比如等待用户键盘输入、读取文件数据),这时候进程会暂时"停住",调度程序就会让其他进程先运行。
  1. I/O中断发生
  • 比如打印机完成打印任务后向系统发送信号,这种突发的I/O事件会打断当前进程,触发调度程序重新选择下一个运行的进程

(三)两种调度策略的区别

  • 非抢占式调度(温柔的管家)
    只有当前进程主动"放手"(阻塞或退出)时,调度程序才会安排新进程。就像餐厅厨师必须做完当前顾客的菜,才会处理下一个订单,不会中途打断正在做的菜。

  • 抢占式调度(严格的管家)
    会定时打断当前进程(比如每10个时钟周期),强制切换任务。类似老师规定每个学生每10分钟必须交换一次做的题目,确保每个人都有机会练习,防止某个学生一直占用时间。

二、闲逛调度:

  • 当所有进程都在等待(比如都在阻塞状态),没有可运行的任务时,调度程序会启动一个特殊的"闲逛进程"

比如:

  • 电脑待机时,屏幕保护程序开始运行,此时CPU并没有完全空闲,而是在执行这个轻量级的闲逛进程。
  • 它的作用是让CPU保持运行状态,随时准备响应新的任务,就像商店里没有顾客时,店员会整理货架保持待命,而不是关门休息。

三、调度算法的评价指标:

在这里插入图片描述

(一)CPU利用率:

  • 定义:CPU真正在处理任务的时间占总时间的比例。
  • 例子:如果一天24小时里,CPU有20小时在处理程序,4小时在空闲,利用率就是20/24≈83.3%。
  • 目标:越高越好,但不能过度压榨(比如避免所有进程排队等待导致死机)。

(二)系统吞吐量:

  • 定义:单位时间内完成的进程数量。
  • 例子:餐厅一小时内完成100份套餐和完成50份套餐,前者吞吐量更高。调度算法好的系统,就像高效的餐厅,能更快处理更多任务。

(三)周转时间:

  • 定义:从进程创建到完成的总时间。
    • 不带权周转时间:直接计算总耗时,比如外卖从下单(进程创建)到送达(完成)用了30分钟。
    • 带权周转时间:总耗时除以进程实际运行时间(考虑等待时间的影响)。比如外卖制作花了10分钟,等待配送花了20分钟,带权周转时间就是30/10=3(表示等待时间是运行时间的2倍)。
  • 目标:平均周转时间越小越好,让每个任务尽快完成。

(四)等待时间:

  • 定义:进程在就绪队列中等待被CPU处理的总时间(不包括运行时间)。
  • 例子:外卖在厨房排队等待厨师制作的时间,就是等待时间。调度算法差的系统,可能让外卖长时间排队,导致等待时间过长。

(五)响应时间:

  • 定义:从用户提交请求到系统首次响应的时间。
  • 例子:你点击鼠标打开网页,到浏览器开始显示第一个页面的时间,就是响应时间。即使最终完成需要较长时间,快速的首次响应也能让用户感觉系统更流畅。

以上就是对本次关于操作系统博客内容的总结,后续我们将深入探讨操作系统更多知识。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的操作系统博客专栏
https://blog.csdn.net/2402_83322742/category_12916780.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

http://www.xdnf.cn/news/8051.html

相关文章:

  • 杰发科技AC7840——CSE硬件加密模块使用(1)
  • JVM——内存模型
  • Starrocks的CBO基石--统计信息的来源 StatisticAutoCollector
  • 前端vscode学习
  • VLLM在linux下部署
  • 智联物联RG3000边缘计算网关助力智慧城市建设
  • 《C 语言字符串操作从入门到实战(下篇):strncpy/strncat/strstr 等函数原理与实现》
  • 《Android 应用开发基础教程》——第十四章:Android 多线程编程与异步任务机制(Handler、AsyncTask、线程池等)
  • uni-app 排坑
  • Maven Profile中的资源过滤与属性管理
  • 华为2025年校招笔试手撕真题教程(三)
  • 优化用户体验:拦截浏览器前进后退、刷新、关闭、路由跳转等用户行为并弹窗提示
  • 西门子 S1500 博途软件舞台威亚 3D 控制方案
  • SQL:窗口函数(Window Functions)
  • 基于ITcpServer/IHttpServer框架的HTTP服务器
  • 关于大语言模型的问答?
  • 后端开发实习生-抖音生活服务
  • Centos系统资源镜像配置
  • Java集合框架深度剖析:结构、并发与设计模式全解析
  • 生物化学笔记: 药物 论文阅读 赖氨酸用于预防和治疗皮肤单纯疱疹感染 基础信息药理学临床试验
  • 笔试模拟 day12
  • 小白刷题 之 如何高效计算二进制数组中最大连续 1 的个数
  • jQuery Mobile 表单输入详解
  • Linux shell 正则表达式高效使用
  • 配置gem5环境:Dockerfile使用
  • Netty学习专栏(二):Netty快速入门及重要组件详解(EventLoop、Channel、ChannelPipeline)
  • 计算机网络 第三章:运输层(三)
  • AI|Java开发 IntelliJ IDEA中接入本地部署的deepseek方法
  • IDEA启动报错:Cannot invoke “org.flowable.common.engine.impl.persistence.ent
  • LESS基础用法详解