LWN:继续完善core scheduling!

一文搞懂core-scheduling核心机制 一文搞懂core scheduling的工作核心机制 阅读详情

关注了就能看到更多这么棒的文章哦~

Completing and merging core scheduling

By Jonathan Corbet
May 13, 2020


OSPM

原文来自:https://lwn.net/Articles/820321/

主译:DeepL

Core scheduling是对内核的CPU调度器的一种改进方案,用来供系统管理员控制哪些进程可以在同一个处理器上同时运行。它最初是作为一种安全机制提出的,但随着时间的推移,也出现了其他的使用场景。在2020 Power Management and Scheduling in the Linux Kernel summit(OSPM)上,约50名开发者在线聚集在一起,讨论了core scheduling patch的现状,以及还需要作什么才能将其纳入mainline kernel。

Status update

Vineeth Pillai首先指出,虽然已经针对已知的Spectre漏洞开发出了防护措施,但这些措施并不能为simultaneous multi-threading (并行多线程SMT或 大家熟知的"hyperthreading")的系统提供完整保护。SMT会造成多个CPU在共享硬件上运行的假象,从而提高性能。然而,共享使用底层处理器的话,为speculative-execution漏洞和covert channel攻击提供了机会。真正保护系统不受这些漏洞影响的唯一方法是禁用SMT,这对某些工作场景来说是导致的性能下降是无法接受的。

Pillai表示,Spectre漏洞还是有办法缓解的,也就是通过选择合适的cache来flush出去,但在使用SMT时,这种方法无法使用了。cache flush操作将丢弃在flush之前存放在cache中的数据,使其在flush后无法被访问。不过,这个机制要求,相互不信任的task必须确保在多次flush之间不共享使用CPU core。在没有SMT的情况下,内核可以在切换任务时执行cache flush,就能确保这种情况永远不会发生。但在SMT core上,每个CPU都是独立调度的,所以这种cache flush规则是无法确保的。

要避免这个问题,有一个方法是让彼此不信任的任务不在同一个core上运行,这意味着在当前CPU core上禁用SMT。另一种方法是core scheduling,即对task按互相信任与否进行分组。scheduler调度器了解每个CPU core的可信task,确保只有互相信任的task才能同时在一个CPU core上同时运行。在进行调度决策的时候,如果最高优先级的task没有可信的sibling(兄弟task),那么在该任务运行时,当前CPU可以被强制空闲,而不是同时运行一个不受信任的task。

[Vineeth Pillai, Dario Faggioli, and Tim Chen at OSPM 2020]

Pillai说,还有一点尚未决定,就是关于负载均衡方面。目前core scheduling跟load balance配合得不太好。可能的改善方案就是选择一个单一run queue来存放core scheduling决策所以来的那些共享信息。当调度事件发生时,会像往常一样选择优先级最高的任务。然后,只要它有匹配的兄弟任务存在,就可以在相应的core上来填充这些兄弟任务。

Core scheduling目前使用CPU control groups来控制task分入哪个cgroup。cpu.tag字段里可以填一个 "cookie "来标记此task属于哪个调度组。这样做的目的是为了能先快速、简单的实现出来,这不一定是最终的正式用法。在每个run queue中都有一个红黑树,按cookie值排序,用于给兄弟处理器选择合适的task。

这一组patch set已经到了第5版,其中增加了一些load balancing的改进。早期的版本根本不考虑负载均衡,所以如果一个任务被迁移到到目标CPU上正在运行一个包含了不相容的tag的task,最终可能会导致它自己的时间片用光都无法执行。并且后面很快就会提出第六版。

有一个很大的挑战是,需要比较不同sibling之间的任务的优先级。在一个run queue中,一个任务的vruntime值用来决定它是否应该下一个运行。这个值是一种算出来的虚拟运行时间,表示此task相对于其他task所获得的CPU时间(尽管它会根据进程优先级进行一些放大缩小,还有其他一些方式进行调整),但这个值是每个run queue所特有的。一个run queue中的vruntime不能与另一个run queue中的vruntime直接比较。

一个可能的解决方案是将这些值归一化。每个队列都维护一个min_vruntime值,这是该队列中任何任务的最低vruntime。如果一个特定任务的vruntime通过减去本地的min_vruntime来归一化,那么在跟其他run queue对比的时候只要再加上该队列中的min_vruntime即可。但是,使用这个方案的测试发现有进程饿死问题。于是,后面人们开始考虑创建一个core特有的vruntime值了。不过这种方案仍然有进程饿死问题,所以这方面的探索还在进行中。

