處理器親和性

處理器親和性又稱處理器關聯。通過處理器關聯可以將虛擬機或虛擬處理器映射到一個或多個物理處理器上。該技術基於對稱多處理機操作系統中的native central queue調度算法。隊列(queue)中的每一個任務(進程線程)都有一個標籤(tag)來指定它們傾向的處理器。在分配處理器的階段,每個任務就會分配到它們所傾向的處理器上。

處理器親和性利用了這樣一個事實,就是進程上一次運行後的殘餘信息會保留在處理器的狀態中(也就是指處理器的緩存)。如果下一次仍然將該進程調度到同一個處理器上,就能避免一些不好的情況(比如緩存未命中),使得進程的運行更加高效。

調度算法對於處理器親和性的支持各不相同。有些調度算法在它認為合適的情況下會允許把一個任務調度到不同的處理器上。比如當兩個計算密集型的任務(A和B)同時對一個處理器具有親和性時,另外一個處理器可能就被閒置了。這種情況下許多調度算法會把任務B調度到第二個處理器上,使得多處理器的利用更加充分。

處理器親和性能夠有效地解決一些高速緩存的問題,但卻不能緩解負載均衡的問題。而且,在異構系統中,處理器親和性問題會變得更加複雜。

參見

引用

外部連結