157得票9回答
线程上下文切换与进程上下文切换

有人能告诉我这两种情况精确地做了什么吗?它们每个主要的成本是什么?

83得票3回答
上下文切换内部机制

我想通过这个问题的帮助来学习并填补我的知识漏洞。 因此,用户正在运行一个线程(内核级别)并且现在调用yield(我认为是一个系统调用)。调度程序现在必须将当前线程的上下文保存在TCB中(存储在内核中的某个地方),选择另一个要运行的线程并加载其上下文,然后跳转到其CS:EIP。为了缩小范围,我...

76得票4回答
在Linux中,测量C程序缓存命中/未命中和CPU时间的最简单工具是什么?

我正在用C语言编写一个小程序,想要测量它的性能。 我想要看到它在处理器上运行的时间以及它产生了多少高速缓存命中与未命中。同时了解有关上下文切换和内存使用情况的信息也很不错。 该程序执行时间不到1秒。 我喜欢/proc/[pid]/stat提供的信息,但我不知道如何在程序死亡/被杀死后查看...

60得票2回答
系统调用和上下文切换

非常抱歉,我要问这个问题时已经被问过了,但我无法从他们那里得到清晰的答案。因此,我提出以下相关问题,以便了解系统调用(模式切换)和上下文切换之间的区别 为什么说系统调用不需要上下文切换,当调用进程的上下文必须被保存然后重新加载。这只是因为根据上下文切换的定义,必须切换到另一个进程吗? 什么...

56得票4回答
上下文切换的步骤

我被要求描述在(1)两个不同进程之间和(2)同一进程中的两个不同线程之间进行上下文切换的步骤。 在上下文切换期间,内核将保存旧进程的上下文信息到它的PCB中,并加载新进程的已保存上下文以运行。 操作系统可以安排同一进程中的两个不同线程之间进行上下文切换,使它们看起来并行执行,因此通常比两个...

36得票4回答
上下文切换的开销是什么?

最初我认为上下文切换的开销是TLB被刷新,但我在维基百科上看到: http://en.wikipedia.org/wiki/Translation_lookaside_buffer 2008年,英特尔(Nehalem)[18]和AMD(SVM)[19]都引入了标记作为TLB条目的一部...

31得票1回答
Linux内核中的schedule()和switch_to()函数实际上是如何工作的?

我正在尝试理解Linux内核中调度进程的过程,我的问题不是关于调度算法,而是涉及schedule()和switch_to()函数的工作原理。 简单来说: 当一个进程用完时间片后,scheduler_tick()会设置标志need_resched。内核检查该标志是否被设置,如果被设置,则调用...

27得票6回答
在Linux操作系统中编写一个C程序来测量上下文切换所花费的时间。

我们能够编写C程序来在Linux中查找上下文切换所花费的时间吗?如果您有代码,能否分享一下?谢谢。

19得票1回答
同一进程中线程之间的上下文切换成本,在Linux上的表现

有没有关于 Linux(主要是 x86 和 x86_64)同一进程内线程上下文切换成本的良好实证数据?我指的是一个线程在用户空间执行最后一条指令之前自愿或被动地入睡,并且另一个线程在同一 CPU/内核上唤醒后执行的第一条指令之间的周期数或纳秒数。 我编写了一个快速测试程序,将两个分配给同一 ...

17得票3回答
系统调用开销

我刚开始学习系统调用。 我想知道发生系统调用时会导致什么开销。 例如,如果我们考虑 getpid() 函数,当调用 getpid() 时,我的猜测是,如果控制权当前在子进程中,则必须进行上下文切换才能进入父进程以获取 pid。这是否会对开销造成贡献? 此外,当调用 getpid() 时,将...