两个人做人爱视频免费,97久久精品人人搡人妻人人玩,欧洲精品码一区二区三区,999zyz玖玖资源站永久

騰訊后臺開發類面試題

  如下整理的是騰訊后臺開發類面試題,分享給大家參考:

  linux和os:

  netstat :顯示網絡狀態

  tcpdump:主要是截獲通過本機網絡接口的數據,用以分析。能夠截獲當前所有通過本機網卡的數據包。它擁有靈活的過濾機制,可以確保得到想要的數據。

  ipcs:檢查系統上共享內存的分配

  ipcrm:手動解除系統上共享內存的分配

  (如果這四個命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 ^_^ ,這四個命令的熟練掌握程度基本上能體現面試者實際開發和調試程序的經驗)

  cpu 內存 硬盤 等等與系統性能調試相關的命令必須熟練掌握,設置修改權限 tcp網絡狀態查看 各進程狀態 抓包相關等相關命令 必須熟練掌握

  awk sed需掌握

  共享內存的使用實現原理

  (必考必問,然后共享內存段被映射進進程空間之后,存在于進程空間的什么位置?共享內存段最大限制是多少?)

  共享內存定義:共享內存是最快的可用IPC(進程間通信)形式。它允許多個不相關的進程去訪問同一部分邏輯內存。共享內存是由IPC為一個進程創建的一個特殊的地址范圍,它將出現在進程的地址空間中。其他進程可以把同一段共享內存段“連接到”它們自己的地址空間里去。所有進程都可以訪問共享內存中的地址。如果一個進程向這段共享內存寫了數據,所做的改動會立刻被有訪問同一段共享內存的其他進程看到。因此共享內存對于數據的傳輸是非常高效的。

  共享內存的原理:共享內存是最有用的進程間通信方式之一,也是最快的IPC形式。兩個不同進程A、B共享內存的意思是,同一塊物理內存被映射到進程A、B各自的進程地址空間。進程A可以即時看到進程B對共享內存中數據的更新,反之亦然。

  c++進程內存空間分布(注意各部分的內存地址誰高誰低,注意棧從高到低分配,堆從低到高分配)

  ELF是什么?其大小與程序中全局變量的是否初始化有什么關系(注意未初始化的數據放在bss段)

  可執行文件:包含了代碼和數據。具有可執行的程序。

  可重定位文件:包含了代碼和數據(這些數據是和其他重定位文件和共享的

  object文件一起連接時使用的)

  共享object文件(又可叫做共享庫):包含了代碼和數據(這些數據是在連接

  時候被連接器ld和運行時動態連接器使用的)。

  使創建共享庫容易,使動態裝載和共享庫的結合更加容易。在ELF下,在C++

  中,全局的構造函數和析構函數在共享庫和靜態庫中用同樣方法處理。

  使用過哪些進程間通訊機制,并詳細說明(重點)

  makefile編寫,雖然比較基礎,但是會被問到

  mkdir mf

  cd mf

  vim makefile

  hello.o:hello.c hello.h

  gcc –c hello.o -Lm

  make

  ./hello

  gdb調試相關的經驗,會被問到

  如何定位內存泄露?

  內存泄漏是指堆內存的泄漏。堆內存是指程序從堆中分配的、大小任意的(內存塊的大小可以在程序運行期決定)、使用完后必須顯示釋放的內存。應用程序一般使用malloc、realloc、new等函數從堆中分配到一塊內存,使用完后,程序必須負責相應的調用free或delete釋放該內存塊。否則,這塊內存就不能被再次使用,我們就說這塊內存泄漏了。

  C++程序缺乏相應的手段來檢測內存信息,只能使用top指令觀察進程的動態內存總額。而且程序退出時,我們無法獲知任何內存泄漏信息

  使用Linux命令回收內存,可以使用ps、kill兩個命令檢測內存使用情況和進行回收。在使用超級用戶權限時使用命令“ps”,它會列出所有正在運行的程序名稱和對應的進程號(PID)。kill命令的工作原理是向Linux操作系統的內核送出一個系統操作信號和程序的進程號(PID)

  動態鏈接和靜態鏈接的區別

  動態鏈接是指在生成可執行文件時不將所有程序用到的函數鏈接到一個文件,因為有許多函數在操作系統帶的dll文件中,當程序運行時直接從操作系統中找。 而靜態鏈接就是把所有用到的函數全部鏈接到exe文件中。

  動態鏈接是只建立一個引用的接口,而真正的代碼和數據存放在另外的可執行模塊中,在運行時再裝入;而靜態鏈接是把所有的代碼和數據都復制到本模塊中,運行時就不再需要庫了。

  32位系統一個進程最多有多少堆內存

  多線程和多進程的區別(重點 面試官最最關心的一個問題,必須從cpu調度,上下文切換,數據共享,多核cup利用率,資源占用,等等各方面回答,然后有一個問題必須會被問到:哪些東西是一個線程私有的?答案中必須包含寄存器,否則悲催)

  寫一個c程序辨別系統是16位or32位

  法一:int k=~0;

  if((unsigned int)k >63356) cout<<"at least 32 bits"<

  else cout<<"16 bits"<

  法二://32為系統

  int i=65536;

  cout<

  int j=65535;

  cout<

  寫一個c程序辨別系統是大端or小端字節序

  用聯合體:如char類型的,可以看他輸出的是int的高字節還是低字節

  信號:列出常見的信號,信號怎么處理?

  i++是否原子操作?并解釋為什么?

  說出你所知道的linux系統的各類同步機制(重點),

  什么是死鎖?如何避免死鎖(每個技術面試官必問)

  死鎖的條件。

  (互斥條件(Mutual exclusion):

  1、資源不能被共享,只能由一個進程使用。

  2、請求與保持條件(Hold and wait):已經得到資源的進程可以再次申請新的資源。

  3、非剝奪條件(No pre-emption):已經分配的資源不能從相應的進程中被強制地剝奪。

  4、循環等待條件(Circular wait):系統中若干進程組成環路,該環路中每個進程都在等待相鄰進程正占用的資源。

  處理死鎖的策略:

  1.忽略該問題。例如鴕鳥算法,該算法可以應用在極少發生死鎖的的情況下。為什么叫鴕鳥算法呢,因為傳說中鴕鳥看到危險就把頭埋在地底下,可能鴕鳥覺得看不到危險也就沒危險了吧。跟掩耳盜鈴有點像。

  2.檢測死鎖并且恢復。

  3.仔細地對資源進行動態分配,以避免死鎖。

  4.通過破除死鎖四個必要條件之一,來防止死鎖產生。)

  列舉說明linux系統的各類異步機制

更多面試問題推薦:

1.linux常見面試題及參考答案

2.常見主觀面試題:如果你中500萬會怎么花?

3.常見應屆生面試題:你考慮過考研(考公務員)嗎?

4.廣告文案面試題

5.人力資源經理面試題集錦

6.應聘硬件工程師15道常見面試問題

7.英特爾Intel面試題

8.Java工程師三大框架面試題匯總

本文已影響6827
上一篇:2014最新行政助理面試問題 下一篇:迅雷歷年常考面試題

相關文章推薦

|||||

主站蜘蛛池模板: 瓦房店市| 库尔勒市| 宜良县| 江津市| 浏阳市| 定日县| 石景山区| 封丘县| 开平市| 长岛县| 理塘县| 富宁县| 河西区| 华亭县| 鄂托克前旗| 乾安县| 得荣县| 远安县| 南投市| 临邑县| 阿巴嘎旗| 龙胜| 山丹县| 宜都市| 微博| 昔阳县| 蒙自县| 和田市| 南宁市| 卓资县| 丹阳市| 长治县| 湾仔区| 本溪市| 绥滨县| 江山市| 鸡泽县| 中西区| 丰顺县| 修武县| 宁河县|