cpu亲和性相关函数和宏 基础讲解[cpu_set_t]
cpu亲和性相关函数和宏讲解:
写在前面:
- 我在查找关于linux cpu宏函数没看到有对宏函数基础的、详细的讲解,笔者便通过官方文档入手,对次进行的翻译和理解希望能帮到对这方面宏有疑惑的读者
- explain: /elem/ 表示为elem变量,这样子便于区分
P.S:#include <sched.h>
动态范围cpu设置
/**
* @description: 因为某些应用程序需要动态大小的cpu集合;如今GLIBC提供了一套宏支持这一点
* 以下函数用来分发和释放cpu集合
*/
cpu_set_t *CPU_ALLOC(int num_cpus);
分配足够大的 CPU 集以容纳该(动态)范围内的 CPU
该动态集合范围为: 0 到 num_cpus-1
size_t CPU_ALLOC_SIZE(int num_cpus);
返回cpu集合的大小,但前提范围是合法的【0 to num_cpus-1】,
这个宏提供了能够设置CPU _*_ s()宏中的参数etsize的值
void CPU_FREE(cpu_set_t *set);
释放cpu集 CPU_ALLOC().基础宏设置
1 /**
2 * @description: 这些宏被用来提供对CPU集合 set 的设置
3 */
4 void CPU_ZERO(cpu_set_t *set);
5 清除设置,让/set/集合不包含cpu
6
7 void CPU_SET(int cpu, cpu_set_t *set);
8 添加/cpu/到/set/集合
9
10 void CPU_CLR(int cpu, cpu_set_t *set);
11 从集合/set/中 移除指定/cpu/
12
13 int CPU_ISSET(int cpu, cpu_set_t *set);
14 测试以查看CPU /cpu/是否是集合/set/的成员
15
16 int CPU_COUNT(cpu_set_t *set);
17 返回集合/set/中有多少个cpu【应该是cpu的数量?】
18 /**系统中第一个cpu对应的/cpu/值为0,第二个cpu的索引/cpu/值为1,以此类推
19 *不应该对 特定的CPU值的可用 或者 CPU连续的集合是连续 进行假设,因为CPU可以动态脱机或以其他方式不存在
20 /**
21 * @description: 这些宏被用来提供对CPU集合 set 的逻辑操作
22 */
23 void CPU_AND(cpu_set_t *destset,
24 cpu_set_t *srcset1, cpu_set_t *srcset2);
25 将/srcset1/和/srcset2/的 交集 存储在/destset/【可能是源集之一(当srcset1 == srcset2)】
26
27 void CPU_OR(cpu_set_t *destset,
28 cpu_set_t *srcset1, cpu_set_t *srcset2);
29 将/srcset1/和/srcset2/的 并集 存储在/destset/【可能是源集之一(当
30
31 void CPU_XOR(cpu_set_t *destset,
32 cpu_set_t *srcset1, cpu_set_t *srcset2);
33 将/srcset1/和/srcset2/的 异或集【XOR】 存储在/destset/
34 XOR意思是,/srcset1/和/srcset2/中有其中一个(集合)存在的信息,另一个(集合)不存在的信息,所有符合这些的信息将被存放于接收集合/destset/
35
36 int CPU_EQUAL(cpu_set_t *set1, cpu_set_t *set2);
37 测试两个集合/set1/和/set2/中是否有相同的CPU
38 // return 1 it mean equal, 0 for unequal带_s 的宏多用于对指定函数的扩展,文档里面没有仔细说明,但基础思路应该并无二致,有需要的可在此基础阅读查阅
source:源码
cpu亲和性相关函数和宏 基础讲解[cpu_set_t]的更多相关文章
- 【转】 管理CPU 亲和性
简单地说,CPU 亲和性(affinity) 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性.Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affi ...
- Linux中CPU亲和性(affinity)
0.准备知识 超线程技术(Hyper-Threading):就是利用特殊的硬件指令,把两个逻辑内核(CPU core)模拟成两个物理芯片, 让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和 ...
- 关于CPU亲和性的测试
今天看到运维的同事在配置nginx的CPU亲和性时候,运维同事说他在所有的机器上都是按照8核的方式来配置worker进程的CPU亲和性的. 但我觉得就是有点不太对劲,就查了一下nginx的处理work ...
- linux cpu亲和性设置
1.设置进程的cpu亲和性程序如下, #Using:g++ setCpuAffinity.c -o setCpuAffinity #include<sys/types.h> #includ ...
- cpu亲和性绑定
将进程与cpu绑定,最直观的好处就是减少cpu之间的cache同步和切换,提高了cpu cache的命中率,提高代码的效率.从cpu架构上,NUMA拥有独立的本地内存,节点之间可以通过互换模块做连接和 ...
- Verilog语法基础讲解之参数化设计
Verilog语法基础讲解之参数化设计 在Verilog语法中,可以实现参数化设计.所谓参数化设计,就是在一个功能模块中,对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用 ...
- NGINX源代码剖析 之 CPU绑定(CPU亲和性)
作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...
- 原生AJAX基础讲解及兼容处理
原文:原生AJAX基础讲解及兼容处理 AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML). AJAX不是新技术 ,但却是热门的技术.它 ...
- JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承
说好的讲解JavaScript继承,可是迟迟到现在讲解.废话不多说,直接进入正题. 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考<面向对象J ...
- Android学习笔记-Adapter基础讲解
本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式 ...
随机推荐
- FFMPEG 信息查询
一.问题描述 最近测试反馈一个隐私模式的问题,主播端启用隐私模式之后,在观看端发现画面转菊花并且还有回跳的现象 二.问题分析: 从网上下载了直播的视频文件,进行了一下分析,发现视频长度和音频长度不匹配 ...
- 霍夫变换原理及实现(Opencv C++)
已知一幅图像中的n个点,假设我们希望找到这些点中位于直线上的子集.一种可能的解决方法是,首先找到由每对点确定的所有直线,然后寻找靠近特定直线的那些点的所有子集.这种方法涉及寻找n(n-1)/2~n2条 ...
- 绑定style
² 对象语法 <div:style="{color: redColor, fontSize: '20px'}">对象写法</div> data: { red ...
- CF Round 881 (Div. 3)
CF Round 881 (Div. 3) Div. 3 果然简单,虽然但是,我还是有 1 道题没有想出来. A.Sasha and Array Coloring 排序双指针向内即可. https:/ ...
- 一个开源且全面的C#算法实战教程
前言 算法在计算机科学和程序设计中扮演着至关重要的角色,如在解决问题.优化效率.决策优化.实现计算机程序.提高可靠性以及促进科学融合等方面具有广泛而深远的影响.今天大姚给大家分享一个开源.免费.全面的 ...
- output打印ElasticSearch搜索条件searchSourceBuilder对象 toString方法
打印搜索条件:log.info(searchSourceBuilder.toString());log.info("es搜索条件:[{}]", searchSourceBuilde ...
- LLM微调方法(Efficient-Tuning)六大主流方法:思路讲解&优缺点对比[P-tuning、Lora、Prefix tuing等]
LLM微调方法(Efficient-Tuning)六大主流方法:思路讲解&优缺点对比[P-tuning.Lora.Prefix tuing等] 由于LLM参数量都是在亿级以上,少则数十亿,多则 ...
- Masonry在视图相对关系处理中的各种“offset”
如果我们需要设置一个view在另一个view的右边缘距离一定距离的地方,利用Masonry这么写: [a mas_makeConstraints:^(MASConstraintMaker *make) ...
- Java实现管线拓扑关系连通性分析
管线拓扑关系的连通性分析通常涉及图论(Graph Theory)中的概念,特别是无向图(Undirected Graph)的遍历算法,如深度优先搜索(DFS, Depth-First Search)或 ...
- 海思SDK 学习 :000-海思HI35xx平台软件开发快速入门之背景知识
背景 参考自:<HiMPP V3.0 媒体处理软件开发参考.pdf> 由于在音视频处理领域,海思芯片占有全球市场的很大份额.当我们选择使用海思芯片开发时,程序开发模型主要是围绕HIMPP( ...