亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1341 | 回復(fù): 0
打印 上一主題 下一主題

[其它] 筆試題,請大牛指點(diǎn)~ [復(fù)制鏈接]

招聘 : 前端開發(fā)
論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-08 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-05-26 11:12 |只看該作者 |倒序?yàn)g覽
系統(tǒng)編程部分:
第一題

程序的啟動(dòng)和運(yùn)行過程依賴一些配置,比如對于一個(gè)web服務(wù)端程序,程序啟動(dòng)的時(shí)候需要知道它listen哪些端口,客戶connect過來的時(shí)候是否針對特定的User-agent做相應(yīng)操作。配置項(xiàng)以name = value的形式定義,自定義值由配置文件提供,程序啟動(dòng)時(shí)從中讀取文件內(nèi)容并保存在一定的數(shù)據(jù)結(jié)構(gòu)中。假設(shè)配置項(xiàng)有bool、string和int三種類型。

示例配置文件內(nèi)容如下:
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5

1)請編寫一個(gè)標(biāo)準(zhǔn)正式(不能包含偽C代碼)的配置項(xiàng)模塊的頭文件,至少涵蓋初始化、讀取寫入和銷毀函數(shù)的聲明(考察API的設(shè)計(jì))。
2)你打算用何種數(shù)據(jù)結(jié)構(gòu)保存所有配置項(xiàng)并提供查詢和修改操作,為什么?
3)假設(shè)struct config_item結(jié)構(gòu)體定義了一個(gè)配置項(xiàng)(上文所述的三種類型),請給出你的結(jié)構(gòu)體定義(考察C語言的掌握程度)。
4)如果配置項(xiàng)模塊的讀取、寫入函數(shù)需要做到線程安全,請簡述你的做法。
5)假設(shè)配置項(xiàng)的讀取頻度要遠(yuǎn)遠(yuǎn)大于寫入,你打算如何優(yōu)化多線程下的該模塊性能?

第二題

程序的運(yùn)行離不開日志(這里指用于排查程序Bug或記錄流程的日志,非數(shù)據(jù)庫或文件系統(tǒng)的日志)。假設(shè)你已經(jīng)知道文件IO可能會(huì)阻塞,如fsync/fdatasync函數(shù)。請問:
1)對于單線程程序(程序本身不能包括背景線程,即父進(jìn)程fork生成當(dāng)前程序后再無clone系統(tǒng)調(diào)用發(fā)生),你打算如何優(yōu)化日志模塊的性能,以減少甚至消除刷新日志到硬盤時(shí)阻塞帶來的副作用?
2)你怎么看待LInux上的異步IO(AIO)?
3)如果緩沖區(qū)內(nèi)的日志內(nèi)容不及時(shí)刷新(fsync)到硬盤,程序coredump時(shí)可能會(huì)丟失最近的日志。你怎么看待和處理這個(gè)問題?
4)每條日志消息都會(huì)帶有級別,比如Error/Warning等。如果讓你設(shè)計(jì),你打算設(shè)計(jì)哪幾個(gè)日志級別,每個(gè)日志級別記錄何種消息?請給出思考過程。
5)現(xiàn)需要設(shè)計(jì)并實(shí)現(xiàn)多線程程序下的日志模塊,請給出你的實(shí)現(xiàn)思路(可畫圖)。盡量利用多線程的優(yōu)勢。【加分選答】如何做到正確啟動(dòng)(初始化函數(shù)正確返回)和退出(日志模塊初始化時(shí)申請的資源全部釋放)?提示:資源不僅僅有內(nèi)存。
6)假定程序調(diào)用exit函數(shù)后希望日志模塊能正常退出(或者說日志模塊結(jié)束),你打算如何實(shí)現(xiàn)?【加分選答】如何是的C++ RAII實(shí)現(xiàn),調(diào)用exit函數(shù)有哪些需要額外注意的問題?

網(wǎng)絡(luò)編程部分

1)TCP服務(wù)端支持的最大并發(fā)數(shù)實(shí)際和理論上分別為多少?
2)相比accept,為什么Linux要提供accept4?基于同樣的原因,Linux上有哪些相似的系統(tǒng)調(diào)用或Glibc封裝。
3)不處理accept的EMFILE錯(cuò)誤可能會(huì)導(dǎo)致什么問題?你打算如何處理該錯(cuò)誤?
4)談?wù)勀阍赥CP分包方面的經(jīng)驗(yàn)或想法。
5)在內(nèi)核中TCP有心跳相關(guān)的配置和功能,這對應(yīng)用層而言是透明的。那么應(yīng)用層的心跳還有必要嗎,為什么?

編程題(二選一)

1)使用Pthread實(shí)現(xiàn)一個(gè)模擬生產(chǎn)者消費(fèi)問題的程序。要求代碼可編譯執(zhí)行。實(shí)現(xiàn)語言C、C++(涵蓋C++14)任選。
2)如有其它更能代表水平的Linux C或Linux C++代碼,可不用編寫上題,給出代碼即可。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP