当前位置:  技术问答>linux和unix

[内核并发]并发数据的处理

    来源: 互联网  发布时间:2016-08-02

    本文导语:  想提高内核的处理能力,具体如下所示: A  ->             ->A'      B  ->   -> D ->   ->B'  C  ->             ->C' 如上图所示,并发线程A,B,C,处理完数据后全部交给D处理,D完成任务后,将处理...

想提高内核的处理能力,具体如下所示:
A  ->             ->A'     
B  ->   -> D ->   ->B' 
C  ->             ->C'

如上图所示,并发线程A,B,C,处理完数据后全部交给D处理,D完成任务后,将处理后的数据分别返还给A,B,C线程继续处理。

求助,在内核中采用什么机制可以实现该方案,保证A,B,C的并发进行。

|

跟数据buffer的设计思想有关。例如 buffer_A, buffer_B, buffer_C三个,那对于D处理就好办多了,连锁都不用加。

|
ABC线程的并行不用你操心

处理完数据后全部交给D处理,D完成任务后,将处理后的数据分别返还给A,B,C线程继续处理
------------
使用用户空间的锁和信号灯集就行了
不用你深入内核去

|
看你的描述有点像多核下,多核下保护我认为最关键的应该是数据,根据数据的读写特点(读多于写、只写只读等等),多核下有spinlock、RCU、wrlock锁。
如果是单核的话就是多线程可以使用up/down。
用户态如果是线程间的使用pthread_metux,如果是进程间的需要使用IPC的信号灯

|


不是多核的话,并发可能有时候就没多大意义。毕竟只能有一个在执行。反而增加一些协调和切换的开销。



千里孤行

|
单核的并发是假的, 且增加程序的复杂性, kernel的程序越简单越好,可以放应用层去做, 自动并发了。

    
 
 

您可能感兴趣的文章:

  • 关于linux内核中信号处理的问题?(信号处理的时间)
  • 关于linux内核中中断处理的问题
  • 请教内核高手,抽空解释一下系统中断调用处理流程
  • [请教内核高手]内核在何处处理接收到的信号
  • 纯技术贴开始:如何使用HOOK从内核偷包处理,绕开协议栈?????
  • 在linux内核中如何添加注册自己的网络协议处理函数?谢谢
  • linux内核中的关于热启动的处理代码在哪里哦 ?
  • 请问发送数据成功后返回的ack是在内核的什么地方处理的?
  • 我编译的linux内核在威盛C3处理器上启动不了。。。
  • arm+linux2.4编译内核出错,错误是关于fp的,请问fp是什么意思,是分频还是浮点处理.
  • linux中断处理 如何调用内核的中断操作
  • 为什么内核模块在中断处理中(INT3),使用current->tgid,机子就会死掉[suse11 linux-2.6.27.45-0.1]
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux内核中影响tcp三次握手的一些协议配置
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 进程内核栈和操作系统内核栈的关系
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • Linux中内核线程不访问内核态地址空间?
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 2.6内核下编译2.4内核
  • linux内核中的likely宏和unlikely宏介绍及用法
  • 谁能提供kgdb内核补丁内核模块的下载
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 编译新内核后怎么进入原来内核
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • docker使用的技术之Container内核原理介绍
  • 内核模块跟内核版本不匹配????????
  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • linux为什么要升级内核?升级内核有何作用?
  • 内核升级后,如何在新的内核中加载显卡驱动?
  • 内核源码和结果make过的内核源码有什么区别
  • 不重新编译内核能修改内核函数吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3