标签: scheduling

Windows 处理器关联如何与超线程 CPU 配合使用?

Windows 处理器关联如何与超线程 CPU 配合使用?让我们使用具有四个内核的系统的示例(如图),每个内核都有一个超线程虚拟内核。

  1. 下面的每个“CPU”对应哪些核心?
  2. 是否(例如)下面的 CPU 6 和 CPU 7 代表一个内核;HT和真正的核心?
  3. 例如,如果 CPU 6 代表一个真正的核心,而 CPU 7 代表一个 HT 核心,那么只分配给 CPU7 的线程是否只能获得真正核心的剩余资源?(假设核心正在运行其他任务)
  4. 超线程是否完全在处理器内进行管理,以便线程在内部进行处理?如果是,那是在 CPU 范围内还是在核心范围内?示例:如果 CPU 6 和 7 代表一个核心,那么分配给哪个进程无关紧要,因为 CPU 会为正在运行的线程分配适当的资源?
  5. 我注意到长时间运行的单线程进程在核心周围反弹了很多,至少根据任务管理器。这是否意味着将进程分配给单个内核会稍微提高性能(通过避免上下文切换和缓存失效等)?如果是这样,我可以知道我没有分配给“只是一个虚拟核心”吗?

这对我来说都是非常模糊和混乱的。HT 很棒,但它似乎确实降低了资源分配的透明度。

处理器关联菜单

windows scheduling hyper-threading affinity

29
推荐指数
2
解决办法
2万
查看次数

WinSCP(或类似工具)是否有类似 rsync 的模式?

我需要能够将 Windows 7 x64 笔记本电脑上的内容定期同步到我的异地 CentOS 6 网络服务器。

是否有像 rysnc 的 WinSCP 或类似工具/模式?

出于各种原因,Dropbox 不是这里的选项。

backup sync rsync scheduling winscp

11
推荐指数
1
解决办法
5531
查看次数

Linux/Bash,如何在 FIFO 队列中调度命令?

我希望能够安排在 FIFO 队列中运行的命令。我不希望它们像“at”命令那样在将来的指定时间运行。我希望它们现在就开始运行,但不是同时运行。只有在第一个命令完成执行后,才应运行队列中的下一个计划命令。或者,如果我可以指定队列中可以同时运行的最大命令数,那就太好了;例如,如果同时命令的最大数量为 2,那么队列中最多只有 2 个调度命令会以 FIFO 的方式从队列中取出来执行,剩余队列中的下一个命令仅在以下命令中的一个时开始当前 2 个正在运行的命令完成。

我听说 task-spooler 可以做这样的事情,但是这个包似乎没有得到很好的支持/测试,并且不在 Ubuntu 标准存储库中(我正在使用 Ubuntu)。如果这是最好的选择,那么请告诉我,我将使用 task-spooler,否则,我有兴趣找出使用 bash 执行此类操作的最佳、最简单、经过最多测试、无错误、规范的方法是什么。

更新:

简单的解决方案,如;或 bash 中的 && 不起作用。当事件发生时,我需要从外部程序安排这些命令。我只是不想让我的命令的数百个实例同时运行,因此需要一个队列。有一个外部程序可以触发事件,我可以在其中运行我自己的命令。我想处理所有触发的事件,我不想错过任何事件,但我也不希望我的系统崩溃,所以这就是为什么我想要一个队列来处理我从外部程序触发的命令。

bash scheduling queue scheduled-tasks

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

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

除非使用相同的 shell,否则 nice 在 Linux 中无效

如果我输入两个不同的根终端:

nice -n 19 burnK7 &
Run Code Online (Sandbox Code Playgroud)

nice -n -19 burnK7 &
Run Code Online (Sandbox Code Playgroud)

然后两个进程都获得大约 50% 的可用 CPU 时间——这不是预期的,当然也不是所期望的。

如果我在同一个根终端中运行:

 nice -n 19 burnK7 &
 nice -n -19 burnK7 &
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,第一个进程收到大约 0% 的可用 CPU 时间,第二个进程收到大约 100% 的可用 CPU 时间。

这是错误还是功能?

我正在单核机器上运行带有 3.16 版内核的 Arch Linux,这是值得的。

cpu scheduling nice

6
推荐指数
1
解决办法
1396
查看次数

多核系统。核心是如何“排序”的

如果我有一个系统,假设启用了两个四核 CPU 和超线程,我怎么知道物理和虚拟内核是如何排序的?例如,如果我强制一个进程在“CPU 0”上运行,如何知道这到底是哪个核心?我记得关于这个的复杂绘图,但没有发现任何有用的东西。

更新:在与程序员讨论后,我确信将程序/线程绑定到特定核心是没有意义的。在大多数情况下,最好让操作系统决定使用哪个内核。然而,枚举的工作方式仍然很有趣。

scheduling process multi-core

5
推荐指数
1
解决办法
230
查看次数

在专用处理器或核心上运行虚拟机

我们的基本系统在 Linux 上运行,但不幸的是 UI 必须在 Windows 上。说来话长。但这就是要求。所以我们的想法是使用 VirtualBox 或 Xen 在虚拟机中运行 Windows。由于我们的实时性能限制,我们希望将虚拟机隔离到单个处理器(在多处理器计算机的情况下)或处理器核心(在多核处理器的情况下)。

这样的事情可能吗?可以在运行虚拟机的进程上设置处理器(核心)关联性吗?对于这一要求,一个虚拟化平台是否比另一个更好?我对 Xen、KVM、VirtualBox、OpenVZ 等感到困惑。

cpu scheduling virtual-machine affinity

5
推荐指数
1
解决办法
6741
查看次数

操作系统本身是否占用资源(除了安装它的空间)?

我刚刚完成了一门关于操作系统的课程,操作系统的定义对我来说仍然不清楚。有没有操作系统本身占用CPU、内存等资源?例如,调度算法必须使用一些处理能力来比较任务,以查看哪个先执行以及任务所在的任何数据结构占用空间。

此外,知道如何处理虚拟内存的行为必须进行占用资源的计算,对吗?

假设地说,如果一台只有一个程序但没有操作系统的计算机正在运行该程序,那么该程序将比在同一台计算机上运行该程序更快,但有一个操作系统。真的吗?

编辑:我同意这门课程完全是废话,出于娱乐目的,这里是我们给出的操作系统的定义

什么是操作系统?• 几种可能的定义 1. {Microsoft, Apple, Linux community, Google} 提供的代码 2. 你所依赖的代码你也没有写 3. 在特权模式下运行的代码 4. 创造事物的代码工作 5. 使事情崩溃的代码(相当愤世嫉俗的定义) 6. 以及许多其他...

什么是操作系统 • 抽象——为在计算机上执行的应用程序提供适当的接口以访问该计算机的资源——很大程度上取决于我们如何定义“适当的” • 一种解决不同问题的方法——时间性能——空间性能——共享和资源管理 – 容错 – 安全 – 适销性

这种对我们不得不花费 100 美元以上的教科书的嘲弄,将操作系统定义为“几乎所有其他东西都依赖于这种软件。这仍然含糊不清,但随后整个行业都以相当模糊的方式使用该术语”。

operating-systems scheduling desktop-computer

2
推荐指数
1
解决办法
237
查看次数