处理器亲和性

处理器亲和性又称处理器关联。通过处理器关联可以将虚拟机或虚拟处理器映射到一个或多个物理处理器上。该技术基于对称多处理机操作系统中的native central queue调度算法。队列(queue)中的每一个任务(进程线程)都有一个标签(tag)来指定它们倾向的处理器。在分配处理器的阶段,每个任务就会分配到它们所倾向的处理器上。

处理器亲和性利用了这样一个事实,就是进程上一次运行后的残余信息会保留在处理器的状态中(也就是指处理器的缓存)。如果下一次仍然将该进程调度到同一个处理器上,就能避免一些不好的情况(比如缓存未命中),使得进程的运行更加高效。

调度算法对于处理器亲和性的支持各不相同。有些调度算法在它认为合适的情况下会允许把一个任务调度到不同的处理器上。比如当两个计算密集型的任务(A和B)同时对一个处理器具有亲和性时,另外一个处理器可能就被闲置了。这种情况下许多调度算法会把任务B调度到第二个处理器上,使得多处理器的利用更加充分。

处理器亲和性能够有效地解决一些高速缓存的问题,但却不能缓解负载均衡的问题。而且,在异构系统中,处理器亲和性问题会变得更加复杂。

参见

  • Affinity mask

引用

外部链接