我想知道在操作系统中是否实现了一种通用的机制来最小化TLB刷新,例如,通过将同一进程中的线程组合在一个“待调度”列表中。
我认为在决定使用进程还是线程时,这是一个重要的因素。如果操作系统不关心下一个线程是否在相同的进程空间中,那么所谓的线程“最小化TLB刷新”的优势可能被高估了。真的是这样吗?
考虑一个具有数百个线程和数十个进程的系统。如果这些都没有以一种方式进行优化,以便在同一进程中串行调度线程,那么我们对线程性能的期望可能就不会那么高。
如果问题不是那么清楚,我会给出例子。
发布于 2009-07-30 04:01:40
CPU设计看起来像是evolving towards hardware support for tagged TLB entries。这消除了刷新TLB的需要。因此,即使假设TLB刷新对于当今的处理器来说是一个问题,它在几年内也可能不再相关。我不会以此为基础做出任何设计决策。
https://stackoverflow.com/questions/1199805
复制相似问题