一道騷面試題目
前幾天有一個小夥伴和笨叔抱怨,最近去某個網際網路大廠面試,遇到一道騷題目,題目是這樣的:
在arm64 SMP系統裡,執行如下程式碼片段,a和b的初始值都為0.
CPU0先執行了a=1和b=1,然後CPU1執行while的判斷語句,最後執行assert()語句,請問,有沒有可能assert會失敗?如何fix?
這位小夥伴和麵試官說,有可能是CPU0執行了亂序,比如CPU亂序或者編譯器亂序導致的。面試官說,這道題目的執行次序是這樣的,CPU0先執行了a=1和b=1,然後CPU1才執行while迴圈的,你在想想assert會不會失敗?
這位小夥伴被搞暈了:還有這麼騷的面試題目,暈了~~
笨叔覺得這個題目有蹊蹺,必須從體系結構的快取一致性協議和記憶體屏障結合的地方來入手,中西醫結合。一條簡單load和store指令在SMP中並不簡單,需要結合MESI協議來分析的。
笨叔把這個題目的講解,放到了第三季旗艦篇視訊課程裡:arm64體系結構與程式設計。
同時,卷2也會講解這個題目。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005277/viewspace-2869915/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分享一波特別騷的 PHP 面試題目PHP面試題
- 一道面試題的分析面試題
- 【理解】一道 JS 面試題JS面試題
- TX 面試題目面試題
- 一道面試題引起的思考面試題
- 一道面試題:去重排序面試題排序
- 一道柯里化面試題面試題
- 分享一道昨天的面試題面試題
- iPhone 常用面試題目iPhone面試題
- 測試面試題目求解答面試題
- 一道面試題引發的思考面試題
- 一道面試題引發的“血案”面試題
- 一道遞迴陣列面試題遞迴陣列面試題
- 分享一道Go面試必考的題Go面試
- [js]一道快取類面試題JS快取面試題
- 面安服的一道筆試題筆試
- mysql面試常見題目MySql面試
- 變態的面試題目面試題
- 蛇皮的Python面試題目Python面試題
- 聊聊一道簡單的javascript面試題JavaScript面試題
- 一道高階iOS面試題(runtime方向)iOS面試題
- 從 Google 的一道面試題說起·Go面試題
- 關於PHP字串的一道面試題PHP字串面試題
- 一道與 for 相關的字串面試題字串面試題
- 從一道場景面試題談起面試題
- 今天BOSS約了個面試,HR直接發我一道面試題面試題
- 想了很久,一道Microsoft的筆試題目 —— Reversing Linked ListROS筆試
- 一道無聊的題目
- bugku一道逆向題目分析
- AI筆試面試題庫-Python題目解析1AI筆試面試題Python
- AI筆試面試題庫-Python題目解析3AI筆試面試題Python
- AI筆試面試題庫-Python題目解析4AI筆試面試題Python
- 面試題目-遍歷,點選面試題
- .net面試題目1-50面試題
- 求職遇到的面試題目求職面試題
- 從一道面試題談 Array.prototype.push()面試題
- 一道面試題,手寫原生ajax和jsonp面試題JSON
- 從一道面試題探究 Integer 的實現面試題