程序員操作系統(tǒng)筆試題和面試題答案(一)

思而思學(xué)網(wǎng)

1.基本知識(shí)點(diǎn):

1) 操作系統(tǒng)是控制和管理計(jì)算機(jī)軟硬件資源,以盡量合理有效的方法組織多個(gè)用戶共享多種資源的程序集合。

2) 操作系統(tǒng)的基本功能:(1)處理機(jī)管理。主要功能包括進(jìn)程控制、進(jìn)程調(diào)度、進(jìn)程同步和進(jìn)程通信。(2)存儲(chǔ)器管理。主要功能包括內(nèi)存分配、地址映射、內(nèi)存保護(hù)和內(nèi)存擴(kuò)充。(3)設(shè)備管,也叫I/O管理。主要功能包括緩沖區(qū)管理、設(shè)備分配、設(shè)備驅(qū)動(dòng)和設(shè)備的無關(guān)性處理。(4)文件管理。主要功能包括文件存儲(chǔ)空間的管理、文件操作的一般管理、目錄管理、文件的讀寫管理和存取控制。(5)用戶界面管理。操作系統(tǒng)的用戶界面就是操作系統(tǒng)與用戶的接口,包括控制接口和程序接口。

3) 現(xiàn)代操作系統(tǒng)的基本特征:并發(fā)性、共享性、虛擬性、異步性和不確定性。

4) 所謂中斷是指系統(tǒng)發(fā)生某一事件后,CPU暫停正在執(zhí)行的程序去執(zhí)行處理該事件的程序過程,處理中斷事件的程序稱為中斷處理程序,產(chǎn)生中斷信號(hào)的那個(gè)部件稱為中斷源。中斷處理具體過程:保存現(xiàn)場;分析原因,轉(zhuǎn)中斷處理程序;恢復(fù)現(xiàn)場。

5) 進(jìn)程是一個(gè)具有獨(dú)立功能的程序關(guān)于數(shù)據(jù)集合的一次可以并發(fā)執(zhí)行的運(yùn)行活動(dòng),其基本特征:動(dòng)態(tài)特征、并發(fā)特征、獨(dú)立性、相互制約性。進(jìn)程的構(gòu)成:程序、數(shù)據(jù)和進(jìn)程控制塊。進(jìn)程有三種基本的調(diào)度狀態(tài):執(zhí)行狀態(tài)、就緒狀態(tài)和等待狀態(tài)。

6) 進(jìn)程的引入大大地提高了資源的利用率和系統(tǒng)的吞吐量,而引入線程的目的是為了減少程序并發(fā)所付出的系統(tǒng)開銷。進(jìn)程是資源分配的單位,而線程是系統(tǒng)調(diào)度的單位。

7) 所謂死鎖是多個(gè)進(jìn)程間的一種僵持狀態(tài)。進(jìn)程死鎖的原因:資源競爭及進(jìn)程推進(jìn)順序非法。死鎖的4個(gè)必要條件:互斥、占有等待、不可剝奪、環(huán)路。死鎖的處理:鴕鳥策略、預(yù)防策略、避免策略、檢測(cè)與解除死鎖。

8) 臨界資源是一次只允許一個(gè)進(jìn)程使用的資源。臨界區(qū)是在進(jìn)程中操作臨界資源的程序段。

2.進(jìn)程和線程的區(qū)別?

答:線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.與進(jìn)程的區(qū)別:(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位。(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行。(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問隸屬于進(jìn)程的資源. (4)系統(tǒng)開銷:在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時(shí)的開銷。

3.網(wǎng)絡(luò)編程中設(shè)計(jì)并發(fā)服務(wù)器,使用多進(jìn)程 與 多線程 ,請(qǐng)問有什么區(qū)別?

解析:(1)進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的復(fù)制品

(2)線程:相對(duì)與進(jìn)程而言,線程是一個(gè)更加接近與執(zhí)行體的概念,它可以與同進(jìn)程的其他線程共享數(shù)據(jù),但擁有自己的?臻g,擁有獨(dú)立的執(zhí)行序列。

兩者都可以提高程序的并發(fā)度,提高程序運(yùn)行效率和響應(yīng)時(shí)間。線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開銷小,但不利于資源管理和保護(hù);而進(jìn)程正相反。同時(shí),線程適合于在SMP機(jī)器上運(yùn)行,而進(jìn)程則可以跨機(jī)器遷移。

答:用多進(jìn)程時(shí)每個(gè)進(jìn)程有自己的地址空間,線程則共享地址空間。所有其他區(qū)別都是由此而來的:(1)速度:線程產(chǎn)生的速度快,線程間的通信快,切換快等,因?yàn)樗鼈冊(cè)谕粋(gè)地址空間內(nèi)。(2)資源利用率:線程的資源利用率比較好也是因?yàn)樗鼈冊(cè)谕粋(gè)地址空間內(nèi)。(3)同步問題:線程使用公共變量/內(nèi)存時(shí)需要使用同步機(jī)制,還是因?yàn)樗鼈冊(cè)谕粋(gè)地址空間內(nèi)。

4. 操作系統(tǒng)中常見的進(jìn)程調(diào)度策略有哪幾種?

答:FCFS(先來先服務(wù)),優(yōu)先級(jí),時(shí)間片輪轉(zhuǎn),多隊(duì)列、多級(jí)反饋隊(duì)列。

熱門推薦

最新文章