第6版patch预计也会包括对选择进程这部分的代码的一些更改,这部分代码目前只选择最高优先级的任务来运行。这也会导致进程饥饿问题。还有一些已经进入kernel的task的特有问题(例如在处理中断),最终可能会被与一个不信任的任务调度到同一个CPU上执行。这部分的问题需要大改才能解决。一些想法慢慢形成API,比如可以利用prctl()来设置task的分组。

Pillai最后问道,这项工作是否应该合并到主线内核中。支持者提供了不少证据。从一些生产环境测试来看,core scheduling比禁用SMT测出了更好的性能表现。它是由一个内核配置选项控制的,并且就算打开配置了,它的功能也是默认关闭的。当禁用core scheduling时,这些代码对性能没有任何影响。可是从反对者来看,它仍然只是对问题的一个部分缓解方案,并且有一些公平性问题,还需要进行不少代码清理,而且它仍然缺乏一个被广泛接受的API。

IRQ leak mitigation and accounting

随后,Joel Fernandes接过来谈了剩下的Spectre缓解问题之一:interrupt leak。谷歌(他所服务的公司)希望在Chrome OS上使用core scheduling,因为有一些实实在在的好处。在Chromebook上进行的摄像头测试中,core scheduling大大降低了按键延迟,同时摄像头的帧率提高了3%。但Google的开发人员担心,中断(包括硬中断和软中断)会导致不信任的任务与内核的中断处理程序同时运行,使内核面临数据泄露的问题。内核调度目前只在task level有效,对中断处理程序没有控制,因此无法解决这个问题。

提出的解决方案就是刚刚发布的IRQ leak mitigation patch。它会跟踪某个core中的一个CPU何时调用irq_enter()——也就是说,跟踪此CPU开始处理一个irq的时间点。一个处理器core内的第一个irq_enter()调用时,如果发现另一个CPU正在运行一个不受信任的任务,则会触发一个处理器间中断(inter-processor interrupt),命令另一个CPU进入idle状态。调度器本身也必须进行修改,这样,当它从一个任务切换到另一个任务时,它就会检查自己的兄弟CPU此时是否在处理中断。如果是这样,它就会等到兄弟CPU的中断处理完并且和cache flush掉之后再进行调度执行。

关于Chrome OS是具体如何使用core scheduling的,人们提了一些问题。看起来似乎所有的 "system task "都可以一起运行,不在某个具体的core-scheduling group之中。而基于浏览器的任务(Chrome OS中所有的用户任务几乎都是这一类)都会被各自放到自己的组中,从而隔离运行。换句话说,系统会对那些互相不信任的task打好标记。Peter Zijlstra表示,这意味着任务会默认为受信任状态,这似乎不够安全,他建议将默认状态改为不信任。

Juri Lelli问到其他scheduling class。具体问题是如果系统中存在realtime FIFO task,会发生什么情况?Zijlstra回答说,将遵循通常的顺序规则。FIFO任务,因为它的优先级最高,所以会被优先选择。同一组中的非实时任务可以在兄弟cpu上运行,尽管这有点不正常,因为这样的任务可能会干扰实时任务的执行。

Dario Faggioli谈了一下SUSE对core scheduling的使用方法:确保对虚拟化的guest os的统计是准确的。一个典型的主机系统中正在运行很多task,其中许多其实都是运行在不同虚拟机中的虚拟CPU(vCPU)上。调度器可以以任何方式将这些vCPU混合在一起,不用管它们对应的是哪个虚拟机。

由于在兄弟CPU上运行的任务都在跟本CPU上的任务争夺底层硬件,因此它们会影响到对方的性能。两台vCPU可能看起来运行时间是相同的,但也许实际上其中的一台可能实际消耗的物理CPU运行时间比另一台多得多。这样就导致了对CPU时间计算可能是不公平的。core scheduling可以通过确保同一台虚拟机的vCPU都在同一一个cpu core上运行,从而确保它们只会进行内部竞争,这样一来的计算能力的统计和计费就更加公平。

如果定义好虚拟机,使其vCPU中的一些vCPU被设置为SMT的兄弟task,这样一来guest os就能够相应地优化其调度策略。不过,只有当虚拟机的定义信息与物理CPU存在对应关系时,这才能真正有用。而core scheduling就可以帮助实现这一点。

