问题标签 [context-switch]

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 投票
3 回答
1276 浏览

asp-classic - 经典的 asp——最好做很多 response.write 或使用 <%

我在经典 ASP 中编辑一些遗留代码,这些代码使用大量如下代码:

response.write在此示例中,pf 是一个实用函数,它与换行符 基本相同。

我宁愿做这样的事情:

我是asp的新手,但我听说过上下文切换,而且它可能很昂贵。这两个选项哪个更昂贵?

0 投票
3 回答
249 浏览

c - 高效切换堆栈

由于某种原因,我切换堆栈以在我的应用程序中调用某些函数。为此,我使用makecontext/getcontext/swapcontext。但是,我发现它太慢了。为此,我尝试使用定制代码,它保存堆栈指针和其他寄存器,然后为堆栈指针分配我想用作堆栈的新内存的值。但是,我不断收到堆栈粉碎检测到的错误。

操作系统是否为堆栈设置了一些特殊权限,否则这里有什么问题?如何规避问题。

0 投票
2 回答
4071 浏览

.net - 任务线程上下文切换

我正在阅读并阅读到,如果我在 .Net 中使用任务而不是线程,它们将不会受到线程有问题的上下文切换的影响。

然而,阅读时我也注意到任务只是在幕后使用线程。

所以我有点困惑,任何澄清表示赞赏。

0 投票
2 回答
3225 浏览

process - 以下哪项涉及上下文切换?

以下哪项涉及上下文切换?

A. 系统调用

B. 特权教学

C. A & B

D. 这些都不是

0 投票
3 回答
1587 浏览

embedded - Context switching in uC/OS (embedded systems)

I'd like to know if its possible to have an interrupt force the scheduler to switch context to a specific task in RTOS. I'm working with microCOS OS

Here is the task which performs the keyscan and posts the character into a mailbox, I need to add some more features to this code like debounce and auto repeat but I need to sort out a trigger mechanism to get it working properly.

I am not sure how to use polling or interrupts to accomplish this

0 投票
1 回答
299 浏览

linux - 在下面的模型中从上下文切换到颠簸的退化?

我有一个组件,它执行以下操作

  1. 使用基于源 A 的 tcp/ip 构建的自定义协议通过网络接受 SINGLE 消息
  2. 处理消息(大约需要 500 微秒)
  3. 使用基于 tcp/ip 构建的自定义协议通过网络将消息发送到不同的组件,例如端点 B
  4. 从端点 B 接收 ACK
  5. 向源 A 发送 ACK

冲洗并重复上述 5 个步骤。重要的是要了解源 A 不会发送第二条消息,直到它收到前一条消息的 ACK。

如您所见,该进程在以下情况下处于空闲状态

  1. 源 A 通过网络向组件发送一条消息的时间。源 A 和组件都在同一个 VLAN、以太网中。

  2. 组件将处理后的消息发送到端点 B 的时间。端点 B 也在通过以太网连接的同一 VLAN 中。

  3. 组件从端点 B 接收 ACK 的时间。

  4. 组件向源 A 发送 ACK 的时间。

以上是对组件职责的描述。从部署的角度来看,我计划在一台 8 核机器上生成 100 个这些组件。没有其他东西可以在机器上运行。端点 B 和源 A 都在不同的机器上,并且一切都在同一个以太网中。我的问题是,上述生成大量组件的模型是否会花费大部分时间等待网络 IO 导致上下文颠簸?如果是,为什么?

0 投票
3 回答
188 浏览

c++ - 跟踪多线程中对数据的引用(多少/谁)

我在多线程中遇到了一个问题,多线程模型是 1 Producer - N Consumer。

Producer 生成数据(每个字符数据大约 200 字节),将其放入固定大小的缓存中(即 2Mil)。数据与所有线程无关。它应用过滤器(已配置)并确定没有线程符合生成的数据。

生产者将指向数据的指针推送到合格线程的队列中(仅指向数据的指针以避免数据复制)。线程将 deque 并通过 TCP/IP 将其发送给它们的客户端。

问题:由于只有指向数据的指针提供给多个线程,当缓存变满时,Produces 想要删除第一项(旧项)。任何线程仍然引用数据的可能性。

可行的方式:使用原子粒度,当生产者确定符合条件的线程数时,它可以更新计数器和线程ID列表。

查切大师

当生产者删除它检查计数器的元素时,它大于 0,它会发送动作以释放对 m_in_use_threads 集中线程的引用。

问题

  1. 如果主缓存中有 2Mil 记录,则 InUseCounter 的数量将相等,因此 Mutex 变量,是否建议在单个进程中拥有 2Mil 互斥变量。
  2. 拥有大的单一数据结构来维护 InUseCounter 将导致更多的锁定时间来查找和减少
  3. 什么是我查找引用的最佳替代方法,以及谁拥有这些引用并且锁定时间非常短。

提前感谢您的建议。

0 投票
3 回答
9704 浏览

operating-system - 我们如何减少上下文切换时间

我们都知道上下文切换时间是纯粹的开销并且没有用。但我想知道如何减少上下文切换时间。使用更多寄存器是否有助于我们这样做?

0 投票
3 回答
5777 浏览

process - 没有上下文切换的系统调用?

当我遇到这个时,我正在阅读 linux 在我的操作系统手册中的工作原理。

[...] 内核被创建为一个单一的、单一的二进制文件。主要原因是为了提高性能。因为所有内核代码和数据结构都保存在单个地址空间中,所以当进程调用操作系统函数或传递硬件中断时,不需要上下文切换。

这对我来说听起来很神奇,它肯定必须在运行到内核模式来处理中断之前存储进程的上下文。但是好的,我现在就买它。在几页上,在描述进程的调度上下文时,它说:

进程执行时发生的系统调用和中断都将使用此堆栈。

“这个堆栈”是内核存储进程寄存器等的地方。

这不是与第一句话直接矛盾吗?我是否以某种方式误解了它?

0 投票
2 回答
563 浏览

windows - Windows - 发生上下文切换时线程ID更改

当上下文切换(由于任何原因)发生时,线程 ID 是否会改变?