每CPU变量主要是数据结构的数组,系统的每个CPU对应数组的一个元素,一个CPU不应访问与其他CPU对应的元素,另外,它可以随意读写它自己的元素而不担心出现竞争条件。
但这意味着每CPU变量基本上只能在特殊情况下使用,也就是当它确定在系统的CPU上的数据在逻辑上十独立的时候。
内核抢占可能使每CPU变量产生竞态条件:一个CPU获取了它的每CPU变量本地副本的地址,然后它因被抢占而转移到另外一个CPU上,但仍然引用原理CPU的地址
文章标签 每CPU变量 内核同步 文章分类 运维
每CPU变量主要是数据结构的数组,系统的每个CPU对应数组的一个元素,一个CPU不应访问与其他CPU对应的元素,另外,它可以随意读写它自己的元素而不担心出现竞争条件。
但这意味着每CPU变量基本上只能在特殊情况下使用,也就是当它确定在系统的CPU上的数据在逻辑上十独立的时候。
内核抢占可能使每CPU变量产生竞态条件:一个CPU获取了它的每CPU变量本地副本的地址,然后它因被抢占而转移到另外一个CPU上,但仍然引用原理CPU的地址
下一篇:内核同步之优化屏障与内存屏障
临界区:访问和操作共享数据的代码段。中断安全代码:在中断处理程序中能避免并发访问的安全代,可以防止多于一个的执行线程同时进入临界区。一个被...
线程同步之条件变量
对于多线程程序来说,同步是指在一定的时间内只允许某一个线程访问某个资源 。 而在此时
内核编程中常见的一种模式是,在当前线程之外初...
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M