級《實(shí)用操作系統(tǒng)》
《級《實(shí)用操作系統(tǒng)》》由會(huì)員分享,可在線閱讀,更多相關(guān)《級《實(shí)用操作系統(tǒng)》(9頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、北京信息科技大學(xué) 信息管理學(xué)院 2013-2014 (2)期末考試試卷(A卷) 課程名稱: 《實(shí)用操作系統(tǒng)》 考試日期: 2014年7月2日 考試時(shí)間: 考試地點(diǎn): 考試形式: (閉卷) 班級: 學(xué)號: 姓名: 成績: 題號 -一- -二二 三 四 五 六 總分 得分 教師簽字 」、判斷題(本題滿分10分,每題1分,共含10道小題。) (填答案處,答案不填在此處不給分。正確 ,錯(cuò)誤) [1] [2] [3] [4] [5] ⑹ [7] [8] [
2、9] [10] 1. 創(chuàng)建進(jìn)程時(shí),需要在內(nèi)存中建立程序副本。 2. 操作系統(tǒng)通過PCB記錄文件在磁盤上的存儲(chǔ)位置。 3. 操作系統(tǒng)的內(nèi)核通常運(yùn)行在核心態(tài),用戶程序在用戶態(tài)下運(yùn)行。 4. 現(xiàn)代操作系統(tǒng),阻塞、掛起、排隊(duì),都是針對線程的的,而不是針對整個(gè)進(jìn)程的。 5. 在解決互斥問題時(shí),V操作用于請求一個(gè)資源,P操作用于釋放一個(gè)資源。 6. 在頁式存儲(chǔ)管理機(jī)制下,操作系統(tǒng)為一個(gè)進(jìn)程分配的內(nèi)存通常是連續(xù)的。 7. 在虛擬存儲(chǔ)器技術(shù)下,操作系統(tǒng)會(huì)將一部分程序頁面調(diào)入內(nèi)存(稱為主存) ,而在硬盤 上開辟一個(gè)空間(稱為輔存)存放剩余的頁面。
3、8. 在虛擬存儲(chǔ)管理中,可變分配、局部置換的置換策略是:當(dāng)某進(jìn)程待訪問的頁面不在 主存,如果需要將主存中的某頁置換到輔存時(shí),可以在主存中選擇任意進(jìn)程的頁換出。 9. 操作系統(tǒng)安排文件向磁盤上存儲(chǔ)時(shí),連續(xù)的文件塊可能被存儲(chǔ)在磁盤上不連續(xù)的磁盤 物理塊中。 10. 信號量初值可以為負(fù)值。 二、填空題(本題滿分10分,每空1分,共含10道小題) (填答案處,答案不填在此處不給分) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] P V 阻塞態(tài) IP DMA 裝入內(nèi) 存 被執(zhí)行 10 2 頁表 1. 為了實(shí)
4、現(xiàn)互斥,程序中的臨界區(qū)需要使用 [1]函數(shù)和 [2]函數(shù)在兩端進(jìn)行控制。 2. 如果操作系統(tǒng)在運(yùn)行某個(gè)進(jìn)程時(shí)發(fā)現(xiàn)該進(jìn)程申請?jiān)L問一個(gè)已被占用的外設(shè)資源時(shí),會(huì) 阻塞該進(jìn)程,把該進(jìn)程的狀態(tài)由運(yùn)行態(tài)改為 [3]。 3. CPU中負(fù)責(zé)指明下一跳待執(zhí)行指令的寄存器是 [4]。 4. 不經(jīng)過CPU而直接在外部設(shè)備與內(nèi)存之間進(jìn)行數(shù)據(jù)傳輸?shù)哪J?,被稱為 [5]訪問模 式。 5. 靜態(tài)地址重定向是在程序 [6] 的時(shí)候進(jìn)行的,動(dòng)態(tài)地址重定向是在程序指令 [7] 的時(shí)候進(jìn)行的。 6. UNIX System V系統(tǒng)采用混合分配方式記錄文件在磁盤上的位置。其文件目錄表中的索 引節(jié)點(diǎn)能直接索引 [8]
5、個(gè)磁盤塊。 7. 在一級頁式存儲(chǔ)管理方案中,為了獲得一條指令或數(shù)據(jù),需要訪問內(nèi)存 [9]次。第 一次訪問 [10],第二次訪問指令或數(shù)據(jù)所在的內(nèi)存。 三、單項(xiàng)選擇題(本題滿分10分,每題1分,共含10道小題) (填答案處,答案不填在此處不給分) 1 2 3 4 5 6 7 8 9 10 C A C D A A C B B D 1. O 2. 3. 4. 5. 在內(nèi)存管理中,邏輯頁號與物理頁號的映射關(guān)系存儲(chǔ)在 A.鏈表中 B.內(nèi)存分配表中 C.頁表中 D.索引表中 原語最為完成一定功能的程序,它與一般程序的區(qū)別在于
6、 A.程序中的所有操作必須一次執(zhí)行完成 C.原語在執(zhí)行中可以被中斷 在內(nèi)存管理的方案中,內(nèi)存塊的大小 A.不能大于程序頁的大小 C.需要等于程序頁的大小 時(shí)間片輪轉(zhuǎn)算法(RR),是 A. 一種磁盤尋道算法 C. 一種阻塞隊(duì)列排隊(duì)算法 在計(jì)算機(jī)主板中,網(wǎng)絡(luò)、 A.設(shè)計(jì)在南橋芯片中 B. D. B. D. B. O 程序中的所有操作應(yīng)該可以被回朔 核心態(tài)的程序都必須用原語實(shí)現(xiàn) 需要大于程序頁的大小 不能等于程序頁的大小 一種內(nèi)存剩余空間計(jì)算方法 一種進(jìn)程調(diào)度算法 USB硬盤等接口控制器通常 。 B.設(shè)計(jì)在北橋芯片中 D. C.設(shè)計(jì)為獨(dú)立電路芯片組中 D
7、.設(shè)計(jì)在中斷控制器中 6. 在虛擬存儲(chǔ)管理中,可變分配、局部置換的置換策略是:當(dāng)某進(jìn)程待訪問的頁面不在 主存,如果需要將主存中的某頁置換到輔存時(shí), 。 A.需要在該進(jìn)程占用的主存中選擇置換頁 B.該進(jìn)程占用的主存大小不可變 7. 8. 9. C.可以在主存中選擇任意進(jìn)程的頁換出 下面哪個(gè)函數(shù)完成 V ()函數(shù)的功能 A. CreateSemaphore () C. ReleaseSemaphore() 對于記錄型信號量,在執(zhí)行一次 A.不變 C.減1 將一個(gè)程序創(chuàng)建為進(jìn)程,需要 A.為該進(jìn)程分配磁盤空間 C.擴(kuò)大可用的內(nèi)存容量 D.該進(jìn)程占用的輔存大小不可變
8、B. WaitForSingleObject () D. CloseHandle() V操作時(shí),信號量的值應(yīng)當(dāng) B.加1 D.加指定數(shù)值 B. D. 10. 為了對4G內(nèi)存空間的計(jì)算機(jī)尋址,需要設(shè)計(jì) B. 20位的地址總線。 D. 32位的地址總線。 A. 16位的地址總線。 C. 24位的地址總線。 四、計(jì)算題(本題滿分24分,每題8分,共含3小題) 1. (本題8分)設(shè)頁式存儲(chǔ)管理系統(tǒng)在 2GB大小的內(nèi)存管理中,內(nèi)存塊大小設(shè)定為 8K。 (1) 試寫出地址結(jié)構(gòu)格式(頁號尋址位數(shù)、頁內(nèi)尋址位數(shù)) 。(2分) (2) 若某進(jìn)程大小為40K,該進(jìn)程應(yīng)被分為多少
9、頁(2分) (3) 若該進(jìn)程被分配到第 3115塊開始的連續(xù)內(nèi)存塊中,試畫出頁表( 4分) 解: (1) 31 = 18 + 13 (2) 5 (3) 0 - 3115、1-3116、2-3117、3-4118、4-3119 2. (本題8分)假設(shè)操作系統(tǒng)當(dāng)前對 25個(gè)并行運(yùn)行的進(jìn)程進(jìn)行調(diào)度。每個(gè)進(jìn)程分配的時(shí)間 片為20ms,操作系統(tǒng)每次進(jìn)行進(jìn)程切換時(shí)需要耗費(fèi)。 (1) 試計(jì)算操作系統(tǒng)在此場景下為調(diào)度 CPU完成多進(jìn)程并行切換所花費(fèi)的時(shí)間占系 統(tǒng)整個(gè)時(shí)間的比例。(4分) (2) 試根據(jù)計(jì)算結(jié)果描述多進(jìn)程并行運(yùn)行的代價(jià)是什么。 (4分) 解: (1) / ( 20 + = %
10、 (2) 有%的CPU時(shí)間消耗在進(jìn)程切換調(diào)度控制上。 3. (本題8分)在UNIX操作系統(tǒng)采用的索引節(jié)點(diǎn)方式記錄文件在磁盤的存儲(chǔ)位置方法中, 每個(gè)索引節(jié)點(diǎn)有13個(gè)地址項(xiàng)。其中前10個(gè)地址項(xiàng)用于直接尋址, 后3個(gè)為間接尋址的索 引塊指針。假如盤塊的大小為 4K,試計(jì)算: (1) 直接索引尋址最大支持的多大的文件( 2分) (2) 一級間接索引尋址最大支持的多大的文件( 3分) (3) 二級間接索引尋址最大支持的多大的文件( 3分) 解: (1) 4KB (2) 4K x 4K + 4K = 16MB + 4K (3) 4K x 4K x 4K + 4K x 4K + 4K =
11、 64Gb + 16MB + 4K 五、應(yīng)用題(本題滿分46分,共含6小題) 1. (本題6分)進(jìn)程控制塊PCB是操作系統(tǒng)進(jìn)行進(jìn)程管理和內(nèi)存管理中的重要數(shù)據(jù)結(jié)構(gòu)。 試 (1) 寫出進(jìn)程控制塊中記錄的主要內(nèi)容。 (2分) (2) 描述進(jìn)程控制塊在進(jìn)程管理中的作用。 (2分) (3) 描述進(jìn)程控制塊在內(nèi)存管理中的作用。 (2分) 解: (1) 進(jìn)程名等基本信息、狀態(tài)、頁表基址、斷點(diǎn)和現(xiàn)場 ……指針。 (2) 感知進(jìn)程的狀態(tài)、暫存斷點(diǎn)和現(xiàn)場、動(dòng)態(tài)地址重定向、隊(duì)列等。 (3) 記錄頁表基址,在銷毀進(jìn)程時(shí)釋放所占用的內(nèi)存。 2. (本題6分
12、)設(shè)有5個(gè)進(jìn)程之間有下圖所示的同步關(guān)系。 試在這5個(gè)進(jìn)程中用P ()、V() 函數(shù)控制它們之間的同步。 解: 設(shè)P1對P2的同步控制信號量為 s1、P2對P3的信號量為s2、P2對P4的信號量為S3、P2 對P5的信號量為s4、P3對P4的信號量為S5 Semaphore s1 = s2 = s3 = s4 = s5 = 0; P1 {…..code??:.V(s1); } P2 { P(s1);…..code ….V(s2); V(s3); V(s4) } P3 { P(s2); - --..code …V(s5); } P4 { P(s3); P(s5);…..c
13、ode ???..} P5 { P(s4); - --..code ???..} 3. (本題8分)在多用戶并發(fā)訪問情況下,服務(wù)器為每個(gè)用戶連接建立一個(gè)進(jìn)程。為了保證 數(shù)據(jù)庫數(shù)據(jù)的一致性,要求對數(shù)據(jù)庫讀寫操作的限制條件是: (1) 允許任意多的進(jìn)程對數(shù)據(jù)庫同時(shí)讀訪問; (2) 一次只允許一個(gè)寫進(jìn)程對數(shù)據(jù)庫進(jìn)行寫訪問; (3) 如果有一個(gè)進(jìn)程正在進(jìn)行寫數(shù)據(jù)庫操作,禁止任何讀進(jìn)程進(jìn)行讀操作。 試寫出數(shù)據(jù)庫讀進(jìn)程和寫進(jìn)程的示意程序代碼,通過信號量和 P、V函數(shù)實(shí)現(xiàn)上述讀寫限 制。 解: 參見教材P83讀者-寫者問題 4. (本題8分)假設(shè)操作系統(tǒng)提供 Create ()、Read
14、 ()、Write ()、Close ()等API函數(shù), 使用戶態(tài)下的用戶程序通過這些 API函數(shù)訪問外部設(shè)備。 (1) 請畫圖并描述操作系統(tǒng)如何進(jìn)行設(shè)備訪問控制,避免外部設(shè)備訪問沖突的( 4 分) (2) 請畫圖并描述操作系統(tǒng)如何使用虛擬設(shè)備技術(shù)( SPOOLing提高設(shè)備訪問效率 的。(4分) 解: (1) BIOS在創(chuàng)建操作系統(tǒng)進(jìn)程時(shí)將操作系統(tǒng)設(shè)置為核心態(tài),使操作系統(tǒng)可以直接訪問硬件。操 作系統(tǒng)將各個(gè)IO驅(qū)動(dòng)程序設(shè)置為核心態(tài)。在創(chuàng)建應(yīng)用程序進(jìn)程時(shí),將所有用戶進(jìn)程設(shè)置為 用戶態(tài)。 由于CPU拒絕執(zhí)行用戶態(tài)進(jìn)程中訪問 IO的指令和調(diào)用核心態(tài)進(jìn)程的指令, 用戶進(jìn)程不能夠
15、 直接訪問外設(shè)或調(diào)用外設(shè)驅(qū)動(dòng)程序,只能通過調(diào)用操作系統(tǒng)提供的 API函數(shù)訪問外設(shè)。 用戶進(jìn)程訪問外設(shè)時(shí),需要使用 create () API函數(shù)向操作系統(tǒng)的設(shè)備管理進(jìn)程申請,獲得 設(shè)備訪問句柄后才能繼續(xù)調(diào)用 write ()或read () API函數(shù)來訪問外設(shè)。 當(dāng)用戶進(jìn)程申請?jiān)L問某個(gè)外設(shè),而該外設(shè)正被其它進(jìn)程占用時(shí),操作系統(tǒng)的設(shè)備管理進(jìn)程 就會(huì)阻塞該進(jìn)程,直到外設(shè)被其它進(jìn)程釋放。因此,避免了進(jìn)程間外部設(shè)備的訪問沖突。 (2) 采用虛擬設(shè)備技術(shù)(SPOOLing的操作系統(tǒng),一旦有用戶進(jìn)程申請?jiān)L問某個(gè)外設(shè), 操作系統(tǒng) 設(shè)備管理進(jìn)程就創(chuàng)建一個(gè) SP線程來虛擬要訪問的外部設(shè)備。用戶
16、進(jìn)程將把訪問外設(shè)的任務(wù) 交給SP線程來完成。 SP線程將執(zhí)行外設(shè)申請、外設(shè)訪問的操作。如果外設(shè)被其它進(jìn)程占用,操作系統(tǒng)將阻塞 SP 線程,而不是用戶進(jìn)程。這種外設(shè)訪問的模式可以大大提高外設(shè)訪問和用戶進(jìn)程的執(zhí)行效 率。 5. (本題8分)某針對4G內(nèi)存空間的操作系統(tǒng)采用一級頁式存儲(chǔ)管理方案, 設(shè)計(jì)內(nèi)存塊(頁) 的大小為8K。 (1) 試畫出該操作系統(tǒng)劃分頁面的地址空間( 2分) (2) 設(shè)一個(gè)需要 32K內(nèi)存規(guī)模的進(jìn)程,被連續(xù)存放在 34821、34822、34823、34824 內(nèi)存塊中。試畫出內(nèi)存分配后操作系統(tǒng)創(chuàng)建的頁表。 (2分) (3) 試畫出實(shí)現(xiàn)動(dòng)態(tài)地址重定向的方案示意
17、圖。 (要求在畫出各步地址計(jì)算、 傳輸?shù)? 位數(shù),畫出CPU中的基址寄存器)。(2分) (4) 試說明CPU中的基址寄存器在動(dòng)態(tài)地址重定向中的作用。 (2分) (本題可以考試后再學(xué)習(xí)。關(guān)于內(nèi)存管理的復(fù)習(xí)請參考本章的習(xí)題) 6. (本題10分)閱讀下列程序, (1)請對程序中各條語句的功能進(jìn)行注釋。 (6分) HANDLE hHon k1,hHo nk2; HANDLE hHo nkSemaphore; DWORD threadID; //開辟線程1和線程2的句柄變量。 //開辟信號量句柄變量。 //開辟線程編號變量 threadID。 void Hon k1Thread(
18、) { WaitForSingleObject(hHonkSemaphore,INFINITE); // 注釋:P 函數(shù),如果有其它線程正在播 放音樂,阻塞本進(jìn)程。 prin tf("\n Thread1 is work ing \n ”); mciSendString("play C:\\",NULL,O,NULL); // 注釋:調(diào)用 API 函數(shù)播放一個(gè)音樂。 MessageBox(NULL,"Press any key to stop music ","music window",0); //注釋:彈出提示窗口,等待用戶按任意 鍵繼續(xù)執(zhí)行后面的指令。 mciSendSt
19、ring("close C:\\",NULL,0,NULL); // 注釋: 關(guān)閉音樂播放 ReleaseSemaphore(hHonkSemaphore,1,NULL); // 注釋: V 函數(shù),如果有其它線程被阻塞, 喚醒該線程程。 (如果 hHonkSemaphore 信號量的阻塞隊(duì)列中有被阻塞的線程或 進(jìn)程,喚醒頭一個(gè)線程或進(jìn)程) } void Honk2Thread() { WaitForSingleObject(hHonkSemaphore,INFINITE); // 注釋: P 函數(shù),如果有其它線程正在播 放音樂,阻塞本進(jìn)程。 printf("\n Thread2 is
20、 working \n"); mciSendString("play C:\\",NULL,0,NULL); MessageBox(NULL,"Press any key to stop music ","music window",0); mciSendString("close C:\\",NULL,0,NULL); ReleaseSemaphore(hHonkSemaphore,1,NULL); // 注釋: V 函數(shù),如果有其它線程被阻塞, 喚醒該線程程。 } void main(void) { hHonkSemaphore = CreateSemaphore(NULL, 1,
21、 1, "honkSemaphore"); // 注釋: 創(chuàng)建信號量 honkSemaphore ,初 值為 1,用于線程 1 和線程 2 的 互斥。 hHonk1=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Honk1Thread, 0, 0, &threadID); // 注釋: 創(chuàng)建線程 1 hHonk2=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Honk2Thread, 0, 0, &threadID); // 注釋: 創(chuàng)建線程 2 MessageBox(NULL,"Press Enter to stop Main Function","Main window",0); CloseHandle(hHonk1); // 注釋: 關(guān)閉線程 1 CloseHandle(hHonk2); // 注釋: 關(guān)閉線程 2 } (2)描述下列程序的用途和運(yùn)行方式。 (4 分) 本程序創(chuàng)建兩個(gè)播放音樂的線程,由這兩個(gè)線程分別播放音樂。 該程序設(shè)置兩個(gè)線程處于互斥的運(yùn)行方式。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隱蔽工程驗(yàn)收要點(diǎn)
- 給排水中水泵揚(yáng)程與壓力的關(guān)系
- 水泥廠燒成回轉(zhuǎn)窯中控操作問題解答
- 地暖安裝注意事項(xiàng)
- 水泥廠中控操作自動(dòng)化專業(yè)試題(附答案)
- 防水套管的應(yīng)用與分類
- 施工現(xiàn)場職業(yè)健康管理制度
- 常見基坑工程的支護(hù)方式
- 水泥包裝車間各崗位職責(zé)
- 打樁機(jī)的種類
- 水泥磨操作員試題(附答案)
- 鋼結(jié)構(gòu)工程量計(jì)算注意事項(xiàng)
- 水泥控制工試題(附答案)
- 水泥生產(chǎn)工藝類知識(shí)考試題(附答案)-
- 鋼結(jié)構(gòu)安裝施工安全技術(shù)交底范文