王道操作系统笔记(三)———— 处理机调度

news2024/9/21 8:02:22

文章目录

  • 一、调度的概念
    • 1.1 调度的基本概念
    • 1.2 调度的层次
    • 1.3 补充:七状态模型
  • 二、调度的时机、切换与过程
    • 2.1 进程调度的时机
    • 2.2 狭义进程调度、进程切换、广义进程调度
    • 2.3 进程切换的过程
    • 2.4 补充:闲逛进程
  • 三、进程的调度方式
  • 四、调度算法的评价指标
  • 五、典型的调度算法
    • 5.1 先来先服务调度算法(FCFS)
    • 5.2 短作业/进程优先调度算法(SJF/SPF)
      • 5.2.1 非抢占式
      • 5.2.1 抢占式
    • 5.3 高响应比优先调度算法(HRRN)
    • 5.4 时间片轮转调度算法(RR)
    • 5.5 优先级调度算法
      • 5.5.1 非抢占式
      • 5.5.2 抢占式
    • 5.6 多级反馈队列调度算法
    • 5.7 算法总结(★)
    • 5.8 补充:多级队列调度算法


一、调度的概念

1.1 调度的基本概念

处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法的选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

1.2 调度的层次

  1. 高级调度: 内存空间有限时,无法将用户提交的作业全部放入内存,需要按一定的原则从外存的作业 后备队列 中挑选一个作业调入内存,并创建进程。
  2. 低级调度: 在内存中的按照某种策略从 就绪队列 中选取一个进程,将处理机分配给它。
  3. 中级调度: 内存不够时,可将某些进程的数据调出外存。等内存空闲或者进程需要运行时,按照某种策略从 挂起队列 中选择合适的进程重新调入内存。

在这里插入图片描述

注:① 进程调度 时操作系统中 最基本 的一种调度。
  ② 每个作业只调入一次,调出一次


1.3 补充:七状态模型

暂时调到外存等待进程状态为 挂起状态,挂起状态又分为:就绪挂起、阻塞挂起
在这里插入图片描述
挂起和阻塞的区别: 两种状态都不可获得 CPU 服务,但 挂起状态将进程调到外存,而阻塞态还在内存中


二、调度的时机、切换与过程

2.1 进程调度的时机

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。
在这里插入图片描述

注:① 临界资源: 一个时间段内只允许一个进程使用的资源,各进程需要 互斥地 访问临界资源。
  ② 临界区: 访问临界资源的那段代码。临界区分为:内核程序临界区与普通临界区。
     内核程序临界区: 一般用来访问 某种内核数据结构的,比如进程的就绪队列(由各就绪进程的PCB组成)
     普通临界区: 访问的临界资源 不会直接影响 OS 管理工作 。因此在访问普通临界区时,可进行调度与切换。

在进程处于临界区时,不能进行处理机调度。(×)
解析:普通临界区可进行处理机调度,OS 内核临界区不可进行处理机调度。
(来源:2012年408第30题)


