相关疑难解决方法(0)

多核机器上的Node.js

Node.js看起来很有趣,我必须错过一些东西 - 不是Node.js只调整为在单个进程和线程上运行吗?

那么它如何扩展多核CPU和多CPU服务器?毕竟,尽可能快速地制作单线程服务器,但是对于高负载我想要使用多个CPU.同样可以使应用程序更快 - 似乎今天的方式是使用多个CPU并并行化任务.

Node.js如何适应这张图片?它的想法是以某种方式分发多个实例或什么?

javascript node.js node-cluster

582
推荐指数
14
解决办法
17万
查看次数

如何控制进程运行的核心?

我可以理解如何编写一个使用多个进程或线程的程序:fork()一个新进程并使用IPC,或创建多个线程并使用这些通信机制.

我也理解上下文切换.也就是说,只有一次CPU,操作系统为每个进程安排时间(并且有大量的调度算法),从而我们实现了同时运行多个进程.

现在我们拥有多核处理器(或多处理器计算机),我们可以在两个独立的核心上同时运行两个进程.

我的问题是关于最后一个场景:内核如何控制进程运行的核心?哪些系统调用(在Linux,甚至是Windows中)在特定核心上安排进程?

我问的原因是:我正在为学校开展一个项目,我们将在那里探索最近的计算主题 - 我选择了多核架构.关于如何在这种环境中编程(如何监视死锁或竞争条件)似乎有很多材料,但在控制各个核心本身方面却没有太多.我希望能够编写一些演示程序并提供一些汇编指令或C代码,以实现"看,我在第二个内核上运行无限循环,查看该特定内核的 CPU利用率峰值" .

任何代码示例?还是教程?

编辑:为了澄清 - 很多人都说这是操作系统的目的,应该让操作系统处理这个问题.我完全同意!但那时我所要求的(或试图感受到)是操作系统实际上做的事情.不是调度算法,而是"一旦选择了核心,必须执行哪些指令才能让核心开始获取指令?"

multicore intel instruction-set system-calls

57
推荐指数
4
解决办法
5万
查看次数

从linux上开始设置进程的cpu亲和性

我想在启动时在linux上设置进程的cpu亲和性.

有像sched_setaffinity和taskset这样的方法,但它们需要进程的processid.它们可能导致潜在的迁移,例如在核心上启动进程,但在使用sched_setaffinity/taskset之后,它们被迁移到另一个核心.

我想要做的是从一开始就在特定核心上开始一个新的过程.

linux operating-system linux-kernel taskaffinity

14
推荐指数
1
解决办法
1万
查看次数