




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