2.2 狭义进程调度、进程切换、广义进程调度

  1. 狭义的进程调度 指的是从就绪队列中 选中一个要运行的进程。(这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后一种情况就需要 进程切换

  2. 进程切换 是指一个进程让出处理机,由 另一个进程 占用处理机的过程。

  3. 广义的进程调度 包含了 选择一个进程进程切换 两个步骤。
    (上文进程调度时机,即可以指广义进程调度,也可以是狭义进程调度,如只有一个进程)


2.3 进程切换的过程

进程切换的过程主要完成了:

  1. 对原来运行进程各种数据的保存。(如:发生中断时,硬件负责保存 PC、PSW 的值,OS 负责有“必要”的通用寄存器、中断屏蔽字的值)
  2. 对新的进程各种数据的恢复。(如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块)

注:① 进程切换是有代价的,因此如果过于频繁的进行进程调度、切换,必然会使整个系统的效率降低。
  ② 不支持内核级线程的操作系统,调度程序的处理对象是进程。
    支持内核级线程的操作系统,调度程序的处理对象是内核线程。


2.4 补充:闲逛进程

闲逛进程是指调度程序永远的备用进程,没有其他就绪进程时,运行闲逛进程
闲逛进程的特性:优先级最低、能耗低、可以是0地址指令,占一个完整的指令周期(指令周期末尾例行检查中断)。


三、进程的调度方式

进程的调度方式有两种: 非剥夺调度任务、剥夺调度方式

  1. 非剥夺调度方式:又称 非抢占方式,只允许进程主动放弃处理机
    在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
    实现简单,系统开销小但是无法及时处理紧急任务,适合于早期的批处理系统。
  2. 剥夺调度方式:又称 抢占方式,进程被动放弃处理机,可由 OS 剥夺当前进程的 CPU 使用权。
    当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。
    可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统。

四、调度算法的评价指标

在这里插入图片描述

注:等待时间指进程处于等处理机状态的时间之和。
  ① 对于进程:等待时间指进程等待被服务时间之和。
  ② 对于作业:等待时间不仅要考虑进程等待服务时间,还需要加上作业在外存后备队列中等待的时间。


五、典型的调度算法

操作系统存在多种调度算法,有的调度算法适用于作业调度,有的适用于进程调度,有的二者都适用。

5.1 先来先服务调度算法(FCFS)

先来先服务调度算法 每次从就绪队列(用于作业时,是后备队列)中选择 最先进入该队列的进程

例:现已知进程的到达时间和运行时间,这次进程的开始时间、等待时间、完成时间、周转时间和平均周转时间如下表。
在这里插入图片描述
调度顺序为:P1→P2→P3→P4
平均周转时间 = (7+9+8+11)/4 = 8.75
平均带权周转时间 = (1+2.25+8+2.75)/4 = 3.5
平均等待时间 = (0+5+7+7)/4 = 4.75
在这里插入图片描述


5.2 短作业/进程优先调度算法(SJF/SPF)

5.2.1 非抢占式

短作业/进程优先调度算法默认是非抢占式,每次调度时选择 当前已到达运行时间最短 的作业/进程。

例:现已知进程的到达时间和运行时间,这组进程的开始时间、等待时间、完成时间、周转时间和平均周转时间如下表。在这里插入图片描述
调度顺序为:P1→P3→P2→P4
在这里插入图片描述
平均周转时间 = (7+4+10+11)/4 = 8
平均带权周转时间 = (1+4+2.5+2.75)/4 = 2.56
平均等待时间 = (0+3+6+7)/4 = 4


5.2.1 抢占式

  抢占式短作业优先调度算法,又称 最短剩余时间优先算法(SRTN)是抢占式的调度算法。每当有进程加入 就绪队列改变时 就需要检查是会发生抢占,如果新到达的进程 剩余时间 比当前运行的进程剩余时间 更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程 完成主动放弃处理机时,也需要调度。

例:现已知进程的到达时间和运行时间,则这组进程的调度顺序如下图所示。
在这里插入图片描述   在这里插入图片描述
抢占式算法的特点是,有进程达到就绪队列,就需要按照规则进行改变。

各时刻就绪队列的情况如下:
0 时刻:P1(7)。只有P1到达,P1上处理机。
2 时刻:P2(4)。P2到达,P2的运行时间更短,P2抢占处理机,P1回到就绪队列。
4 时刻:P1(5)、P3(1)。P3到达,P3需要1个时间,P2还需要2个时间,因此P3抢占处理机,P2回到就绪队列。
5 时刻:P1(5)、P2(2)、P4(4)。P3完成放弃处理机,P4刚好达到。此时P2所需时间最短,P2上处理机。
7 时刻:P1(5)、P4(4)。P2完成放弃处理机,P4时间更短,P4上处理机。
11时刻:P1(5)。P4完成放弃处理机,P1上处理机。
16时刻:所有进程运行结束。

这组进程的开始时间、等待时间、完成时间、周转时间和平均周转时间如下表。
在这里插入图片描述
平均周转时间 = (16+5+1+6)/4 = 7
平均带权周转时间 = (2.28+1.25+1+1.5)/4 = 1.50
平均等待时间 = (9+1+0+2)/4 = 3
在这里插入图片描述

注:① 如果题目中 未特别说明,所提到的短作业/进程优先算法 默认是非抢占式的
  ② SJF 调度算法的平均等待时间、平均周转时间最少 这种表述 不严谨,因为 SRTN(抢占式的短作业/进程优先) 的平均等待时间、平均周转时间更少。
  ③ 正确的表述应该是 在所有进程同时可运行时 或者 在所有进程都几乎同时到达时,采用 SJF 调度算法的平均等待时间、平均周转时间最少 。因为当所有进程同时到达时,不存在抢占问题。
  ④ 正确的表述还可以是 抢占式的短作业/进程优先调度算法(最短剩余时间优先, SRNT算法)的平均等待时间、平均周转时间最少
  ⑤ 虽然严格来说,SJF的平均等待时间、平均周转时间并不一定最少,但相比于其他算法(如 FCFS),SJF依然可以获得较少的平均等待时间、平均周转时间。
  ⑥ 如果题目中遇到 “SJF 算法的平均等待时间、平均周转时间最少” 的选项,那应判断其他选项是否有很明显的错误,如果没有更合适的选项,那也应该选择该选项


5.3 高响应比优先调度算法(HRRN)

  高响应比优先调度算法是 非抢占式的调度算法,同时考虑 FCFS 和 SJF 两种调度算法的特点,考虑了每个作业的等待时间和估计的运行时间。在每次调度时先计算各个作业的响应比,选择响应比最高的作业/进程为其服务。
响应比 = 等待时间 + 要求服务时间 要求服务时间 ,(响应比 ≥ 1 ) 响应比=\frac{等待时间+要求服务时间}{要求服务时间},(响应比≥1) 响应比=要求服务时间等待时间+要求服务时间,(响应比1

例:现已知进程的到达时间和运行时间,则这组进程的调度顺序如下图所示。
在这里插入图片描述   在这里插入图片描述

各时刻就绪队列的情况如下:
0时刻:只有 P1 到达就绪队列,P1 上处理机
7时刻(P1主动放弃CPU): 就绪队列中有 P2 (响应比=(5+4)/4=2.25)、 P3 ((3+1)/1=4)、 P4 ((2+4)/4=1.5)
8时刻(P3完成): P2 (2.5)、 P4 (1.75)
12时刻(P2完成):就绪队列中只剩下P4。
16时刻:( )。所有进程运行结束。

在这里插入图片描述


5.4 时间片轮转调度算法(RR)

时间片轮转调度算法 用于进程调度,算法轮流让就绪队列中的进程依次执行一个时间片(每次选择的都是排在就绪队列队头的进程)。

例:现已知进程的到达时间和运行时间,假设 时间片大小为2,则这组进程的调度顺序如下图所示。
在这里插入图片描述  在这里插入图片描述

各时刻就绪队列的情况如下:
0时刻:P1(5)。只有P1到达,P1上处理机。
2时刻:P2(4)→P1(3)。P2到达就绪队列,排在队头,P1被剥夺处理机,重新放到队尾。
     默认新到达的进程先进入就绪队列
4时刻:P1(3)→P3(1)→P2(2)。P3到达先插到就绪队尾,P2下处理机也插到队尾。
5时刻:P3(1)→P2(2)→P4(6)。P4到达插到就绪队尾。
    由于P1的时间片还没用完,因此暂时不调度。另外,此时P1处于运行态,并不在就绪队列中
6时刻:P3(1)→P2(2)→P4(6)→P1(1)。
7时刻:P2(2)→P4(6)→P1(1)。P3运行需要1个单位的时间,运行完主动放弃处理机,发生调度。
9时刻:P4(6)→P1(1)
11时刻:P1(1)→P4(4)
12时刻:P4(4)
14时刻:( )。就绪队列为空,P4不用下处理机,因此让P4接着运行一个时间片。
16时刻:( )。所有进程运行结束。

在这里插入图片描述

注:① 如果 时间片太大,使得每个进程都可在一个时间片内就完成,时间片轮转调度算法退化为先来先服务算法,这会增大进程响应时间。
  ② 如果 时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而实际用于进程执行的时间比例减少。


5.5 优先级调度算法

优先级调度算法即可用于作业调度,又可用于进程调度,其优先级用于描述作业/进程运行的紧迫程度。

5.5.1 非抢占式

非抢占式 的优先级调度算法:每次调度时选择 当前已到达且优先级最高 的进程。当前进程 主动放弃处理机时 发生调度。

例:现已知进程的到达时间、运行时间和优先级,则这组进程的调度顺序如下图所示。
在这里插入图片描述  在这里插入图片描述

各时刻就绪队列的情况如下:
0 时刻:(P1)。只有P1到达,P1上处理机。
7 时刻:(P2、P3、P4) 。P1运行完成主动放弃处理机,其余进程都已到达,P3优先级最高,P3上处理机。
8 时刻:(P2、P4)。P3完成,P2、P4优先级相同,由于P2先到达,因此P2优先上处理机。
12时刻:(P4)。P2完成,就绪队列只剩P4,P4上处理机。
16时刻:( )。P4完成,所有进程运行结束。


5.5.2 抢占式

  抢占式 的优先级调度算法:当 就绪队列发生改变时 需要检查是会发生抢占,如果新到达的进程优先级比当前运行的进程优先级更高,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当前进程 主动放弃处理机时 发生调度。

例:现已知进程的到达时间、运行时间和优先级,则这组进程的调度顺序如下图所示。
在这里插入图片描述  在这里插入图片描述

各时刻就绪队列的情况如下:
0 时刻:(P1)。只有P1到达,P1上处理机。
2 时刻:(P2) 。P2到达就绪队列,优先级比P1更高,P2抢占处理机,P1回到就绪队列。
4 时刻:(P1、P3)。P3到达,优先级比P2更高,P3抢占处理机,P2回到就绪队列。
5 时刻:(P1、P2、P4)。P3完成主动释放处理机,同时P4也到达,由于P2比P4更先进入就绪队列,因此P2上处理机。
7 时刻:(P1、P4)。P2完成,就绪队列只剩P1、P4,P4上处理机。
11时刻:(P1)。P4完成,P1上处理机。
16时刻:( )。P1完成,所有进程运行结束。

在这里插入图片描述

注:① 就绪队列未必只有一个,可以按照不同优先级来组织。另外,也可以把优先级高的进程排在更靠近队头的位置。
  ② 根据优先级是否可以动态改变,可将优先级分为 静态优先级动态优先级 两种。
     静态优先级:创建进程时确定,之后一直不变。
     动态优先级:创建进程时有一个初始值,之后会根据情况动态地调整优先级。
通常优先级:① 系统进程 > 用户进程
      ② 前台进程 > 后台进程(交互型进程>非交互型进程)
      ③ I/O型进程> 计算型进程,操作系统更偏好 I/O型进程。

某系统正在执行三个进程P1、P2和P3,3个进程的计算时间和I/O时间比例如下表所示。为提高系统资源利用率,合理的进程优先级设置应为(P3 > P2 > P1)
解析:I/O型作业优先级大于计算型作业,由于I/O操作需要及时完成,并且没办法长时间保存所要输入输出的数据,所以I/O繁忙型作业有更高的优先级。

在这里插入图片描述
(来源:2013年408第31题)


5.6 多级反馈队列调度算法

多级反馈队列算法 是以上几种算法的折中权衡,其用于 进程调度,并且是 抢占式 的算法。

算法规则如下:
① 设置多级就绪队列,各级队列 优先级从高到低,时间片从小到大
② 新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经是在最下级的队列,则重新放回该队列队尾。
③ 只有第 k 级队列为空时,才会为 k+1 级队头的进程分配时间片。

注:当有源源不断的进程到达时,下级队列一直得不到处理。因此,会导致饥饿

(2019年408第27题)系统采用二级反馈队列调度算法进行进程调度。就绪队列Q1采用时间片轮转调度算法,时间片为10ms;就绪队列Q2采用短进程优先调度算法,系统优先调度Q1队列中的进程,当Q1为空时系统才会调度Q2中的进程;新创建的进程首先进入Q1;Q1中的进程执行一个时间片后,若未结束,则转入Q2。若当前Q1、Q2为空,系统依次创建进程P1、P2后即开始进程调度,P1、P2需要的 CPU 时间分别为 30ms 和 20ms,则进程P1、P2在系统中的平均等待时间为( 15ms )。

解析:根据题意画出甘特图如下所示:
在这里插入图片描述
P1等待时间 = P1周转时间 - P1运行时间 = 50-30 = 20ms
P2等待时间 = P2周转时间 - P2运行时间 = 30-20 = 10ms
P1、P2在系统中的平均等待时间 = (P1等待时间+P2等待时间)/2 = 15ms


5.7 算法总结(★)

算法是否可抢占适用于作业/进程调度优点缺点是否会导致饥饿补充
先来先服务调度算法(FCFS)非抢占式作业/进程调度都适用公平,实现简单对短作业不利等待时间(✓)
运行时间(×)
短作业/进程优先调度算法(SJF/SPF)默认非抢占式
也有抢占式SRTN
作业/进程调度都适用“最短的”平均等待和周转时间
SRTN 最短
对长作业不利 ,可能导致饥饿;难以做到真正的短作业优先等待时间(×)
运行时间(✓)
高响应比优先调度算法(HRRN)非抢占式作业/进程调度都适用上述两种算法的权衡折中,综合考虑的等待时间和运行时间/等待时间(✓)
运行时间(✓)
时间片轮转调度算法(RR)抢占式用于进程调度公平,适用于分时系统频繁切换有开销,不区分优先级时间片大小对于算法的影响
优先级调度算法有抢占式、非抢占式两种作业/进程调度都适用区分优先级,适用于实时系统可能导致饥饿动态/静态优先级。各类型进程如何设置和调整。
多级反馈队列调度算法抢占式用于进程调度平衡优秀一般不说它有缺点,不过可能导致饥饿/

注:① 前三种算法:先来先服务调度算法、短作业/进程优先调度算法、高响应比优先调度算法,都是用于早期批处理系统
  ② 后三种算法:时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法,都适合用于交互式系统


5.8 补充:多级队列调度算法

  多级队列调度算法设置了多个队列,进程创建成功后插入某个队列。队列之间可采取固定优先级,或时间片划分。并且各队列可采用不同的调度策略。
如:设置三个队列,分配时间分别为:50%、40%和10%,队列分别采用优先级调度、高响应比优先调度和先来先服务调度策略。

在这里插入图片描述

与多级反馈队列调度算法不同点:多级队列调度中,一个进程只在一个队列中执行调度。而多级反馈队列调度,一个进程在一个队列中调度后未执行完,会去下级队列继续调度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【通信原理(含matlab程序)】实验四 升余弦滚降基带传输

💥💥💞💞欢迎来到本博客❤️❤️💥💥 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~ &#x…

【Novel AI】使用绘画AI构建unity游戏资源

请勿在商业用途中使用下面的示例图中的任何资源! 1. 设想: 首先根据自己的设想,创造一些角色原型,角色特点等等 这里我根据网络上找的一些参考,我大概想要的是比较特别的一个警察的猫人形的动物角色; 2…

网络编程(TCP+UDP)(1)

咱们的一个TCP服务器,是否可以让一个UDP客户端连接上呢? 1)TCP和UDP,他们无论是API代码,还是协议底层的工作过程,都是差异巨大的,不是单纯的把流转化成数据包就可以的; 2)描述一次通信&#xff…

