问题标签 [scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1971 浏览

linux - Linux 2.6.31 调度程序和多线程作业

我在具有 24 个内核的共享 Linux 计算机上运行大规模并行科学计算作业。大多数时候,当这台计算机上没有运行其他任何东西时,我的工作能够扩展到 24 个内核。但是,似乎即使不是我的一个单线程作业也在运行,我的 24 线程作业(我将其设置为高值)只能设法获得 ~1800% 的 CPU(使用 Linux 表示法)。同时,大约 500% 的 CPU 周期(同样,使用 Linux 表示法)是空闲的。谁能解释这种行为以及我能做些什么来获得其他人未使用的所有 23 个内核?

笔记:

  1. 万一它是相关的,我在稍微不同的内核版本上观察到了这一点,尽管我不记得是哪一个在我的脑海中。

  2. CPU架构是x64。我的 24 核工作是 32 位的,而我正在竞争的其他工作是 64 位这一事实有可能吗?

编辑:我刚刚注意到的一件事是,增加 30 个线程似乎在一定程度上缓解了这个问题。它使我的 CPU 达到 ~2100%。

0 投票
3 回答
3064 浏览

c++ - 在 C++ 中以特定的间隔速率调用方法

这真的让我很烦,因为我以前做过,大约一年前,我一生都记不起它是什么图书馆。

基本上,问题是我希望能够以指定的时间间隔调用某个方法一定次数或一段时间。

一个例子是我想从现在开始调用一个方法“x”,10 次,每 0.5 秒一次。或者,从现在开始调用方法“x”,10 次,直到 5 秒过去。

现在我以为我为这个功能使用了一个 boost 库,但我现在似乎找不到它,感觉有点恼火。不幸的是,我不能再看代码了,因为我不再拥有它了。

或者,我本可以梦想这一切,它可能是专有代码。假设没有任何东西可以满足我的需求,那么目前产生这种行为的最佳方式是什么?它需要高分辨率,最高可达一毫秒。

它是否阻塞执行它的线程都没有关系。

谢谢!

0 投票
4 回答
8863 浏览

vxworks - VxWorks 调度程序是如何执行的?

想知道如何调用调度程序以便它可以切换任务。就像它的抢占式调度或循环调度一样——调度程序应该参与进来以进行任何类型的任务切换。假设一个低优先级的任务有一个无限循环——调度器什么时候干预并切换到一个更高优先级的任务?

查询是: 1.谁调用调度器?[在 VxWorks 中] 2. 如果它被定期调用 - 该机制是如何实现的?

提前致谢。

——阿什温

0 投票
1 回答
50 浏览

windows - 我们应该为通知组件使用哪个“平台”?

我们需要开发一个通知器组件。它将做的是以给定的时间间隔(例如,每 15 分钟)扫描数据库,以查看是否需要发送任何通知。

我们在 Windows 上运行,因此我们一直在研究 Windows 服务或 Windows 任务计划程序。

我们最大的担忧是我们实施的稳健性。如果它由于某种原因崩溃了,它可以在下一个间隔自动重启吗?我们可以使用自定义日志记录逻辑来处理崩溃吗?

我想对在这里使用什么进行有根据的猜测:) 如果您需要其他信息,请随意说,做出这样的猜测..

如果有人可以列出 Windows 服务与 Windows 任务调度程序的优缺点,则会给出支持。另外,应该注意的是,我们没有设置其中任何一个,所以如果您有任何替代方案,请不要发布。

提前致谢 :)

0 投票
1 回答
867 浏览

algorithm - 多核处理器上的 RTOS 中的群调度

我了解 Gang 调度是一种并行系统的调度算法,它调度相关线程或进程在不同的处理器上同时运行。使用群调度,如果两个或多个线程或进程相互通信,它们都将同时准备好进行通信。但是,群调度算法如何确定特定的一组进程将在它们之间进行通信,从而调度相关的线程或进程在不同的处理器上同时运行?

0 投票
1 回答
1187 浏览

cmd - 为什么使用 WinRAR 归档文件夹的批处理文件需要比预期更长的时间才能完成?

我有这个脚本,它将我所有的文件夹和文件从我的c:\projects目录移动到一个 RAR 存档中c:\backup

我还尝试了以下脚本,它使用相同的源,但为 in中c:\projects的每个文件夹创建一个单独的存档。c:\projectsc:\backup

第二个脚本只需要两个小时即可运行,而我的第一个脚本需要 24 多个小时才能运行。

有什么方法可以让我的第一个脚本更快?

我的第一个脚本不应该更快吗?

0 投票
2 回答
370 浏览

embedded - 确定多核处理器中特定内核的负载

在多核处理器中,有多种方法可以告诉特定应用程序以单核或 2 核或 3 核运行。考虑到应用程序(具有大量线程)在多个内核上运行的场景,调度程序如何能够确定多核处理器中特定内核上的负载(线程数)并相应地分配(平衡)跨各个内核加载(分配线程)?

0 投票
6 回答
137917 浏览

mysql - 每天特定时间的 MySQL 事件调度程序

这是我的查询

如何每天下午 1 点将状态更新为“0”。

我可以用什么代替TIMESTAMP

0 投票
3 回答
26229 浏览

c - 如何创建新的 Linux 内核调度程序

翻看调度器源码(2.6.34,kernel/sched.c),可以看到“可插拔”调度器是如何使用的,相信我理解了要实现的接口。我还不明白如何将我的代码内置到内核中。至少,将不胜感激指向其他站点的指针。

现在,我正在内核源代码树中寻找 SCHED_FIFO、SCHED_RR 和 SCHED_NORMAL,所以我真的在寻找一种更有洞察力的方法来查看它:-)

编辑:作为一些背景,我非常熟悉 FreeBSD 调度程序(以及一般的 FreeBSD 内核),所以我不是在寻找有关如何进行进程/线程级调度的指针。我正在寻找一种方法来添加我自己的调度程序以及普通的 linux 调度程序(类似于 SCHED_FIFO)。

编辑#2:下面的 BFS 指针是一个好的开始,但它仍然将 CFS 从内核中剥离出来。sched.c 现在看起来像:

我很想看到如何更好地做到这一点的答案或指针(即,至少现在保留 CFS)。

编辑#3:我已经在下面回答了我自己的问题,因为我想我已经弄清楚了。

0 投票
1 回答
1552 浏览

linux - 收集有关 Linux 上的线程调度的信息

我想收集有关我的线程何时被调度(和取消调度)以及在 Linux 上的 CPU 上的信息。我很乐意收集信息并将其存储在文件中以供以后离线分析,因为我需要将调度信息与我的代码生成的其他事件源合并。理想情况下,信息将由程序本身收集,因为我计划大部分时间使用机器上的所有内核,并且使用外部进程进行采样会干扰我想要测量的执行。

那么这在Linux上可能吗?有什么选择?