- 相關(guān)推薦
2017面試程序員操作系統(tǒng)筆試題
面試程序員操作系統(tǒng)應(yīng)該做好什么準(zhǔn)備呢?當(dāng)然要看看真題啦,接下來CN人才網(wǎng)小編為大家?guī)淼氖?017面試程序員操作系統(tǒ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)生中斷信號的那個(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ù)防策略、避免策略、檢測與解除死鎖。
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ū)別?
解析:(1)進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的復(fù)制品
(2)線程:相對與進(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)樗鼈冊谕粋(gè)地址空間內(nèi)。(2)資源利用率:線程的資源利用率比較好也是因?yàn)樗鼈冊谕粋(gè)地址空間內(nèi)。(3)同步問題:線程使用公共變量/內(nèi)存時(shí)需要使用同步機(jī)制,還是因?yàn)樗鼈冊谕粋(gè)地址空間內(nèi)。
4. 操作系統(tǒng)中常見的進(jìn)程調(diào)度策略有哪幾種?
答:FCFS(先來先服務(wù)),優(yōu)先級,時(shí)間片輪轉(zhuǎn),多隊(duì)列、多級反饋隊(duì)列。
5.進(jìn)程間的通信如何實(shí)現(xiàn)?
答:現(xiàn)在最常見的進(jìn)程間通信的方式有:信號,信號量,消息隊(duì)列,共享內(nèi)存,管道。信號是使用信號處理器來進(jìn)行的,信號量是使用P、V操作來實(shí)現(xiàn)的。消息隊(duì)列是比較高級的一種進(jìn)程間通信方法,因?yàn)樗娴目梢栽谶M(jìn)程間傳送消息。
6.在Windows編程中互斥器(mutex)的作用和臨界區(qū)(critical section)類似,請說一下二者間的主要區(qū)別。
答:兩者的區(qū)別是mutex開業(yè)用于進(jìn)程之間互斥,critical section是線程之間的互斥。
7.進(jìn)程進(jìn)入等待狀態(tài)有哪幾種方式?
答:CPU調(diào)度給優(yōu)先級更高的Thread(線程),原先Thread 進(jìn)入Waiting(等待)狀態(tài)。阻塞的Thread獲得資源或者信號,進(jìn)入Waiting狀態(tài)。在時(shí)間片輪轉(zhuǎn)的情況下,如果時(shí)間片到了,也將進(jìn)入等待狀態(tài)。
8.試說明進(jìn)程在三個(gè)基本狀態(tài)之間轉(zhuǎn)換的典型原因。
答:a.處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序?yàn)橹峙淞颂幚頇C(jī)后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài)。b.當(dāng)前進(jìn)程因發(fā)生某事件而無法執(zhí)行,如訪問已被占有的臨界資源,就會(huì)使進(jìn)程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài)。c.當(dāng)前進(jìn)程因事件片用完而被暫停執(zhí)行,該進(jìn)程便由執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài)。
9.同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?
答:a.空閑讓進(jìn);b.忙則等待;c.有限等待;d.讓權(quán)等待。
10.在單處理機(jī)環(huán)境下,進(jìn)程間有哪幾種通信方式?
答:a.共享存儲(chǔ)器系統(tǒng)通信方式;b.消息傳遞系統(tǒng)通信方式;c.管道通信方式。
11.試比較消息隊(duì)列與管道通信機(jī)制。
答:a.所謂管道,是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫進(jìn)程,以實(shí)現(xiàn)它們之間通信的共享文件,又稱pipe文件,管道通信是屬于共享存儲(chǔ)系統(tǒng)的。b.消息隊(duì)列通信機(jī)制屬于消息傳遞系統(tǒng)通信機(jī)制,存在通信鏈路,有消息的格式,有若干緩沖隊(duì)列,采用獨(dú)特的發(fā)送原語和接受原語。
12.在請求分頁系統(tǒng)中,常采用哪幾種頁面置換算法?
答:a.最佳置換算法;b.先進(jìn)先出算法;c.最近最久未使用LRU置換算法;d.Clock置換算法;e.此外,還有最少使用置換算法和頁面緩沖算法。