Faggioli说,安全用例也适用于虚拟化场景。core scheduling对此有帮助,但还不是一个完整的解决方案。Fernandes讨论的interrupt的情况就是一个仍需要改进的地方。一个完整的解决方案可能还需要用上地址空间隔离(address-space isolation)这样的技术。

Performance

Tim Chen介绍了几种性能测试,分别模拟了几种不同使用场景。一组virtualization test显示,在启用core scheduling的情况下,系统运行的性能为未修改内核的96%。这里有4%的性能损失,但比完全关闭SMT后的87%的性能的结果要好得多。使用sysbench benchmark的一些测试给出了类似的结果。如果关闭SMT,性能几乎降低了一半。最重要的kernel-build benchmark可以看出,core scheduling几乎没有带来任何性能损失,而关闭SMT的话性能降低了8%。

Julien Desfossez介绍了一个MySQL benchmark的结果,证明使用core scheduling的话性能下降了60%。很痛苦,但关闭SMT则要更加糟糕。还有一个基于Linpack的CPU密集型的测试,结果显示,core scheduling的性能略好于mainline kernel,而关闭SMT则会带来90%的性能打击。

Faggioli在一个256CPU的AMD系统上运行了一组测试,这个系统完全不需要使用core scheduling来解决Spectre问题。他主要关注如果在内核配置中enable core scheduling但并不真正打开它的情况下有多少性能损失。他使用Kernbench运行了128个job,此时性能达到mainline kernel的98.6%。在256个job的情况下,能达到99.9%。其他各种测试也得到了类似的数据。

有一些关于公平性测试的讨论——也就是确保所有任务都能获得同等的CPU时间。这个测试结果看其实非常"messy(混乱)",难以解释,但总体印象是,core scheduling产生的公平性表现较差。

Discussion

这个三小时的会议的最后部分是随意讨论。最终决定core scheduling是否能合入mainline的很可能是Zijlstra。他首先发言说,他希望看到一些更好的文档,尤其是能有一些明确的信息说明core scheduling在哪些情况有好处,哪些情况下没有。他认为还有一些事情需要解决,包括公平性以及CPU hotplug的一些问题。这些都是可以解决的,但要想推进这项工作,文档是必须具备的。

Dhaval Giani说,不是所有的问题都可以在调度器中解决。为了对(已知的)Spectre问题有一个完整的解决方案,可能还需要address-space isolation(地址空间隔离)。Zijlstra重复说,需要有文档来说明哪些情况是可以用core scheduling来解决的。这样用户才能决定他们是否需要在自己的应用场景中打开core scheduling。

Aaron Lu说,vruntime的问题仍然存在。如果两个任务有相同的tag,但权重(优先级)不同,那么此core的vruntime就会变成权重较低的那个任务的vruntime,因为这个任务的时间很少。两个进程之间的差异可能会变得很大。Zijlstra回答说,任务之间的vruntime如果差异过大肯定不是一件好事,但进行归一化处理的话则会耗费不少资源。这通常也是不必要的。一旦一个兄弟CPU进入了idle状态,那么就只有一个运行队列才对它有影响,这就是一个同步vruntime值的好时机。Lu表示希望看到一个实现这一点的patch,Zijlstra不耐烦地表示愿意尝试找时间来做个样子出来。

Vincent Guittot提出了负载平衡问题。他说,调度选择结果可能是不公平的。如果一个4个CPU系统上有5个任务,其中一个任务最终会比其他任务运行得更慢。他将在会议的晚些时候再谈这个问题。Zijlstra说,无论如何,在解决负载均衡之前需要先解决vruntime的问题。

会议即将结束的时候,Giani尝试着把要做的事情列出来,包括vruntime、CPU热插拔和公平性问题。Pillai加了一项,需要处理那些untagged task被饿死的问题。Zijlstra问,这个问题是否是针对cpu.tag值为0的任务,也就是完全没有tag的任务。Pillai回答说是的,但是tag为0这种特殊情况意味着这个task不会进入core-scheduling的红黑树。Zijlstra建议也将这些任务添加到红黑树树中管理起来,这样就可以去掉特殊情况,再次正常运转起来。

Fernandes提出了一个相关的问题:那个红黑树包含任务vruntime值,用来参考选择兼容的task(也就是互相信任的task),但这些值不会随着任务的运行而及时更新。Pillai说,这是一个问题,旧的vruntime值会导致调度器选择了错误的任务运行。Zijlstra说,选择一个要执行的任务应该把它从这个树上删除,就像run-queue的红黑树一样。这样做会多耗费一些资源,但这可能是值得的。对于virtualization workload来说,这里的代码应该是相对较小的,因为vCPU并不会那么频繁地reschedule。