武器系统中的自主性(国防部指令3000.09)

批准:负责政策的国防部副部长办公室2023年1月25日可以公开发布。可在指令司网站https://www.esd.whs.mil/DD/查阅。国防部指令3000.09,“武器系统中的自主性”,2012年11月21日国防部副部长凯瑟琳希克斯(Kathleen H. Hicks)目的:本指令:•建立开发和使用武…

教育数字化转型 看低代码怎么构建实现

数字经济和数字社会的发展,推动教育培养目标和内容的发展与变革。经过教育信息化1.0和2.0的建设,我国数字技术与教育经历了起步、应用、融合、创新四个阶段,目前正处于融合与创新并存的时期。教育数字化教育数字化转型是教育信息化的特殊阶段…

C 程序设计教程(20)—— 数组和指针(三):数组与指针的关系

C 程序设计教程(20)—— 数组和指针(三):数组与指针的关系 该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用…

RESTful应用

AJAX技术 浏览器是多进程的,简单的说就是,浏览器每打开一个标签页,就相当于创建了一个独立的浏览器进程。但是js是基于单线程的,而这个线程就是浏览器的js引擎,浏览器无论在什么时候都只且只有一个线程在运行JavaScri…

sonic-ios-bridge(sib)性能监控之系统性能及应用性能

