網(wǎng)絡(luò)編程筆試、面試題
1. C 語(yǔ)言中,系統(tǒng)自動(dòng)打開的文件是( D )A. 二進(jìn)制文件 B. 隨機(jī)文件C. 非緩沖文件 D. 設(shè)備文件2. TCP 使用____B__
1. C 語(yǔ)言中,系統(tǒng)自動(dòng)打開的文件是( D )
A. 二進(jìn)制文件 B. 隨機(jī)文件
C. 非緩沖文件 D. 設(shè)備文件
2. TCP 使用____B___進(jìn)行流量控制。
A. 3次握手法 B. 窗口控制機(jī)制
C. 自動(dòng)重發(fā)機(jī)制 D. 端口機(jī)制
3. TCP/IP層IP 協(xié)議的服務(wù)是___C____
A. 可靠服務(wù) B. 有確認(rèn)的服務(wù)
C. 無(wú)連接數(shù)據(jù)報(bào) D. 以上都不對(duì)
4. 對(duì)于一個(gè)沒有設(shè)置任何套接口選項(xiàng)的阻塞套接口,調(diào)用recv 接收對(duì)方的數(shù)據(jù),對(duì)方發(fā)
送數(shù)據(jù)前突然斷電,下列哪種情況將會(huì)發(fā)生____A____
A. recv永遠(yuǎn)不會(huì)返回 B. recv立刻返回-1
C. recv立刻返回0 D. recv在等待很長(zhǎng)一段時(shí)間后返回-1
5. 下列哪些關(guān)于套接口選項(xiàng)函數(shù)的說(shuō)法是正確的___C_____
A. SO_DONTLINGER選項(xiàng)是讓TCP 套接口不對(duì)數(shù)據(jù)進(jìn)行緩存,調(diào)用send 函數(shù)后立
刻將數(shù)據(jù)發(fā)送出去;
B. 調(diào)用SO_RCVBUF和SO_SNDBUF調(diào)整TCP 窗口的大?。?/p>
C. SO_REUSEADDR選項(xiàng)允許套接口綁定在一個(gè)已經(jīng)在使用的地址上;
D. SO_MAX_MSG_SIZE選項(xiàng)獲取每次調(diào)用TCP 套接口send 時(shí),所能發(fā)送的最大
字節(jié)數(shù);
假如子網(wǎng)掩碼維255.255.255.245 有多少個(gè)ip 可用
答:256-245-2=9個(gè)
判斷192.162.1.1 是A 、B 、C 類 那種網(wǎng)絡(luò)ip 地址
答:C 類
C 類IP 以110開頭,從192.0.0.1到223.255.255.255
IP 通過(guò)什么協(xié)議轉(zhuǎn)成域名和MAC 地址
答:通過(guò)DNS 協(xié)議轉(zhuǎn)換成域名。
DNS 是域名系統(tǒng) (Domain Name System) 的縮寫,它是由解析器和域名服務(wù)器組成的。域名服務(wù)器是指保存有該網(wǎng)絡(luò)中所有主機(jī)的域名和對(duì)應(yīng)IP 地址,并具有將域名轉(zhuǎn)換為IP 地址功能的服務(wù)器。
通過(guò)ARP (地址轉(zhuǎn)換協(xié)議)協(xié)議轉(zhuǎn)換成MAC 地址,反過(guò)來(lái)MAC 到IP 地址的轉(zhuǎn)換是RARP(逆地址轉(zhuǎn)換協(xié)議)
產(chǎn)生死鎖的必要條件是什么?解決死鎖有幾種方法?
答: 產(chǎn)生死鎖的必要條件:
互斥條件:進(jìn)程要求對(duì)所分配的資源進(jìn)行排它性控制,即在一段時(shí)間內(nèi)某資源僅為一進(jìn)程所占用。
,請(qǐng)求和保持條件:當(dāng)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放。
不剝奪條件:進(jìn)程已獲得的資源在未使用完之前,不能剝奪,只能在使用完時(shí)由自己釋放。
環(huán)路等待條件:在發(fā)生死鎖時(shí),必然存在一個(gè)進(jìn)程--資源的環(huán)形鏈。
解決死鎖的基本方法:
預(yù)防死鎖:
資源一次性分配:(破壞請(qǐng)求和保持條件)
可剝奪資源:即當(dāng)某進(jìn)程新的資源未滿足時(shí),釋放已占有的資源(破壞不可剝奪條件) 資源有序分配法:系統(tǒng)給每類資源賦予一個(gè)編號(hào),每一個(gè)進(jìn)程按編號(hào)遞增的順序請(qǐng)求資源,釋放則相反(破壞環(huán)路等待條件)
避免死鎖:
預(yù)防死鎖的幾種策略,會(huì)嚴(yán)重地?fù)p害系統(tǒng)性能。因此在避免死鎖時(shí),要施加較弱的限制,從而獲得 較滿意的系統(tǒng)性能。由于在避免死鎖的策略中,允許進(jìn)程動(dòng)態(tài)地申請(qǐng)資源。因而,系統(tǒng)在進(jìn)行資源分配之前預(yù)先計(jì)算資源分配的安全性。若此次分配不會(huì)導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則將資源分配給進(jìn)程;否則,進(jìn)程等待。其中最具有代表性的避免死鎖算法是銀行家算法。
檢測(cè)死鎖:
首先為每個(gè)進(jìn)程和每個(gè)資源指定一個(gè)唯一的號(hào)碼;
然后建立資源分配表和進(jìn)程等待表,例如:
解除死鎖:
當(dāng)發(fā)現(xiàn)有進(jìn)程死鎖后,便應(yīng)立即把它從死鎖狀態(tài)中解脫出來(lái),常采用的方法有: 剝奪資源:從其它進(jìn)程剝奪足夠數(shù)量的資源給死鎖進(jìn)程,以解除死鎖狀態(tài);
撤消進(jìn)程:可以直接撤消死鎖進(jìn)程或撤消代價(jià)最小的進(jìn)程,直至有足夠的資源可用,死鎖狀態(tài). 消除為止;所謂代價(jià)是指優(yōu)先級(jí)、運(yùn)行代價(jià)、進(jìn)程的重要性和價(jià)值等。
解釋可重入:
若一個(gè)程序或子程序可以“安全的被并行執(zhí)行(Parallel computing )”,則稱其為可重入(reentrant 或re-entrant )的。即當(dāng)該子程序正在運(yùn)行時(shí),可以再次進(jìn)入并執(zhí)行它(并行執(zhí)行時(shí),個(gè)別的執(zhí)行結(jié)果,都符合設(shè)計(jì)時(shí)的預(yù)期)。
若一個(gè)函數(shù)是可重入的,則該函數(shù):
● 不能含有靜態(tài)(全局)非常量數(shù)據(jù)。
● 不能返回靜態(tài)(全局)非常量數(shù)據(jù)的地址。
,