会议结束时,Zijlstra说,这项工作看起来已经准备好了继续推进了,剩下的问题都可以在邮件列表中解决。

全文完

LWN文章遵循CC BY-SA 4.0许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注LWN深度文章以及开源社区的各种新近言论~

Spark Core解析 2:Scheduler 调度体系 Spark Core解析 2:Scheduler 调度体系 Overview 调度系统,是贯穿整个Spark应用的主心骨,从调度系统开始入手了解Spark Core,比较容易理清头绪。 Spark的资源调度采用的是常见的两层调度,底层资源的管理和分配是第一层调度,交给YARN、Mesos或者Spark的Standalone集群处理,Application从第一层调度拿到资源后,还要进行内部的任务... 阅读详情

相关推荐

【信息科学与工程学】【产品体系】第三十三篇 DPU/smartinic芯片中的学科知识03

需求实现DMA 与流边界检测优化​分级超时状态机(短/中/长)+ 积压计数 + 批量触发DMA 控制器优化​描述符预取(深度 4)+ 中断合并(阈值 8)Fence 语义正确性验证​RTL 断言 + C 语言序列号检测 + 性能对比 + 硬件计数器所有代码均为可综合 Verilog,已在仿真器中通过基本功能测试。在 FPGA 原型上运行上述 RTL,配合 ChipScope 观察 fence 时序在 BlueField-3 上运行 DOCA DPA 测试程序,对比加/不加 fence 的结果。

weixin_49199313的博客 276

LWN: core scheduling的多种应用场景

点击上方蓝色“Linux News搬运工”关注我们~Many uses for Core schedulingByJonathan CorbetLPCkernel开发社...

Linux News搬运工 1045

嵌入式笔试面试题库 250 题|13 章从 C 语言到 FreeRTOS,每题带追问

面试里有两类问题。第一类问「static 有几个作用」,第二类问「串口丢数据你怎么查」。第一类决定你能不能进二面,第二类决定二面之后还有没有下文。 这份合并版 250 题、13 章,把上篇与下篇收在一本: · 上篇 130 题(一至六章):单片机与体系结构、C 语言关键字、指针与内存、位运算与寄存器、中断与并发、编译链接与内存布局; · 下篇 120 题(七至十三章):GPIO 与时钟、定时器与 ADC、串口 I2C SPI、DMA 与中断、FreeRTOS、通信协议与总线、项目与工程实践。 每题结构一致:一段分点参考答案(①②③ 给要点骨架),紧跟一条追问,写明面试官往下会挖哪一层。答案尽量落到三层——现象、根因、验证方法。比如「PWM 出不来波形」,不只列六项检查顺序,还说清为什么 TIM1 容易漏掉 MOE 这一位、怎么用示波器确认。 三个附录:A 是 40 天复习路线(每天 40 分钟,标每天题量与当章重点);B 是十三章自测评分表(现象 / 根因 / 验证三列打分);C 是按现象查题的排障索引,遇到具体问题直接定位到题号。 交付:Word 可编辑版 + PDF 打印版(A4 / 70 页)+ 使用说明。题号连续 Q001–Q250,目录与附录各一套,跨篇追问能顺着查。 说明:寄存器位定义与分频关系按 STM32F103 系列整理,换 F4/F7/G0 需按对应手册核对;FreeRTOS 部分按 10.x 之后接口描述。题库不替代动手调试。

Core Scheduling

core scheduling是v5.14中新增的功能,为什么有core scheduling呢?因为当开启超线程(yperhreading)时,一个物理核就变成了两个逻辑核,但,这两个逻辑核还是要共享物理核的某些缓存的,而,这种共享会带来安全问题(例如:MDS、L1TF等)。core scheduling就是要解决 开启超线程(yperhreading)时所带来的安全问题。

溺水三千只取一瓢饮 1494

政府科技管理者如何提升科技成果评估的准确性与透明度?.docx

政府科技管理者如何提升科技成果评估的准确性与透明度?

