码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 操作系统(Operating System)知识点复习——第九章 单处理器调度


    目录

    0.前言

    1.调度的类型

    2.调度算法Scheduling Algorithms

    2.1 短程调度准则

    ①User-oriented(面向用户) && Performance-related(性能相关)

    ②User-oriented(面向用户) && other

    ③System-oriented(面向系统) && Performance-related(性能相关)

    ④System-oriented(面向系统) && other

    2.2 The Use of Priorities

    2.3 调度算法

    ①First-Come-First-Served(FCFS)先来先服务

    ②Round-Robin(RR轮转)

    ③Shortest Process Next(SPN)最短进程优先

    ④Shortest Remaining Time(SRT)最短剩余时间

    ⑤Highest Response Ratio Next(HRRN)最高响应比优先

    ⑥Feedback多级反馈列表

    2.4 公平共享调度


    0.前言

    本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。

    1.调度的类型

    目的:处理器分配

    • Response time (响应时间)--弹窗速度
    • Throughput (吞吐率)--单位时间完成工作量
    • Processor efficiency (处理器效率)

    调度的时机:

    1. Nonpreemptive非抢占式--主动放弃CPU
      1. 线程终止(正常终止,异常终止)
      2. 线程阻塞
    2. Preemptive抢占式
      1. 线程时间片用完了
      2. 中断服务完成
      3. 新线程到达

    调度分类:

    • 长程调度(Long-term scheduling):决定哪些程序可以进入系统进行处理(控制并发度),发生时机在进程终止或CPU空闲率超过某个值时会增加新进程
    • 中程调度(Medium-term scheduling):决定增加在内存中的进程数(管理并发度,降低抖动)
    • 短程调度(Short-term scheduling)(dispatcher):决定哪一个进程执行(执行最频繁)
    • I/O调度(I/O scheduling)

    调度与进程状态转换:

    调度的层次:

    2.调度算法Scheduling Algorithms

    2.1 短程调度准则
    ①User-oriented(面向用户) && Performance-related(性能相关)

    用户能感知到的系统行为

    • Turnaround time周转时间:从作业提交给系统开始到作业完成为止
    • Response Time响应时间:从提交到首次相应所用的时间
    • Deadlines终止时间

    ②User-oriented(面向用户) && other

    predictability可预测性

    ③System-oriented(面向系统) && Performance-related(性能相关)
    • Processor utilization处理器的使用效率
    • Throughput吞吐量:单位时间完成进程数

    ④System-oriented(面向系统) && other
    • Fairness公平性:无进程饥饿
    • Enforcing priorities强制优先级:倾向于高优先级进程
    • Balancing resources(also for medium-term and long-term ): 保持资源繁忙

    2.2 The Use of Priorities

    往往选择高优先级进程,用多个就绪队列表示进程的等级,低级进程可能饥饿

    2.3 调度算法

    相关术语:

    • Response time响应时间
    • 服务时间Ts:进程单独执行需要的时间
    • Throughput吞吐量
    • Turnaround time(周转时间或驻留时间)Tr:Tr=完成时间-到达时间
    • Normalized turnaround time(归一化周转时间)=Tr/Ts
    • Selection function选择函数:确定在就绪进程中选择哪一个进程在下一次执行
    • Decision mode决策模式:选择函数被执行瞬间的处理方式(抢占式与非抢占式)

    ①First-Come-First-Served(FCFS)先来先服务

    原理:选择最先到达就绪队列中的进程

    调度时机:进程结束时切换

    决策模式:非抢占式

    • 优点:公平,简单,不会产生饥饿,适合处理器密集型进程CPU-bound process(I/O要等CPU)
    • 缺点:不宜处理短进程

    ②Round-Robin(RR轮转)

    原理:按到达就绪队列的顺序,轮流执行一个时间片(选择下一个进程基于FCFS),若未执行完,则剥夺,重新加入

    调度时机:时间片用完了或进程结束

    决策模式:抢占式

    • 优点:公平,无饥饿
    • 缺点:有开销,对I/O-bound process不友好
    • 抢占时间片略大于一次典型交互时间最好

    Virtual Round-Robin Scheduler(VRR,虚拟轮转法,添加虚拟辅助队列)

    ③Shortest Process Next(SPN)最短进程优先

    原理:选择服务时间最短的进程(需预知服务时间)

    调度时机:进程结束时

    决策模式:非抢占式

    • 优点:最短平均等待时间,最短平均周转时间
    • 缺点:对长进程不利,会产生饥饿

    ④Shortest Remaining Time(SRT)最短剩余时间

    原理:选择进程剩余时间最短的(需预知服务时间,若剩余时间相同,遵循FCFS)

    调度时机:新进程到达时或进程结束时

    决策模式:抢占式

    • 优点:高吞吐量
    • 缺点:可能发生饥饿

    ⑤Highest Response Ratio Next(HRRN)最高响应比优先

    原理:选取响应比最高的(需预知服务时间)

    调度时机:进程结束时

    决策模型:非抢占式

    • 优点:高吞吐量,无饥饿

    ⑥Feedback多级反馈列表

    原理:有多个调度队列,运行一次降级一次(不需要知道服务时间)

    调度时机:时间片用完或进程结束

    决策模式:抢占式(采用时间片分配,优先级从高到底,时间片从小到大)

    • 缺点:调度复杂,开销大,可能饥饿

    (i表示第几个进程到达,从0开始)

    总结:

    2.4 公平共享调度
    • 用户的应用程序以进程集(process sets)的形式运行
    • 用户更关注应用程序的性能
    • 需要根据进程集做出调度决策
  • 相关阅读:
    vue3知识点:Suspense组件
    代码随想录算法训练营第五十六天| 1143.最长公共子序列 1035.不相交的线 53. 最大子序和
    大语言模型(一)OLMo
    GSMA SGP.01协议学习
    最新python大数据毕业设计选题推荐(三)
    Streptavidin-Biotin/Biotin-Streptavidin 生物素修饰/标记/偶联链霉亲和素
    六十六、vue组件
    【Java 进阶篇】Ajax 入门:打开前端异步交互的大门
    一看就会,使用 nginx 作为 HTTP 负载均衡器
    DOMPurify 使用方法,如何安全地操作DOM |.sanitize()|.innerHTML|TypeScript TS
  • 原文地址:https://blog.csdn.net/qq_62738515/article/details/138118064
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号