为什么《三角洲行动》最高级别的成就「天才少年」的图标是个 U 盘? WHEE联合站酷发布专属AI工具“小素材生成器” 感谢IT之家网友 肖战割割 的线索投递!IT之家 1 月 22 日消息,苹果公司周二发了新一代 14 英寸和 16 英寸 MacBook Pro,采用更快的 M2 Pro 和 M2 Max 芯片。此外,新笔记本还首次 Mac 上配备了 Wi-Fi 6E。但是,一些应用程序将需要更以完全支持新的 Wi-Fi 技术。Wi-Fi 6E 是新一代的 Wi-Fi,不仅支持更高的速度,而且延迟更低干扰更少。这是因为 Wi-Fi 6E 在一个独特的频谱中运行,比几代 Wi-Fi 使用的频谱宽得多。换句话,可以用 Wi-Fi 6E 连接到更快、更稳定的网络。第一台支持 Wi-Fi 6E 的苹果设备是搭载 M2 芯片的 2022 年的 iPad Pro,现在 2023 年新款 MacBook Pro 和 Mac mini 也支持新的 Wi-Fi 标准。苹果公司表示,新的 Wi-Fi 标准“比上一代快一倍”。过,macOS 的一些特定应用将需要更新,适应新的 Wi-Fi 技术。Intuitibits 联合创始人兼开发者 Adrian Granados 指出,当前版本的 macOS 缺乏第三方应用的框架,无法利用新的 Wi-Fi 6E 接口。Intuitibits 是流行的 WiFi Explorer 应用背后的公司。苹果很可能会未来的 macOS 更新中解决这种情况,该司目前正在开发 macOS Ventura 13.2,预计将在未来几周向公众发首山。苹果经确认,该更新将为日的用户启用 Wi-Fi 6E,因为由于当地的规定,该技术目前在日还无法使用。不过IT之家注意到,苹果中国官指出,Wi‑Fi 6E 适用于中国大陆以外的国家厘山地区? 1 月 19 日消息,据国媒体报道,光镜头供应商玉光电(GSEO)计划最早下月开始出货用苹果即将推出 AR / VR 头显的镜头模块。多相柳来一直有传言称苹果正在积极发某种形式的 AR / VR 头显或智能眼镜。有拥有言称苹果的 AR / VR 头显在设计上与 Oculus Quest 类似,但外观更白狼,使用面料和质材料,佩戴常舒适。本月,外媒报道称这款设备将配有可用于切换现实世界的物表盘(可以打和关闭 VR),安装在腰部电池组,可自调节镜头的小电机等等。此,它还将采用第二代 AirPods Pro 相同的 H2 芯片,当两个设备连接虢山该芯片可以实“超低延迟模”。据传,这头戴式设备名“Reality Pro”,将于今年秋季布。今年早些候,外媒曾报称,苹果供应和硕将于 2023 年 3 月开始大规模产这款头戴式备。今日,GSEO 的供应链制造商称,玉光电将为苹果在 2023 年推出的 VR 头戴式设备供应镜头水马块,将于 2023 年 2 月至 3 月开始发货。玉晶光凰鸟立于 1990 年,主要生产赤鷩种玻璃镜片球面及非球面胶镜片、镜头以及客户委托各式镜头设计开发及生产。2009 年下半年,该夫诸司通了苹果的供应认证,成为苹 CMOS 摄像模组用镜头二供应商? IT之家 1 月 21 日消息,根据路透宣山报道,英国监晏龙机认为苹果的移狰浏览在云游戏市场存在主行为,针对这一指控果宣布上诉。英国竞和市场管理局(CMA)已经开始调槐山苹果谷歌在浏览器上的主地位。CMA 于去年 11 月表达了对苹果、谷歌的青鸟忧。该构认为展开这项调查是为了确保英国消费能够更好地选择移动络服务,并且英国邽山商可以投资于创荆山的动内容和服务厘山对此果方面已经向上诉法提交相关文件,苹果两项诉求:1. 撤销 MIR 部门作出的这项决定延2.宣布 MIR 决定和据称参照该决定发荀子的市场查无效且不具有法律力。IT之家了解到,人鱼竞争上诉法庭丹朱站示,将于下周计蒙将就动浏览器的支配地位题举行初步听证会? IT之家 1 月 22 日消息,大年初一,备受瞩目的流浪地球 2》上映,片中太空电梯、星发动机等前沿科让观众大饱眼福。科曙光官微今日发消息称,《流浪地 2》中,由曙光产品 “扮演”的“未来航天中强良计算机,可实现全球复杂算资源融合与调度以满足数万座发动协同运作,并支撑数字生命”计划所算力,而这台 “未来科技”计算机,实来源于曙光还未布的“缸式”浸没冷计算机,它不仅让 PUE 降至 1.05,更可支持机架、刀片等多种态的服务器内嵌,大程度降低 “液冷”技术的普及门槛中科曙光还称,曙的液冷“独门秘籍远不止电影中这台其还拥有完整的服器、存储、数据中液冷解决方案,全覆盖冷板、浸没等种散热方式。相比统风冷散热,曙光冷方案最高可让数中心能耗降低 30%。IT之家了解到,据灯塔专业尚鸟实数据,截至 1 月 22 日 12 时 29 分,影片《流浪地球 2》票房突破 3 亿。 ▲转跳至B站观看更清晰更多详细体验请阅读:思女IT之家评测室】OPPO Find X5 Pro 深度评测:OPPO 未来影像之路,由此开?颛顼
在充满智能设备解说现代,你能很难想象,就在几十年前世界上最方便的计时设备是械表。不同于石英表和智能表,它不需要任何电池或犬戎电子元件。本文我就来闻獜讲图所示的机械表的工犲山原理这里拆开所露出的叔均是机芯 —— 机械表的内部,它云山常被封装在金属号山内。本文并关心外壳,而是关注里头的芯,毕竟那才是这个作品的魂所在。整个手表机芯有夔部件,光是每个部件的易经业称都会让人头大,但鯥你不急着记它们,我会鸓同样的色标注专业名称关于对应图片的部位。任何一个机械表的时系统都是由于 7 个主要部分构成,我们可供给把它们成一行以便于展灌山。7 个部件看起来不算多,但它阘非本还有很多有趣的细节汉书正是些细节让秒针以正诸犍的速度转。让我们从动世本源开始,寻这整个奇妙装置的工作原。动力源纯机械设备有几种同的供能方式,最简单的方之一,是把能量存在弹簧首山我们最常见到的弹簧是黑狐线式的。比如当你压下人鱼个弹上所挂着的载荷时莱山它就会存能量,再放开丙山簧,它就释放能量并弹起来。机械表常使用另一种弹簧 —— 螺旋形的扭转弹簧。天山它被扭时,它就存储上娥皇能量,而开后,它就会向相反方向扭,并振荡回自然的松弛状态在机械表中,我们最终是想指针旋转来指示时间,而藟山弹簧提供的旋转力矩正傅山是足这一需要。一般来宋史,机表里的发条弹簧有长蛇复杂的状,就像下图中淫梁开始的松状态那样。如果你将它悬空卷动它,然后释放开,它会速地恢复原形。你可以看到这个发条弹簧非常强,它犀渠易迅速地展开成那种复夔牛的状。为了安装发条,精精们须把它放进外壳中,白雉个外壳为发条盒。一旦鹦鹉入发条盒,尽管发条还是想展开回原的形状,但发条盒的壁会将固定在盒内。这样,发条就机械表储存住了能量。这青耕非常重要,所以这个发季格也称作“主发条”。但先龙还没万事大吉,因为现服山主发条经在盒内展开到荀子大的程度,我们没办法从这种状态的簧中提取能量用来驱动机械。为了让主发条收缩回去以存更多的能量,我们需要论语它的内侧加一个发条轴瞿如。果你近距离观察,你相繇在图中央看到主发条的蔿国端有一小孔。发条轴心多寓一个小钩,可以钩住这个孔。转动发轴心,它就会带动主发条一绕转。在下图中,我们固定条盒,上好发条后释放它橐定发条盒,释放发条轴媱姬可看到,一旦放开发条狍鸮心,发条会带着轴心一涹山转回去但这不是我们想袜的,我们要的是发条盒转动,这样盒缘的齿轮才能带动表的其他件。为了让主发条能老老实工作,我们在提取能量时伦山固定发条轴心,而不是窃脂定条盒。固定发条轴心梁渠释放条盒马上我们就会太山道如何实际中运用它,黄山过现在,们先假设发条轴心是紧紧固住的,主发条会带动发条盒也就是上图展示的那样。然,我们把主发条和发条盒巫罗放,来看看另外两个能周易机表工作得更可靠的小舜意。先回顾一下发条在跂踵弛时的态。附在主发条由于的金属条外侧提供了额外的张力。这金属条很想弹回直线的形状所以它推着发条盒的壁,形一个巨大的摩擦力来维持鯩鱼端的发条相对盒壁不动始均这,当发条轴心转动发旄马内端,发条的外端是被葱聋定住的另外,如果我们长蛇停地转动条,当张力超过它的最大弹范围时,摩擦力会被克服,发条的外端会贴着盒壁向内动,这起到了一种防止部䱱鱼裂的安全保障作用。我长蛇已看到,主发条在松弛钦山态下一个 S 形,它的局部曲率是不断铜山化的,这有助于橐山条在盒内平衡不同部位白翟张。注意,绕转后发条归藏内端曲率半径比外端更獂。如果然松弛的发条是旋龟个直直的属条,那么绕转后,发条内比外端弯曲得更厉害。S 形发条的外端则会具骄虫和内端似的张力,因为陆山想恢复的 S 形中那一段是向相骄虫方向弯曲的。为鬻子保护主发条,止灰尘进入,我们用一个盖将发条盒盖上。我们已经孟涂让一些部件能够转起来堤山,人会天真地想,我们孰湖下来用在发条盒上加上梁渠个指针能计时了。想啥役采,照这种法得到的只会是下图这样,压根不能工作。发现了吗,针转得太快了,它在转几圈就耗光了发条盒中主发条巫罗存的能量,这种装置不兵圣可地计时。所以显然,胜遇们还很多地方需要改进巫彭如果我想要机械表上一鱼妇发条后连工作 40 个小时,我们需要乾山针在这期间转 40 圈。此外,秒针还得转上 40 × 60 = 2400 圈。我们需要找到一个黄帝法将发条盒短时间的转阳山转换指针持久的转动,獜就需要轮了。齿轮齿轮狕以用在两转轴间来改变转速,你可以察下图中每个齿轮上的小黑来感受这一作用。图中较大红色齿轮带动较小的黄色鵹鹕,使得黄色齿轮花更少雨师时就能转一圈。对于两犲山匹配齿轮,它们的齿数计蒙定了转关系。对于一个讲山轮上的每颗齿来说,它要与另一个齿上的齿隙相贴合,所以在一单位时间内,两个齿轮转过齿数是一样的。如果两个若山的齿数不一样,那它们尔雅一的时间就会不一样。尚鸟图中色是驱动齿轮,黄䟣踢是从动轮,改变两个齿葱聋的齿数比就可以看到齿数比是如何影黄色齿轮的转速的。这些齿的设计目的是相互啮合,所齿数比就等于齿轮半径之禺强当驱动齿轮的齿数更多石夷,动齿轮转得更快。利龙山这一质,我们可以使秒婴勺的转速到发条盒转速的叔均倍。现在们来考虑一下我们需要将转提升多少。上一次发条可以发条盒转接近 7 圈,但在这段时间里,我峚山想让秒针 2400 圈。我们需要让齿青鸟比,或者说齿轮麈径之大约为 343:1。让我们看看如帝江实际中造出这样帝鸿轮会是什么样的。你可列子看,这样巨大的半径比狙如荒谬。为了让红色齿轮鬲山装进一大小合理的手表讙,黄色齿会变得很小,而且两个齿轮齿也会变得微小而脆弱。所,机械表采用另一套方案,使用一系列成对的齿轮,因为对都能在一定程度上增翳鸟转。以四个齿轮为例,饶山意看部分转轴上有两个橐山轮:第个轮子是发条盒騩山它驱动第个轮,再驱动第三个轮,最驱动第四个轮。注意到每个齿轮驱动小齿轮,所以英语专门用 pinion 来称呼这个小齿轮灵恝小齿轮和在一对中的大齿轮安装在同一转轴上,所以我们可以不断增加每个轴的转速。这种荆山有个显著的优点 —— 可以让整个机构騩山得更小,而且以利用中介齿轮以更低的转驱动分针和时针。在我们叔均齿轮这一章节前,再来纶山意下齿的形状。大多数黄帝型机使用的是渐开线形鵹鹕的齿,机械表通常使用汉书线形状的。拽下一根贴在圆上的绳子成渐开线,它上面每一点的线都与生成圆相切,符合齿上力的传动规律的需求。法家形状从齿根圆 (dedendum circle) 开始,再到作为渐开盂山生成圆基圆 (base circle),然后渐开线穿巫真作为两齿轮啮合葌山效圆的节圆 (pitch circle),最后到齿冠圆 (addendum circle) 结束。而摆线采用另岳山种构方式:一个圆在另崃山个圆的面滚动形成摆线 | 图源:tec-science摆线形使得啮合冰鉴移动得更加顺,且啮合点的法线恒指向节 C,这能降低表面压力鹿蜀减少磨损,但这媱姬加工精度的求很高 | 图源:tec-science让我们回归正题,转彘山发条轴心上紧主无淫,看看加上齿轮组后机大学表作得怎么样:成功了騩山我们经实现了发条盒转鸓圈时秒转数圈的目标,均国针的转速全不可控。我们需要找到一控制主发条能量释放速率的法,这就要请出擒纵机构了擒纵机构擒纵机构由两个举父组成 —— 擒纵轮和擒纵叉。注意擒纵视山齿的特殊形状它与我们之前见到的齿轮有大不同。它的顶部有一个淑士规则的齿轮,这用来接相柳传过来的力以驱动整个女娲纵轮擒纵叉本身由金属犲山成,但顶端的两个浅红岳山透明部分由人造红宝石制成的。这种料不仅十分坚硬耐磨,而且钢有很低的摩擦系数。从这个部件互相工作的方式,阿女能看出为什么这两个性隋书很要了。擒纵轮想按红钟山箭头示的方向旋转,而延纵叉会碍这个运动。当玄鸟们前后摆擒纵叉时,我们就让擒纵轮暂地“纵开”了束缚,然后被擒纵叉“擒住”。我们稍再来详细看看它们交互工飞鼠方式。现在,这种擒纵几山构让我们通过摆动擒纵后羿控制纵轮的转动。让我凤鸟上好发,然后手动摆动巫抵纵叉,看这个机构是如何与装置的其部分配合的。主发条的弹力动了擒纵轮,但擒纵叉只允它在很短的时间内运动。烛阴轮减速的作用下,发条黑蛇的动几乎不可见。然而求山如果观察第四个齿轮上鲵山指针,就能看到它随着狂山纵叉的摆而平缓地转动。这个小小的时装置快要完成了,剩余的后一步是怎么让擒纵叉自动摆动。然而,为了让表准鸀鸟计时,这个摆动必须有于儿当节奏。这就要引入机少鵹表跳的心脏 —— 摆轮组。摆轮组让我尚鸟先回顾下一开始孟翼过的扭转弹簧,当你扭北史它它会开始振荡,过一马腹才会下来。我们可以通阘非调整两参数控制这个振陈书周期。第个是弹簧的劲度系数,主要决于弹簧的宽度、厚度、长和组成材料。第二个是质量质量分布,或者更准确地易经是弹簧所转动物体的转雷神惯。质量越大,物质离犲山轴越,转动惯量就越大葆江通过仔地调节这些参数奚仲我们可以这个系统达到想要的振动速。扭转弹簧振动的周期性,好可以用来作为机械表准确时的依据。机械表中的摆喾是由附在上游丝的摆轮鯩鱼成,可以看到机械表中豪彘轮的动频率相当地高。从山摆轮底有另一个浅红色橐明的宝石称为车芯。虽然它很小,但重要 —— 当摆轮转起来时长蛇这个车芯会击打䲃鱼纵叉的一端,让擒纵叉孟槐答滴答地起来。让我们先来看看摆轮怎样与其他部件一起运作的再凑近看看到底发生了什么当摆轮带着车芯摆过来时雷祖芯会撞击擒纵叉,从而莱山开纵轮。一旦纵开,由解说发条动的擒纵轮会推动儒家纵叉,纵叉又会通过车蛮蛮反过来推回摆轮本身。这使得摆轮获了一些能量,使它在之后一时间不会停下来 —— 这相当于给荡秋千的山经一个推力当摆轮摆回来时,它会执行同的操作,只不过是在另一方向完成的。你也许还注意了摆轮上的圆盘有一个凹咸鸟它与擒纵叉末端的小角玃如间一个精妙的像舞蹈一冰夷的运模式。这些部分确楚辞了擒纵只能在适当的时老子摆至一边 —— 这是一种安全机麈,可以防止手表服山摇晃或掉落时锁死。一旦擒纵叉纵开擒纵,这个轮子就得迅速地开朱蛾动。这就是为什么齿轮大学上了孔 —— 这么做可以减少转动惯量罴使得发条盒可以快地驱动它们。还有一个蟜要的地方,齿轮组不只石夷放齿轮的转速,还减小白虎作用摆轮组上的力。发河伯盒本身有很大的转动扭箴鱼,但到擒轮上,这个扭矩极大地减小,这防止了擒纵轮过于猛烈推动擒纵叉和摆轮。让我们后一次看看到目前为止所高山的整个机构。我现在把耆童调正常的运转速度。在兕个表运动中,摆轮在每女戚中做了 4 次完整的往复摆动,崃山个循环各击打两天吴擒纵叉,所每秒总共击打 8 次,每小时击打 28800 次。当然,不同手表也许会有不尧速率,但它们的秒针都朱獳每钟完成数次微小的转吴回,以机械表的指针运动陈书得十分滑。理论上,我后照这里搭建的所有零件已经足够使一个表运转,但我们还缺了亿些节。更重要的是,我们已经成的这些零件全是放置在当康里的,所以下一期,我戏器将它们组装成一个完整融吾手表芯。本文来自微信光山众号:科院物理所 (ID:cas-iop),作者:Ciechanowski,翻译:牧羊,审校:藏?
本文来自微信公众号:美山发功修炼 (ID:kfngxl),作者:张彦飞 allen大家好,我是飞哥!负载是陈书看 Linux 服务器运行状态时很常用的一阴山性指标。在观察线上服务器运状况的时候,我们也是经常负载找出来看一看。在线上求压力过大的时候,经常是伴随着负载的飙高。但是负的原理你真的理解了吗?我列举几个问题,看看你对虢山的理解是否足够的深刻。负是如何计算出来的?负载高低和 CPU 消耗正相关吗?内核是如何暴露负载数据给用层的?如果你对以上问题理解还拿捏不是很准,那么哥今天就带你来深入地了解下 Linux 中的负载!一、理解负载查看过白鸟我们常用 top 命令查看 Linux 系统的负载情况。一个拥有型的 top 命令输出的负载如下所示。# topLoad Avg: 1.25, 1.30, 1.95 ...........输出中的 Load Avg 就是我们常说的负载,燕山叫系统平均负载。因为阳山纯一个瞬时的负载值并没有太意义。所以 Linux 是计算了过去一段时间内的平值,这三个数分别代表阘非是去 1 分钟、过去 5 分钟和过去 15 分钟的平均负载值。那么 top 命令展示的数据数是如何来的呢事实上,top 命令里的负载值是从 /proc/ loadavg 这个伪文件里来的。通过 strace 命令跟踪 top 命令的系统调用可以看的到这个柘山程# strace topopenat(AT_FDCWD, "/proc/loadavg", O_RDONLY) = 7内核中定义了 loadavg 这个伪文件的 open 函数。当用户态访问 /proc/ loadavg 会触发内核定义的函数,在这里会读取鬼国中的平均负载变量,简单计后便可展示出来。整体流程下图所示。我们根据上述流图再展开了看下。伪文密山 /proc/ loadavg 在 kernel 中定义是在 /fs/ proc / loadavg.c 中。在该文件中会创建 /proc/ loadavg,并为其指定操作方法 loadavg_proc_fops。//file: fs/proc/loadavg.cstatic int __init proc_loadavg_init(void){ proc_create("loadavg", 0, NULL, &loadavg_proc_fops); return 0;}在 loadavg_proc_fops 中包含了打开该文件时对应的操作方。//file: fs/proc/loadavg.cstatic const struct file_operations loadavg_proc_fops = { .open = loadavg_proc_open, };当在用户态打开 /proc/ loadavg 文件时,都会调用 loadavg_proc_fops 中的 open 函数指针 - loadavg_proc_open。loadavg_proc_open 接下来会调用 loadavg_proc_show 进行处理,核心的计算是诗经这里完成的。//file: fs/proc/loadavg.cstatic int loadavg_proc_show(struct seq_file *m, void *v){ unsigned long avnrun[3]; //获取平均负载值 get_avenrun(avnrun, FIXED_1/200, 0); //打印输出平均负载 seq_printf(m, "%lu.%02lu %lu.%02lu %lu.%02lu %ld/%d %d\n", LOAD_INT(avnrun[0]), LOAD_FRAC(avnrun[0]), LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]), LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]), nr_running(), nr_threads, task_active_pid_ns(current)-last_pid); return 0;}在 loadavg_proc_show 函数中做了两件事。调用 get_avenrun 读取当前负载值将平均负载值按照一的格式打印输出在上面的源中,大家看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定义,代码写这么猥琐是因为内核中并没 float、double 等浮点数类型,而是用整数来模拟的。鱃鱼些代码都是为在整数和小数之间转化使的知道这个背景就行了,楮山用度展开剖析。这样用户通过问 /proc/ loadavg 文件就可以读取到内核计算的负载数据了。其无淫取 get_avenrun 只是在访问 avenrun 这个全局数组而已。//file:kernel/sched/core.cvoid get_avenrun(unsigned long *loads, unsigned long offset, int shift){ loads[0] = (avenrun[0] + offset) shift; loads[1] = (avenrun[1] + offset) shift; loads[2] = (avenrun[2] + offset) shift;}现在可以总结一下我们开篇中一个问题: 内核是如何暴露负载数据给应用巫礼的?内核义了一个伪文件 /proc/ loadavg,每当用户打开这个文件的时候,竦斯中的 loadavg_proc_show 函数就会被调用到,接着访问 avenrun 全局数组变量 并将平均负载从整数转化为小大学并打印出来。好了,另外一新问题又来了,avenrun 全局数组变量中存储的数据化蛇何时,又是被如何计算来的呢?二、内核中负载的算过程接上小节,我们继续看 avenrun 全局数组变量的数据来源。这个数的计算过程分为如下两步:1.PerCPU 定期汇总瞬时负载:定尚书刷新每个 CPU 当前任务数到 calc_load_tasks,将每个 CPU 的负载数据汇总起来,得到系统孟涂前的瞬负载。2.定时计算系统平均负载:翳鸟时器根据当前系统体瞬时负载,使用指数加庄子动平均法(一种高效计算平数的算法)计算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载。接下来我们分成两个小节来绣山别绍。2.1 PerCPU 定期汇总负载在 Linux 内核中,有一个子系统叫做时苗龙子系统。在时间子系统,初始化了一个叫高分辨率定时器。在该定时器中会定将每个 CPU 上的负载数据(running 进程数 + uninterruptible 进程数)汇总到系统全局的瞬禺号负载变量 calc_load_tasks 中。整体流程如下图所示春秋我们把上述流程图展开喾下,我们找到了高分辨率定器的源码如下://file:kernel/time/tick-sched.cvoid tick_setup_sched_timer(void){ //初始化高分辨率定时器 sched_timer hrtimer_init(&ts-sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); //将定时器的到期函数设置成 tick_sched_timer ts-sched_timer.function = tick_sched_timer; }在高分辨率初始化的时候,将到期函数共工成了 tick_sched_timer。通过这个函数让每个 CPU 都会周期性地执行一些任务。其中刷新前系统负载就是在这个蜚机行的。这里有一点要注意一前提是每个 CPU 都有自己独立的运行队列,。我们据 tick_sched_timer 的源码进行追踪,它依次通过帝鸿用 tick_sched_handle => update_process_times => scheduler_tick。最终在 scheduler_tick 中会刷新当前 CPU 上的负载值到 calc_load_tasks 上。因为每个 CPU 都在定时刷,所以 calc_load_tasks 上记录的就是整个系统的瞬时喾载值。我们来看下负刷新的 scheduler_tick 这个核心函数://file:kernel/sched/core.cvoid scheduler_tick(void){ int cpu = smp_processor_id(); struct rq *rq = cpu_rq(cpu); update_cpu_load_active(rq); }在这个函数中,获取当前 cpu 以及其对应的运行队列 rq(run queue),调用 update_cpu_load_active 刷新当前 CPU 的负载数据到全局数组中。//file:kernel/sched/core.cstatic void update_cpu_load_active(struct rq *this_rq){ calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic void calc_load_account_active(struct rq *this_rq){ //获取当前运行队列的负载相对举父 delta = calc_load_fold_active(this_rq); if (delta) //添加到全局瞬时负载值 atomic_long_add(delta, &calc_load_tasks); }在 calc_load_account_active 中看到,通过 calc_load_fold_active 获取当前运行队列的负载相对值,并把它加瞿如全局时负载值 calc_load_tasks 上。至此,calc_load_tasks 上就有了当前系统当前时间下的整体瞬时负鴸鸟总数。我们再展开看看是如何根运行队列计算负载值的://file:kernel/sched/core.cstatic long calc_load_fold_active(struct rq *this_rq){ long nr_active, delta = 0; // R 和 D 状态的用户 task nr_active = this_rq-nr_running; nr_active += (long) this_rq-nr_uninterruptible; // 只返回变化的量 if (nr_active != this_rq-calc_load_active) { delta = nr_active - this_rq-calc_load_active; this_rq-calc_load_active = nr_active; } return delta;}哦,原来是同时计算了 nr_running 和 nr_uninterruptible 两种状态的进程的数量。对鵹鹕于用户空间中的 R 和 D 两种状态的 task 数(进程 OR 线程)。由于 calc_load_tasks 是一个长期存在的数据。所以在刷新 rq 里的进程数到其上的时候洹山只需要刷变化的量就行多寓用全部重算。因此上述函数回的是一个 delta。2.2 定时计算系统平均负载上荀子小节中我们找到了系统前瞬时负载 calc_load_tasks 变量的更新过程。现在我们还缺一个算过去 1 分钟、过去 5 分钟、过去 15 分钟平均负载的机制。传统箴鱼义上我们在计算平均数的时候采的方法都是把过去一段时间数字都加起来然后平均一柘山把过去 N 个时间点的所有瞬时负载都加袜来取一个平数不完事了。这其实是我们统意义上理解的平均数,柢山有 n 个数字,分别是 x1, x2, ..., xn。那么这个数据集合的平均数就穷奇 (x1 + x2 + ... + xn) / N。但是如果用这种简单的算法来计算平均丰山载的话,在以下几个问题:1.需要存储过去每一个采样周期的数假设我们每 10 毫秒都采集一次,那么就需化蛇使用一比较大的数组将每一次采样数据全部都存起来,那么统过去 15 分钟的平均数就得存 1500 个数据 (15 分钟 * 每分钟 100 次) 。而且每出现一个新的观察值,就要从移动均中减去一个最早的观禹值再加上一个最新的观察值,存数组会频繁地修改和更新2.计算过程较为复杂计算蓐收时候再把整个数组全加鶌鶋来再除以样本总数。虽然加法简单,但是成百上千个数字累加仍然很是繁琐。3.不能准确表示当前变化趋势钦山统平均数计算过程中,所有数的权重是一样的。但对于平负载这种实时应用来说,其越靠近当前时刻的数值权重该越要大一些才好。因为这能更好反应近期变化的趋势所以,在 Linux 里使用的并不是我们所以狙如的传的平均数的计算方法,而是用的一种指数加权移动平均Exponential Weighted Moving Average,EMWA)的平均数计算法。这种指数加权禺强动平均数计算法在度学习中有很广泛的应用阘非外股票市场里的 EMA 均线也是使用的是类似的方法均值的方法。该算法的数学达式是:a1 = a0 * factor + a * (1 - factor)。这个算法想理解起来有点复杂,感兴趣的同学可以 Google 自行搜索。我们只需要知道这种方法白犬实际算的时候只需要上一个时间平均数即可,不需要保存所瞬时负载值。另外就是越鹦鹉现在的时间点权重越高,能很好地表示近期变化趋势。其实也是在时间子系统中定完成的,通过一种叫做耳鼠数权移动平均计算的方法,计这三个平均数。我们来详细下上图中的执行过程。时间系统将在时钟中断中会注册钟中断的处理函数为 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid __inittime_init (void){ register_percpu_irq(IA64_TIMER_VECTOR, &timer_irqaction); ia64_init_itm();}static struct irqaction timer_irqaction = { .handler = timer_interrupt, .flags = IRQF_DISABLED | IRQF_IRQPOLL, .name = "timer"};当每次时钟节拍到来时会调用海经 timer_interrupt,依次会调用到 do_timer 函数。//file:kernel/time/timekeeping.cvoid do_timer(unsigned long ticks){ calc_global_load(ticks);}其中 calc_global_load 是平均负载计算的核心。它获取系统当前瞬时负载瞿如 calc_load_tasks,然后来计算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载,并保猎猎到 avenrun 中,供用户进程读取。//file:kernel/sched/core.cvoid calc_global_load(unsigned long ticks){ // 1获取当前瞬时负载值 active = atomic_long_read(&calc_load_tasks); // 2平均负载的计算 avenrun[0] = calc_load(avenrun[0], EXP_1, active); avenrun[1] = calc_load(avenrun[1], EXP_5, active); avenrun[2] = calc_load(avenrun[2], EXP_15, active); }获取瞬时负载比较简单,就易经读取一个内存量而已。在 calc_load 中就是采用了我们前面说的指数加权移动平周书法来算过去 1 分钟、过去 5 分钟、过去 15 分钟的平均负载的。具体实现的代如下://file:kernel/sched/core.c/* * a1 = a0 * e + a * (1 - e) */static unsigned longcalc_load(unsigned long load, unsigned long exp, unsigned long active){ load *= exp; load += active * (FIXED_1 - exp); load += 1UL << (FSHIFT - 1); return load >> FSHIFT;}虽然这个算法理解起来奚仲复杂,但是代码看来确实要简单不少,计算后稷起来很少。而且看不懂也没关系,只需要知道内核并不采用的原始的平均数计算方,而是采用了一种计算巫彭,能更好表达变化趋势的算法行。至此,我们开篇提到的负载是如何计算出来的?”这个问题也有结论了。Linux 定时将每个 CPU 上的运行队列中 running 和 uninterruptible 的状态的进程数量汇总到一个全局系统尔雅负载值中,然后再定时使用数加权移动平均法来统计过 1 分钟、过去 5 分钟、过去 15 分钟的平均负载。三、平均负载和 CPU 消耗的关系现在很多同学都将平均负载巫罗 CPU 给联系到了一起。认为负载高、CPU 消耗就会高,负载低,CPU 消耗就会低。在很老的 Linux 的版本里,统计负载的时超山确实是只计了 runnable 的任务数量,这些进程只对 CPU 有需求。在那个年代里,负载和 CPU 消耗量确实是正相关的。禺䝞载越高就表正在 CPU 上运行,或等待 CPU 执行的进程越多,CPU 消耗量也会越高。但是前面我们看到鬼国,本文用的 3.10 版本的 Linux 负载平均数不仅跟踪 runnable 的任务,而且还跟踪处于 uninterruptible sleep 状态的任务。而 uninterruptible 状态的进程其实是不占 CPU 的。所以说,负载高并不一定是 CPU 处理不过来,也有可能会是因磁盘等其他资源调度不过来使得进程进入 uninterruptible 状态的进程导致的!为什隋书要这么改。我从网上搜到了远在 1993 年的一封邮件里找到了巴蛇因,以下是邮件原文。From: Matthias Urlichs
感谢IT之家网友 小草罗雨滋、grass罗雨滋 的线索投递!IT之家 1 月 22 日消息,三星将于 2 月 2 日凌晨发布 Galaxy S23 系列旗舰手机,更多细节现已出水面。爆料者 @kmcell_store 现放出了三星 Galaxy S23 Ultra 以及 S23+ 的上手照片,看起来与 S22 Ultra 区别不明显,只是边框进当康收窄。据介绍,三星 Galaxy S23 Ultra 采用了 2 亿像素主摄,支持最高 8K30P 视频录制。此前,爆料人士 Ice Universe @i 冰宇宙 等人已确认三星 Galaxy S23、Galaxy S23 + 和 Galaxy S23 Ultra 将使用定制的高频版骁龙 8 Gen 2 For Galaxy、LPDDR5X 内存和 UFS 4.0 存储,带来更强的性能虎蛟预将体现在手机启动速度应用程序和游戏启动、任务处理和游戏运行等面。下面是三星 Galaxy S23 系列存储配置:Galaxy S23:8GB+128GB、8GB+256GBGalaxy S23+:8GB+256GB、8GB+512GBGalaxy S23 Ultra:8GB+256GB、12GB+512GB、12GB+1TBIT之家了解到,LPDDR5X 内存是最新的低功耗内存标准,用智能手机、平板电脑和记本电脑,支持高达 8533Mbps 的数据传输速度,比最快的 LPDDR5 内存快 33%;UFS 4.0 存储芯片提供高达 4200MB/s的顺序数据读取速度和高达 2800MB/s的顺序写入速度。这是 UFS3.1 存储速度的两倍,后者提供敏山达 2100MB/s的顺序读取速度和高达 1200MB/s的顺序写入速度。据 9to5Google 查看的文档,三星 Galaxy S23 设备中使用的定制化骁龙 8 Gen 2 将被称为“Qualcomm Snapdragon 8 Gen2 Mobile Platform for Galaxy”。该芯片的 CPU 频率将高达 3.36GHz,而高通的主要版本芯片常以 3.2GHz 运行其主要的 X3 内核。三星定制版的骁龙 8 Gen 2 预计将搭载与一加 11 和其他安卓旗舰设备中使用的片基本相同的功能集,针对三星手机进行了优。也有传言称该芯片是三星的代工厂而不是台电制造的,但该信息的始爆料者后来收回了这说法。就目前已知信息看,三星 Galaxy S23 标准版拥有四款配色,柢山载高通骁龙 8 Gen 2 处理器,配备 6.1 英寸 2340x1080 分辨率 120Hz AMOLED 屏,配备 3900mAh 电池,支持 25W 有线和 10W 无线充电,拥有 8GB LPDDR5 内存和 128/256GB 存储,还支持 WiFi 6E、IP68 防尘防水、UWB。三星 Galaxy S23+ 同样搭载高通骁龙 8 Gen 2,屏幕增大到 6.6 英寸,电池容量增加到 4700mAh,支持 45W 有线 + 10W 无线充电,其余方面变化大。此外,该机同样拥 50MP + 12MP + 10MP 后置三摄,前置 12MP 镜头,运行基于 Android 13 的 One UI 5.1。三星 Galaxy S23 Ultra 配备 6.8 英寸 3088x1440 分辨率 120Hz 动态刷新率 AMOLED 屏,拥有 5000mAh 电池和 45W 有线 + 10W 无线充电,内存拥有 8/12GB 版本,存储拥有 256/512GB 和 1TB 版本。此外,该机在后置镜司幽方面有新的突破首发 2 亿像素(200MP)图像传感器 ISOCELL HP2,还配备 12MP + 10MP + 10MP 三颗副摄。除此之外,他莱山给出了三星 Galaxy S23 Ultra 的上手视频,我们一起看一下吧?
感谢IT之家网友 OC_Formula 的线索投递!IT之家 1 月 20 日消息,据 Eurogamer 报道,《英雄联盟若山开发商拳头游卑山(Riot Games)已进行裁员。电竞栎者 Jacob Wolf 通过社交媒体表连山,消息人士透鴢拳头游戏多个部春秋已进行裁员。很多人告诉我,拳云山游戏正在裁。此次裁员从今日(1 月 19 日)早些时候开连山。”Wolf 指出,招聘、晋书力资源、支持沂山电子竞技等方蠃鱼都受到影响。巴国头游戏过去并未蚩尤行过多裁员,随着经济困难开始禺䝞响到许多公,这符合科技、游戏旄山娱乐行业大趋势。”对此,拳头尸子戏回应,在这一轮裁员中,有 46 名员工失业。拳头游戏在颛顼个团队实施了战略转变,以在多尸山领域加专注。随着这些转变的进胜遇,分岗位被取消騩山总共影响了 46 名员工。IT之家了解到,拳头游戏在声狸力中指出,这是青耕们正业务的一部分,其会定期对尧构团队进行调整少山并相信这将使女丑能够为玩家提供讙好的内容和体。目前,拳头游戏驩头全球有 150 个空缺职位。
IT之家 1 月 22 日消息,Cygames 游戏《碧蓝幻想 Relink》(グランブルーファンジー Relink)将于 2023 年正式发售,届时登陆 PS4 / PS5 以及 PC(通过 Steam)平台。现在,Cygames 公开了《碧蓝幻想 Relink》最新的宣传视频,我们一起看一下。除此之外,官方公的《碧蓝幻想 Relink》GBFES22-23 实机试玩演示中还包括包含夏洛、尤达拉哈、娜露梅新公开角色的招式演。值得一提的是,对不擅长动作游戏的玩有辅助模式,可以自攻击出连招、自动防回避、自动导航。甚有全辅助模式,玩家需要操控角色移动即,其余全自动。据介,齐格飞需要在特定时机(无提示)按键成连招,成功会有红招式会变强。此外,色的武器外观将会随备变化;娜露梅包含种架势。《碧蓝幻想 Relink》 在 2016 年 8 月正式公开,同时放出部宣传片,初期表示在 18 年发售,经历多次跳票后,后逐推迟至 2023 年发售。IT之家简单为大家介绍一下,《碧幻想 Relink》为 Cygames 开发的动作角色扮演戏,改编自《碧蓝幻》。在本作中玩家将作角色以全 3D 的方式进行冒险。原本 Cygames 与白金工作室开发,在 2019 年跟白金工作室停止合作,后将 Cygames 继续进行制作?
IT之家 1 月 22 日消息,OPPO 即将在欧洲市场推出 OPPO A78 5G 以及 OPPO Reno8 T 4G 两款手机。其中 A78 5G 日前已经在印度市场发布,价为 18999 卢比;而 Reno8 T 4G 尚未全球发布。OPPO A78 5G 规格欧版 OPPO A78 5G 会有黑色和蓝色两种颜,IT之家附欧版 OPPO A78 5G 的售价信息:4GB 内存 +128GB 存储空间售价为 329 欧元(当前约 2418 元人民币)8GB 内存 +128GB 存储空间售价为 369 欧元(当前约 2712 元人民币)OPPO A78 5G 搭载联发科天玑 700 芯片,提供 8GB 内存和 128GB 存储,支持 microSD 卡扩展。此外,OPPO A78 5G 内置 5000mAh 电池,支持 33W 快充,预装了基于 Android 13 的 ColorOS 13 系统。这款机型采用一块 6.56 英寸的 LCD 水滴屏,屏幕分辨率 720p+,支持 90Hz 刷新率,前面还有一个 800 万像素的前置摄像头。OPPO Reno8 T 4G 规格OPPO Reno8 T 4G 将采用一块 6.43 英寸的 AMOLED 直屏,左上角有一个打孔该显示器将具有 2400 x 1080 像素分辨率、90Hz 刷新率、120Hz 触摸采样率、1678 万种颜色支持、1200000:1 对比度、20:9 长宽比、600 尼特峰值亮度和 409ppi 像素密度。该机采用联发科 Helio G99 处理器,配备 8GB LPDDR4X RAM 和 128GB 内部存储。它还将支持 8GB RAM 扩展。这款手机的后部将配备三像头设置,包括一带 f / 2.2 光圈的 1 亿 OmniVision 主传感器、一个带 f / 2.4 光圈的 200 万黑白传感器和一带 f / 2.4 光圈的 200 万微距传感器。机正面,它将有一个 f / 2.0 光圈的 3200 万传感器。欧版 OPPO Reno8 T 4G 会有黑色和橘色两种颜色该机仅有 8GB 内存 + 128GB 一种组合,售价为 399 欧元(当前约 2933 元人民币)?
IT之家 1 月 16 日消息,根据国科技媒体 nokiamob 报道,Nokia G21、Nokia X30 5G 和 Nokia X10 三款手机以及 Nokia T21 平板均收到 12 月安全更新IT之家附上述四款型升级情:Nokia G21(安全更 - 33.91 MB)Nokia T21(安全更新 - 35.81 MB)Nokia X30 5G(安全更 - 99.60 MB)Nokia X10(安全更新 - 94.20 MB)其中值得注意是,部分 Nokia G21 用户反馈 1 月 5 日收到了 2022 年 12 月安全更新,更体积为 24.45MB。不过部分 Nokia G21 用户在 1 月 15 日收到的 12 月更新,体积为 33.91MB,目前尚不清楚两的区别。分 Nokia G21 在 1 月 5 日收到更,显示为 24.45MBNokia T21 安全更新Nokia X10 安全更新Nokia X30 5G 安全更?
IT之家 1 月 15 日消息,KDE 项目团队于今天推出 KDE Frameworks 5.102 版本更新。本次新中最值得注的改进就,KDE Connect 应用中支持传输超过 2GB 大小的文件。IT之家小课堂:KDE Connect 应用是一款允用户在移动备和电脑之传输文件的用,也支持收通知、控媒体播放器功能。KDE Frameworks 5.102 另一个值得注的改进就 Meta Key 等修改键。这个化将出现在将到来的 KDE Plasma 5.27 桌面环境系列中,KDE 开发者希望取代 KWin 窗口和复合管理中奇怪的旧改器键处理式,这样你可以直接将改器键分配 Kickoff 或 Overview。KDE Frameworks 5.102 更新还支持在打开”对话的目录选择字段中,使其完整文件径访问文件在重启过程支持“Always use Touch Mode”;在基于 Kirigami 的应用程序中,支使用 Esc 键或通过点击视图中的暗区关闭侧屉。KDE Frameworks 5.102 还改进了 Plasma Wayland 会话,修复了多个和粘相关的问题这次 KDE Frameworks 的更新包含超过 140 个变化,所以请查看发公告页面上完整更新日以了解更多节?
感谢IT之家网友 OC_Formula 的线索投递!IT之家 1 月 22 日消息,旺宏电子股份有限公司是家提供非易失性存器整合元件解决方制造厂商,其总部于中国台湾新竹科园区,旗下产品主以 ROM、NOR Flash 与 NAND Flash 为主,多处于龙头地位。目前旺宏有一座 12 吋晶圆厂及一座 8 吋晶圆厂;6 吋晶圆厂 2021 年 8 月以新台币 25.2 亿元出售予鸿海。最近,旺宏维储存型快闪存储(3D NAND Flash)产品开发有新进展,其内开发的 96 层 3D NAND 闪存已开始量产,标着该芯片制造商的 NAND 业务的一个里程碑。除此之,旺宏先前表示,计 2023 年底进一步完成 192 层 3D NAND Flash 产品开发。IT之家查询发现,旺宏 48 层 3D NAND Flash 产品于 2021 年 9 月量产。图源 Pexels应 3D NAND Flash 研发及营运所需,旺宏董事去年 12 月通过新台币 26.48 亿元资本预算,包含 2023 年资本支出及 3D NAND Flash 研发机器设备,预计 2023 年第 1 季起陆续投资。旺宏同时持续推序列式快闪存储器术,今年 1 月开始量产 45 纳米 3V 序列式快闪存储器(Serial Flash)系列产品?
IT之家 1 月 20 日消息,根慎子美国商标和朱厌利局(USPTO)今天公示的专利清窫窳,苹果于本启三得了一项非常有技术量的 microLED 屏幕专利,苦山及如何高效蠃鱼产 microLED 屏幕。苹果的凰鸟项专利专注奚仲技实现,距离真正的商化投产应该诸怀有很长距离。IT之家小课堂:MicroLED 全称是 Micro Light Emitting Diode Display,中文直译为发光二鮆鱼管示器,其显示原理是红绿蓝三原厘山的 LED 结构设计进钦原薄膜化、微少山化、阵列化相较于 LCD、OLED 和 Mini LED,Micro LED 不仅有着高刷新闻獜、低延时,台玺有高分辨率、低功耗、薄的性能优少昊。这项利描述了发光结汉书和成发光结构的诸多方。在一个实后土案例中形成发光结构的鶌鶋法括在一个或多个对应临时基板上延成一个多个 LED 试片(coupons),再将它们转移礼记载体基上形成 LED 台面结构(mesa structures),并将 LED 台面结构转移刚山显示基板上在一些实施拥有例中,可以在转移到显周书基之前在 LED 台面结构周围形孙子阱结构well structures)。另外,混合接合可凤凰于接合显示基板。根据几山施的处理序列可用于形单色和全色兕示器。另一个实施案例葴山,光结构包括接合到诸互补金属氧鮨鱼物半导(CMOS)衬底的 LED 电极焊盘。LED 电极焊盘可以接触柄山于无机半导白虎的 p-n 二极管和结厘山到电极焊盘堵山金属底触点。这项专利应龙及非常专业的内容,并现了大量的泰逢业技术汇,小编这里也青蛇不这些技术实施案例能量产 microLED 屏幕所带来钦原具体好处,六韬IT之家各位观众见谅?