版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)教程課后習(xí)題答案 第一章 操作系統(tǒng)概論 1.什么是計(jì)算機(jī)系統(tǒng)?計(jì)算機(jī)系統(tǒng)是怎么構(gòu)成的?了解 PC 的組成情況,說明:1)硬件 組織的基本結(jié)構(gòu),畫出硬件配置圖;2)主要系統(tǒng)軟件和應(yīng)用軟件(若有的話)他們的作 用。 答:計(jì)算機(jī)系統(tǒng)就是按照人的要求接收和存儲(chǔ)信息,自動(dòng)進(jìn)行數(shù)據(jù)處理和計(jì)算,并輸出 結(jié)果信息的系統(tǒng)。 計(jì)算機(jī)系統(tǒng)由硬件子系統(tǒng)和軟件子系統(tǒng)組成。 計(jì)算機(jī)系統(tǒng)的構(gòu)成包括:如圖 1.2 計(jì)算機(jī)硬件系統(tǒng)的構(gòu)成:如圖 1.4 2.從功能以及程序涉設(shè)計(jì)的角度說明計(jì)算機(jī)系統(tǒng)中軟件系統(tǒng)是如何構(gòu)成的? 答:分為系統(tǒng)軟件,支撐軟件和應(yīng)用軟件三層。 3.什么是操作系統(tǒng)?請(qǐng)舉例說明操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中的重
2、要地位。 答:操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的一個(gè)系統(tǒng)軟件,是一些程序模塊的集合。 它們能以盡量有效、合理的方式組織和管理計(jì)算機(jī)的軟硬件資源,合理的組織計(jì)算機(jī)的工 作流程,控制程序的執(zhí)行并向用戶提供各種服務(wù)功能,使得用戶能夠靈活、方便、有效的 使用計(jì)算機(jī),使整個(gè)計(jì)算機(jī)系統(tǒng)能安全高效地運(yùn)行 4.請(qǐng)舉一個(gè)實(shí)際的例子來說明操作系統(tǒng)的功能。 答:你能用用操作系統(tǒng)管理很多資源 5.為什么說“操作系統(tǒng)是控制硬件的軟件”的說法不確切? 答:操作系統(tǒng)不僅能夠控制硬件,也可以控制各種軟件資源。 6.操作系統(tǒng)的基本特征是什么?說明他們之間的關(guān)系。 答:1.并發(fā)性 2.共享性 3.隨機(jī)性 7.試從獨(dú)立性,并發(fā)性和交互性和實(shí)
3、時(shí)性四個(gè)方面來比較批處理系統(tǒng),分時(shí)系統(tǒng)以及實(shí) 時(shí)系統(tǒng)。 答: 分時(shí)系統(tǒng):并發(fā)性是指同時(shí)有多個(gè)用戶共同使用一個(gè)計(jì)算機(jī),宏觀上看是多個(gè)人同時(shí) 使用一個(gè) CPU,微觀上是多個(gè)人在不同時(shí)刻輪流使用 CPU. 獨(dú)占性,是指用戶感覺不到計(jì)算機(jī)為他們服務(wù),就好像整個(gè)系統(tǒng)為他所獨(dú)占。 交互性:是指用戶根據(jù)系統(tǒng)響應(yīng)結(jié)果進(jìn)一步提出新要求,用戶直接干預(yù)每一步。 實(shí)時(shí)性:是指系統(tǒng)對(duì)用戶提出的請(qǐng)求及時(shí)響應(yīng)。 8.引入多道程序設(shè)計(jì)技術(shù)的起因和目的是什么?多道程序系統(tǒng)的特征是什么? 答:多道程序設(shè)計(jì)的基本思想在內(nèi)存中保持多個(gè)作業(yè),主機(jī)可以交替的方式同時(shí)處理 多個(gè)作業(yè),一般來說任何一道作業(yè)的運(yùn)行總是要交替的使用處理器和外設(shè)子
4、案 9.多道程序設(shè)計(jì)的度是指在任一給定時(shí)刻,單個(gè) CPU 所能支持的進(jìn)程數(shù)目最大值。討論要 確定一個(gè)特定系統(tǒng)的多道程序設(shè)計(jì)的度必須考慮的因素??梢约俣ㄅ幚硐到y(tǒng)中進(jìn)程數(shù)量 與作業(yè)數(shù)量相同。 答: 10.描述批處理系統(tǒng)響應(yīng)一個(gè)執(zhí)行請(qǐng)求需要的時(shí)間(稱為響應(yīng)時(shí)間),描述分時(shí)系統(tǒng)下的 響應(yīng)時(shí)間,什么樣的系統(tǒng)可能有較短的響應(yīng)時(shí)間?為什么? 答: 1)就是將用戶的作業(yè)組成一批作業(yè),之后輸入到計(jì)算機(jī)中,計(jì)算機(jī)依次執(zhí)行每個(gè)作 業(yè),然后輸出,即為響應(yīng)時(shí)間。 2)定義這個(gè)響應(yīng)時(shí)間就是:系統(tǒng)對(duì)一個(gè)輸入的反應(yīng)時(shí)間 實(shí)時(shí)系統(tǒng)的反應(yīng)時(shí)間 11.什么情況下批處理是比較好的策略?什么情況下分時(shí)是比較好的策略?現(xiàn)代的操作系 統(tǒng)
5、往往要把兩者結(jié)合,請(qǐng)舉出這樣的例子,并說明它們是怎樣被結(jié)合起來的,并通過這樣 的結(jié)合獲得了什么好處。 答:常見的通用操作系統(tǒng)是分時(shí)系統(tǒng)與批處理系統(tǒng)結(jié)合,其原則是:分時(shí)優(yōu)先,批處理再 后,前臺(tái)響應(yīng)需要頻繁交互的作業(yè),如終端的要求?!昂笈_(tái)”處理時(shí)間性要求不強(qiáng)的作 業(yè)。12.操作系統(tǒng)的技術(shù)發(fā)展是怎樣的?從這一技術(shù)演化過程可以得到什么啟發(fā)? 答:操作系統(tǒng)的發(fā)展是根據(jù)計(jì)算機(jī)硬件發(fā)展,計(jì)算機(jī)應(yīng)用軟件的發(fā)展而發(fā)展的, 我們發(fā)展操作系統(tǒng)的目標(biāo)就是:充分利用硬件,提供更好的服務(wù)。 13.請(qǐng)作一個(gè)調(diào)查,看看各種計(jì)算機(jī)的應(yīng)用領(lǐng)域都在使用什么樣的操作系統(tǒng),他們分別是 什么類型的操作系統(tǒng),調(diào)查的內(nèi)容應(yīng)該涵概現(xiàn)代操作系統(tǒng)
6、的主要類別. 14.現(xiàn)有一下應(yīng)用計(jì)算機(jī)的場(chǎng)合,請(qǐng)為其選擇適當(dāng)?shù)牟僮飨到y(tǒng)。1)航天航空,核變研究; 2)國(guó)家統(tǒng)計(jì)局?jǐn)?shù)據(jù)處理中心;3)學(xué)校學(xué)生上機(jī)學(xué)習(xí)編程 4)高爐爐溫控制;5)民航定 票系統(tǒng),6)發(fā)送電子郵件(在兩個(gè)地區(qū)之間) 答:1)航天航空,核變研究:嵌入式操作系統(tǒng) 2)分布式操作系統(tǒng) 3)個(gè)人計(jì)算機(jī)操作系統(tǒng) 4)實(shí)時(shí)操作系統(tǒng) 5)批處理操作系統(tǒng) 6)網(wǎng)絡(luò)操作系統(tǒng)。 15.什么是 Spooling 技術(shù)?他有什么用?你認(rèn)為未來先進(jìn)的個(gè)人計(jì)算機(jī)會(huì)把假脫機(jī)作為一 個(gè)關(guān)鍵特性嗎? 答:假脫機(jī)(SPOOLing.)技術(shù)的全稱是同時(shí)得外部設(shè)備聯(lián)機(jī)操作,這種技術(shù)的基本思想 是用磁盤設(shè)備作為主機(jī)的直接輸入
7、輸出設(shè)備,主機(jī)直接從磁盤上選取作業(yè)運(yùn)行,作業(yè) 的執(zhí)行結(jié)果 16.外殼程序(shell)是不是操作系統(tǒng)的一部分,為什么? 答:不是,它不屬于操作系統(tǒng)內(nèi)核的一部分,它是一個(gè)應(yīng)用程序。 17.如果你有一個(gè)可用得類 UNIX 系統(tǒng),例如 Linux,Minix 或者 BSD 等,而且你有足夠的權(quán)限 重起或者使得系統(tǒng)崩潰,請(qǐng)編寫一個(gè) shell 程序作下面的實(shí)驗(yàn),用該 shell 程序不停的產(chǎn)生 新進(jìn)程,觀察發(fā)生的事情,在運(yùn)行你的 shell 之前,請(qǐng)用 sync 命令同步硬盤和內(nèi)存中的磁 盤緩存,以免在程序運(yùn)行過程中訪問文件系統(tǒng),注意,請(qǐng)不要在任何共享的系統(tǒng)中做這件 事情? 答:進(jìn)程數(shù)不斷增多,最后導(dǎo)
8、致系統(tǒng)崩潰了! 重要: 18.現(xiàn)代操作系統(tǒng)的設(shè)計(jì)很講求機(jī)制與策略的分離,已經(jīng)使操作系統(tǒng)的結(jié)構(gòu)和實(shí)現(xiàn)能夠在 一定范圍內(nèi)適應(yīng)不同的需要。例如 Solaris 的調(diào)度器實(shí)現(xiàn)了進(jìn)程調(diào)度的基本機(jī)制,同時(shí)它 允許通過動(dòng)態(tài)調(diào)整核心參數(shù)實(shí)現(xiàn)不同負(fù)載下的系統(tǒng)性能平衡,這就是一種機(jī)制和策略的分 離,請(qǐng)給出一個(gè)例子,說明怎樣根據(jù)調(diào)度將機(jī)制和策略分開。請(qǐng)構(gòu)造一種機(jī)制,允許父 進(jìn)程控制子進(jìn)程的調(diào)度策略。 19.有興趣,可以去寫一篇,記得寫完了,發(fā)給我,我把你的文章貼上來! 硬件環(huán)境第二章 操作系統(tǒng)的硬件環(huán)境 1. 請(qǐng)簡(jiǎn)述處理器的組成和工作原理。你認(rèn)為那些部分和操作系統(tǒng)的密切關(guān)系,為什么? 答: 一般的處理器由運(yùn)算器,控
9、制器,一系列的寄存器以及高速緩存構(gòu)成。運(yùn)算器實(shí)現(xiàn) 任何指令中的算術(shù)和邏輯運(yùn)算,是計(jì)算機(jī)計(jì)算的核心;控制器負(fù)責(zé)控制程序運(yùn)行的流程, 包括取指令,維護(hù) CPU 狀態(tài),CPU 與內(nèi)存之間的交互等等。寄存器是指令在 CPU 內(nèi)部做處理 的過程中占存數(shù)據(jù),地址一級(jí)指令信息的存儲(chǔ)設(shè)備,在計(jì)算機(jī)的存儲(chǔ)系統(tǒng)中它具有最快的 訪問速度。加上高速緩存以及內(nèi)存管理單元(MMU) 2. 為了支持操作系統(tǒng),現(xiàn)代處理器一般都提供哪兩種工作狀態(tài),用來隔離操作系統(tǒng)和 普通程序??jī)煞N狀態(tài)各有什么特點(diǎn)? 答; 多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為管態(tài)和目態(tài) 管態(tài):操作系統(tǒng)管理程序運(yùn)行的狀態(tài),較高的特權(quán)級(jí)別,又稱為特權(quán)態(tài)(特態(tài))、系統(tǒng)態(tài)
10、目態(tài):用戶程序運(yùn)行時(shí)的狀態(tài),較低的特權(quán)級(jí)別,又稱為普通態(tài)(普態(tài))、用戶態(tài) 3.什么是分級(jí)的存儲(chǔ)體系結(jié)構(gòu)?它主要解決什么問題? 答: 容量、速度和成本 三個(gè)目標(biāo)不可能同時(shí)達(dá)到最優(yōu),要作權(quán)衡 存取速度快,每比特價(jià)格高 容量大,每比特價(jià)格越低,同時(shí)存取速度也越慢 解決方案:采用層次化的存儲(chǔ)體系結(jié)構(gòu) 當(dāng)沿著層次下降時(shí) 每比特的價(jià)格將下降,容量將增大 速度將變慢,處理器的訪問頻率也將下降 4.主存儲(chǔ)器通常有哪兩種類型?它們各自的特點(diǎn)是什么?用在哪里? 答:硬盤存儲(chǔ)器,和內(nèi)存存儲(chǔ)器. 硬盤存儲(chǔ)器:容量大,存儲(chǔ)速率慢,斷電后,數(shù)據(jù)信息不丟失 內(nèi)存存儲(chǔ)器:容量小,存儲(chǔ)速率快,斷電后,數(shù)據(jù)信息丟失。 5.請(qǐng)簡(jiǎn)述
11、程序局部性原理。這個(gè)原理在分級(jí)的存儲(chǔ)體系結(jié)構(gòu)中是怎么樣起作用的? 答:時(shí)間局部性,空間局部性。起的作用是:提高存儲(chǔ)系統(tǒng)效能這個(gè)目的。 6.什么是存儲(chǔ)保護(hù)?有哪些方法實(shí)現(xiàn)存儲(chǔ)保護(hù)? 答:對(duì)主存中的信息加以嚴(yán)格的保護(hù),使操作系統(tǒng)及其它程序不被破壞,是其正確運(yùn)行的 基 本條件之一 多用戶,多任務(wù)操作系統(tǒng):OS 給每個(gè)運(yùn)行進(jìn)程分配一個(gè)存儲(chǔ)區(qū)域 操作系統(tǒng)提供了:1.界限地址寄存器,存儲(chǔ)健兩個(gè)存儲(chǔ)保護(hù)機(jī)構(gòu)! 7。 呵呵,大家去翻資料把! 8.緩沖技術(shù)在計(jì)算機(jī)系統(tǒng)中起著什么樣的作用?它是如何工作的? 答:緩沖技術(shù)一般有三個(gè)用途,一種是用在處理器和主存儲(chǔ)器之間的;另一種是用在處理 器和其他外部設(shè)備之間的;還有
12、一種是用在設(shè)備與設(shè)備之間的通信上。 9.什么是中斷?為什么說中斷對(duì)現(xiàn)代計(jì)算機(jī)很重要? 答: 中斷概念:指 CPU 對(duì)系統(tǒng)中或系統(tǒng)外發(fā)生異步事件的響應(yīng) 異步事件是指無一定時(shí)序關(guān)系的隨機(jī)發(fā)生事件 如外部設(shè)備完成數(shù)據(jù)傳輸,實(shí)時(shí)設(shè)備出現(xiàn)異常等 中斷機(jī)制是操作系統(tǒng)得以正常工作的最重要的手段 它使得 OS 可以捕獲普通程序發(fā)出的系統(tǒng)功能調(diào)用 及時(shí)處理設(shè)備的中斷請(qǐng)求防止用戶程序中破壞性的活動(dòng)等等 10.中斷的一般處理過程是怎么樣的?多個(gè)中斷同時(shí)發(fā)生呢? 答:1)如書圖 2.9(簡(jiǎn)單的中斷處理過程) 2)如書圖 2.12(一個(gè)多優(yōu)先級(jí)中斷系統(tǒng)中多個(gè)中斷的處理示例) 11.請(qǐng)簡(jiǎn)述中斷和操作體統(tǒng)的關(guān)系,操作系統(tǒng)是
13、如何利用中斷機(jī)制的? 答: 中斷機(jī)制是操作系統(tǒng)得以正常工作的最重要的手段 它使得 OS 可以捕獲普通程序發(fā)出的系統(tǒng)功能調(diào)用 及時(shí)處理設(shè)備的中斷請(qǐng)求 防止用戶程序中破壞性的活動(dòng)等等 12. 常用的 I/O 控制技術(shù)有那些?各有什么特點(diǎn)? 答:常用的 I/O 控制技術(shù)有以下幾種:程序控制,中斷驅(qū)動(dòng)以及直接存儲(chǔ)器存取(DMA) 以及通道。 程序控制 I/O 技術(shù):由處理器提供 I/O 相關(guān)指令來實(shí)現(xiàn) I/O 處理單元處理請(qǐng)求并設(shè)置 I/O 狀態(tài)寄存器相關(guān)位 不中斷處理器,也不給處理器警告信息 處理器定期輪詢 I/O 單元的狀態(tài),直到處理完畢 I/O 軟件包含直接操縱 I/O 的指令 控制指令: 用于
14、激活外設(shè),并告訴它做什么 狀態(tài)指令: 用于測(cè)試 I/O 控制中的各種狀態(tài)和條件 數(shù)據(jù)傳送指令: 用于在設(shè)備和主存之間來回傳送數(shù)據(jù) 主要缺陷:處理器必須關(guān)注 I/O 處理單元的狀態(tài),因而耗費(fèi)大量時(shí)間輪詢信息,嚴(yán)重地降 低了系統(tǒng)性能 中斷驅(qū)動(dòng) I/O 技術(shù):為了解決程序控制 I/O 方法的主要問題 應(yīng)該讓處理器從輪詢?nèi)蝿?wù)中解放出來 使 I/O 操作和指令執(zhí)行并行起來 具體作法: 當(dāng) I/O 處理單元準(zhǔn)備好與設(shè)備交互的時(shí)候 通過物理信號(hào)通知處理器,即中斷處理器 DMA 技術(shù):中斷的引入大大地提高了處理器處理 I/O 的效率 當(dāng)處理器和 I/O 間傳送數(shù)據(jù)時(shí),效率仍舊不高 解決方法: 直接存儲(chǔ)器訪問(
15、DMA:Direct Memory Access) 通過系統(tǒng)總線中一獨(dú)立控制單元DMA 控制器 自動(dòng)控制成塊數(shù)據(jù)在內(nèi)存和 I/O 單元間的傳送 大大提高處理 I/O 的效能 通道:獨(dú)立于中央處理器,專門負(fù)責(zé)數(shù)據(jù) I/O 傳輸?shù)奶幚頇C(jī) 它對(duì)外設(shè)實(shí)現(xiàn)統(tǒng)一管理 代替 CPU 對(duì) I/O 操作進(jìn)行控制 使 CPU 和外設(shè)可以并行工作 通道又稱為 I/O 處理機(jī) 引入通道的目的: 為了使 CPU 從 I/O 事務(wù)中解脫出來 同時(shí)為了提高 CPU 與設(shè)備、設(shè)備與設(shè)備之間的并行度13.時(shí)鐘對(duì)操作系統(tǒng)有什么重要作用? 時(shí)鐘為計(jì)算機(jī)完成以下必不可少的工作: 在多道程序運(yùn)行環(huán)境中,為系統(tǒng)發(fā)現(xiàn)陷入死循環(huán)(編程錯(cuò)誤)
16、的作業(yè),防止機(jī)時(shí)的浪費(fèi) 在分時(shí)系統(tǒng)中,間隔時(shí)鐘實(shí)現(xiàn)作業(yè)間按時(shí)間片輪轉(zhuǎn) 在實(shí)時(shí)系統(tǒng)中,按要求的間隔輸出正確時(shí)間信號(hào)給實(shí)時(shí)的控制設(shè)備(如 AD、D/A 轉(zhuǎn)換設(shè) 備) 定時(shí)喚醒要求延遲執(zhí)行的各外部事件(如定時(shí)為各進(jìn)程計(jì)算優(yōu)先數(shù),銀行中定時(shí)運(yùn)行某類 結(jié)賬程序等) 記錄用戶使用設(shè)備時(shí)間和記錄某外部事件發(fā)生時(shí)間 記錄用戶和系統(tǒng)所需要的絕對(duì)時(shí)間,即年、月、日 第三章 用戶接口與作業(yè)管理 1.闡述程序,作業(yè),作業(yè)步和進(jìn)程之間的聯(lián)系和區(qū)別。 答: (1)作業(yè) 用戶在一次計(jì)算過程中,或者一次事務(wù)處理過程中,要求計(jì)算機(jī)系統(tǒng)所做工作的總稱 (2)作業(yè)步 一個(gè)作業(yè)可劃分成若干部分,稱為一個(gè)作業(yè)步 典型的作業(yè)控制過程:
17、“編譯”、“連接裝配”、“運(yùn)行” 2.一個(gè)具有分時(shí)兼批處理功能的操作系統(tǒng)應(yīng)該怎樣調(diào)度和管理作業(yè)?為什么? 品3.在一個(gè)批處理系統(tǒng)中,一個(gè)作業(yè)從提交到運(yùn)行結(jié)束并退出系統(tǒng),通常要經(jīng)歷哪幾個(gè)階段 和狀態(tài)?你能說出這些狀態(tài)轉(zhuǎn)變的原因嗎?哪些程序負(fù)責(zé)這些狀態(tài)的轉(zhuǎn)變? 4.假設(shè)有三個(gè)作業(yè),他們進(jìn)入時(shí)間和估計(jì)運(yùn)行的時(shí)間如下: 作業(yè)號(hào) 進(jìn)入時(shí)刻 估計(jì)運(yùn)行時(shí)間 1 10:00 60 分鐘 2 10:10 60 分鐘 3 10: 25 15 分鐘 在單道批處理方式下,采用先來先服務(wù)算法和最短作業(yè)優(yōu)先算法進(jìn)行作業(yè)調(diào)度。請(qǐng)給出 他們的調(diào)度程序,并分別計(jì)算出作業(yè)平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間,請(qǐng)對(duì)計(jì)算結(jié)果進(jìn) 行解釋。
18、答:先來先服務(wù): 作業(yè)號(hào) 進(jìn)入時(shí)間 估計(jì)運(yùn)行時(shí)間 開始時(shí)間 結(jié)束時(shí)間 周轉(zhuǎn)時(shí)間 帶權(quán)周轉(zhuǎn)時(shí)間 1 10:00 60 10:00 11:00 60 1 2 10:10 60 11:00 12:00 110 11/6 3 10:25 15 12:00 12:15 110 22/3 平均周轉(zhuǎn)時(shí)間:280/3 帶權(quán):55/6+6/6=61/6 最短作業(yè)服務(wù): 作業(yè)號(hào) 進(jìn)入時(shí)間 估計(jì)運(yùn)行時(shí)間 開始時(shí)間 結(jié)束時(shí)間 周轉(zhuǎn)時(shí)間 帶權(quán)周轉(zhuǎn)時(shí)間 1 10:00 60 10:00 11:00 60 1 2 10:10 60 11:15 12:15 125 25/12 3 10:25 15 11: 00 11: 15
19、 50 10/3平均周轉(zhuǎn)時(shí)間:235/3 帶權(quán):1+25/12+10/3= 77/125.有一個(gè)兩道的批處理操作系統(tǒng),作業(yè)調(diào)度采用最短作業(yè)優(yōu)先的調(diào)度算法,進(jìn)程調(diào)度采用 基于優(yōu)先數(shù)的搶占式調(diào)度算法,有如下的作業(yè)序列: 作業(yè) 進(jìn)入時(shí)間 估計(jì)運(yùn)行時(shí)間 優(yōu)先數(shù) 1 10:00 40 分鐘 5 2 10:20 30 分鐘 3 3 10:30 50 分鐘 4 4 10: 50 20 分鐘 6 其中優(yōu)先數(shù)數(shù)值越小,優(yōu)先級(jí)越高。 1)列出所有作業(yè)進(jìn)入內(nèi)存時(shí)間及運(yùn)行結(jié)束時(shí)間 2)計(jì)算作業(yè)平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間。 答: 作業(yè)號(hào) 進(jìn)入時(shí)間 估計(jì)運(yùn)行時(shí)間 開始時(shí)間 結(jié)束時(shí)間 周轉(zhuǎn)時(shí)間 帶權(quán)周轉(zhuǎn)時(shí)間 1 10:
20、00 40 10:00 11:00 60 3/2 2 10:20 30 10: 20 10:50 30 1 3 10:30 50 10:30 11:20 50 1 4 10:50 20 11: 00 11:20 30 3/2 平均周轉(zhuǎn)時(shí)間:2.5 帶權(quán):5 第四章 進(jìn)程管理 1.一個(gè)單 CPU 的操作系統(tǒng)共有 n 個(gè)進(jìn)程,不考慮進(jìn)程狀態(tài)過渡時(shí)的情況,也不考慮空轉(zhuǎn)進(jìn) 程(1)給出運(yùn)行進(jìn)程的個(gè)數(shù);(2)給出就緒進(jìn)程的個(gè)數(shù);(3)給出等待進(jìn)程的個(gè)數(shù)。 解:1.運(yùn)行進(jìn)程的個(gè)數(shù)可能是 0,也可能是 1; 2,就緒的進(jìn)程的個(gè)數(shù)可能是 0,也可能是 n-1 3等待進(jìn)程的個(gè)數(shù)可能是 0,也可能是 n 2.多道
21、程序在單 CPU 上并發(fā)運(yùn)行和多道程序在多 CPU 上并行執(zhí)行,這兩者在本質(zhì)是否相同 為什么?請(qǐng)給出以上兩者在實(shí)現(xiàn)時(shí)應(yīng)考慮什么問題? 答: 1)本質(zhì)上不同,前者是宏觀上并發(fā)同時(shí)運(yùn)行,微觀上是交替順序執(zhí)行,后者則是宏觀上并 行,微觀上也并行。 2)在實(shí)現(xiàn)多道程序設(shè)計(jì)時(shí),必須協(xié)調(diào)好資源使用者和被使用者之間的關(guān)系,即對(duì)處理機(jī)資 源加以管理,以實(shí)現(xiàn)處理機(jī)在各個(gè)可運(yùn)行程序之間的分配與調(diào)度,對(duì)內(nèi)存資源加以管理,將 內(nèi)存分配給各個(gè)運(yùn)行程序,還要解決程序在內(nèi)存中的定位問題,并防止內(nèi)存中各個(gè)程序之 間互相干擾或?qū)Σ僮飨到y(tǒng)的干擾,對(duì)設(shè)備資源進(jìn)行管理,使各個(gè)程序在使用設(shè)備時(shí),不發(fā) 生沖突。 3.用進(jìn)程概念說明操作系
22、統(tǒng)的并發(fā)性和不確定性是怎樣體現(xiàn)出來的? 答:進(jìn)程的并發(fā)特性和異步特性體現(xiàn)了操作系統(tǒng)的并發(fā)性和不確定性。 進(jìn)程的并發(fā)特性:可以同其他進(jìn)程一道向前推進(jìn),即一個(gè)進(jìn)程的第一個(gè)動(dòng)作可以在另一 個(gè)進(jìn)程的最后一個(gè)動(dòng)作結(jié)束之前開始 進(jìn)程的異步性:每個(gè)進(jìn)程按照各自獨(dú)立的,不可預(yù)知的速度向前推進(jìn)。4PCB 的作用是什么?他是怎么樣描述進(jìn)程的動(dòng)態(tài)本質(zhì)的? 答:PCB 稱為進(jìn)程控制塊(Process Control Block),為了便于系統(tǒng)控制和描述進(jìn)程的活動(dòng) 過程,在操作系統(tǒng)核心中為進(jìn)程定義一個(gè)專門的數(shù)據(jù)結(jié)構(gòu),就是 PCB。 系統(tǒng)利用 PCB 來描述進(jìn)程的基本情況以及進(jìn)程的運(yùn)行變化過程。PCB 是進(jìn)程存在的唯一標(biāo)
23、 志。當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程時(shí),為進(jìn)程設(shè)置一個(gè) PCB,再利用 PCB 對(duì)進(jìn)程進(jìn)行控制和管理;撤 銷進(jìn)程時(shí),-系統(tǒng)收回它的 PCB,進(jìn)程也隨之消亡。 5.進(jìn)程的三個(gè)基本狀態(tài)轉(zhuǎn)換如圖(見書),圖中 1,2,3,4 表示某種類型的狀態(tài)變遷,請(qǐng) 分別回答下列問題: 1)什么“事件”引起某一種類型的狀態(tài)變遷 答:運(yùn)行中的進(jìn)程因?yàn)橹袛嗟陌l(fā)生,或者需要等待某種事件的發(fā)生,變遷到等待狀態(tài) 等待狀態(tài)的進(jìn)程,應(yīng)為所等待的事件發(fā)生了,變遷到就緒態(tài) CPU 為空的時(shí)候,就緒態(tài)的進(jìn)程就變遷到運(yùn)行狀態(tài) 運(yùn)行的進(jìn)程因?yàn)檎{(diào)度程序,變遷到就緒狀態(tài) 2)系統(tǒng)中常常由于某一進(jìn)程的狀態(tài)變遷引起另一進(jìn)程也產(chǎn)生狀態(tài)變遷,試判斷在下述情 況
24、下,如果有的話,將發(fā)生什么因果變遷? 3 -1 2. -1 4-1 3-4 如果有處于就緒態(tài)的進(jìn)程 (3-1) 如果有處于就緒態(tài)的進(jìn)程 (2-1) CPU 為空(4-1) 等待事件發(fā)生(3-4) 3)在什么情況下,下述變遷中哪些將不立即引起其他變遷? 1 2 3 4 當(dāng) 1 發(fā)生,并不引起其他變遷 當(dāng) 2 發(fā)生,如果有進(jìn)程處于就緒態(tài),引起 1 發(fā)生 當(dāng) 3 發(fā)生, 如果有進(jìn)程處于就緒態(tài),引起 1 發(fā)生 當(dāng) 4 發(fā)生,如果 CPU 為空,那么引起 1 發(fā)生 4)引起進(jìn)程狀態(tài)變遷的根本原因是什么? 答: 原因:自身的進(jìn)展情況和外界環(huán)境條件的變化。自身的邏輯,中斷和進(jìn)程調(diào)度程序 等! 根據(jù)進(jìn)程的動(dòng)態(tài)
25、性,進(jìn)程在其生命周期內(nèi),需要經(jīng)歷一系列離散狀態(tài)。 6.內(nèi)核通常完成哪些功能?經(jīng)過內(nèi)核擴(kuò)充后形成的虛擬機(jī)有哪些屬性? 答:內(nèi)核一般提供如下功能 1)中斷處理 2)進(jìn)程調(diào)度 3)進(jìn)程控制 4)進(jìn)程同步與互斥;5)進(jìn)程通信;6)存儲(chǔ)管理的 基本操作 7)設(shè)備管理的基本操作 8)文件信息管理的基本操作 9)時(shí)鐘管理 虛擬機(jī)的屬性有:1)沒有中斷 2)為每個(gè)進(jìn)程提供了一臺(tái)虛擬處理機(jī),每個(gè)進(jìn)程好像在各 自的處理機(jī)上順序的運(yùn)行 3)為進(jìn)程提供了強(qiáng)大的指令系統(tǒng),即非特權(quán)的指令和原語一起 組成的指令系統(tǒng) 7.并發(fā)進(jìn)程執(zhí)行時(shí)一定會(huì)產(chǎn)生與時(shí)間有關(guān)的錯(cuò)誤嗎?為什么? 答:不一定,如果并發(fā)進(jìn)程都占有一些受到保護(hù)的私有資
26、源(包括內(nèi)存,設(shè)備等資源),那 么執(zhí)行的結(jié)果和進(jìn)程調(diào)度的算法以及中斷等外界環(huán)境沒有關(guān)系,所以不一定會(huì)產(chǎn)生與時(shí)間 有關(guān)的錯(cuò)誤. 8.試舉出進(jìn)程狀態(tài)轉(zhuǎn)換的典型原因和引起進(jìn)程調(diào)度的因素。 答:進(jìn)程狀態(tài)轉(zhuǎn)換的典型原因:1 中斷或者等待某事件發(fā)生,2.所等待事件發(fā)生了 3,CPU 為空引起進(jìn)程調(diào)度的因素為: 1)正在執(zhí)行的進(jìn)程運(yùn)行完畢 2)正在執(zhí)行的進(jìn)程調(diào)用阻塞原語將自己阻塞起來并進(jìn)入等待狀態(tài) 3)正在執(zhí)行的進(jìn)程調(diào)用了 P 原語操作,從而因?yàn)橘Y源不足而被阻塞,或調(diào)用了 V 原語操作 激活了等待資源的進(jìn)程隊(duì)列 4) 執(zhí)行中的進(jìn)程提出了 I/O 請(qǐng)求后被阻塞 5) 在分時(shí)系統(tǒng)中時(shí)間片已經(jīng)用完 以上都是 CP
27、U 為不可搶占方式下引起進(jìn)程調(diào)用的原因,當(dāng) CPU 為可搶占時(shí),就緒隊(duì)列中的進(jìn) 程比當(dāng)前運(yùn)行的進(jìn)程的優(yōu)先級(jí)高,也引起進(jìn)程調(diào)度 9.說明下列活動(dòng)是屬于哪些制約關(guān)系? 1)若干同學(xué)去圖書館借書 進(jìn)程互斥 2)兩隊(duì)進(jìn)行籃球比賽 進(jìn)程互斥 3)流水線生產(chǎn)中的各道工序 進(jìn)程同步 4)商品生產(chǎn)和社會(huì)消費(fèi) 進(jìn)程同步 10,是否所有的共享資源都是臨界資源,為什么? 答:不是,根據(jù)定義,一次只允許一個(gè)進(jìn)程使用得進(jìn)程才叫臨界資源,能同時(shí)被多個(gè)進(jìn)程 使用得資源不是臨界資源 11設(shè)一臺(tái)計(jì)算機(jī),有兩條 I/O 通道,分別接一臺(tái)卡片輸入機(jī)和一臺(tái)打印機(jī)。卡片機(jī)把一 疊卡片逐一輸入到緩沖區(qū) B1 中,加工處理后再搬到緩沖區(qū)
28、B2 中,并在打印機(jī)上印出,問: 1)系統(tǒng)要設(shè)幾個(gè)進(jìn)程來完成這個(gè)任務(wù)?各自的工作是什么? 2)這些進(jìn)程間有什么樣的相互制約關(guān)系 3)用 P,V 操作寫出這些進(jìn)程的同步算法 4)設(shè)系統(tǒng)中只有上述幾個(gè)進(jìn)程,用圖表示出各自狀態(tài)變遷情況及原因? 答:這是一個(gè)典型的生產(chǎn)者,消費(fèi)者問題 1)系統(tǒng)要設(shè)三個(gè)進(jìn)程完成任務(wù),第一個(gè)進(jìn)程 P1,從卡片輸入機(jī)中讀入數(shù)據(jù),并且把數(shù)據(jù)放 入緩沖區(qū) B1 中,第二個(gè)進(jìn)程從 B1 緩沖區(qū)中取數(shù)據(jù),加工處理后放入緩沖區(qū) B2 中。第三個(gè)進(jìn) 程將緩沖區(qū)的內(nèi)容輸入到打印機(jī)中打印出來 2)這三個(gè)進(jìn)程之間是同步和互斥的關(guān)系 3)三個(gè)進(jìn)程之間必須協(xié)調(diào)工作,需設(shè)置四個(gè)信號(hào)量,S1,S2,S
29、3,S4 并令 S1 的初值為 1,S2 的 處置為 0,S4 的初值為 1,則程序?yàn)椋?進(jìn)程 p1 進(jìn)程 p2 進(jìn)程 p3 P(S1) P(S2) P(S3) 從卡片機(jī)中讀入數(shù)據(jù) P(S4) 將緩沖區(qū) B2 內(nèi)容 V(S2) 將 Buffer B1 中的數(shù)據(jù) 在打印機(jī)中輸出 拷貝道 Buffer B2 中 V(S4) V(S1) V(S3) 4)當(dāng)緩沖區(qū) B1 為空時(shí),當(dāng)有輸入時(shí),進(jìn)程 p1 進(jìn)入就緒態(tài),如果 CPU 為空,則為運(yùn)行態(tài),輸 入完成后,進(jìn)入等待態(tài) 如果存在進(jìn)程 p2,則為等待態(tài),當(dāng) S2+1 后,處于等待態(tài)進(jìn)程進(jìn)入就緒態(tài),如果 CPU 為空 進(jìn)入運(yùn)行態(tài),拷貝完成后,進(jìn)入等待態(tài)
30、如果存在進(jìn)程 p3,則為等待態(tài),當(dāng) S3+1 后,處于等待態(tài)進(jìn)程進(jìn)入就緒態(tài),如果 CPU 為空 進(jìn)入運(yùn)行態(tài),輸出完成后,進(jìn)入等待態(tài)12.設(shè)有無窮多個(gè)信息,輸入進(jìn)程把信息逐個(gè)寫入緩沖區(qū),輸入進(jìn)程逐個(gè)地從緩沖區(qū)中取 出信息。在下述情況下:1)緩沖區(qū)是環(huán)形的,最多可以容納 n 個(gè)信息;2)緩沖區(qū)是無窮大 的。 試分別回答下列問題? 1)輸入,輸出兩進(jìn)程讀,寫緩沖區(qū)需要什么條件? 2)用 P,V 操作寫出輸入,輸出兩進(jìn)程的同步算法,并給出信號(hào)量含義以及初值 3)指出信號(hào)量的值的變化范圍和其值的含義 答: 一:當(dāng)緩沖區(qū)的大小為 n 時(shí) 1)當(dāng)緩沖區(qū)信息為空的時(shí)候,輸出進(jìn)程無法讀,處于等待狀態(tài),當(dāng)緩沖區(qū)信
31、息為滿的時(shí) 候無法寫,都某個(gè)緩沖區(qū)單位進(jìn)行讀寫的時(shí)候,要互斥 2) 1.空的信號(hào)量 empty 初值為 n, 滿的信號(hào)量為 full 初值為 0, 對(duì)緩沖區(qū)單元的互斥信號(hào) 量為 mutex,j,k 為緩沖區(qū)單位地址,初值為 0 寫進(jìn)程 讀進(jìn)程 P(empty) P(full) P(mutex) P(mutex) 向 Bufferi寫入信息 從 Bufferk中讀信息 V(mutex) V(mutex) V(full) V(empty) j:=(j+1)mod n k:=(k+1)mod n 4)empty 表示還有多少緩沖區(qū)單元為空,如果 empty=0,表示緩沖區(qū)滿,系統(tǒng)調(diào)用寫進(jìn)程時(shí) ,寫進(jìn)
32、程處于等待態(tài) full 表示緩沖區(qū)都多少有信心的單元,如果 full=0, 表示緩沖區(qū)空,系統(tǒng)調(diào)用寫進(jìn)程時(shí) ,讀進(jìn)程處于等待態(tài) mutex 表示對(duì)于緩沖區(qū)單元的互斥信號(hào)量,當(dāng) mutex=1 時(shí),開鎖,mutex=0 時(shí),閉鎖 二當(dāng)緩沖區(qū)大小為無窮大時(shí) 1)同上 2) 1空的信號(hào)量 empty 不用設(shè), 滿的信號(hào)量為 full 初值為 0, 對(duì)緩沖區(qū)單元的互斥信號(hào)量 為 mutex,j,k 為緩沖區(qū)單位地址,初值為 0 寫進(jìn)程 讀進(jìn)程 P(full) P(mutex) P(mutex) 向 Bufferi寫入信息 從 Bufferk中讀信息 V(mutex) V(mutex) V(full)
33、j:=(j+1)mod n k:=(k+1)mod n 4)full 表示緩沖區(qū)都多少有信心的單元,如果 full=0, 表示緩沖區(qū)空,系統(tǒng)調(diào)用寫進(jìn)程 時(shí),讀進(jìn)程處于等待態(tài) mutex 表示對(duì)于緩沖區(qū)單元的互斥信號(hào)量,當(dāng) mutex=1 時(shí),開鎖,mutex=0 時(shí),閉鎖 13.假定一個(gè)閱覽室最多可以容納 100 人,讀者進(jìn)入和離開閱覽室都必須在閱覽室門口的一 個(gè)登記表上標(biāo)志(進(jìn)入時(shí)登記,離開時(shí)去掉登記項(xiàng))而且每次只允許一人登記或者去掉登記,問: 1) 應(yīng)編寫幾個(gè)進(jìn)程完成這項(xiàng)工作,程序的主要?jiǎng)幼魇切┦裁???yīng)該設(shè)置幾個(gè)進(jìn)程?進(jìn)程 和程序間的關(guān)系如何? 2) 用 P,V 操作寫出這些進(jìn)程的同步通信
34、關(guān)系 答:編寫兩個(gè)進(jìn)程,一個(gè)處理讀者進(jìn)入,一個(gè)處理讀者離開,進(jìn)程是程序的動(dòng)態(tài)執(zhí)行 設(shè)置信號(hào)量 full 為初值為 0, 空的信號(hào)量 empty 初值為 100, 互斥信號(hào)量 mutex 初值 為 1 進(jìn)入 離開 P(empty) P(full) P(mutex) P(mutex) 登記 取消登記 V(mutex) V(mutex) V(full) V(empty) 進(jìn)入 離開 14在生產(chǎn)者和消費(fèi)者問題中,如果對(duì)調(diào)生產(chǎn)者(或消費(fèi)者)進(jìn)程中的兩個(gè) P 操作和兩個(gè) V 操作的次序,會(huì)發(fā)生什么情況?請(qǐng)說明! 答:對(duì)調(diào) P 操作, 會(huì)發(fā)生死鎖 因?yàn)?P(empty)在 p(mutex)和 v(mutex
35、)內(nèi)部,也就是臨界 區(qū)中,當(dāng) empty0,時(shí),P(empty)在臨界區(qū)中進(jìn)入到了休眠狀態(tài)。那么就別的進(jìn)程都進(jìn)入 不到臨界區(qū)中,進(jìn)入死鎖狀態(tài)。 而兩個(gè) V 操作無關(guān)緊要 15.為什么引入高級(jí)通信機(jī)構(gòu)?他有什么優(yōu)點(diǎn)?說明消息緩沖通信機(jī)構(gòu)的基本工作過程? 答: 1)為了解決大量的消息交換, 2)優(yōu)點(diǎn):不僅能夠保證相互制約的進(jìn)程之間的相互關(guān)系,還同時(shí)實(shí)現(xiàn)了進(jìn)程之間的信息 交換 3)消息緩沖通信技術(shù)的工作過程: 其基本思想是:根據(jù)“生產(chǎn)者-消費(fèi)者”原理,利用內(nèi)存中公用消息緩沖區(qū)實(shí)現(xiàn)進(jìn)程之間 的信息交換。 內(nèi)存中開辟了若干消息緩存區(qū),用以存放消息,每當(dāng)一個(gè)進(jìn)程(發(fā)送進(jìn)程)向另一個(gè)進(jìn)程 (接收進(jìn)程)發(fā)送消
36、息時(shí),便申請(qǐng)一個(gè)消息緩沖區(qū),并把已準(zhǔn)備好的消息發(fā)送到緩沖區(qū)中 ,然后把該消息緩沖區(qū)插入到接受進(jìn)程的消息隊(duì)列中,最后通知接受進(jìn)程,接收進(jìn)程收到 發(fā)送進(jìn)程發(fā)送到的通知后,從本進(jìn)程的消息隊(duì)列中摘下一消息緩沖區(qū),取出所需的消息, 然后把消息緩沖區(qū)還給系統(tǒng)。 16.進(jìn)程間為什么要進(jìn)行通信?在編寫自己的程序時(shí),是否考慮到要和別的用戶程序進(jìn)行 通信?各個(gè)用戶進(jìn)程間是否存在制約關(guān)系? 答;1)各個(gè)進(jìn)程在運(yùn)行的時(shí)候,共享內(nèi)存,或者共同完成一個(gè)特定的功能,都需要進(jìn)行通 信,2)需要, 3)促在同步和互斥的關(guān)系,比如聊天程序 17.假定一個(gè)系統(tǒng)的磁盤塊大小為 2KB,一個(gè)塊的平均訪問時(shí)間是 20 毫秒。一個(gè)有 40
37、KB 進(jìn)程 由于資源請(qǐng)求從運(yùn)行態(tài)變?yōu)樽枞麘B(tài),它必須保持阻塞多長(zhǎng)時(shí)間? 答: 40/2 * 20=400 毫秒 保持阻塞態(tài) 400 毫秒18.假設(shè) A,B 兩個(gè)火車站之間是單軌線,許多列車同時(shí)到達(dá) A 站,然后經(jīng)過 A 站到達(dá) B 站;又 列車從 A 到 B 的行駛時(shí)間是 t,列車在 B 戰(zhàn)后的停留時(shí)間是 t/2,試問在該問題模型中,什么是 臨界資源,什么是臨界區(qū)? 答:臨界資源: A 到 B 之間的單軌線,以及 B 站是臨界資源 臨界區(qū): 在 A 到 B 之間行駛,以及在 B 上停留是臨界區(qū) 19.同步機(jī)制應(yīng)該遵循哪些原則?為什么? 答:1.它的描述能力應(yīng)該足夠強(qiáng),既能解決各種進(jìn)程間的同步互斥
38、問題; 2其次,應(yīng)該容易實(shí)現(xiàn)并效率高 3第三,使用方便 20.我們?yōu)槟撑R界資源設(shè)置一把鎖 W。當(dāng) W=1 時(shí),表示關(guān)鎖,W=0 時(shí),表示開鎖,試寫出開鎖 和關(guān)鎖原語,并利用它去實(shí)現(xiàn)互斥。 答: while(1=w); enter 臨界區(qū) 21.進(jìn)程 A1,A2,An 通過 m 個(gè)緩沖區(qū)向進(jìn)程 B1,B2,Bn 不斷發(fā)送消息,發(fā)送和接收工作遵 循如下規(guī)則: 1)每個(gè)發(fā)送進(jìn)程每次發(fā)送一個(gè)消息,寫入一個(gè)緩沖區(qū),緩沖區(qū)大小與消息長(zhǎng)度一樣 2)對(duì)每一個(gè)消息,B1,B2,.Bn 都需要各接收一次,讀到各自的數(shù)據(jù)區(qū)中; 3)m 個(gè)緩沖區(qū)都滿時(shí),發(fā)送進(jìn)程等待,沒有可讀消息時(shí),接受進(jìn)程等待 試用 P,V 操作組
39、織正確的發(fā)送和接收操作。 答: VARmutex: Semaphore:初值為 1,實(shí)現(xiàn)對(duì)緩沖區(qū)的互斥 empty: Semaphore:初值為 n,有多少緩沖 Full: Array1.n OF Semaphore:初值為 0,每個(gè)接收進(jìn)程當(dāng)前可接收的緩沖區(qū) Count:Array1.n OF INTEGER;初值為 0,n 個(gè)緩沖區(qū)被訪問的次數(shù) ReceivePointer:Array1n OF INTEGER初值為 0,該接收進(jìn)程要取哪個(gè) SendPointer:INTEGER;初值為 0,發(fā)送進(jìn)程下次要放到哪個(gè)緩沖區(qū) 發(fā)送進(jìn)程 (num:INTEGER) num 為進(jìn)程號(hào) Repeat
40、 P(empty) P(mutex) 向 buffsendPointer放消息 sendPointer:=(sendPointer+1)mod k countsendPointer:=0 V(mutex) For i:=1 To n Do V(Fulli) Until FALSE 接收進(jìn)程 (num:INTEGER):num 為接收進(jìn)程號(hào) Repeat P(Fullnum) P(mutex) 從 buffReceivePoinernum中取消息 V(mutex)CountReceivePoinernum:= CountReceivePoinernum+1 IF(CountReceivePoin
41、ernum=n) THEN V(empty) CountReceivePoinernum=0 ReceivePoinernum:=(ReceivePoinernum)+1)mod n Until FALSE 22有 K 個(gè)進(jìn)程共享一個(gè)臨界區(qū),對(duì)于下述情況,請(qǐng)說明信號(hào)量值的初值,含義,并用 P, V操作寫出相關(guān)的互斥算法。 1) 一次只允許一個(gè)進(jìn)程進(jìn)入臨界區(qū) 2) 一次只允許 m 個(gè)進(jìn)程進(jìn)入臨界區(qū) 答:1)設(shè)置互斥信號(hào)量 mutex,初值為 1 P(mutex) Enter_region V(mutex) 2)設(shè)置同步信號(hào)量 mutex,初值為 m; P(mutex) Enter_region
42、V(mutex) 23愛睡覺的理發(fā)師問題,一個(gè)理發(fā)店有兩間相連的屋子,一間是私室,里面有一把理發(fā) 椅,另一個(gè)是等候室,有一個(gè)滑動(dòng)門和 N 把椅子。理發(fā)師忙的時(shí)候,通向私室的門被關(guān)閉 ,新來的顧客找一把空椅子坐下,如果椅子都被占用了,則顧客只好離去,如果沒有顧客 ,則理發(fā)師在理發(fā)椅上睡覺。并打開通向私室的門。理發(fā)師睡覺時(shí),顧客可以叫醒他理發(fā) ,請(qǐng)編寫 理發(fā)師和顧客的程序,正確實(shí)現(xiàn)同步和互斥問題! 答: 解:VAR: S1,S2 :Semaphore;初值為 0,實(shí)現(xiàn)理發(fā)師與顧客的同步 Mutex:Semaphore:初值為 1,實(shí)現(xiàn)對(duì) waiting 的互斥 waiting:INTEGER:初值
43、為 0,等待的顧客數(shù) 理發(fā)師進(jìn)程 REPEATP(S1) 若無顧客,則睡覺 P(mutex) Waiting:=waiting-1 V(S2); (喚醒一個(gè)等待的客戶) V(mutex) 理發(fā) Until FALSE 顧客進(jìn)程 P(mutex)IF(waitingT , 3)SQT 時(shí), CPU 的利用率=T/(T+S)*100%(當(dāng)進(jìn)程運(yùn)行完后,就切換,也就相當(dāng)于時(shí)間 片=T )3)當(dāng) SQT 時(shí), =Q/Q+S 4)當(dāng) Q=S 時(shí) =S/S+S 5)當(dāng) Q 趨于 0,CPU 的利用率=T/T+nS=0 (n 趨于無窮) 30,大多數(shù)時(shí)間片輪轉(zhuǎn)調(diào)度程序使用一個(gè)固定大小的時(shí)間片,請(qǐng)給出選擇小時(shí)
44、間片的理由 ,然后再給出選擇大時(shí)間片的理由 答:選擇小時(shí)間片:I/O 密集型,可以縮短響應(yīng)時(shí)間,滿足短的交互需求 選擇大時(shí)間片:CPU 密集型,可以防止過多的進(jìn)程切換,提高 CPU 效率 31.有 5 個(gè)批處理作業(yè) A 到 E 幾乎同時(shí)到達(dá)一計(jì)算中心。他們估計(jì)運(yùn)行時(shí)間分別為 10,6,2,4 和 8 分鐘,其優(yōu)先數(shù)(由外部設(shè)定)分別為 3,5,2,1,4 其中 5 級(jí)為最高優(yōu)先級(jí),對(duì)于下列每 種調(diào)度算法,計(jì)算其平均周轉(zhuǎn)時(shí)間,可忽略進(jìn)程切換的開銷。 1) 時(shí)間片輪轉(zhuǎn)法 2) 優(yōu)先級(jí)調(diào)度法 3) 先來先服務(wù)法(按照次序 10,6,2,4,8 運(yùn)行) 4) 最短作業(yè)優(yōu)先 對(duì) 1),假設(shè)系統(tǒng)具有多道處
45、理能力,每個(gè)作業(yè)均獲得公平的 CPU 時(shí)間,對(duì)(2) 和(4)假設(shè) 任一時(shí)刻只有一個(gè)作業(yè)運(yùn)行,直到結(jié)束,所有作業(yè)都是 CPU 密集型作業(yè)! 答:1) 和時(shí)間片的長(zhǎng)短有關(guān),比較繁瑣! 2)運(yùn)行順序是(6,8,10,2,4) (6+14+24+26+30)/4=100/4=25 3)(10+16+18+22+30)/4=96/4=24 4) (2+(2+4)+(2+4+6)+(2+4+6+8)+( 2+4+6+8+10)/4=17.5 32:有 5 個(gè)待運(yùn)行的作業(yè),他們的估計(jì)運(yùn)行時(shí)間分別是 9,6,3,5,采用哪中次序運(yùn)行各個(gè) 作業(yè)將得到最短的平均響應(yīng)時(shí)間?答案依賴于 X 答:由于 5 個(gè)作業(yè)同時(shí)
46、到達(dá),所以按最短作業(yè)優(yōu)先調(diào)度會(huì)得到最短的響應(yīng)時(shí)間: 9x 3 5 6 9 x 6x9 3 5 6 x 9 5x6 3 5 x 8 9 3x5 3 x 5 8 9 x3 x 3 5 8 9 33,在一間酒吧里有三個(gè)音樂愛好者隊(duì)列,第一列音樂愛好者只有隨身聽,第二列只 有音樂 磁帶,第三列只有電池,而要聽音樂就必須有隨身聽,音樂磁帶和電池這三中物品 。酒吧老板一次出售這三種物品中的任意兩種,當(dāng)一名音樂愛好者得到這三種物品 并聽完樂曲后,酒吧老板才能再一次出售這三種物品中任意兩種,于是第二名音樂 愛好者得到這三種物品。并開始聽樂曲,全部買賣九這樣進(jìn)行下去。 使用 P,V 操作正確解決這一買賣。解:買
47、方有三個(gè)進(jìn)程,賣方有 1 個(gè)進(jìn)程 賣方,和買方的同步信號(hào)量 S1,S2 ,初值為 0,1. 聽音樂時(shí)的互斥信號(hào)量;mutex 賣方進(jìn)程 P(S1) (沒有音樂愛好者,等待) 賣物品 P(mutex) 放音樂 V(mutex) V(S2) 買方進(jìn)程 P(S2) 買物品 V(S1) 老板可以賣東西 34.巴拿馬運(yùn)河建在太平洋和大西洋之間,由于太平洋和大西洋水面高度不同,有巨大落 差,所以運(yùn)河中建有 T(T2)級(jí)船閘,并且只能允許單向通行,船閘依次編號(hào)為 1,2,T ,由大西洋來的船需要經(jīng)過船閘 T,T-1.,2,1 通過運(yùn)河到達(dá)太平洋,由太平洋來的船需要 經(jīng)由船閘 1,2,T-1,T 通過運(yùn)河到達(dá)
48、大西洋。 使用 P,V 操作正確解決大西洋和太平洋的船只通航問題。 答:答:Array: S1T of Semaphore 為每個(gè)船閘設(shè)置的信號(hào)量初值都為 1 Array: count1T of INTEGER 為每個(gè)船閘設(shè)置通往大西洋的船的計(jì)數(shù)值,初值都為 0 Array: count2T of INTEGER 為每個(gè)船閘設(shè)置通往太平洋的船的計(jì)數(shù)值,初值都為 0 對(duì) count 設(shè)置互斥信號(hào)量 mutex 去大西洋的進(jìn)程: int j for(j=0;jT,j+) P(mutex) if(count1j=0) P(Sj) countj+ 過第 j+1 個(gè)船閘 P(mutex) countj-
49、 if(countj=0) V(Sj) V(mutex) 去太平洋的進(jìn)程: int k for(k=T-1;kT,k+)P(mutex) if(count2k=0) P(Sk) countk+ 過第 k+1 個(gè)船閘 P(mutex) countk- if(countk=0) V(Sk) V(mutex) 35.某銀行有人民幣儲(chǔ)蓄業(yè)務(wù),由 n 個(gè)柜員負(fù)責(zé),每個(gè)顧客進(jìn)入銀行后,先取一個(gè)號(hào),并且 等著叫號(hào),當(dāng)一個(gè)柜員人員空閑下來,就叫上一個(gè)號(hào),使用 P,V 操作正確編寫柜臺(tái)人員和 顧客進(jìn)程的程序! 解; 取號(hào)的互斥信號(hào)量 mutex,叫號(hào)的互斥信號(hào)量 mutex1 柜臺(tái)人員和顧客進(jìn)程的同步信號(hào)量為
50、S1,S2, 初值分別為 n,0 柜臺(tái)人員進(jìn)程: P(S2) (無顧客則等待) P(mutex1) 叫號(hào) V(mutex1) 服務(wù) V(S1) 顧客進(jìn)程 P(mutex) 取號(hào) V(mutex) P(S1) 享受服務(wù) V(S2) 36,設(shè) A,B,C 三個(gè)進(jìn)程共享一個(gè)存儲(chǔ)資源 F,A 對(duì) F 只讀不寫,B 對(duì) F 只寫不讀,C 對(duì) F 先讀后寫。 (當(dāng)一個(gè)進(jìn)程寫 F 時(shí),其他進(jìn)程既不能讀 F,也不能寫 F,但多個(gè)進(jìn)程同時(shí)讀 F 是允許的)試 利用管程的方法或者 P,V 操作,寫出 A,B,C 三個(gè)進(jìn)程的框架,要求:(1)執(zhí)行正確 (2)正常運(yùn)行時(shí)不產(chǎn)生死鎖;(3)使用 F 的并發(fā)度高 37,某
51、系統(tǒng)如此定義 P,V 操作 P(S) S=S-1 若 S1 本進(jìn)程進(jìn)入等待隊(duì)列末尾,否則繼續(xù)進(jìn)行 V(S) S=S+1 若 S0,釋放等待隊(duì)列中末尾的進(jìn)程,否則繼續(xù)運(yùn)行。 現(xiàn)有四個(gè)進(jìn)程 P1,P2,P3,P4 競(jìng)爭(zhēng)使用某一需要互斥使用的資源(每個(gè)進(jìn)程可能反復(fù)使用多次),使用這樣的 P,V 操作來正確的實(shí)現(xiàn)互斥。 解: S:ARRAY0,3 OF Semaphore初值為 si=i,i=0,1,2,3 訪問進(jìn)程 for i:=3 downto 1 do P(si) 臨界區(qū)操作 for i:=1 To N-1 Do V(Si) 38,請(qǐng)用進(jìn)程通信的辦法解決生產(chǎn)者,消費(fèi)者問題 39,請(qǐng)用管程實(shí)現(xiàn)哲學(xué)家就餐問題 第五章 存儲(chǔ)管理 1產(chǎn)生存儲(chǔ)分配問題的背景是什么?何謂靜態(tài)分配?何謂動(dòng)態(tài)分配?動(dòng)態(tài)分配的原因是 什么? 答:一個(gè)有效的存儲(chǔ)分配機(jī)制,應(yīng)對(duì)用戶提出的需求做出快速響應(yīng),為之分配相應(yīng)的存儲(chǔ) 空間,在用戶作業(yè)不需要它時(shí),及時(shí)收回,供其他用戶使用。 內(nèi)存分配有兩種方式 1)靜態(tài)分配:程序要求的內(nèi)存空間是在目標(biāo)模塊連接裝入內(nèi)存時(shí)確定并分配的,并且在 程序運(yùn)行過程中不允許再申請(qǐng)或在內(nèi)存中“搬家”,也就是分配工作是在程序運(yùn)行前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保安部個(gè)人工作總結(jié)
- 中學(xué)競(jìng)選班長(zhǎng)演講稿
- 中外名著《培根隨筆》讀后感
- 模板幼師課件教學(xué)課件
- 松鼠兒童課件教學(xué)課件
- 機(jī)動(dòng)車檢驗(yàn) 零氣源技術(shù)要求及測(cè)試方法 征求意見稿
- 綿綿土課件教學(xué)課件
- 2024浙江杭州市上城區(qū)望江街道社區(qū)衛(wèi)生服務(wù)中心編外招聘1人筆試備考題庫(kù)及答案解析
- 2025年高考語文復(fù)習(xí)知識(shí)清單第2章文學(xué)類文本閱讀(一)小說專題06探究主旨、標(biāo)題、作者意圖(學(xué)生版+解析)
- 標(biāo)養(yǎng)室和試件管理制度 附表-標(biāo)準(zhǔn)養(yǎng)護(hù)室溫度、相對(duì)濕度測(cè)量記錄表
- 中藥湯劑煎煮方法-課件
- 高中政治課程標(biāo)準(zhǔn)解讀 匯報(bào)課件
- 心身疾病-課件
- 物理名詞解釋
- 主要股東或出資人信息及投標(biāo)人基本情況表模板
- 養(yǎng)老院 入住申請(qǐng)表
- 【審計(jì)工作底稿模板】SA營(yíng)業(yè)收入
- 2022年《學(xué)習(xí)有方法教案》初中心理健康教育魯畫報(bào)社版六年級(jí)全一冊(cè)教案
- 怡安翰威特:高潛人才標(biāo)準(zhǔn)構(gòu)建技術(shù)與案例分享課件
- 統(tǒng)編小學(xué)語文四年級(jí)上冊(cè)教材解讀及教學(xué)建議課件(19頁)
- 鐵塔基礎(chǔ)施工方案(完整版)
評(píng)論
0/150
提交評(píng)論