下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、百度2014校園招聘-研發(fā)工程師筆試題一、簡答題(30分)1, 當(dāng)前計算機(jī)系統(tǒng)一般會采用層次結(jié)構(gòu)存儲數(shù)據(jù),請介紹下典型計算機(jī)存儲系統(tǒng)一般分為哪幾個層次,為什么采用分層存儲數(shù)據(jù)能有效提高程序的執(zhí)行效率?(10分)所謂存儲系統(tǒng)的層次結(jié)構(gòu),就是把各種不同存儲容量、存取速度和價格的存儲器按層次結(jié) 構(gòu)組成多層存儲器,并通過管理軟件和輔助硬件有機(jī)組合成統(tǒng)一的整體,使所存放的程序和數(shù) 據(jù)按層次分布在各種存儲器中。目前,在計算機(jī)系統(tǒng)中通常采用三級層次結(jié)構(gòu)來構(gòu)成存儲系統(tǒng),主要由高速緩沖存儲器 Cache、主存儲器和輔助存儲器組成。存儲系統(tǒng)多級層次結(jié)構(gòu)中,由上向下分三級,其容量逐漸增大,速度逐級降低,成本則逐 次
2、減少。整個結(jié)構(gòu)又可以看成兩個層次:它們分別是主存一輔存層次和cache 一主存層次。這個層次系統(tǒng)中的每一種存儲器都不再是孤立的存儲器,而是一個有機(jī)的整體。它們在輔助硬件 和計算機(jī)操作系統(tǒng)的管理下,可把主存一輔存層次作為一個存儲整體,形成的可尋址存儲空間 比主存儲器空間大得多。由于輔存容量大,價格低,使得存儲系統(tǒng)的整體平均價格降低。由于 Cache的存取速度可以和 CPU的工作速度相媲美,故 cache 一主存層次可以縮小主存和cPu之間的速度差距,從整體上提高存儲器系統(tǒng)的存取速度。盡管Cache成本高,但由于容量較小,故不會使存儲系統(tǒng)的整體價格增加很多。綜上所述,一個較大的存儲系統(tǒng)是由各種不同
3、類型的存儲設(shè)備構(gòu)成,是一個具有多級層次 結(jié)構(gòu)的存儲系統(tǒng)。 該系統(tǒng)既有與CPU相近的速度,又有極大的容量,而成本又是較低的。 其中 高速緩存解決了存儲系統(tǒng)的速度問題,輔助存儲器則解決了存儲系統(tǒng)的容量問題。采用多級層 次結(jié)構(gòu)的存儲器系統(tǒng)可以有效的解決存儲器的速度、容量和價格之間的矛盾。2,Unix/Linux系統(tǒng)中僵尸進(jìn)程是如何產(chǎn)生的?有什么危害?如何避免?(10分)一個進(jìn)程在調(diào)用exit命令結(jié)束自己的生命的時候,其實它并沒有真正的被銷毀,而是留下一個稱為僵尸進(jìn)程(Zombie )的數(shù)據(jù)結(jié)構(gòu)(系統(tǒng)調(diào)用exit,它的作用是使進(jìn)程退出,但也僅僅限于將一個正常的進(jìn)程變成一個僵尸進(jìn)程,并不能將其完全銷毀)
4、。在Linux進(jìn)程的狀態(tài)中,僵尸進(jìn)程是非常特殊的一種,它已經(jīng)放棄了幾乎所有內(nèi)存空間, 沒有任何可執(zhí)行代碼,也不能被調(diào)度,僅僅在進(jìn)程列表中保留一個位置,記載該進(jìn)程的退出狀 態(tài)等信息供其他進(jìn)程收集,除此之外,僵尸進(jìn)程不再占有任何內(nèi)存空間。它需要它的父進(jìn)程來 為它收尸,如果他的父進(jìn)程沒安裝SIGCHLD信號處理函數(shù)調(diào)用 wait或waitpid()等待子進(jìn)程結(jié)束,又沒有顯式忽略該信號,那么它就一直保持僵尸狀態(tài),如果這時父進(jìn)程結(jié)束了,那么in it進(jìn)程自動會接手這個子進(jìn)程,為它收尸,它還是能被清除的。 但是如果如果父進(jìn)程是一個循環(huán),不會結(jié)束,那么子進(jìn)程就會一直保持僵尸狀態(tài),這就是為什么系統(tǒng)中有時會有很
5、多的僵尸進(jìn)程。避免zombie的方法:1) 在SVR4中,如果調(diào)用signal或sigset將SIGCHLD的配置設(shè)置為忽略,則不會產(chǎn)生 僵死子進(jìn)程。另外,使用SVR4版的sigaction,則可設(shè)置SA_NOCLDWAIT 標(biāo)志以避免子進(jìn)程 僵死。Linux中也可使用這個,在一個程序的開始調(diào)用這個函數(shù)signal(SIGCHLD,SIG_IGN);2) 調(diào)用fork兩次。3) 用waitpid等待子進(jìn)程返回.3,簡述Unix/Linux系統(tǒng)中使用socket庫編寫服務(wù)器端程序的流程,請分別用對應(yīng)的socket通信函數(shù)表示(10分)TCP socket 通信服務(wù)器端流程如下:1. 創(chuàng)建 ser
6、verSocket2. 初始化serverAddr (服務(wù)器地址)3. 將 socket 和 serverAddr 綁定 bi nd4. 開始監(jiān)聽liste n5. 進(jìn)入while循環(huán),不斷的 accept接入的客戶端socket,進(jìn)行讀寫操作 write和read6. 關(guān)閉 serverSocket客戶端流程:1. 創(chuàng)建 clientSocket2. 初始化 serverAddr3. 鏈接到服務(wù)器 connect4. 利用write和read進(jìn)行讀寫操作5. 關(guān)閉 clientSocket這個列表是一個 Berkeley套接字API庫提供的函數(shù)或者方法的概要: socket()創(chuàng)建一個新的確
7、定類型的套接字,類型用一個整型數(shù)值標(biāo)識,并為它分配系統(tǒng)資源。 bind() 一般用于服務(wù)器端,將一個套接字與一個套接字地址結(jié)構(gòu)相關(guān)聯(lián),比如,一個指定的本 地端口和IP地址。listen()用于服務(wù)器端,使一個綁定的TCP套接字進(jìn)入監(jiān)聽狀態(tài)。connect()用于客戶端,為一個套接字分配一個自由的本地端口號。如果是TCP套接字的話,它會試圖獲得一個新的TCP連接。accept()用于服務(wù)器端。它接受一個從遠(yuǎn)端客戶端發(fā)出的創(chuàng)建一個新的TCP連接的接入請求,創(chuàng)建一個新的套接字,與該連接相應(yīng)的套接字地址相關(guān)聯(lián)。send()和recv(),或者write()和read(),或者recvfrom()和se
8、ndto(),用于往/從遠(yuǎn)程套接字發(fā)送和 接受數(shù)據(jù)。close()用于系統(tǒng)釋放分配給一個套接字的資源。如果是TCP,連接會被中斷。gethostbyname()和gethostbyaddr()用于解析主機(jī)名和地址。select()用于修整有如下情況的套接字列表:準(zhǔn)備讀,準(zhǔn)備寫或者是有錯誤。poll()用于檢查套接字的狀態(tài)。套接字可以被測試,看是否可以寫入、讀取或是有錯誤。getsockopt()用于查詢指定的套接字一個特定的套接字選項的當(dāng)前值。setsockopt()用于為指定的套接字設(shè)定一個特定的套接字選項。二、算法與程序設(shè)計題1,使用C/C+編寫函數(shù),實現(xiàn)字符串反轉(zhuǎn),要求不使用任何系統(tǒng)函數(shù)
9、,且時間復(fù)雜度最小,函數(shù)原型:char* reverse_str(char* str) 。 (15 分)獲取首尾指針,然后將首尾指針指向的元素交換,將首指針指向下一個,將尾指針指向前一個,交換指針指向的元素,然后重復(fù)執(zhí)行,直到首尾指針相遇。2,給定一個如下格式的字符串(1,(2,3),(4,(5,6),7)括號內(nèi)的元素可以是數(shù)字,也可以是另一個括號,請實現(xiàn)一個算法消除嵌套的括號,比如把上面的表達(dá)式變成:(1,2,3,4,5,6,7),如果表達(dá)式有誤請報錯。(15分)使用棧和隊列實現(xiàn)備注說明,非正文,實際使用可刪除如下部分。本內(nèi)容僅給予閱讀編輯指點:1、本文件由微軟 OFFICE辦公軟件編輯而成
10、,同時支持 WPS。2、文件可重新編輯整理。3、建議結(jié)合本公司和個人的實際情況進(jìn)行修正編輯。4、因編輯原因,部分文件文字有些微錯誤的,請自行修正,并不影響本文閱讀。Note: it is not the text. The following parts can be deleted for actual use. This content only gives reading and editingin structi ons:1. This docume nt is edited by Microsoft office office software and supports WPS.2. The files can be edited and reorga ni zed.3. It is suggested to revise and edit accord ing to the actual situati on of the compa ny and in dividua
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《燈箱制作教程》課件
- 2024年柳城縣中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年浙教新版選修3生物下冊階段測試試卷
- 2024年滬科版八年級語文下冊階段測試試卷含答案
- 2024年滬科新版選修1生物上冊階段測試試卷
- 2024年北師大版六年級英語上冊月考試卷
- 河道整治機(jī)井施工合同
- 科研交流現(xiàn)場簽證管理辦法
- 哈爾濱市消防站建設(shè)
- 2024年昆明國泰醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- T-CECS120-2021套接緊定式鋼導(dǎo)管施工及驗收規(guī)程
- 2025年高考化學(xué)二、三輪復(fù)習(xí)策略講座
- 2022年高考數(shù)學(xué)試卷(上海)(秋考)(空白卷)
- 山東省濟(jì)南市語文小升初2024年模擬試題與參考答案
- 裝配式建筑復(fù)習(xí)試題及答案
- 空氣動力學(xué)仿真技術(shù):湍流模型:k-ε湍流模型原理與應(yīng)用
- 高中期末考試考風(fēng)考紀(jì)及誠信教育
- 2025屆廣東省深圳市深圳外國語九年級物理第一學(xué)期期末經(jīng)典試題含解析
- 機(jī)械工程技術(shù)訓(xùn)練智慧樹知到期末考試答案章節(jié)答案2024年北京航空航天大學(xué)
- 醫(yī)生與患者關(guān)系中的信任與治療
- 心衰患者的容量管理中國專家共識-共識解讀
評論
0/150
提交評論