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

【操作系统】——调度算法

🌹😊🌹博客主页:【Hello_shuoCSDN博客】

✨操作系统详见  【操作系统专项】

✨C语言知识详见:【C语言专项】

目录

先来先服务(FCFS, First Come First Serve)

短作业优先(SJF, Shortest Job First )

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

时间片轮转(RR, Round-Robin)

优先级调度算法

多级反馈队列调度算法


先来先服务(FCFS, First Come First Serve)

算法思想——主要从“公平”的角度考虑(类似于我们生活中排队买东西的例子)
算法规则——按照作业/进程到达的先后顺序进行服务
用于作业/进程调度——用于作业调度时,考虑的是哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列
是否可抢占?——非抢占式的算法
优缺点——优点:公平、算法实现简单
                  缺点:排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验不好。即FCFS算法对长作业有利,对短作业不利(Eg:排队买奶茶..)
是否会导致饥饿(某进程/作业长期得不到服务)——不会

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用先来先服务调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。

先来先服务调度算法:按照到达的先后顺序调度,事实上就是等待时间越久的越优先得到服务。
因此,调度顺序为:P1-> P2-> P3-> P4

周转时间=完成时间-到达时间      P1=7-0=7; P2=11-2=9; P3=12-4=8; P4=16-5=11
带权周转时间=周转时间/运行时间   P1=7/7=1; P2=9/4=2.25; P3=8/1=8; P4=11/4=2.75
等待时间=周转时间-运行时间   P1=7-7=0;P2=9-4=5;P3=8-1=7;P4=11-4=7
平均周转时间  = (7+9+8+11)/4=8.75
平均带权周转时间  = (1+2.25+8+2.75)/4=3.5
平均等待时间  = (0+5+7+7)/4=4.75
注意:本例中的进程都是纯计算型的进程,一个进程到达后要么在等待,要么在运行。如果是又有计算、又有1/O操作的进程,其等待时间就是周转时间-运行时间-1/O操作的时间.

短作业优先(SJF, Shortest Job First )

算法思想——追求最少的平均等待时间,最少的平均周转时间、最少的平均平均带权周转时间。
算法规则——最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短)。
用于作业/进程调度——即可用于作业调度,也可用于进程调度。用于进程调度时称力“短进程优先(SPF, Shortest Process First)算法”。
是否可抢占?——SJF和SPF是非抢占式的算法。但是也有抢占式的版本一一最短剩余时间优先算法(SRTN, Shortest Remaining Time Next)
优缺点——优点:“最短的”平均等待时间、平均周转时间。

                  缺点:不公平。对短作业有利,对长作业不利。可能产生饥饿现象。另外,作业/进程的运行时间是由用户提供的,并不一定真实,不一定能做到真正的短作业优先。
是否会导致饥饿——会。如果源源不断地有短作业/进程到来,可能使长作业/进程长时间得不到服务,产生“饥饿”现象。如果一直得不到服务,则称为“饿死”。

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用抢占式短作业优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。

抢占式 : 抢占式的短作业优先算法又称“最短剩余时间优先算法(SRTN)”。

最短剩余时间优先算法:每当有进程加入就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度

周转时间=完成时间-到达时间   P1=16-0=16: P2=7-2=5: P3=5-4=1;P4=11-5=6
带权周转时间=周转时间/运行时间   P1=16/7=2.28; P2=5/4=1.25; P3=1/1=1; P4=6/4=1.5
等待时间=周转时间-运行时间  P1=16-7=9; P2=5-4=1; P3=1-1=0; P4=6-4=2

平均周转时间=(16+5+1+6)/4=7
平均带权周转时间 =(2.28+1.25+1+1.5)/4=1.50
平均等待时间=(9+1+0+2)/4=3

对比非抢占式的短作业优先算法,显然抢占式的这几个指标又要更低!

