一道騷面試題目
前幾天有一個小夥伴和笨叔抱怨,最近去某個網際網路大廠面試,遇到一道騷題目,題目是這樣的:
在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面試題
- 一道面試題面試題
- mysql一道面試題MySql面試題
- 一道無聊的題目
- 【理解】一道 JS 面試題JS面試題
- 一道面試題的分析面試題
- 解析一道JS面試題JS面試題
- 面試題目面試題
- bugku一道逆向題目分析
- 一道面試題:去重排序面試題排序
- 一道面試題引起的思考面試題
- 分享一道昨天的面試題面試題
- iOS 每天一道面試題iOS面試題
- 一道柯里化面試題面試題
- 一道java面試基礎題Java面試
- 一道hibernate面試題,求解?面試題
- 一道sql面試題的解答SQL面試題
- 幫忙解答一道面試題面試題
- TX 面試題目面試題
- JavaScript面試題目,JavaScript面試題
- 面試題目收集面試題
- DBA 面試題目面試題
- 面試題目(zt)面試題
- ABAP面試題目面試題
- 一道遞迴陣列面試題遞迴陣列面試題
- 分享一道Go面試必考的題Go面試
- 一道面試題引發的“血案”面試題
- 一道面試題引發的思考面試題
- [js]一道快取類面試題JS快取面試題
- 重做一道Java面試題(Fork/Join)Java面試題
- 一道java面試題分析及思考Java面試題
- 一道sql面試題的求解方法SQL面試題
- 一道以前看過的面試題面試題
- 從一道面試題說開來面試題
- iPhone 常用面試題目iPhone面試題
- 前端面試題目前端面試題
- python面試題目Python面試題