日本一本亚洲最大|日本午夜免费啪视频在|国产自产在线视频一区|亚洲福利精品视频

    <object id="4ihfc"></object>
      
      
    1. <object id="4ihfc"></object>
    2. 騰訊后臺(tái)開發(fā)類面試題

        如下整理的是騰訊后臺(tái)開發(fā)類面試題,分享給大家參考:

        linux和os:

        netstat :顯示網(wǎng)絡(luò)狀態(tài)

        tcpdump:主要是截獲通過本機(jī)網(wǎng)絡(luò)接口的數(shù)據(jù),用以分析。能夠截獲當(dāng)前所有通過本機(jī)網(wǎng)卡的數(shù)據(jù)包。它擁有靈活的過濾機(jī)制,可以確保得到想要的數(shù)據(jù)。

        ipcs:檢查系統(tǒng)上共享內(nèi)存的分配

        ipcrm:手動(dòng)解除系統(tǒng)上共享內(nèi)存的分配

        (如果這四個(gè)命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 ^_^ ,這四個(gè)命令的熟練掌握程度基本上能體現(xiàn)面試者實(shí)際開發(fā)和調(diào)試程序的經(jīng)驗(yàn))

        cpu 內(nèi)存 硬盤 等等與系統(tǒng)性能調(diào)試相關(guān)的命令必須熟練掌握,設(shè)置修改權(quán)限 tcp網(wǎng)絡(luò)狀態(tài)查看 各進(jìn)程狀態(tài) 抓包相關(guān)等相關(guān)命令 必須熟練掌握

        awk sed需掌握

        共享內(nèi)存的使用實(shí)現(xiàn)原理

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

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

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

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

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

        可執(zhí)行文件:包含了代碼和數(shù)據(jù)。具有可執(zhí)行的程序。

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

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

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

        時(shí)候被連接器ld和運(yùn)行時(shí)動(dòng)態(tài)連接器使用的)。

        使創(chuàng)建共享庫容易,使動(dòng)態(tài)裝載和共享庫的結(jié)合更加容易。在ELF下,在C++

        中,全局的構(gòu)造函數(shù)和析構(gòu)函數(shù)在共享庫和靜態(tài)庫中用同樣方法處理。

        使用過哪些進(jìn)程間通訊機(jī)制,并詳細(xì)說明(重點(diǎn))

        makefile編寫,雖然比較基礎(chǔ),但是會(huì)被問到

        mkdir mf

        cd mf

        vim makefile

        hello.o:hello.c hello.h

        gcc –c hello.o -Lm

        make

        ./hello

        gdb調(diào)試相關(guān)的經(jīng)驗(yàn),會(huì)被問到

        如何定位內(nèi)存泄露?

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

        C++程序缺乏相應(yīng)的手段來檢測(cè)內(nèi)存信息,只能使用top指令觀察進(jìn)程的動(dòng)態(tài)內(nèi)存總額。而且程序退出時(shí),我們無法獲知任何內(nèi)存泄漏信息

        使用Linux命令回收內(nèi)存,可以使用ps、kill兩個(gè)命令檢測(cè)內(nèi)存使用情況和進(jìn)行回收。在使用超級(jí)用戶權(quán)限時(shí)使用命令“ps”,它會(huì)列出所有正在運(yùn)行的程序名稱和對(duì)應(yīng)的進(jìn)程號(hào)(PID)。kill命令的工作原理是向Linux操作系統(tǒng)的內(nèi)核送出一個(gè)系統(tǒng)操作信號(hào)和程序的進(jìn)程號(hào)(PID)

        動(dòng)態(tài)鏈接和靜態(tài)鏈接的區(qū)別

        動(dòng)態(tài)鏈接是指在生成可執(zhí)行文件時(shí)不將所有程序用到的函數(shù)鏈接到一個(gè)文件,因?yàn)橛性S多函數(shù)在操作系統(tǒng)帶的dll文件中,當(dāng)程序運(yùn)行時(shí)直接從操作系統(tǒng)中找。 而靜態(tài)鏈接就是把所有用到的函數(shù)全部鏈接到exe文件中。

        動(dòng)態(tài)鏈接是只建立一個(gè)引用的接口,而真正的代碼和數(shù)據(jù)存放在另外的可執(zhí)行模塊中,在運(yùn)行時(shí)再裝入;而靜態(tài)鏈接是把所有的代碼和數(shù)據(jù)都復(fù)制到本模塊中,運(yùn)行時(shí)就不再需要庫了。

        32位系統(tǒng)一個(gè)進(jìn)程最多有多少堆內(nèi)存

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

        寫一個(gè)c程序辨別系統(tǒng)是16位or32位

        法一:int k=~0;

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

        else cout<<"16 bits"<

        法二://32為系統(tǒng)

        int i=65536;

        cout<

        int j=65535;

        cout<

        寫一個(gè)c程序辨別系統(tǒng)是大端or小端字節(jié)序

        用聯(lián)合體:如char類型的,可以看他輸出的是int的高字節(jié)還是低字節(jié)

        信號(hào):列出常見的信號(hào),信號(hào)怎么處理?

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

        說出你所知道的linux系統(tǒng)的各類同步機(jī)制(重點(diǎn)),

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

        死鎖的條件。

        (互斥條件(Mutual exclusion):

        1、資源不能被共享,只能由一個(gè)進(jìn)程使用。

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

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

        4、循環(huán)等待條件(Circular wait):系統(tǒng)中若干進(jìn)程組成環(huán)路,該環(huán)路中每個(gè)進(jìn)程都在等待相鄰進(jìn)程正占用的資源。

        處理死鎖的策略:

        1.忽略該問題。例如鴕鳥算法,該算法可以應(yīng)用在極少發(fā)生死鎖的的情況下。為什么叫鴕鳥算法呢,因?yàn)閭髡f中鴕鳥看到危險(xiǎn)就把頭埋在地底下,可能鴕鳥覺得看不到危險(xiǎn)也就沒危險(xiǎn)了吧。跟掩耳盜鈴有點(diǎn)像。

        2.檢測(cè)死鎖并且恢復(fù)。

        3.仔細(xì)地對(duì)資源進(jìn)行動(dòng)態(tài)分配,以避免死鎖。

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

        列舉說明linux系統(tǒng)的各類異步機(jī)制

      更多面試問題推薦:

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

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

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

      4.廣告文案面試題

      5.人力資源經(jīng)理面試題集錦

      6.應(yīng)聘硬件工程師15道常見面試問題

      7.英特爾Intel面試題

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

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

      相關(guān)文章推薦

      |||||