sib下载地址:Releases SonicCloudOrg/sonic-ios-bridge GitHub 可以看到最新版本为V1.3.7。下载到本地并解压后即可使用。 性能监控使用帮助:sib perfmon -h sib perfmon -f -j:以json格式化显示性能数据。 一、查看系统整体性能数据 查看…

10. POP3收取邮件

1. POP3协议 POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。 POP 协议…

Kernel: sysctl: hung_task_panic、hung_task_check_count、hung_task_timeout_secs

文章目录 mutex 锁相关的一个例子这个和磁盘相关的一个例子hung_task_panic:hung_task_check_count:hung_task_timeout_secs:实例hung_task_warnings:相关的编译配置mutex 锁相关的一个例子 systemd-shutdown 卡在device-shutdown时调用的mutex-lock操作。 这个和磁盘相关的…

Android ANR触发机制及日志分析

1.ANR Application Not Responding,即应用程序未响应。Android系统要求一些事件在一定时间范围内完成,如果超过预定时间未得到有效响应或响应时间过长,就会造成ANR。 Android中有4种ANR发生场景: ①点击事件(按键和触摸事件&am…

PDF在线合并网页版有哪些?这几款你一定没用过

PDF在线合并网页版有哪些?很多人在工作中都需要给其他人发送一些重要文件,如果文件数量比较多的时候,就会出现耗时有耗力的情况,所以我们就需要想一个办法来解决问题,那就是将多个PDF文件进行合并,我们需要…

MATLAB算法实战应用案例精讲-【数模应用】概率生成模型(Generative Model)

前言 知识储备 表征学习 背后的核心思想representation learning ,不是试图直接对高维样本空间建模,而是使用一些低维潜在空间来描述训练集中的每个观察,然后学习一个映射函数,该函数可以在潜在空间中取一个点,将其映射到原始域中的一个点。换句话说,潜在空间中的每个…

[LeetCode 1664]生成平衡数组的方案数

题目描述 题目链接:[LeetCode 1664]生成平衡数组的方案数 给你一个整数数组 nums 。你需要选择 恰好 一个下标(下标从 0 开始)并删除对应的元素。请注意剩下元素的下标可能会因为删除操作而发生改变。 比方说,如果 nums [6,1,…

群晖(docker图形化界面)使用 SpeedTest 测速

群晖(docker图形化界面)使用 SpeedTest 测速 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 本文主要介绍在群晖中安装 speedtest 进行网络测速。 一、安装 docker 在套件中心搜索并且安装 docker。 二、下载容器 在 注册表 中搜索 adolfintel/speedte…

UART、RS232、RS485和RS422

1.UART UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种通用的串行、异步通信总线,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式&#…

PPT制作心得

1.插入形状: 这里有三个部分可以设置: 填充可以设置用什么颜色来填充 轮廓可以设置边框的颜色 (样式是设置 填充轮廓,也就是说有一些默认的填充轮廓组合) 还有里面的文字的大小,字体,颜色 2.如何画水平…

深度解析2023世界人工智能大会

1、2020年世界人工智能大会,此次大会的主要目的是什么? 我们现在的社会是一个科技快速发展的国家,因为我们已经不会再为了温饱的问题而操心,而是越来越追求自己的精神享受。然而科技在这一方面也是发展非常迅速的,我们…

请求头 x-ca-key、x-ca-nonce、x-ca-signature 加密分析第一篇

本篇博客为大家开始着手分析 请求头 x-ca-key、x-ca-nonce、x-ca-signature 加密相关内容 目标站点在本文进行隐藏,如有需要,可直接联系 一般你能搜到这篇博客,代表你采集的站点使用类似加密。 请求头解密目录x-ca-key、x-ca-nonce、x-ca-sig…

[acwing周赛复盘] 第 88 场周赛20230128

[acwing周赛复盘] 第 88 场周赛20230128 一、本周周赛总结二、 4800. 下一个1. 题目描述2. 思路分析3. 代码实现三、4801. 强连通图1. 题目描述2. 思路分析3. 代码实现四、4802. 金明的假期1. 题目描述2. 思路分析3. 代码实现六、参考链接一、本周周赛总结 在T2卡了半天&#…