双闭环PWM整流器VOC控制 +SVPWM调制仿真(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink平台构建的双闭环PWM整流器VOC(虚拟磁链定向控制)与SVPWM(空间矢量脉宽调制)相结合的仿真模型,系统阐述了三相电压型PWM整流器在电压定向控制策略下的建模方法与控制实现。通过设计外环直流电压控制与内环电流控制的双闭环结构,实现了对整流器的高功率因数运行、能量双向流动及动态性能优化的精确调控。结合SVPWM调制技术,有效提升了直流侧电压利用率并显著降低输出电流谐波含量,增强了系统的整体效率与稳定性。该仿真模型适用于新能源发电、电动汽车充电系统、微电网等高性能电能变换应用场景,文档还配套提供了丰富的学习资源与技术支持渠道,便于深入研究与工程实践。; 适合人群:面向电气工程、自动化、电力电子及相关专业的高校学生、科研人员以及从事新能源、智能电网、电力传动等领域研发工作的工程师;尤其适合已具备自动控制理论、电力电子变换技术和MATLAB/Simulink仿真基础的专业人士进一步深化学习与应用。; 使用场景及目标:①深入理解PWM整流器的工作机理及其双闭环控制系统的架构设计;②掌握VOC控制与SVPWM调制的协同工作机制,提升系统动静态响应性能;③支撑科研课题、课程设计、毕业设计或实际工程项目中的整流器控制系统开发与验证;④作为高级电能变换技术的学习范例,促进对现代电力电子系统控制策略的综合理解与创新能力培养。; 阅读建议:建议结合文中提供的百度网盘链接与公众号资源,下载完整的Simulink仿真模型进行实操演练,在MATLAB环境中调整控制器参数并观察仿真结果,深入剖析控制逻辑与系统响应特性;同时可参考同系列资源如PI双闭环控制、电网不平衡工况下的控制策略等案例,开展对比分析与拓展研究,全面提升系统建模与控制设计的综合能力。

LWN: 5.14 中支持了core scheduling!

关注了就能看到更多这么棒的文章哦~Core scheduling lands in 5.14By Jonathan CorbetJuly 1, 2021DeepL assisted tra...

Linux News搬运工 675

Excel下拉公式不自动计算?5步彻底解决!

Excel下拉公式不自动计算?5步彻底解决!在使用Excel处理数据时,公式下拉填充是提升效率的核心操作。但许多用户都遇到过这样的困惑:明明设置了公式,下拉时结果却纹丝不动。本文将从技术原理出发,结合5步实操方案,为您彻底解析这个高频问题的根源与解决方案。

mmoo_python的博客 1万+

Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

日期 内核版本 架构 作者 GitHub 优快云 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 我们前面提到linux有两种方法激活调度器:核心调度器和 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不

OSKernelLAB(gatieme) 1万+

【笔记软件obsidian】从入门到精通

目录 一、前言 二、下载及安装 三、【选修】ios用户如何通过iCloud进行三平台同步 四、基本Markdown语法 五、【选修】插件的下载及安装方式 六、

patrick的博客 9万+

初识数据结构之入门必懂——线性表(顺序表)

本文将介绍数据结构中的线性表与线性表中最简单的结构——顺序表

m0_64705485的博客 904

常见CPU调度算法

CPU调度 初衷: In a system with a single CPU core, only one process can run at a time. Others must wait until the CPU’s core is free and can be rescheduled. The objective of multiprogramming is to have some process running at all times, to maximize CPU utilizat

大吉 7633

保姆级教程:手把手教你从ENSEMBL官网下载GRCh38/GRCh37的GTF注释文件(附网址规律总结)

本文提供从ENSEMBL官网下载GRCh38/GRCh37的GTF注释文件的详细教程,包括路径解析、版本号确定和下载命令示例。特别解析了GRCh37的特殊存储结构,并分享批量下载、文件校验等高级技巧,帮助生物信息学研究者高效获取基因组注释文件。

weixin_29289821的博客 204

Fast Core Scheduling with Userspace Process Abstraction——论文泛读

SOSP 2024 Paper论文阅读笔记整理 问题 随着网络带宽(最高400Gbps)和IOPS(每秒一百万次)的增加,CPU的性能一直相对停滞不前,并成为主要瓶颈。 为了节省CPU资源,最近的系统(例如盘古[37]、Snap[34]、FaRM[14,15]、MICA[31]、RAMCloud[40]等)采用了内核旁路来消除内核开销并实现裸机硬件性能。将硬件设备映射到用户空间,并广泛使用运行到完成(RTC)模型来运行应用程序逻辑。与此同时,云应用程序(如微服务、无服务器等)通常被打包到共享集群中(

重新开始写博客 1175

SAP MM 物料描述MAKTX 40个字符不够用的问题处理

SAP物料描述表,长度40个字符一般情况下,40个字符在描述中也够用了,但是要加上规格之类的额外描述就不一定了,特别是对于辅助件-刀具。解决方案一:对maktx增强,换成CHAR80或者CHAR100的,但是风险较大,涉及到好多地方,另外SAP+ 算号器 也不支持。解决方案二:增强字段。内部顾问,建议在 那就在这里加一个字段,具体过程如下:1、创建域2、创建架构3、附加架构4、GUI 设置 5、后台设置6、MASS/MM17字段新增。过程1、创建域 SE112、创建结构 se11 3、MARA附加架构

GAVIN 4728

SPI为什么不需要加上拉电阻

大家好,我是记得诚。I2C因为其开漏的结构,无法输出高电平,所以外部加上拉电阻。我们在使用SPI的时候,发现是不需要加上拉电阻的。主要因为SPI多为推挽的结构,推挽电路,高低电平都可以输出,所以外部不需要加上拉电阻。推挽电路可以用2个三极管或者2个MOS管搭建而成。

记得诚 2621

Linux 调度器中的核心调度(Core Scheduling):SMT 场景的隔离优化

摘要:Linux核心调度技术(Core Scheduling)是Linux内核5.14引入的SMT安全隔离机制,通过为任务分配Cookie标识符,确保同一物理核心仅运行同安全域的任务。该技术有效缓解了PortSmash等SMT侧信道攻击,相比完全禁用SMT可减少60-80%性能损失。文章详细介绍了核心调度的原理、环境配置、应用场景(如云计算多租户隔离)和实现方法,包括Cookie管理、性能调优和调试技巧。核心调度可与cgroup等系统集成,适用于金融交易、机密计算等对安全性和性能要求较高的场景,是平衡SMT

望获实时Linux系统 215

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时,如何解决?控制面板-系统和安全-Windows Defender防火墙-自定义设置,将专用网络及公用网络关闭。点击后,选择“病毒和威胁防护”-管理配置。进入安全中心后,选择“病毒和威胁防护”将需要排斥的选项输入后,保存配置即可。2:打开windows安全中心。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 6万+

advanced-java 分布式系统进阶完全指南:系统拆分、Dubbo 架构与分布式锁/事务/会话实战

> 本文基于 advanced-java 项目的 [docs/distributed-system 目录](https://link.gitcode.com/i/a48ff021624df3a72586035be6092221) 所涵盖的分布式系统知识体系,系统梳理从"为什么要拆分系统"到"分布式服务框架(Dubbo)""CAP 定理""分布式锁""分布式事务""分布式会话"的完整技术脉络。读完本

gitblog_00450的博客 458

Redhawk:什么是timing window?

STA timing file中timing window的作用和计算方式

m0_61544122的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux核心调度器之周期性调度器scheduler_tick--Linux进程的管理与调度(十八)

日期 内核版本 架构 作者 GitHub 优快云 2016-6-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 我们前面提到linux有两种方法激活调度器:核心调度器和 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时

OSKernelLAB(gatieme) 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

《linux kernel develpoment》第四章

《linux内核设计与实现》 进程调度 1、多任务

一位不知名的linux爱好者入门 413

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LWN:使用MMTests来对scheduler进行性能测试!

关注了就能看到更多这么棒的文章哦~Scheduler benchmarking with MMTests By Jonathan Corbet May 19, 2020 OSPM 原文...

Linux News搬运工 697

LWN:优化内存中经常需要访问的匿名页!

关注了就能看到更多这么棒的文章哦~Working-set protection for anonymous pagesByJonathan CorbetMarch 19, 2020原...

Linux News搬运工 737

LindDotNetCore~Scheduling任务调度模块的介绍

回到目录 任务调度组件 位于Scheduling目录 基类JobBase,所有JOB都派生自它,重写Cron属性可以修改调度周期 支持单次JOB,即执行完成后马上停止 支持对外API接口,以便获取和修改JOB的列表的状态 源代码展现 自定义Job在继承JobBase之后,可以设置自动的名称,调度周期,是否单次, 和执行过程. public abstract class JobBase : ...

weixin_34220623的博客 265
上一篇: LWN:阻止userfaultfd()处理kernel-fault!
下一篇: LWN:使用loopfs来把loop设备变成容器私有的!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值