1. 程式人生 > >百度系統工程師面試

百度系統工程師面試

2點鐘面試 12點就出發了,在首創大廈找了好久 像定向越野一樣

面試官和我差不多大,面試總共花了一個小時,最開始就是簡單做個自我介紹然後開始問專案相關內容,最後留了20分鐘問基礎資料結構和作業系統知識。

1、專案相關:

專案部分我主要做的是環形陣列雙雜湊表比對,裡面的雜湊表還有環形陣列都不是我寫的,所以被認為工作量很少 此話不假 - - 一直在原地打轉還沒深入下去被鄙視了..

這部分問主要遇到了什麼問題,說是遇到了網絡卡Rec-Q滿的情況,後來發現是解析包那個CPU壓力太大了就用了多個執行緒解決這個問題。

問是怎麼發現問題在這兒的?

除錯工具是什麼?(我回答GDB)

用GDB除錯多執行緒應該怎麼調?

網絡卡頻寬是多少的?

CPU壓力那個有沒有深究原因?(我說定位到了解決了問題就沒再深究,CPU分組,組間競爭,組內競爭這些)

程式沒有正常執行的時候CPU的使用情況是怎麼樣的?

資料分析部分雙雜湊表各分配了多大的記憶體?

環形陣列不加鎖是怎麼實現的?

環形陣列同時讀會不會有問題?

環形陣列一個讀一個寫是互斥還是同步?

2、基本資料結構和作業系統:

什麼是堆什麼是棧,堆疊在程式執行的時候的存在分配方式?

使用基本的資料結構實現一個有優先順序的佇列功能的東西,說說時間複雜度(我感覺是排序)?

什麼是臨界區,臨界區有什麼用?

總結下:

1、基礎知識薄弱,作業系統 ≈ 0;

2、系統工程師考察對系統的深入認識比較多,要知其然和所以然! 多像羅老闆學習高效能運算吶吶吶

最後我問他他們系統工程師都是做什麼的,他說開發系統平臺和網路平臺,所以系統性能上的微弱提升都是整個系統的一大進步。

面試官人還是不錯的,最開始沒找到路找他打聽路線,後來回到學校沒找到卡以為丟在哪兒了又找他幫我尋找卡...

Mark 一下 lifengli