資源描述:
《05春操作系統(tǒng)試卷點(diǎn)評(píng)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、2005春操作系統(tǒng)試卷點(diǎn)評(píng)近幾年內(nèi),這將是我最后一次教OS,沒準(zhǔn)也是這輩子的最后一次了,不再出來害人了,也不會(huì)再出題了,試卷就完全公開了。任何人可以以任何形式隨意使用這些題目、答案和點(diǎn)評(píng),只要使用后告訴我一聲就行。一、單選題(每題2分,共10分)(1)操作系統(tǒng)是()A.硬件B.軟件C.中間件D.人件答案是B,這個(gè)很顯然。不過回答C的人不是凡人,也得分。這道題充分體現(xiàn)了計(jì)算機(jī)學(xué)科很多概念不能機(jī)械描述的特點(diǎn)。中間件的普遍特點(diǎn)是粘合兩個(gè)不同系統(tǒng),并使這兩個(gè)系統(tǒng)之間的耦合度降低。OS符合這個(gè)特點(diǎn),所以說它是一種
2、中間件并不為過。OS的一些功能還要依賴CPU的“特別關(guān)照”實(shí)現(xiàn),從這一點(diǎn)看,它也不能說就是純軟。我一直很討厭名詞解釋、填空這樣的題目,選擇也不喜歡,就是因?yàn)檫@種機(jī)械的題目無法表達(dá)計(jì)算機(jī)的多樣化特色。(2)下列事物不是操作系統(tǒng)的是()A.JVMB.CP/MC.MS-DOSD.UNIX答案是A。不過JVM某種程度上也具備了OS的特質(zhì),拿它做一個(gè)只跑java程序的OS也是可以的,但與其它三個(gè)純種OS比起來,它是最佳答案。(3)下列語言中,不能用來編寫操作系統(tǒng)的是()A.ASMB.JavaC.CD.C++答案是
3、B。雖然沒學(xué)過匯編,可能沒有人在課堂告訴你ASM是什么,但這是你應(yīng)該知道的。就算你不知道,學(xué)過java應(yīng)該也知道java的本質(zhì)是不能用來編寫OS的。但是,如果強(qiáng)詞奪理地說,做一個(gè)java到本地代碼的編譯器,再擴(kuò)上一些不在乎跨平臺(tái)能力的功能庫(kù),沒有什么語言不能做OS。語言只是一個(gè)描述而已,其能力體現(xiàn)在你賦予它什么。計(jì)算機(jī)科學(xué)真奇妙呀(4)下列資源一般不由操作系統(tǒng)管理的是()A.內(nèi)存B.聲卡C.CPUD.以上皆非答案是D。沒啥可說的。有幾個(gè)人選B,難道你連windows都沒setup過?(5)下列說法中正確
4、的是()A.任何應(yīng)用程序都不能繞過操作系統(tǒng)而直接與硬件交互B.沒有操作系統(tǒng)的計(jì)算機(jī)是無法執(zhí)行任何程序的C.設(shè)備驅(qū)動(dòng)程序必須由設(shè)備廠商開發(fā)D.文件的長(zhǎng)度與它占用的物理空間大小是一致的E.以上都不正確答案是E?;緛碚f,非??隙ǖ恼f法一定是錯(cuò)誤的。計(jì)算機(jī)軟件完全人造的東西,它的一切都是人為控制的,而不是由大自然或上帝主宰,所以一切皆有可能。A.如果OS允許,這是可以的,比如DOSB.操作系統(tǒng)本身就是程序。BIOS也是程序。更有很多應(yīng)用程序是完全在硬件平臺(tái)之上構(gòu)建,沒有OS支持的C.誰說M$不能寫驅(qū)動(dòng)程序?你
5、也能寫驅(qū)動(dòng)程序D.只在很少的情況下一致一、簡(jiǎn)答題(20分)1.進(jìn)程VS線程!請(qǐng)說出兩者的最大相同和最大不同。(4分)兩者都可以并行執(zhí)行(2),但線程之間可以共享更多的資源,進(jìn)程則較難甚至不能共享資源(2)。有的人就是把進(jìn)程是什么、線程是什么抄了上去,字沒少寫,但,你是讓我來總結(jié)相同和不同嗎?開卷考試考的是你的大腦,不是手指2.從操作系統(tǒng)角度看,最實(shí)際的直面死鎖的方法是什么?為什么是它?從程序員角度看,舉出一種可以避免死鎖的辦法。(4分)鴕鳥策略,即不理會(huì)它(1)。因?yàn)榘l(fā)生死鎖的概率很低(1),而處理死鎖
6、的算法都很復(fù)雜(1),得不償失。避免死鎖的方法很多,只要具體一點(diǎn)寫就可以。3.如果沒有CPU的“特別關(guān)照”,很多現(xiàn)代操作系統(tǒng)功能的實(shí)現(xiàn)都會(huì)效率很低甚至不可實(shí)現(xiàn)。請(qǐng)舉出兩個(gè)例子來證明這一觀點(diǎn)。(4分)沒有TSL指令,P、V的原語性很難實(shí)現(xiàn);沒有MMU、TLB,頁面的地址轉(zhuǎn)換會(huì)很慢;沒有對(duì)R和M位的支持,頁面置換算法很難實(shí)現(xiàn);“特別關(guān)照”,就是說CPU特意為OS準(zhǔn)備的東西。CPU速度快、DMA、中斷、MMX、3DNOW等是CPU的通用功能,和OS無關(guān)4.一般一個(gè)操作系統(tǒng)要提供三類接口給不同類型的使用者,是哪
7、三類接口?各給什么類型的使用者?(4分)Shell,給操作人員;應(yīng)用開發(fā)接口,也叫系統(tǒng)調(diào)用,給應(yīng)用程序開發(fā)人員;系統(tǒng)開發(fā)接口,給在核心做開發(fā)的人,比如驅(qū)動(dòng)程序開發(fā)者。5.產(chǎn)生死鎖的4個(gè)必要條件是什么?(4分)這題是送分的,沒有人在此題丟分。二、求解題(20分)1.下面的示意性代碼片段摘自一個(gè)運(yùn)行在用Round-Robin算法進(jìn)行線程調(diào)度的操作系統(tǒng)上的程序。它建立了若干個(gè)同優(yōu)先級(jí)的線程,其中一個(gè)線程執(zhí)行thread_worker2(),其余線程執(zhí)行thread_work1()。這里面當(dāng)然肯定存在著競(jìng)爭(zhēng)(R
8、aceCondition)。請(qǐng)舉出一種因?yàn)楦?jìng)爭(zhēng)而導(dǎo)致錯(cuò)誤的情況,并用P、V原語操作解決這里的競(jìng)爭(zhēng)問題。(10分)intcounter=0;thread_worker1()//多個(gè)線程執(zhí)行它{while(TRUE){object=CreateANewObj();//CreateANewObj()不訪問任何全局資源AddToListTail(object);//把object加到鏈表的尾部counter=counter+1;}}thread_w