gpt4 book ai didi

c - 多核套接字有什么好处吗? (Linux)

转载 作者:太空狗 更新时间:2023-10-29 12:20:33 27 4
gpt4 key购买 nike

我自己找不到这样一个问题的答案:

在多核机器上,套接字通常有什么好处/提升吗?我的意思是可能有某种共享访问从以太网卡驱动程序或 smth 进入内核的数据包队列。

我知道,当涉及到 API 调用时,可以有多个线程与一个套接字实例一起工作,但是程序员需要同步和正确播放读/写/关闭/选择等调用。所以在那级别我只看到在处理分派(dispatch)的数据包和后处理等方面的好处......或者在系统调用期间复制数据包并传输到用户空间之前没有速度提升?

最佳答案

多核的好处取决于如何在您的算法中实现并发。以接收以太网为例,其中涉及4个任务。

  1. 收到数据包后,NIC 硬件触发中断,CPU 在中断上下文中处理中断。
  2. 网络堆栈在软件 irq 机制中处理 RX 数据包。软件 irq 请求可以在多个 CPU 上并发运行。在网络栈 RX 函数中,它将网络缓冲区传递给套接字并唤醒在套接字处挂起的用户线程。
  3. 用户线程唤醒并继续用户应用程序代码接收或处理接收到的网络数据包。

1) 只能在一个 CPU 上运行,2) 可以在多个 CPU 上运行,3) 对于多进程或多线程应用程序,也可以在多个 CPU 上运行。

关于c - 多核套接字有什么好处吗? (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com