问题标签 [context-switching]

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 投票
2 回答
459 浏览

process - 上下文切换操作系统:建议操作系统进行多少和多频繁的上下文切换?

我被要求回答有关操作系统上下文切换的问题,但我在教科书中找不到答案。

为操作系统推荐多少和多频繁的上下文切换?

0 投票
1 回答
4700 浏览

multithreading - 睡眠/等待线程上的上下文切换

我试图了解操作系统如何处理不同模型中的上下文切换,以更好地理解为什么 NIO 性能在请求数量达到较大峰值的情况下会更好。除了线程数量可能有限制之外,我很好奇在大量请求中执行的阻塞操作如何影响资源利用率。

在每个线程一个请求的模型中,比如基于 servlet 2.5 的 Web 应用程序,如果 499 个线程正在等待数据库 IO 并且只有一个线程需要工作,操作系统上下文是否会在所有这 500 个线程之间切换,试图找到需要工作的线程? 为了执行上下文切换,操作系统必须存储当前线程的状态,并恢复下一个线程的状态。这样做之后,操作系统会发现它不需要任何 CPU 时间,并且会保持上下文切换,直到找到需要工作的线程。另外,这在服务器利用率方面是什么样的?CPU 是否低,因为它主要受交换上下文的 IO 成本的约束,而不是实际计算任何东西?

提前感谢您的帮助。如果你能指出书籍、教科书等的方向,我也会非常感激。

0 投票
2 回答
877 浏览

android - 在 Android 中进行上下文切换时保存 ARM NEON 寄存器

在上下文切换时,Android 将所有 ARM 通用寄存器保存在堆栈中并在之后恢复。

Android OS 是否将 NEON 寄存器存储在堆栈上?

如果没有,如何在多线程和多任务环境中安全使用 NEON?

0 投票
1 回答
148 浏览

multithreading - pthreads 代码未按比例放大

我编写了以下非常简单的 pthread 代码来测试它是如何扩展的。我在具有 8 个逻辑处理器的机器上运行代码,并且我从不创建超过 8 个线程(以避免上下文切换)。随着线程数量的增加,每个线程必须做的工作量越来越少。此外,从代码中可以明显看出线程之间没有共享数据结构,这可能是一个瓶颈。但是,随着线程数量的增加,我的性能仍然会下降。有人可以告诉我我在这里做错了什么。

注意:我在网上找到的所有答案都说创建线程的开销超过了他们正在做的工作。为了测试它,我注释掉了“addNum()”函数中的所有内容。但是,在这样做之后,无论我创建多少线程,代码所花费的时间都是 0 秒。所以我认为没有这样的开销。

0 投票
2 回答
356 浏览

c - centos7中的上下文切换延迟

在我的 C 应用程序中,主进程派生出一个子进程,然后休眠 10 微秒,让子进程有时间做好准备。休眠期过后,父进程向子进程发送信号,开始监听指定端口。

这段代码在 CentOS6 中执行良好,只有少数情况下睡眠时间不足以让子进程在传递来自父进程的信号之前设置其信号处理程序。然而,当这段代码在具有相同系统规范的 CentOS7 中运行时,孩子始终未能及时安装其信号处理程序。我必须将睡眠时间增加到 10 毫秒(长 1000 倍)才能获得与 CentOS6 相同的性能。

我想知道在相同规格的硬件上相对于 CentOS 6 在 CentOS 7 中上下文切换如此缓慢的原因可能是什么?

0 投票
1 回答
483 浏览

linux-kernel - POSIX:如何在线程之间执行上下文切换?

我想使用Xilkernel实现线程之间的上下文切换,但是没有原始的 POSIX 兼容允许停止然后恢复线程的执行。

有谁能帮助我吗?

0 投票
2 回答
5017 浏览

windows - 在哪里可以找到有关 Windows 10 进程调度的详细信息?

我目前正在学习 CPU 调度,并对 Windows 10 的调度细节感到好奇。据我所知,循环调度与不同级别的优先级一起使用,但我在哪里可以找到每个优先级的具体时间量子数和具体的上下文切换时间?这个时间是由所有机器的内核决定的,还是因硬件而异?如果它是基于硬件的,我可以在我自己的机器上找出这些值吗?

0 投票
1 回答
1034 浏览

sql - SQL 查询中函数调用的性能影响(关于上下文切换)

由于 SQL 和 PL/SQL 引擎之间的上下文切换,在 SQL 语句中调用函数是否会对性能产生影响?还是潜在影响取决于调用的函数?

  1. 调用内置函数:
  1. 调用 PL/SQL 函数:

函数调用是否存在性能开销?谢谢。

0 投票
0 回答
313 浏览

java - 从内存的角度来看 JVM 线程和上下文切换

我不确定这是否是一个模糊的问题,如果是,那么我会非常乐意指出一个方向以获得一些清晰。

我有一堆使用 Parallel Runner(它使用 Threadpool)运行的 Java 测试(准确地说是 30 个)。

每个测试大约需要 1 分钟(如果要单独运行,它们是端到端测试)。但是,当它们并行运行时,大约需要 10 分钟。我没有将任何堆大小设置为 JVM arg。

使用 top 命令,我看到当这些并行运行时,我的 CPU 利用率超过 110%。在运行时还要观察一些上下文切换(有时是几十个,有时是 100 秒,很少是 1000 秒)。

想知道增加 JVM 堆大小是否会稍微改善这种情况,或者这完全是一个不相关的参数来解决这个问题?如果它无关紧要,那么我想听听为什么。谢谢。

0 投票
1 回答
2140 浏览

java - Java中多个线程之间的上下文切换

什么构成上下文切换?我知道有时可以使用 sleep() 。我遇到了一个使用 wait() 和 notify() 组合来执行线程间通信的示例,以便一个线程(生产者类)提供数据集,然后等待另一个线程(消费者类)消耗它。

我的问题是关于性能影响,有人认为“CPU 浪费了更多时间进行上下文切换,而浪费了更少的时间进行实际工作”。但是看看这个例子,我认为只有在 CPU 完成所需的一组操作时才会发生上下文切换。那么上面引用的语句背后的逻辑是什么?请找到随附的示例(礼貌:Osborne The Complete Reference Java)。