思考:(对FCFS和SJF两种算法的思考
FCFS 算法是在每次调度的时候选择一个等待时间最长的作业(进程)为其服务。但是没有考虑到作业的运行时间,因此导致了对短作业不友好的问题。
SJF 算法是选择一个执行时间最短的作业为其服务。但是又完全不考虑各个作业的等待时间,因此导致了对长作业不友好的问题,甚至还会造成饥饿问题。
能不能设计一个算法,即考虑到各个作业的等待时间,也能兼顾运行时间呢?

于是就提出了高响应比优先算法

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

算法思想——要综合考虑作业/进程的等待时间和要求服务的时间
算法规则——在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务
用于作业/进程调度——即可用于作业调度,也可用于进程调度

是否可抢占?——非抢占式的算法。因此只有当前运行的作业/进程主动放弃处理机时,才需要调度,才需要计算响应比。

优缺点——综合考虑了等待时间和运行时间(要求服务时间)
等待时间相同时,要求服务时间短的优先(SJF的优点)
要求服务时间相同时,等待时间长的优先(FCFS 的优点)
对于长作业来说,随着等待时间越来越久,其响应比也会越来越大,从而避免了长作业饥饿的问题
响应比=(等待时间+要求服务时间)/ 要求服务时间
(响应比≥1)

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用高响应比优先调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。

高响应比优先算法:非抢占式的调度算法,只有当前运行的进程主动放弃CPU时(正常/异常完成,或主动阻塞),才需要进行调度,调度时计算所有就绪进程的响应比,选响应比最高的进程上处理机。

对比:

注:这几种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统整体性能的指标,但是不关心“响应时间”,也并不区分任务的紧急程度,因此对于用户来说,交互性很糟糕。因此这三种算法一般适合用于早期的批处理系统,当然,FCFS算法也常结合其他的算法使用,在现在也扮演着很重要的角色。

时间片轮转(RR, Round-Robin)

算法思想——公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应
算法规则——按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。
用于作业/进程调度——用于进程调度(只有作业放入内存建立了相应的进程后,才能被分配处理机时间片)
是否可抢占?——若进程未能在时间片内运行完,将被强行剥夺处理机使用权,因此时间片轮转调度算法属于抢占式的算法。由时钟装置发出时钟中断来通知CPU时间片已到。

优缺点——优点:公平;响应快,适用于分时操作系统;
                  缺点:由于高频率的进程切换,因此有一定开销;不区分任务的紧急程度。
是否会导致饥饿——不会

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用时间片轮转 (常用于分时操作系统,更注重“响应时间”,因而此处不计算周转时)调度算法,分析时间片大小分别是2、5时的进程运行情况。

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

时间片大小为2(注:以下括号内表示当前时刻就绪队列中的进程、进程的剩余运行时间)
0时刻(P1(5)):0时刻只有P1到达就绪队列,让P1上处理机运行一个时间片
2时刻(P2(4)-> P1(3)):2时刻P2到达就绪队列,P1运行完一个时间片,被剥夺处理机,重新放到队尾。
此时P2排在队头,因此让P2上处理机。(注意:2时刻,P1下处理机,同一时刻新进程P2到达.
4时刻(P1(3)→P3(1)→ P2(2)):4时刻,P3到达,先插到就绪队尾,紧接着,P2下处理机也插到队尾。
5时刻(P3(1) P2(2) P4(6)):5时刻,P4到达插到就绪队尾(注意:由于P1的时间片还没用完,因此暂时不调度。另外,此时P1处于运行态,并不在就绪队列中)

6时刻 (P3(1)-> P2(2)-> P4(6)-> P1(1)):6时刻,P1时间片用完,下处理机,重新放回就绪队尾,发生调度
7时刻(P2(2)-> P4(6)-> P1(1)):虽然P3的时间片没用完,但是由于P3只需运行1个单位的时间,运行完了会主动放弃处理机,因此也会发生调度。队头进程P2上处理机。
9时刻(P4(6)-> P1(1)):进程P2时间片用完,并刚好运行完,发生调度,P4上处理机
11时刻(P1(1)-> P4(4)):P4时间片用完,重新回到就绪队列。P1上处理机

12时刻(P4(4)):P1运行完,主动放弃处理机,此时就绪队列中只剩P4,P4上处理机
14时刻():就绪队列为空,因此让P4接着运行一个时间片。
16时刻:所有进程运行结束

时间片大小5
0时刻 (P1(5)):只有P1到达,P1上处理机。
2时刻(P2(4)):P2到达,但P1时间片尚未结束,因此暂不调度。
4时刻(P2(4)-> P3(1)):P3到达,但P1时间片尚未结束,因此暂不调度
5时刻(P2(4)→P3(1)→P4(6)):P4到达,同时P1运行结束。发生调度,P2上处理机。
9时刻(P3(1)-> P4(6)):P2运行结束,虽然时间片没用完,但是会主动放弃处理机。发生调度。
10时刻(P4(6)):P3运行结束,虽然时间片没用完,但是会主动放弃处理机。发生调度。
15时刻():P4时间片用完,但就绪队列为空,因此会让P4继续执行一个时间片。
16时刻():P4运行完,主动放弃处理机。所有进程运行完

若按照先来先服务调度算法...

如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大
另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小

优先级调度算法

算法思想——随着计算机的发展,特别是实时操作系统的出现,越来越多的应用场景需要根据任务的紧急程度来决定处理顺序

算法规则——调度时选择优先级最高的作业/进程
用于作业/进程调度——既可用于作业调度,也可用于进程调度。甚至,还会用于在之后会学习的 I/O 调度中
是否可抢占?——抢占式、非抢占式都有。做题时的区别在于:非抢占式只需在进程主动放弃处理机时进行调度即可,而抢占式还需在就绪队列变化时,检查是否会发生抢占。

优缺点——优点:用优先级区分紧急程度、重要程度,适用于实时操作系统。可灵活地调整对各种作业/进程的偏好程度。
缺点:若源源不断地有高优先级进程到来,则可能导致饥饿

是否会导致饥饿——

例题:各进程到达就绪队列的时间、需要的运行时间、进程优先数如下表所示。使用非抢占式优先级调度算法,分析进程运行情况。(注:优先数越大,优先级越高

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

注:以下括号内表示当前处于就绪队列的进程
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完成,所有进程都结束

例题:各进程到达就绪队列的时间、需要的运行时间、进程优先数如下表所示。使用抢占式的优先级调度算法,分析进程运行情况。(注:优先数越大,优先级越高

抢占式的优先级调度算法:每次调度时选择当前己到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。
另外,当就绪队列发生改变时也需要检查是会发生抢占

注:以下括号内表示当前处于就绪队列的进程
0时刻(P1):只有P1到达,P1上处理机。
2时刻(P2):P2到达就绪队列,优先级比P1更高,发生抢占。P1回到就绪队列,P2上处理机。
4时刻(P1、P3):P3到达,优先级比P2更高,P2回到就绪队列,P3抢占处理机。
5时刻(P1、P2、P4):P3完成,主动释放处理机,同时,P4也到达,由于P2比P4更先进入就绪队列,因此选择P2上处理机
7时刻(P1、P4):P2完成,就绪队列只剩P1、P4,P4上处理机。
11时刻(P1):P4完成,P1上处理机

补充:
就绪队列未必只有一个,可以按照不同优先级来组织。另外,也可以把优先级高的进程排在更靠近队头的位置
根据优先级是否可以动态改变,可将优先级分为静态优先级动态优先级两种。
静态优先级:创建进程时确定,之后一直不变。
动态优先级:创建进程时有一个初始值,之后会根据情况动态地调整优先级。

通常:
系统进程优先级 高于 用户进程
前台进程优先级 高于 后台进程
操作系统更偏好 I/O 型进程(或称I/O 繁忙型进程)

(I/O 繁忙型进程)——I/O设备和CPU可以并行工作。如果优先让I/O繁忙型进程优先运行的话,则越有可能让I/O设备尽早地投入工作,则资源利用率、系统吞吐量都会得到提升。
注:与I/O 型进程相对的是计算型进程(或称 CPU繁忙型进程)


思考…如果采用的是动态优先级,什么时候应该调整?
可以从追求公平、提升资源利用率等角度考虑,如果某进程在就绪队列中等待了很长时间,则可以适当提升其优先级如果某进程占用处理机运行了很长时间,则可适当降低其优先级.

多级反馈队列调度算法

算法思想——对其他调度算法的折中权衡

算法规则——1. 设置多级就绪队列,各级队列优先级从高到低,时间片从小到大 

                      2.新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时己经是在最下级的队列,则重新放回该队列队尾
                     3. 只有第k级队列为空时,才会为k+1级队头的进程分配时间片用于进程调度
用于作业/进程调度——抢占式的算法。在k级队列的进程运行过程中,若更上级的队列(1~K-1级)中进入了一个新进程,则由于新进程处于优先级更高的队列中,因此新进程会抢占处理机,原来运行的进程放回k级队列队尾。
优缺点——对各类型进程相对公平 (FCFS的优点);每个新到达的进程都可以很快就得到响应(RR的优点);短进程只用较少的时间就可完成(SPF的优点);不必实现估计进程的运行时间(避免用户作假);可灵活地调整对各类进程的偏好程度,比如CPU密集型进程、1/0密集型进程(拓展:可以将因1/0而阻塞的进程重新放回原队列,这样1/O型进程就可以保持较高优先级)
是否会导致饥饿——

注:比起早期的批处理操作系统来说,由于计算规造价大幅降低,因此之后出现的交互式操作系统(包括分时操作系统、实时操作系统等)更注重系统的响应时间、公平性、平衡性等指标。而这几种算法恰好也能较好地满足交互式系统的需求。因此这三种算法适合用于交互式系统。(比如UNIX使用的就是多级反馈队列调度算法)

系统中按进程类型设置多个队列,进程创建成功后插入某个队列。

队列之间可采取固定优先级,或时间片划分固定优先级:高优先级空时低优先级进程才能被调度时间片划分:如三个队列分配时间50%、40%、10%.

各队列可采用不同的调度策略,如:系统进程队列采用优先级调度交互式队列采用RR,批处理队列采用FCFS。

相关文章:

【操作系统】——调度算法

🌹😊🌹博客主页:【Hello_shuoCSDN博客】 ✨操作系统详见 【操作系统专项】 ✨C语言知识详见:【C语言专项】 目录 先来先服务(FCFS, First Come First Serve) 短作业优先(SJF, Shortest Job Fi…...

MySQL LOAD DATA INFILE导入数据报错

1.导入命令 LOAD DATA INFILE "merge.csv" INTO TABLE 报名数据 FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED BY \n IGNORE 1 LINES; 2.表结构 CREATE TABLE IF NOT EXISTS 报名数据 ( pid VARCHAR(100) NOT NULL, 查询日期 VARCHAR(25) NO…...

AI 写作(五)核心技术之文本摘要:分类与应用(5/10)

一、文本摘要:AI 写作的关键技术 文本摘要在 AI 写作中扮演着至关重要的角色。在当今信息爆炸的时代,人们每天都被大量的文本信息所包围,如何快速有效地获取关键信息成为了一个迫切的需求。文本摘要技术正是为了解决这个问题而诞生的&#x…...

CTFL(二)贯穿软件开发生存周期中的测试

贯穿软件开发生存周期中的测试 验收测试(acceptance testing),黑盒测试(black-box testing),组件集成测试(component integration testing),组件测试(compone…...

PMIC FS8405

FS8495 具有多个SMPS和LDO的故障安全系统基础芯片。   FS8X 大多数参数都是通过OTP寄存器设置的。 概述 FS85/FS84设备系列是按照ASIL D流程开发的,FS84具有ASIL B能力,而FS85具有ASIL D能力。所有的设备选项都是引脚到引脚和软件兼容的。   FS85/FS84是一种汽车功能安全…...

matlab建模入门指导

本文以水池中鸡蛋温度随时间的变化为切入点,对其进行数学建模并进行MATLAB求解,以更为通俗地进行数学建模问题入门指导。 一、问题简述 一个煮熟的鸡蛋有98摄氏度,将它放在18摄氏度的水池中,五分钟后鸡蛋的温度为38摄氏度&#x…...

微搭低代码入门03函数

目录 1 函数的定义与调用2 参数与返回值3 默认参数4 将功能拆分成小函数5 函数表达式6 箭头函数7 低代码中的函数总结 在用低代码开发软件的时候,除了我们上两节介绍的变量、条件语句外,还有一个重要的概念叫函数。函数是执行特定功能的代码片段&#xf…...

零基础Java第十六期:抽象类接口(二)

目录 一、接口(补) 1.1. 数组对象排序 1.2. 克隆接口 1.3. 浅拷贝和深拷贝 1.4. 抽象类和接口的区别 一、接口(补) 1.1. 数组对象排序 我们在讲一维数组的时候,使用到冒泡排序来对数组里的元素进行从小到大或从大…...

【css】html里面的图片宽度设为百分比,高度要与宽度一样

场景&#xff1a;展示图片列表的时候&#xff0c;原始图片宽高不一致。 外层div的宽度自适应&#xff0c;图片宽度不能固定数值&#xff0c;只能设置百分比。图片高度也不能设置固定数值。 如何让图片的高度与图片的宽度一样呢&#xff1f; html代码 &#xff1a; <div cl…...

前端三大组件之CSS,三大选择器,游戏网页仿写

回顾 full stack全栈 Web前端三大组件 结构(html) 样式(css) 动作/交互(js) --- 》 框架vue&#xff0c;安哥拉 div 常用的标签 扩展标签 列表 ul/ol order——有序号 unordered——没序号的黑点 <!DOCTYPE html> <html><head><meta charset"…...

sqlsever 分布式存储查询

当数据存储在不同的服务器上的时候怎么取出来进行正常管连呢?比如你有 A 和B 两个服务器 里面存有两个表 分别是 A_TABLE、B_TABLE 其中 他们的关联关系是 ID 互相关联 1.创建链接服务器如果在B数据库要访问A数据库 那么 就在B数据库创建 -- 创建链接服务器 EXEC sp_addlink…...

deeponet(nature原文部分重点提取)

论文链接&#xff1a;Learning nonlinear operators via DeepONet based on the universal approximation theorem of operators | Nature Machine Intelligence 原文部分重点提取 DeepONets 会产生小的泛化误差 隐式类型算子还可以描述我们对其形式没有任何数学知识的系统 De…...

LeetCode【0036】有效的数独

本文目录 1 中文题目2 求解方法&#xff1a;python内置函数set2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 请根据以下规则判断一个 9 x 9 的数独是否有效。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线…...

Typecho登陆与评论添加Geetest极验证,支持PJAX主题(如Handsome)

Typecho登陆与评论添加Geetest极验证&#xff0c;支持PJAX主题&#xff08;如Handsome&#xff09; 起因 最近垃圾评论比较多&#xff0c;为了防止一些机器人&#xff0c;我给博客添加了一些评论过滤机制&#xff0c;并为评论添加了验证码。 原本使用的插件是noisky/typecho…...

前端入门一之ES6--面向对象、够着函数和原型、继承、ES5新增方法、函数进阶、严格模式、高阶函数、闭包

前言 JS是前端三件套之一&#xff0c;也是核心&#xff0c;本人将会更新JS基础、JS对象、DOM、BOM、ES6等知识点&#xff0c;这篇是ES6;这篇文章是本人大一学习前端的笔记&#xff1b;欢迎点赞 收藏 关注&#xff0c;本人将会持续更新。 文章目录 JS高级 ES61、面向对象1.1…...

脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾

这一轮硬件创新由 AI 引爆&#xff0c;或许最大受益者仍是 AI&#xff0c;因为只有硬件才能为 AI 直接获取最真实世界的数据。 在人工智能与硬件融合的新时代&#xff0c;实时互动技术正迎来前所未有的创新浪潮。从嵌入式系统到混合现实&#xff0c;从空间视频到脑机接口&…...

RoseTTAFold MSA_emb类解读

MSA_emb 类的作用是对多序列对齐(MSA)数据进行嵌入编码,同时添加位置编码和查询编码(调用PositionalEncoding 和 QueryEncoding)以便为序列特征建模类。 源代码: class MSA_emb(nn.Module):def __init__(self, d_model=64, d_msa=21, p_drop=0.1, max_len=5000):super(…...

2411C++,C++26反射示例

参考 namespace __impl {template<auto... vals>struct replicator_type {template<typename F>constexpr void operator>>(F body) const {(body.template operator()<vals>(), ...);}};template<auto... vals>replicator_type<vals...>…...

Ubuntu上搭建Flink Standalone集群

Ubuntu上搭建Flink Standalone集群 本文部分内容转自如下链接。 环境说明 ubuntu 22.06 先执行apt-get update更新环境 第1步 安装JDK 通过apt自动拉取 openjdk8 apt-get install openjdk-8-jdk执行java -version&#xff0c;如果能显示Java版本号&#xff0c;表示安装并…...

C语言 精选真题2

题目要求&#xff1a;将形参s所指向的字符串转换为整数并且返回 知识点&#xff1a; 将字符1转化为整数1 int fun(char *s) {int flag1,n0; if(*s-) //先根据第一个符号来判断是正负&#xff1b;然后读取第二位{flag-1;s; }else if(*s){s;}while(*s>0&&…...

DDrawCompat:老游戏兼容性修复与性能优化终极解决方案

DDrawCompat&#xff1a;老游戏兼容性修复与性能优化终极解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDrawC…...

GraphSAGE实战:用PyTorch Geometric实现工业级节点分类(含邻居采样优化技巧)

GraphSAGE工业级实战&#xff1a;PyTorch Geometric实现与亿级节点优化指南 当电商平台的日活用户突破千万量级时&#xff0c;传统的用户行为预测模型开始显露出明显的局限性。静态的特征工程无法捕捉用户间复杂的交互关系&#xff0c;而基于全图计算的GNN方法又难以应对实时更…...

Netty实战:从零搭建一个高性能聊天室(附完整源码)

Netty实战&#xff1a;从零构建高性能聊天室的架构设计与实现 引言&#xff1a;为什么选择Netty构建实时通讯系统&#xff1f; 当我们需要开发一个支持高并发的实时聊天应用时&#xff0c;传统IO模型往往会遇到性能瓶颈。我曾参与过一个在线教育平台的即时通讯模块开发&#xf…...

忍者像素绘卷参数详解:CFG/Steps/画幅三要素调优指南

忍者像素绘卷参数详解&#xff1a;CFG/Steps/画幅三要素调优指南 1. 认识忍者像素绘卷 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;它将忍者的热血意志与16-Bit复古游戏美学完美融合。这款工具采用明亮的"云端"视觉设计&#xff0c;…...

租车宝 token、payload算法分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 部分python代码 url "/queryOr…...

大厂Agent开发工程师亲授!这份核心技术学习路线助你轻松拿下高薪Offer!

结合个人实际的工作内容和招聘市场对于Agent开发的能力要求&#xff08;阅读汇总了大量大厂的Agent开发招聘面经&#xff09;&#xff0c;我总结了一份核心技术学习路线。 这个学习路线由浅到深&#xff0c;基本覆盖了现在大厂对于Agent开发的技术要求&#xff0c;技术栈完全可…...

MiniCPM-V-2_6 Ubuntu 20.04一键部署教程:从安装到运行

MiniCPM-V-2_6 Ubuntu 20.04一键部署教程&#xff1a;从安装到运行 想试试那个能看懂图片还能跟你聊天的多模态大模型MiniCPM-V-2_6吗&#xff1f;很多朋友在第一步——部署上就被卡住了&#xff0c;不是环境依赖搞不定&#xff0c;就是权限问题报错&#xff0c;折腾半天模型还…...

基于Spark+Hadoop+Hive大数据分析的城市街道路灯智能化点亮时间优化研究

前言随着城市化进程的加速&#xff0c;城市街道路灯系统在保障交通安全、提升城市形象与居民生活质量等方面发挥着关键作用。本研究聚焦于城市街道路灯智能化点亮时间的优化&#xff0c;依托大数据分析技术深入挖掘路灯照明需求与环境因素之间的复杂关联。 研究整合多源大数据&…...

基于Spark+Hadoop+Hive大数据技术的产品评价分析系统设计与实现

前言本研究聚焦于设计与实现一种基于大数据技术的产品评价分析系统&#xff0c;通过构建多层架构体系与融合多元技术方法&#xff0c;为企业决策提供智能化支撑。 研究采用分层架构设计理念&#xff0c;将系统划分为数据采集、存储、处理、分析与展示五大模块。数据采集层综合运…...

SGMICRO圣邦微 SGM8740YC5G/TR SC70-5 比较器

特性 快速&#xff0c;45纳秒传播延迟(10毫伏过驱动)低功耗:在Vs3V时为155pA(典型值) 宽电源电压范围:2.7V至5.5V优化适用于3V和5V应用轨到轨输入电压范围低偏置电压:0.9mV(典型值)内部迟滞以实现干净开关 输出摆幅:在4mA输出电流下&#xff0c;从轨距内.200mV范围内 与CMOS/TT…...