2015-04-02 18 views
-1

在一個4處理器系統中,三個處理器中的哪一個(所有三個處理器正在旋轉以獲取自旋鎖)將獲取第四個處理器發佈的自旋鎖?哪個處理器會獲得自旋鎖?

+0

除非你有類似門票鎖的東西,否則無法知道。此外,如果有一種方法可以知道某個特定的平臺,則不同的平臺不一定具有相同的內存排序,所以「4處理器系統」太模糊。 – Damon 2015-04-02 11:53:29

+0

[哪個處理器可能會獲得螺旋鎖?](http://stackoverflow.com/questions/29413987/which-processor-will-acquire-the-spinlock) – Damon 2015-04-02 13:58:11

+0

我已刪除重複的帖子,以便繼續作爲查詢的獨奏帖子。 – Madara 2015-04-06 08:46:58

回答

2

在一個簡單的自旋鎖中它是不確定的。測試自旋鎖釋放後的第一個處理器將獲得它。這可能會導致飢餓,當一個進程永遠不會獲得鎖時,因爲在等待進程繼續獲取它之後請求鎖的進程。出於這個原因,處理器時間的繁忙等待大多數操作系統的時間並不意味着這樣的自旋鎖。 Windows具有排隊的旋轉鎖定,而Mac OS X和Solaris使用自適應互斥鎖。