ucore—15至16讲:处理机调度

2024-02-07 02:18
文章标签 16 15 调度 处理机 ucore

本文主要是介绍ucore—15至16讲:处理机调度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第十五讲:处理机调度
    • 15.1 处理机调度概念
    • 15.2 调度准则
    • 15.3 调度算法(考虑就绪队列)
      • 15.3.1 先来先服务(FCFS)
      • 15.3.2 短进程优先(SPN/SPF)
      • 15.3.3 高响应比优先(HRRN)
    • 15.4 调度算法(考虑执行时间)
      • 15.4.1 时间片轮转算法(Round-Robin)
      • 15.4.2 多级队列调度算法(MQ)
      • 15.4.3 公平共享调度(FSS)
    • 15.5 调度算法(其他)
      • 15.5.1 实时调度
      • 15.5.2 多处理机调度
    • 15.6 优先级反置
  • 第十六讲(实验6):调度器
    • 16.1 总体介绍和调度过程

第十五讲:处理机调度

15.1 处理机调度概念

  • CPU资源的时分复用
    既要选进程,也要选CPU
    在这里插入图片描述
  • 调度时机
    在这里插入图片描述

15.2 调度准则

  • 处理机资源的使用模式
    在这里插入图片描述
  • 比较调度算法的准则
    在这里插入图片描述
  • 快:吞吐量与延迟
    高带宽不一定低延时,低延时不一定高带宽
    在这里插入图片描述
  • 处理机调度策略的三个目标:响应时间(延时)、吞吐量(带宽)、公平性
    减少延时
    在这里插入图片描述
    增加吞吐量
    在这里插入图片描述
    保证公平性
    在这里插入图片描述

15.3 调度算法(考虑就绪队列)

15.3.1 先来先服务(FCFS)

  • First Come First Serve
    根据进入就绪状态的时间排序
    在这里插入图片描述
    注意周转时间的算法:进程从初始化到结束的总时间(包括等待时间!!!)

  • 先来先服务算法的特征
    在这里插入图片描述

15.3.2 短进程优先(SPN/SPF)

  • Shortest Process Next
    需注意这个执行时间是预期的,它实际上不可知
    在这里插入图片描述
  • 短进程优先的特征
    优点具有最优平均周转时间
    在这里插入图片描述
    缺点
    在这里插入图片描述
  • 执行时间的预估
    对之前的执行时间做衰减,最近的执行时间权重最大
    在这里插入图片描述
    在这里插入图片描述

15.3.3 高响应比优先(HRRN)

  • High Response Ratio Next
    在这里插入图片描述

15.4 调度算法(考虑执行时间)

15.4.1 时间片轮转算法(Round-Robin)

  • 时间片
    在这里插入图片描述
  • 示例
    在这里插入图片描述
  • 时间片长度
    设置合理的时间片,维持上下文切换开销在1%内
    在这里插入图片描述
  • 时间片 与 先来先服务的比较
    先来先服务于到达时间以及进程执行时间有关,抖动较大;
    时间片处于FCFS的最佳与最差之间,更加稳定;
    在这里插入图片描述

15.4.2 多级队列调度算法(MQ)

  • 多级队列调度算法(MQ)
    就绪队列划分成多个独立的子队列,每个队列有自己的调度算法
    对于前台进程队列,多用于交互,对时间要求少,可使用时间片算法;
    对于后台进程队列,计算时间较长,可使用FCFS;
    队列间的调度
    在这里插入图片描述
  • 多级反馈队列调度(MLFQ)
    进程可在不同队列间移动的多级队列调度;
    在这里插入图片描述
    算法特征:CPU密集的进程,优先级下降快;
    I/O密集型进程停留在高优先级;

15.4.3 公平共享调度(FSS)

  • Fair Share Scheduling
    在这里插入图片描述

15.5 调度算法(其他)

15.5.1 实时调度

  • 实时操作系统
    在这里插入图片描述
  • 实时任务
    在这里插入图片描述
  • 周期实时任务
    在这里插入图片描述
  • 硬实时和软实时
    在这里插入图片描述
  • 可调度性
    在这里插入图片描述
  • 实时调度算法
    前者是静态调度,后者是动态调度;
    都只是提一下,了解即可
    在这里插入图片描述

15.5.2 多处理机调度

  • 多处理器调度
    在这里插入图片描述
    对称与非对称多处理器
    非对称多处理器:将若干个处理器挂接到总线上,在各处理器之间形成简单的主从设备关系。非对称处理器不允许所有处理器访问所有系统资源,使系统性能受到限制。
    对称多处理器:所有处理器的地位都是相同的,所有的资源,特别是存储器、中断及I/O空间,都具有相同的可访问性,消除了结构上的障碍

  • 对称多处理器的进程分配
    在这里插入图片描述
    实际系统中,两种分配方式都有采用!

15.6 优先级反置

  • 优先级反置现象
    由于T1已经占用资源L1,所以T2被阻塞;
    T2被阻塞时,如果T1虽然占用L1资源,但是尚未获得CPU进入运行状态,T3抢占了T1的CPU(T3与T1没有资源冲突),则会导致高优先级的T2进入长时间等待 => 优先级反置
    => 解决问题的关键就是防止低优先级的进程被中间优先级的进程抢占CPU
    在这里插入图片描述

  • 解决方法一:优先级继承
    图中最开始的有优先级:T1>T2>T3
    在这里插入图片描述
    图中,t3时刻,T1优先级高于T3,直接抢占CPU(从而T1被阻塞 => 提高T1优先级);
    t4时刻,T1请求被T3占用的资源,因此被阻塞,T3获得CPU(因为此时T3已被提升,高于T2,不会被T2抢占);

  • 解决方法二:优先级天花板协议
    在这里插入图片描述
    但是实际系统中,与上述方法都有较大区别!!

第十六讲(实验6):调度器

16.1 总体介绍和调度过程

这篇关于ucore—15至16讲:处理机调度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/686244

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

Golang进程权限调度包runtime

关于 runtime 包几个方法: Gosched:让当前线程让出 cpu 以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行GOMAXPROCS:设置最大的可同时使用的 CPU 核数Goexit:退出当前 goroutine(但是defer语句会照常执行)NumGoroutine:返回正在执行和排队的任务总数GOOS:目标操作系统NumCPU:返回当前系统的 CPU 核数量 p

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

16 子组件和父组件之间传值

划重点 子组件 / 父组件 定义组件中:props 的使用组件中:data 的使用(有 return 返回值) ; 区别:Vue中的data (没有返回值);组件方法中 emit 的使用:emit:英文原意是:触发、发射 的意思components :直接在Vue的方法中声明和绑定要使用的组件 小炒肉:温馨可口 <!DOCTYPE html><html lang="en"><head><

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-