作者:mutexlock

鏈接:https://www.nowcoder.com/discuss/148527

來源:牛客網

不記得什麼時候,怎麼投的momemta了,一直以為沒有投。。上週突然收到面試邀請,他們公司說是有個簡歷池,對每個所有組公開。我投的是C 開發工程師的實習,有四個組約了我面試,19.00-21.15,但是被第一個面試官放了鴿子,所以面了三個組。

一面 b

先是自我介紹,然後聊了下項目,講了我那個簡易內核的進程線程實現、文件系統結構、怎麼實現同步等等。然後考察了一下Linux裡面線程的基本使用,感覺難度不大。問了一個怎麼把線程綁定到指定的CPU,這個不清楚,後來查了下,linux裡面可以用sched_setaffinity來搞定。再就是聊了下多人開發怎麼協作,遇到了觀點不一致的情況怎麼解決等等。後面就是提問環節了。

他們組說是C 做L4無人車系統的。

一面 c

自我介紹,coding了三道題,都是郵件發過來的:

  1. 給一個32為整數,寫一個reverse函數。reverse(-123) == -321這種。
  2. Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.
  3. Given an array of size n, find the majority element. The majority element is the element that appears more than ? n/2 ? times.

後面就是提問環節。

因為這幾道題都比較簡單,所以表現的有點自信,最後被面試官吐槽有點任性。。。

他們組也說是C 做L4無人車系統的,但是在蘇州。

一面 d

這個面試官上來就介紹了他們的團隊,然後主要是做高性能計算,和各種優化的,和體系結構打交道比較多。

主要是問了彙編還有體系結構的一些東西,還有簡歷上那個內核的線程、進程、內存管理等。

  • 有沒有了解過cache,然後矩陣乘法cache優化(就是CSAPP的那個cache lab)

  • 問了彙編裡面什麼可以改變eip(說了call,jmp,ret等)
  • 線程進程的區別,實現上差異
  • 為什麼有虛擬地址的存在(扯了下保護模式的作用)
  • 為啥不能寫個程序修改cr3寄存器,就是換掉頁表

  • 設計一個支持糾錯的詞典(同樣字元,然後順序不一樣),然後分析複雜度
  • 形如 ...10,8,6,4,2,1,3,5,7,9... 這樣的數列,輸入兩個數字,判斷他們之間下標的距離,考慮robust
  • 最後交流了一下CSAPP的attack lab,怎麼做攻擊的,ROP具體是怎麼回事等等

與作者交流:https://www.nowcoder.com/discuss/148527

更多筆經面經:nowcoder.com/discuss?


推薦閱讀:
相關文章