操作系統(tǒng) 習題及答案匯 機工版自考 第1-8章 操作系統(tǒng)概論-進程同步機制與死鎖_第1頁
操作系統(tǒng) 習題及答案匯 機工版自考 第1-8章 操作系統(tǒng)概論-進程同步機制與死鎖_第2頁
操作系統(tǒng) 習題及答案匯 機工版自考 第1-8章 操作系統(tǒng)概論-進程同步機制與死鎖_第3頁
操作系統(tǒng) 習題及答案匯 機工版自考 第1-8章 操作系統(tǒng)概論-進程同步機制與死鎖_第4頁
操作系統(tǒng) 習題及答案匯 機工版自考 第1-8章 操作系統(tǒng)概論-進程同步機制與死鎖_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章操作系統(tǒng)概論習題什么是計算機系統(tǒng)?計算機系統(tǒng)是怎樣構成的?計算機系統(tǒng)是一種可以按用戶的要求接收和存儲信息、自動進行數(shù)據(jù)處理并輸出結果信息的系統(tǒng)。計算機系統(tǒng)是由硬件系統(tǒng)和軟件系統(tǒng)構成的。硬件系統(tǒng)是計算機系統(tǒng)賴以工作的實體。軟件系統(tǒng)保證計算機系統(tǒng)按用戶指定的要求協(xié)調地工作。什么是操作系統(tǒng)?請說明操作系統(tǒng)在計算機系統(tǒng)中的作用和地位。操作系統(tǒng)是計算機系統(tǒng)中的一個系統(tǒng)軟件,它能有效地組織和管理計算機系統(tǒng)中的硬件及軟件資源,合理地組織計算機工作流程,控制程序的執(zhí)行,并向用戶提供各種服務功能,使得用戶能夠靈活、方便、有效地使用計算機,并使整個計算機系統(tǒng)能高效地運行。操作系統(tǒng)管理計算機系統(tǒng)的哪些資源?操作系統(tǒng)組織和管理計算機系統(tǒng)中的硬件及軟件資源。在計算機系統(tǒng)中的硬件和軟件資源可以分成以下幾部分:中央處理器(CPU)、存儲器(內存和外存)、外部設備和信息(文件)。為了掌握整個計算機系統(tǒng)的硬件和軟件資源,操作系統(tǒng)設計了各種不同類型的表格或數(shù)據(jù)結構,將所有的硬件和軟件資源一一加以登記,資源的名稱、類型、數(shù)量、用途、完好狀態(tài)以及目前使用狀態(tài)等所有信息,均在有關數(shù)據(jù)結構中保存,并動態(tài)地、實時地不斷更新著這些數(shù)據(jù)。從而讓操作系統(tǒng)根據(jù)用戶對各種資源的需求情況,資源的當前分配和使用情況以及有關的資源調度策略,對資源進行有效的組織和管理。請從資源管理的角度說明操作系統(tǒng)的主要功能?,F(xiàn)代計算機系統(tǒng)支持多個用戶、多道作業(yè)。面對眾多的用戶程序、作業(yè)爭奪處理器、存儲器、設備和共享軟件資源,操作系統(tǒng)需要登記誰在使用什么樣的資源,系統(tǒng)中還有哪些資源空閑,當前響應了誰對資源的要求,以及收回哪些不再使用的資源等。操作系統(tǒng)要提供一些機制去協(xié)調程序間的競爭與同步,提供機制對資源進行合理使用,施加保護,以及采取虛擬技術來“擴充”資源。操作系統(tǒng)有哪些基本特征?操作系統(tǒng)的基本特征有并發(fā)性、共享性、虛擬性、異步性。并發(fā)性:并發(fā)性是指計算機系統(tǒng)中同時存在多個運行的程序,從宏觀上看,這些程序似乎是在同時運行,盡管在單處理器系統(tǒng)中,從微觀上看,CPU是通過快速切換來交替執(zhí)行多個程序的。共享性:共享性是指系統(tǒng)中的資源可以被多個并發(fā)執(zhí)行的進程共同使用。這種共享分為互斥共享和同時共享兩種。互斥共享意味著資源一次只能被一個進程使用,而同時共享則表示一個資源可以同時被多個進程訪問。虛擬性:虛擬性是通過某種技術把一個物理實體轉換為若干個邏輯上的對應物。例如,虛擬存儲器可以將較小的物理內存虛擬為更大的邏輯存儲器,使得用戶看到的內存空間大于實際的物理內存空間。異步性:異步性是指在多道程序環(huán)境下,允許多個程序并發(fā)執(zhí)行,但由于資源有限,進程的執(zhí)行不是一貫到底的,而是以不可預知的速度向前推進的。這要求操作系統(tǒng)具有調度和協(xié)調各個進程執(zhí)行的能力。請敘述各類操作系統(tǒng)的工作方式及特點。操作系統(tǒng)類型主要包括批處理操作系統(tǒng),分時操作系統(tǒng),實時操作系統(tǒng),網(wǎng)絡操作系統(tǒng),分布式操作系統(tǒng)和嵌入式操作系統(tǒng)。批處理操作系統(tǒng):工作方式:用戶將作業(yè)提交給操作系統(tǒng),操作系統(tǒng)將多個作業(yè)組織成批量,并自動逐一執(zhí)行,無需用戶干預。特點:自動性和順序性強,用戶無法與正在執(zhí)行的作業(yè)直接交互,適合大量獨立的作業(yè)處理,效率相對高,但響應時間長,不適合需要頻繁交互的任務。分時操作系統(tǒng):工作方式:允許多個用戶通過終端同時使用計算機,操作系統(tǒng)分時處理各個用戶的請求,每個用戶輪流獲得處理器時間片。特點:交互性強,響應時間短,適合多用戶環(huán)境,用戶可以實時地輸入命令并得到響應,但單個任務的執(zhí)行時間可能會受到影響。實時操作系統(tǒng):工作方式:要求在嚴格的時間限制內響應外部事件或數(shù)據(jù)的輸入,確保關鍵任務優(yōu)先執(zhí)行,并在規(guī)定時間內完成。特點:響應速度快,時間可預測性強,適用于對時間要求苛刻的場景,如嵌入式系統(tǒng)、工業(yè)控制等,但系統(tǒng)資源管理相對復雜。網(wǎng)絡操作系統(tǒng):工作方式:管理網(wǎng)絡資源,支持網(wǎng)絡中的計算機進行數(shù)據(jù)和資源共享,提供網(wǎng)絡通信、數(shù)據(jù)管理等功能。特點:便于資源共享和通信,增強了計算機網(wǎng)絡的功能和效率,但對網(wǎng)絡安全和數(shù)據(jù)完整性提出了更高的要求。分布式操作系統(tǒng):工作方式:將多臺計算機的資源整合,使用戶感覺像是在使用單一的、一致的系統(tǒng)資源,系統(tǒng)中的計算資源可以分布在不同地點。特點:資源利用率高,系統(tǒng)可擴展性強,計算能力強大,但系統(tǒng)設計和管理復雜,需要有效的通信和同步機制。嵌入式操作系統(tǒng):工作方式:專門用于管理嵌入式系統(tǒng)中的硬件和應用程序,通常為特定的應用定制,運行在資源受限的環(huán)境中。特點:資源占用小,運行效率高,響應時間快,適合在資源受限的嵌入式設備上運行,如智能家居、移動設備等。請比較批處理系統(tǒng)、分時系統(tǒng)以及實時操作系統(tǒng)之間的相同點和不同點。相同點:資源管理:所有這三種類型的操作系統(tǒng)都負責管理計算機的資源,包括CPU、內存、存儲、I/O設備等。任務調度:它們都具有任務調度功能,負責安排和管理任務或進程的執(zhí)行。接口提供:它們?yōu)橛脩艋虺绦騿T提供接口,使得用戶能夠與計算機系統(tǒng)交互。隔離性:它們提供一定程度的隔離性,確保系統(tǒng)的穩(wěn)定運行,防止程序間相互干擾。不同點:響應方式:批處理系統(tǒng)不需要實時響應用戶請求,作業(yè)按照批次順序執(zhí)行。分時系統(tǒng)需要較快地響應用戶的交互請求,確保用戶可以實時地與系統(tǒng)交互。實時操作系統(tǒng)需保證對實時事件的快速響應,并滿足嚴格的時間約束。交互性:批處理系統(tǒng)交互性較差,用戶提交作業(yè)后需等待結果輸出,不能即時干預。分時系統(tǒng)交互性強,多個用戶可以同時與系統(tǒng)交互,系統(tǒng)以時間片輪轉的方式服務于多個用戶。實時操作系統(tǒng)的交互性依賴于應用,關鍵在于能夠及時響應外部事件。任務管理:批處理系統(tǒng)中的任務按批次順序執(zhí)行,不需要頻繁切換上下文。分時系統(tǒng)需要頻繁切換上下文,以便在多個用戶或任務間共享計算機資源。實時操作系統(tǒng)中任務按照優(yōu)先級執(zhí)行,對任務的調度和管理要求能滿足實時性要求。適用場景:批處理系統(tǒng)適用于大量數(shù)據(jù)處理和批量作業(yè)處理的場景。分時系統(tǒng)適用于需要多用戶同時使用計算機資源的場景,如教育、研究等領域。實時操作系統(tǒng)適用于對時間要求嚴格的場景,如工業(yè)控制、航空航天、醫(yī)療設備等領域。請描述分時系統(tǒng)下響應時間的含義。用戶從終端發(fā)出命令到系統(tǒng)給予回答所經(jīng)歷的時間。在什么情況下應該采用批處理方式?在什么情況下應該考慮分時策略?對于需要批量處理大量數(shù)據(jù)任務而不需要用戶交互的應用,比如大數(shù)據(jù)分析,適合采用批處理方式。而對于需要處理多用戶并發(fā),響應時間重要性相對較高的應用,如在線游戲或在線事務處理,應該考慮使用分時策略?,F(xiàn)代的通用操作系統(tǒng)把批處理方式和分時方式二者結合起來,為什么要這樣做?這樣的結合有什么特點?現(xiàn)代通用操作系統(tǒng)結合批處理方式和分時方式,主要是為了兼顧不同類型應用的需求,提高系統(tǒng)的靈活性和資源利用效率。這種結合方式的特點和優(yōu)勢如下:靈活性和通用性:通過結合兩種方式,操作系統(tǒng)可以同時支持需要長時間運行而不需用戶交互的批處理任務,以及需要實時用戶交互的分時任務。這使得操作系統(tǒng)更加通用,能夠適應更廣泛的應用場景。資源利用效率提高:在分時系統(tǒng)中,當用戶交互式任務不多時,系統(tǒng)資源可能會出現(xiàn)閑置。結合批處理方式,可以在系統(tǒng)資源較空閑時執(zhí)行批處理任務,提高資源的利用率。增強系統(tǒng)性能:在一些情況下,批處理任務可以在系統(tǒng)負載較低時執(zhí)行,減少對實時交互性能的影響,從而在保證分時任務響應性的同時,也確保了批處理任務的高效執(zhí)行。優(yōu)化任務調度:結合兩種方式使得操作系統(tǒng)的任務調度更加靈活,能夠根據(jù)當前系統(tǒng)的負載情況和任務的優(yōu)先級動態(tài)調整資源分配,優(yōu)化任務執(zhí)行順序,從而提高整體的系統(tǒng)性能和響應速度。實時操作系統(tǒng)的有什么主要特征?實時操作系統(tǒng)具有實時時鐘管理、過載防護和高可靠性。實時時鐘管理:實時系統(tǒng)的主要設計目標是對實時任務能夠進行實時處理。而絕大多數(shù)實時任務均與時間相關,良好的實時時鐘管理能力就成為實時系統(tǒng)的一個關鍵能力。過載防護:實時系統(tǒng)在出現(xiàn)過載現(xiàn)象時,要有能力在大量突發(fā)的實時任務中,迅速分析判斷并找出最重要的實時任務,然后通過拋棄或者延后次要任務以保證最重要任務成功的執(zhí)行。高可靠性:實時系統(tǒng)需要在各種情況下都能穩(wěn)定運行,因為它們通常用于控制關鍵的工業(yè)過程、醫(yī)療設備或安全系統(tǒng)。因此,其具有很強的健壯性和堅固性。在如下的應用場合中,應該選用什么類型的操作系統(tǒng)呢,并請說明為什么?(1)導彈控制;實時操作系統(tǒng),因為對于導彈控制來說實時性要求很高。(2)國家統(tǒng)計局軟件;批處理系統(tǒng),因為可能要處理大量數(shù)據(jù),且不需要用戶交互。(3)汽車發(fā)動機點火控制;實時操作系統(tǒng),因為對于發(fā)動機控制來說,響應速度要求高。(4)火車訂票系統(tǒng);分時系統(tǒng),因為需要響應客戶要求,且可能有大量客戶同時操作。(5)互聯(lián)網(wǎng)電子游戲。分時系統(tǒng),因為可能有大量用戶同時操作且對響應速度有要求。請說明什么是SPOOLing技術?在現(xiàn)代操作系統(tǒng)中有沒有使用SPOOLing技術?SPOOLing技術全稱是“同時的外部設備聯(lián)機操作”,用于實現(xiàn)輸入輸出設備和計算機主處理器之間的緩沖操作。這種技術的基本思想是用磁盤設備作為主機的直接輸入輸出設備,主機直接從磁盤上選取作業(yè)運行,作業(yè)的執(zhí)行結果也存在磁盤上;相應地,通道則負責將用戶作業(yè)從卡片機上動態(tài)寫入磁盤,而這一操作與主機并行?,F(xiàn)代操作系統(tǒng)中,打印任務就是使用SPOOLing技術進行管理的。當用戶提交打印任務時,任務首先被放入一個打印隊列中。操作系統(tǒng)或打印服務器管理這個隊列,并按順序將打印任務發(fā)送到打印機。這樣,用戶不必等待一個打印任務完成后再提交另一個任務,提高了用戶和系統(tǒng)的效率。網(wǎng)絡操作系統(tǒng)和分布式操作系統(tǒng)都是配置在計算機網(wǎng)絡上的操作系統(tǒng),它們之間有什么本質上的不同?網(wǎng)絡操作系統(tǒng)主要強調資源共享和通信。在網(wǎng)絡操作系統(tǒng)中,每臺計算機都有自己的操作系統(tǒng),它們通過網(wǎng)絡相互連接,共享資源如文件、打印機、應用程序等。在網(wǎng)絡操作系統(tǒng)中,資源管理主要是各個獨立計算機自行負責,網(wǎng)絡僅用于資源共享和通信。分布式操作系統(tǒng)則將整個網(wǎng)絡系統(tǒng)視為一個統(tǒng)一的系統(tǒng)。在這種系統(tǒng)中,資源和服務是分布在多臺計算機上的,但對用戶來說,這些資源看起來就像是單個系統(tǒng)中的資源一樣。分布式操作系統(tǒng)需要在多臺計算機間協(xié)調資源管理,實現(xiàn)負載均衡、任務調度等,確保系統(tǒng)作為一個整體高效運行。操作系統(tǒng)設計的過程包括哪些方面,在每個方面都要考慮什么問題?設計過程包括功能設計、算法設計、結構設計:功能設計:指的是根據(jù)系統(tǒng)的設計目標和使用要求,確定所設計的操作系統(tǒng)應具備哪些功能,以及操作系統(tǒng)的類型。算法設計:是根據(jù)計算機的性能和操作系統(tǒng)的功能,來選擇和設計滿足系統(tǒng)功能的算法和策略,并分析和估算其效能。結構設計:是按照系統(tǒng)的功能和特性要求,選擇合適的結構,使用相應結構設計方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結構清晰、簡明、可靠、易讀、易修改,而且使用方便,適應性強。操作系統(tǒng)開發(fā)過程中面臨的主要問題是什么?操作系統(tǒng)開發(fā)過程中可能遇到的問題包括設計復雜程度高、正確性難以保證和研制周期長等問題等:程序復雜程度高:第一,操作系統(tǒng)要提供用戶之間共享信息和資源的機制,同時還要保證共享的安全;第二,操作系統(tǒng)的設計者必須考慮到將來硬件等情況的變化,并為這些變化做好準備,同時還要解決可能出現(xiàn)的硬件沖突問題;第三,操作系統(tǒng)必須有一定的通用性和對以前版本的兼容性;第四,操作系統(tǒng)要具有一定的適應性,來保證每個用戶的需要;第五,操作系統(tǒng)需要采取措施防止來自外部的入侵。正確性難以保證:操作系統(tǒng)包含的功能成分很多,各種外部設備的接口復雜。導致操作系統(tǒng)源代碼的正確性較難以保證。研制周期長:一般的軟件研制開發(fā)周期包括:需求分析,由用戶提供軟件的需求,并根據(jù)需求制作軟件規(guī)格說明書;設計者根據(jù)軟件規(guī)格說明書進行軟件設計;實現(xiàn)者編寫程序,調試、測試并整理各種開發(fā)文檔,然后提交給用戶使用,在應用的過程中不斷改進和提高軟件的品質。操作系統(tǒng)的研發(fā)也基本遵從這樣的過程范式,但是因為上述兩個原因,操作系統(tǒng)的研制周期比較長。操作系統(tǒng)的設計目標是什么?一個高質量的操作系統(tǒng)應具有可靠性、高效性、易維護性、易移植性、安全性和簡明性等特征??煽啃裕翰僮飨到y(tǒng)應能穩(wěn)定運行,即便是發(fā)生硬件故障或某種意外的環(huán)境下,操作系統(tǒng)應該仍能做出適當?shù)奶幚?,避免造成嚴重損失。高效性:操作系統(tǒng)需要有效管理各類資源,以確保資源的最優(yōu)利用。它應該提高系統(tǒng)中各種資源的利用率,即提高系統(tǒng)的運行效率。易維護性:操作系統(tǒng)的設計應當考慮到可能的升級和維護。代碼應該具有良好的結構和文檔,使得維護人員可以容易地理解系統(tǒng)的工作原理和代碼結構,進行修復和升級。易移植性:操作系統(tǒng)的設計應盡可能獨立于硬件,這樣當系統(tǒng)需要在新的硬件平臺上運行時,僅需修改操作系統(tǒng)與硬件有關的底層。安全性:操作系統(tǒng)應提供機制來保護用戶數(shù)據(jù)和系統(tǒng)資源不受未經(jīng)授權的訪問和修改。簡明性:操作系統(tǒng)的設計應該追求簡潔,避免不必要的復雜性。這有助于減少錯誤,提高系統(tǒng)的可靠性和易維護性。影響操作系統(tǒng)正確性的因素有哪些?操作系統(tǒng)包含的功能成分很多,各種外部設備的接口復雜,因此影響操作系統(tǒng)正確性的因素有硬件穩(wěn)定性,軟件的錯誤處理能力,以及系統(tǒng)對于不同工況的應對能力等。另外,由于操作系統(tǒng)是一個大型軟件,參與開發(fā)的人員的基數(shù)也較大,也加大了保證整個軟件的正確性的難度。在進行操作系統(tǒng)結構設計時應考慮哪些問題?進行操作系統(tǒng)結構設計時,應考慮系統(tǒng)模塊化、模塊標準化、通信規(guī)范化。系統(tǒng)模塊化:將操作系統(tǒng)分解為獨立、定義明確的模塊或構件,每個模塊負責系統(tǒng)中的一個特定功能。其有助于降低系統(tǒng)的復雜性,因為每個模塊可以獨立開發(fā)、測試和優(yōu)化。此外,模塊化還有利于錯誤隔離,即在一個模塊中出現(xiàn)的錯誤不會輕易影響到其他模塊。模塊標準化:即遵循一定的編碼和接口標準,使得模塊之間能夠更容易地交互,并且可以替換或更新單個模塊而不影響整個系統(tǒng)。通信規(guī)范化:即定義模塊間交互的明確協(xié)議和接口,確保模塊間通信的一致性和有效性。通過規(guī)范化通信,可以確保即使在模塊內部實現(xiàn)發(fā)生變化時,不同模塊之間也能夠有效協(xié)作。這有助于減少系統(tǒng)間的耦合度,提高系統(tǒng)的靈活性和可擴展性。請說明模塊組合法、層次式結構和客戶/服務器結構的基本思想以及優(yōu)缺點。模塊組合法基于“分治”思想,將系統(tǒng)劃分為多個模塊,每個模塊內部高度集成,模塊間交互最小,優(yōu)點在于清晰的模塊劃分和方便的模塊替換,缺點在于模塊邊界定義和模塊間通信的復雜性。層次式結構按照功能層次依次實現(xiàn),上層依賴下層但下層不依賴上層,優(yōu)點在于邏輯清晰和容易實現(xiàn),缺點在于定義層次的困難和執(zhí)行效率的問題。客戶/服務器結構中,部分模塊充當服務提供者(服務器),其余模塊則是服務使用者(客戶),優(yōu)點是強調模塊間的并發(fā)性,提供了良好的并行處理和分布式處理能力,缺點是并發(fā)處理帶來的同步和死鎖問題。第二章操作系統(tǒng)運行環(huán)境習題1.請簡述處理器的組成和工作原理。你認為哪些部分和操作系統(tǒng)密切相關,為什么?處理器由運算器、存儲器、控制器組成,其中運算器負責算數(shù)運算、存儲器負責數(shù)據(jù)存儲、控制器負責流程控制。每一個部分都和操作系統(tǒng)密切相關。2.為了支持操作系統(tǒng),現(xiàn)代處理器一般都提供哪兩種工作狀態(tài),以隔離操作系統(tǒng)和普通程序?兩種狀態(tài)各有什么特點?現(xiàn)代處理器一般都提供管態(tài)和目態(tài)等兩種工作狀態(tài)。用戶程序在目態(tài)下運行,只能使用非特權指令,具有較低的特權級別。操作系統(tǒng)在管態(tài)下運行,可以使用特權指令和非特權指令,具有較高的特權級別。3.計算機系統(tǒng)中既有操作系統(tǒng)程序,又有用戶程序,在什么情況下操作系統(tǒng)程序才能占用中央處理器?當用戶程序占用CPU時,CPU在目態(tài)下運行,只能使用非特權指令,當需要使用特權指令時,將引起一次處理器狀態(tài)的切換,此時處理器通過中斷機制,將目態(tài)轉換為管態(tài),然后將處理權移交給操作系統(tǒng)中的一段代碼,操作系統(tǒng)才能占用CPU。從目態(tài)變?yōu)楣軕B(tài)其轉換的唯一途徑是通過中斷。4.為什么要把“啟動I/O”等指令定義為特權指令?一個程序可以在其它程序等待外圍設備傳送信息時占用處理器執(zhí)行,在執(zhí)行中如果它也使用啟動指令去啟動一臺正在工作的外圍設備,那么就會造成沖突。為保護輸入輸出的完整性,把“啟動I/O”等的一類可能影響系統(tǒng)安全的指令定義為特權指令。特權指令只允許操作系統(tǒng)使用,用戶程序不能使用特權指令。用戶程序若要啟動I/O,必須請求操作系統(tǒng)代為啟動,這種方式不但可以保證安全地使用外圍設備,正確地傳送信息,而且可減少用戶為啟動設備而必須了解外圍設備特性以及啟動等工作,大大方便了用戶。5.怎樣限制用戶程序中使用特權指令?為了保證正確的操作,應該限制用戶程序使用特權指令,為此,中央處理器設置了兩種工作方式,管態(tài)和目態(tài)。在管態(tài)下,中央處理器可執(zhí)行包含特權指令在內的一切指令;在目態(tài)下,中央處理器不準執(zhí)行特權指令。操作系統(tǒng)在管態(tài)下工作,用戶程序在目態(tài)下工作。如果中央處理器在目態(tài)下取到了特權指令,中央處理器就拒絕執(zhí)行該指令,并產(chǎn)生“非法操作”事件經(jīng)中斷裝置和操作系統(tǒng)通知用戶修改。6.什么是分級的存儲體系結構?它主要解決了什么問題?從整個系統(tǒng)上來看,在計算機系統(tǒng)中層次化的儲存體系是由寄存器、高速緩存、內存儲器、硬盤存儲器、磁帶機和光盤存儲器等裝置構成。容量、速度和成本這三個目標不可能同時到最優(yōu)。存取的速度與價格相反,為了解決這一問題,可采用層次化的存儲體系結構。由于現(xiàn)代的程序設計技術很注重代碼的復用,一旦進入這樣的程序段就會重復存取相同的指令集合。基于這一原理,充分有理由設計出多級存儲結構,并使得存取級別較低的比率小于存儲級別較高的存儲器比率。7.請簡述程序局部性原理。由于現(xiàn)代的程序設計技術很注重代碼的復用,程序內中會有很多的循環(huán)和子程序調用。一旦進入這樣的程序段就會重復存取相同的指令集合。對數(shù)據(jù)的存取也有類似的局部性現(xiàn)象。一段時間后,使用的代碼和數(shù)據(jù)的集合會改變,但在較短時間里能穩(wěn)定的保持在一個存儲的局部區(qū)域中,處理器也主要和這個局部打交道。8.什么是存儲保護?有哪些方法實現(xiàn)存儲保護?保護存儲在內存中的用戶程序和操作系統(tǒng),以及它們的數(shù)據(jù)。界地址寄存器:在處理器中設置一對界限寄存器來存儲該用戶作業(yè)在內存中的上限和下限地址。將一個寄存器作為基址寄存器,另一個寄存器作為限長寄存器(指示存儲區(qū)域的長度)來指出程序在內存中的存儲區(qū)域。9.操作系統(tǒng)與硬件如何配合來實現(xiàn)存儲保護的?操作系統(tǒng)通過與硬件中的界地址寄存器實現(xiàn)存儲保護。其方法是在CPU中設置一對界限寄存器來存放某個作業(yè)在內存中的下限和上限地址,或者一個寄存器作為基址寄存器,另一個作為限長寄存器。每當CPU訪問內存時,硬件自動將被訪問的內存地址與界限寄存器的內容進行比較,以判斷是否越界。如果未越界,則按此地址訪問內存,否則將產(chǎn)生越界中斷。10.什么是中斷?為什么說中斷對現(xiàn)代計算機很重要?所謂中斷是指CPU對系統(tǒng)中或系統(tǒng)外所發(fā)生的異步事件的響應。異步事件是指無一定時序關系的隨機發(fā)生的事件。中斷是所有要打斷CPU的正常工作次序,并要求其去處理某一事件的一種常用手段。中斷技術解決了主機和外設并行工作的問題,消除了因外設的慢速而使得主機等待的現(xiàn)象,為多機操作和實時處理提供了硬件基礎。充分發(fā)揮處理器的使用效率。提高系統(tǒng)的實時能力。11.中斷的作用是什么?中斷的作用有兩個方面:首先是使CPU能充分發(fā)揮使用效率,讓I/O設備用中斷的方式用CPU通信,報告其完成CPU所要求的數(shù)據(jù)傳輸?shù)那闆r和問題,以免除CPU不斷地查詢和等待,從而大大提高CPU的效率。其次是提高系統(tǒng)的實時能力,當系統(tǒng)要求實時處理某些事件時,可以通過中斷請求及時處理,從而使CPU立即作出響應。12.中斷向量是什么?其作用是什么?引起中斷的事件稱為中斷事件或中斷源,計算機系統(tǒng)提供的中斷源的有序集合稱為中斷字。處理某一種中斷事件的程序稱為中斷處理程序。為了使中斷裝置便于找到所需的中斷處理程序,專門設計了中斷處理程序入口地址映射表,稱為中斷向量表,表中的每一項稱為中斷向量,主要由程序狀態(tài)字PSW和程序計數(shù)器PC的值組成。中斷向量的作用是通過它可以找到中斷處理程序在內存中的存儲位置。13.中斷響應主要做哪些工作?中斷響應主要包括5個工作:1)處理器接收中斷信號;2)保護現(xiàn)場,將中斷斷點的PSW和程序計數(shù)器PC的值存入系統(tǒng)堆棧;3)分析中斷向量,取得中斷處理程序的入口地址;4)將處理器的PC值置為中斷處理程序的入口地址;5)調用中斷處理程序。14.中斷處理的主要步驟是什么?中斷處理指中斷信號已經(jīng)被中斷系統(tǒng)的硬件中斷裝置接收和響應之后,相應的中斷處理程序進行中斷處理的步驟。包括檢查I/O相關的狀態(tài)信息,操縱1/0設備或者在設備和內存之間傳送數(shù)據(jù)等。在中斷處理程序結束工作之后,處理器會檢測到一條中斷返回指令。處理器執(zhí)行此指令,恢復中斷時所保護的中斷斷點現(xiàn)場,處理器也從管態(tài)恢復成被中斷時的目態(tài)。整個中斷處理結束。15.為什么要對中斷進行屏蔽?屏蔽掉不夠緊急或不夠重要的中斷信號,使系統(tǒng)優(yōu)先處理最緊急或最重要的中斷信號。16.多個中斷同時發(fā)生時,系統(tǒng)是怎樣處理的?多級中斷與中斷優(yōu)先級1)中斷信號依據(jù)緊急程度和重要性劃分等級,在需要處理的各類中斷信號中,它們的緊急程度和重要性是不同的。系統(tǒng)當然要優(yōu)先處理最緊急的或者最重要的中斷信號。而中斷信號本身的重要性或緊急性,則由該中斷的級別的高低來表時。2)當同一中斷等級的多個接口中同時都有中斷請求時,一般有兩種方式;固定的優(yōu)先數(shù):給每個設備接口安排一個不同的、固定的優(yōu)先順序。輪轉法:用一個表格,依次輪轉響應,這是一個較為公平合理的方法。中斷嵌套中斷按照優(yōu)先級分級,允許優(yōu)先級較高的中斷打斷優(yōu)先級較低的中斷處理過程,于是引發(fā)中斷嵌套。17.闡述硬件的中斷裝置的作用。中斷是計算機系統(tǒng)結構一個重要的組成部分。在中斷機制中的硬件部分(中斷裝置)的作用就是在CPU每執(zhí)行完一條指令后,判別是否有事件發(fā)生,如果沒有事件發(fā)生,CPU繼續(xù)執(zhí)行;若有事件發(fā)生,中斷裝置中斷原先占用CPU的程序的執(zhí)行,把被中斷程序的斷點保存起來,讓操作系統(tǒng)的處理服務程序占用CPU對事件進行處理,處理完后,再讓被中斷的程序繼續(xù)占用CPU執(zhí)行下去。所以中斷裝置的作用總的來說就是使操作系統(tǒng)可以控制各個程序的執(zhí)行,為用戶提共各種服務。18.常用的I/O控制技術有哪些?各有什么特點?DMA方式:通過DMA控制器成塊的控制數(shù)據(jù)在內存和IO設備之間的移動。通道方式:獨立的對IO數(shù)據(jù)進行處理,和CPU并行,不需要CPU干預。19.緩沖技術在計算機系統(tǒng)中起著什么樣的作用?它是如何工作的?緩沖技術:匹配計算機中高速設備和低速設備的交互。解決了設備之間速度不一樣的問題工作:每當用戶輸入數(shù)據(jù)時,現(xiàn)在緩沖區(qū)中尋找,如果已經(jīng)在緩沖區(qū),直接使用,否則由內存輸入到緩沖區(qū)在由用戶使用。20.時鐘對操作系統(tǒng)有什么重要作用?防止系統(tǒng)死循環(huán),實現(xiàn)作業(yè)按時間片輪轉。21.硬件時鐘怎樣實現(xiàn)?其作用是什么?在電路中的晶體振蕩器每隔一段時間產(chǎn)生固定的脈沖頻率,時鐘電路中的時鐘寄存器根據(jù)時鐘電路產(chǎn)生的脈沖數(shù)對時鐘寄存器加1,作用是防止系統(tǒng)死循環(huán),實現(xiàn)作業(yè)按時間片輪轉。22.軟件時鐘怎樣實現(xiàn)?其作用是什么?由操作系統(tǒng)維護,常用作相對時鐘。作用是防止系統(tǒng)死循環(huán),實現(xiàn)作業(yè)按時間片輪轉。23.系統(tǒng)調用和一般過程調用的區(qū)別是什么?運行的狀態(tài)不同。在程序中的過程一般或者都是用戶程序,或者都是系統(tǒng)程序,即都是運行在同一個系統(tǒng)狀態(tài)的(用戶態(tài)或系統(tǒng)態(tài))。進入的方式不同。一般的過程調用可以直接由調用過程轉向被調用的過程。而執(zhí)行系統(tǒng)調用時,由于調用過程與被調用過程是處于不同的狀態(tài),因而不允許由調用過程直接轉向被調用過程,通常是通過訪管中斷(即軟中斷)進入,先進入操作系統(tǒng),經(jīng)分析后,才能轉向相應的命令處理程序。返回方式的不同。一般的過程調用在被調用過程執(zhí)行完后,將返回到調用過程繼續(xù)執(zhí)行。但是,在采用搶占式調度方式的系統(tǒng)中,被調用過程執(zhí)行完后,系統(tǒng)將對所有要求運行的進程進行優(yōu)先級分析。24.系統(tǒng)調用的主要處理過程是什么?當用戶使用操作系統(tǒng)調用時,產(chǎn)生一條相應的指令,處理機在執(zhí)行到該指令時發(fā)生相應的中斷,并發(fā)出有關的信號給該處理機構;該處理機構在收到了處理機發(fā)來的信號后,啟動相關的處理程序去完成該系統(tǒng)調用所要求的功能。由于在系統(tǒng)調用處理結束之后,用戶程序還需利用系統(tǒng)調用的返回結果繼續(xù)執(zhí)行,因此,在進入系統(tǒng)調用處理之前,陷入處理機構還需保存處理機現(xiàn)場。再者,在系統(tǒng)調用處理結束之后,還要恢復處理機現(xiàn)場。第三章進程線程模型習題操作系統(tǒng)中為什么要引入“進程”?進程和程序有什么區(qū)別?操作系統(tǒng)引入進程作為資源分配和調度的一個獨立單位。區(qū)別是程序是靜態(tài)的,而進程是動態(tài)的。進程是程序的一個執(zhí)行過程。程序的存在是永久的。而進程是為了程序的一次執(zhí)行而暫時存在的。進程有生命周期,有誕生,亦有消亡。一個進程可以包括若干程序的執(zhí)行,而一個程序亦可以產(chǎn)生多個進程。進程具有創(chuàng)建其他進程的功能。被創(chuàng)建的進程稱為子進程,而創(chuàng)建者稱為父進程,從而構成了進程家族。程序的并發(fā)執(zhí)行有什么特點?并發(fā)和并行有什么區(qū)別?并發(fā)執(zhí)行的特點是一個進程可以同其他進程一道向前推進,即一個進程的第一個動作可以在另一個進程的最后一個動作結束之前就開始。并行是在不同實體上的多個事件;并發(fā)是在同一實體上的多個事件。并行是指在同一時刻,有多條指令在多個處理器上同時執(zhí)行;并發(fā)是指在同一時刻只能有一條指令執(zhí)行,但多個進程指令被快速的輪換執(zhí)行,使得在宏觀上具有多個進程同時執(zhí)行的效果,但在微觀上并不是同時執(zhí)行的,只是把時間分成若干段,使多個進程快速交替的執(zhí)行??稍偃氤绦蛴惺裁刺匦??一個能夠被多個用戶同時調用的程序稱作是“可再入”的程序??稍偃氤绦虮仨毷恰凹儭贝a的程序,程序在執(zhí)行中不會修改自身的代碼。換句話說,可再入程序必須和有關的數(shù)據(jù)區(qū)分離??稍偃氤绦虻牟僮鲗ο螅磾?shù)據(jù),是與程序相分離的,要求調用者提供專用工作區(qū),以保證程序以同樣方式為各用戶服務。進程有哪些基本狀態(tài)?它們的變化關系是怎樣的?運行狀態(tài),就緒狀態(tài)和阻塞狀態(tài)。就緒狀態(tài)的進程被進程調度程序分配給處理器時,該進程轉換為運行狀態(tài)。運行狀態(tài)的進程在時間片用完后被中斷處理程序切換為就緒狀態(tài)。云興狀態(tài)的進程因等待文件輸入等因素不能繼續(xù)運行時,切換為阻塞狀態(tài)。阻塞狀態(tài)的進程在其被阻塞的原因解除后切換為就緒狀態(tài)。一個單CPU的操作系統(tǒng)共有n個進程,不考慮進程狀態(tài)過渡時的情況,也不考慮空轉進程:(1)給出運行進程的個數(shù)最少0個,最多1個(2)給出就緒進程的個數(shù)最少0個,最多n-1個(3)給出等待進程的個數(shù)最少0個,最多n個系統(tǒng)中有n(n>1)個進程,在任一時刻,處于運行、就緒和等待狀態(tài)的進程最多、最少各有幾個?假設系統(tǒng)有m個CPU,則運行狀態(tài)的進程最少0個,最多m個;就緒狀態(tài)的進程最少0個,最多n-m個;等待狀態(tài)的進程最少0個,最多n個。進程控制塊的作用是什么?其主要內容有哪些?操作系統(tǒng)利用進程控制塊來描述進程的基本情況以及進程的運行變化過程。進程控制塊是進程存在的唯一標志,當系統(tǒng)創(chuàng)建一個進程時,為進程設置一個進程控制塊,再利用進程控制塊對進程進行控制和管理。撤銷進程時,系統(tǒng)收回它的進程控制塊,進程也隨之消亡。進程控制塊的內容可以分成調度信息和現(xiàn)場信息兩大部分。調度信息供進程調度時使用,描述了進程當前所處的狀況,它包括進程名、進程號、存儲信息、優(yōu)先級、當前狀態(tài)、資源清單、“家族”關系、消息隊列指針、進程隊列指針和當前打開文件等?,F(xiàn)場信息刻畫了進程的運行情況,如程序狀態(tài)字、時鐘、界地址寄存器等等。進程能否修改訪問自己的進程控制塊內容?不能何謂與時間有關的錯誤?舉例說明之。并發(fā)進程執(zhí)行時一定會產(chǎn)生與時間有關的錯誤嗎?為什么?并發(fā)程序中共享了公共變量,使得程序的計算結果與程序執(zhí)行的順序有關。這種錯誤由程序執(zhí)行的順序不同導致,與時間有關,所以把它稱作與時間有關的錯誤。不一定會,一方面并發(fā)執(zhí)行的程序有可能是無關進程,另一方面并發(fā)進程即使有相關進程,其執(zhí)行也有多種可能,會存在按預期執(zhí)行的情況發(fā)生。為什么要引入線程?線程和進程之間的區(qū)別和聯(lián)系是什么?為了能使多個程序更好地并發(fā)執(zhí)行,同時又盡量減少任務切換時系統(tǒng)的開銷。進程是調度的基本單位而且還是獨立分配資源的單位。如果能夠把這兩個基本單位的功能分開,那么就有可能實現(xiàn)進一步提高并發(fā)程度,同時又避免消耗過多的系統(tǒng)資源的目標。正是在這種思想的指導下,產(chǎn)生了線程的概念。聯(lián)系:一個程序可以由多個進程共用,一個進程可以執(zhí)行多個程序,進程存在的意義就是執(zhí)行程序,進程可以看成程序在并發(fā)過程中的執(zhí)行過程。區(qū)別:進程是動態(tài)的概念,程序是靜態(tài)的概念;程序是指令代碼的有序組合,進程是程序的執(zhí)行過程,由程序、數(shù)據(jù)和進程控制塊組成;進程是暫時的,程序是永久的;進程可以作為一個獨立運行的單位,能與其他進程并發(fā)執(zhí)行;程序不能在多道程序環(huán)境下獨立運行;一個程序可以由多個進程共用,一個進程可以執(zhí)行多個程序用進程概念說明操作系統(tǒng)的并發(fā)性和不確定性是怎樣體現(xiàn)出來的?進程具有兩個基本屬性。首先,進程是一個可擁有資源的獨立單位;其次,進程同時又是一個可以獨立調度和分派的基本單位。正是由于進程具有這兩個基本屬性,才使之成為一個能獨立運行的基本單位,從而也構成了進程并發(fā)執(zhí)行的基礎。并發(fā)性:一個進程可以同其他進程一道向前推進,即一個進程的第一個動作可以在另一個進程的最后一個動作結束之前就開始。不確定性:每個進程按照各自獨立的、不可預知的速度向前推進。不同的執(zhí)行順序可能導致不同的結果,因此具有不確定性。PCB的作用是什么?它是怎樣描述進程的動態(tài)性質的?概念及作用:PCB是進程控制快,它是進程組成中最關鍵的部分,包含進程的描述信息和控制信息,如進程名、進程狀態(tài)信息、調度優(yōu)先級、通信信息、資源需求等。是操作系統(tǒng)感知進程的存在,以及管理和控制進程執(zhí)行的唯一依據(jù)。如何描述:PCB中有表明進程狀態(tài)的信息:該進程的狀態(tài)是運行態(tài)、就緒態(tài)還是阻塞態(tài),利用狀態(tài)信息來描述進程的動態(tài)性質。進程的三個基本狀態(tài)轉換如圖3-10所示。圖中1,2,3,4表示某種類型的狀態(tài)變遷,請分別回答下述問題:圖3-10習題13(1)什么“事件”引起某一種類型的狀態(tài)變遷?1:調度程序從就緒隊列中選取一個進程執(zhí)行時;2:正在執(zhí)行的進程時間片用完;3:正在執(zhí)行的進程因等待發(fā)生某事件而無法執(zhí)行下去;4:當進程阻塞的原因解除。(2)系統(tǒng)中常常由于某一進程的狀態(tài)變遷引起另一進程也產(chǎn)生狀態(tài)變遷,試判斷在下述情況下,如果有的話,將發(fā)生什么因果變遷?3→1,2→1,3→2,4→1,3→43→1:如果就緒隊列非空,則當一個進程發(fā)生變遷3時,會立即引起另一個進程發(fā)生變遷1。2→1:當發(fā)生變遷2時,正在執(zhí)行的進程從執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài),進程調度程序必然會從就緒隊列中選取,即發(fā)生變遷1。3→2:當前執(zhí)行進程從執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài),不可能同時又從執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài),,沒有因果變遷。4→1:一個進程從等待狀態(tài)轉換為就緒狀態(tài)是因為等待的事件發(fā)生,不會導致其他進程狀態(tài)發(fā)生改變,沒有因果變遷。3→4:一個進程阻塞是因為進程自身原因,和其他進程無關,沒有因果變遷。(3)在什么情況下,如果有的話,下述變遷中哪些將不立即引起其他變遷?1,2,3,44(4)引起進程狀態(tài)發(fā)生變遷的根本原因是什么?進程具有動態(tài)性,在從創(chuàng)建到終止的全過程中一直處于一個不斷變化的過程。試列舉出進程狀態(tài)轉換的典型原因和引起進程調度的因素。就緒→運行:進程被調度程序選中運行→就緒:時間片用完運行→阻塞:等待某事件發(fā)生阻塞→就緒:等待的時間已經(jīng)發(fā)生運行的進程用完了時間片;運行的進程等待某一事件開始阻塞在一個進程中使用多個線程有以下兩個優(yōu)點:(1)在一個已有進程中創(chuàng)建一個新線程比創(chuàng)建一個新進程所需的工作量少;(2)在同一個進程中的線程間的通信比較簡單。請問,同一個進程中的兩個線程間的模式切換與不同進程中的兩個線程間的模式切換相比,所需的工作量是否要少?是,因為進程切換時需要保存更多狀態(tài)信息。在比較用戶級線程和內核級線程時曾指出用戶級線程的一個缺點是,當一個用戶級線程執(zhí)行系統(tǒng)調用時,不僅這個線程被阻塞,進程中的所有線程都被阻塞。請問這是為什么?當用戶進程調用一個系統(tǒng)調用時,要由用戶態(tài)管態(tài)轉入第二章中主要用“管態(tài)”及“目態(tài)”的描述,也解釋了“用戶態(tài)“及”內核態(tài)”,沒有“核心態(tài)”的描述,建議全部采用“管態(tài)”及“目態(tài)”。核心態(tài)目態(tài),用戶進程將被封鎖。當內核完成系統(tǒng)調用而返回時,才將該進程喚醒,繼續(xù)執(zhí)行。而在用戶級線程調用一個系統(tǒng)調用時,由于內核并不知道有該用戶級線程的存在,因而把系統(tǒng)調用看作是整個進程的行為,于是使該進程等待,而調度另一個進程執(zhí)行。同樣是在內核完成系統(tǒng)調用而返回的,進程才能繼續(xù)執(zhí)行。如果系統(tǒng)中設置的是內核支持線程,則調度是以線程為單位。當一個線程調用一個系統(tǒng)調用時,內核把系統(tǒng)調用只看作是該線程的行為,因而封鎖該線程,于是可以再調度該進程中的其他線程執(zhí)行。第二章中主要用“管態(tài)”及“目態(tài)”的描述,也解釋了“用戶態(tài)“及”內核態(tài)”,沒有“核心態(tài)”的描述,建議全部采用“管態(tài)”及“目態(tài)”。考慮這樣一個環(huán)境,用戶級線程和內核級線程呈一對一的映射關系,并且允許進程中的一個或多個線程產(chǎn)生會引發(fā)阻塞的系統(tǒng)調用,而其他線程可以繼續(xù)運行。解釋為什么在單處理器機器上,這個模型可以使多線程程序比相應的單線程程序運行速度更快。在一個多線程程序中,一個內核級線程會產(chǎn)生引發(fā)阻塞的系統(tǒng)調用,而其他內核級線程可以繼續(xù)執(zhí)行。而在單處理器機器上,進程則必須阻塞直到所有的系統(tǒng)調用都可以繼續(xù)運行,而等待I/O操作的時間可能很長。如果一個進程退出時,該進程的某些線程仍在運行,請問它們會繼續(xù)運行嗎?不會第四章進程線程調度習題1.試述進程調度的主要任務。為什么說它把一臺物理機變成多臺邏輯上的處理機?進程調度的主要任務是使CPU運行能夠在多個進程之間高效切換,以實現(xiàn)并發(fā)執(zhí)行和有效使用處理器。進程調度把一臺物理機變成多臺邏輯上的處理機,因為調度程序能使計算機同時處理多個進程,讓每個進程都認為自己獨占了處理器。2.搶占式進程調度是指系統(tǒng)能夠強制性地使執(zhí)行進程放棄處理機。試問分時系統(tǒng)采用的是搶占式還是非搶占式進程調度?實時系統(tǒng)呢?分時系統(tǒng)采用的是搶占式進程調度。因為在分時系統(tǒng)中,所有用戶共享計算機,系統(tǒng)要保證各個用戶能公平地使用到計算資源,因此需要事先設定一個時間片,時間片結束后強行搶占資源。實時系統(tǒng)如硬實時系統(tǒng)或軟實時系統(tǒng),一般也采用搶占式調度,以保證高優(yōu)先級的任務能及時響應。3.在CPU按優(yōu)先級調度的系統(tǒng)中:(1)沒有運行進程是否一定就沒有就緒進程?沒有運行進程并不意味著就沒有就緒進程,因為有可能所有就緒進程正處于等待狀態(tài)。(死鎖不存在就緒進程處于等待狀態(tài),等待狀態(tài)就不是就緒狀態(tài))不存在就緒進程處于等待狀態(tài),等待狀態(tài)就不是就緒狀態(tài)(2)沒有運行進程,沒有就緒進程或兩者都沒有是否可能?各是什么情況?沒有運行進程:等待外設或其他資源的響應;沒有就緒進程:恰好滿負載,均在運行;都沒有:參見(1)(3)運行進程是否一定是自由進程中優(yōu)先數(shù)最高的?不一定,在動態(tài)優(yōu)先級調度中可能存在調度后其他進程優(yōu)先級提升的情況。4.對某系統(tǒng)進行監(jiān)測后表明平均每個進程在I/O阻塞之前的運行時間為T。一次進程切換需要的時間為S,這里S實際上就是開銷。對于采用時間片長度為Q的時間片輪轉法,請給出以下各種情況的CPU利用率的計算公式。(1)Q=∞100%T/(T+S)(2)Q>T100%T/(T+S)(3)S<Q<TQ/(Q+S)(4)Q=S50%(5)Q趨近于00%5.大多數(shù)時間片輪轉調度程序使用一個固定大小的時間片,請給出選擇小時間片的理由。然后,再給出選擇大時間片的理由。選擇小的時間片可以減少響應時間并提高交互性;而選擇大的時間片可以減少調度開銷。6.有5個批處理作業(yè)A到E幾乎同時到達一計算中心。它們的估計運行時間分別為10,6,2,4和8分鐘。其優(yōu)先數(shù)(由外部設定)分別為3,5,2,1和4,其中5級為最高優(yōu)先級。對于下列每種調度算法,計算其平均進程周轉時間,可忽略進程切換的開銷。(1)時間片輪轉法假設q=2:進程到達時間運行時間開始時間完成時間周轉時間A0100101824283030B06212202222C02466D046141616E0881622262828avg=20.4102/5(2)優(yōu)先級調度進程到達時間運行時間開始時間完成時間周轉時間A010142424B06066C02242626D04263030E0861414avg=20100/5(3)先來先服務(按照次序10,6,2,4,8運行)進程到達時間運行時間開始時間完成時間周轉時間A01001010B06101616C02161818D04182222E08223030avg=19.296/5(4)最短作業(yè)優(yōu)先進程到達時間運行時間開始時間完成時間周轉時間A010203030B0661212C02022D04266E08122020avg=1470/5對(1),假設系統(tǒng)具有多道處理能力,每個作業(yè)均獲得公平的CPU時間,對(2)到(4)假設任一時刻只有一個作業(yè)運行,直到結束。所有的作業(yè)都是CPU密集型作業(yè)。7.有5個待運行作業(yè),它們的估計運行時間分別是9,6,3,5和X。采用哪種次序運行各作業(yè)將得到最短的平均響應如果是響應時間的話,假設作業(yè)一旦得到調度就有響應,那么,適用時間片輪轉,且時間片越小越好。本題的解法是適用平均周轉時間。時間?(答案依賴于X)如果是響應時間的話,假設作業(yè)一旦得到調度就有響應,那么,適用時間片輪轉,且時間片越小越好。本題的解法是適用平均周轉時間。采用SJF(短作業(yè)優(yōu)先)的方式:如果X>9,則運行順序為3→5→6→9→X。如果6<X<=9,運行順序為3→5→6→X→9。如果5<X<=6,運行順序為3→5→X→6→9。如果3<X<=5,運行順序為3→X→5→6→9。如果X<=3,運行順序為X→3→5→6→9。8.列出并簡單定義線程調度的四種技術。負載分配:系統(tǒng)維護一個就緒進程的全局隊列,每個處理器只要空閑就從隊列中選擇一個線程。組調度:一組相關的線程基于一對一的原則,同時調度到一組處理器上運行。專用處理器分配:通過把線程指定到處理器來定義隱式的調度。在程序執(zhí)行過程中,每個程序被分配給一組處理器,處理器的數(shù)目與程序中線程的數(shù)目相等。當程序終止時,處理器返回到總的處理器池中,可供分配給另一個程序。動態(tài)調度:在執(zhí)行期間,進程中線程的數(shù)目可以改變。9.列出并簡單定義四類實時調度算法。靜態(tài)表驅動調度算法:執(zhí)行關于可行調度的靜態(tài)分析。分析的結果是一個調度,它用于確定在運行時一個任務何時必須開始執(zhí)行。靜態(tài)優(yōu)先級驅動搶占調度算法:同樣,執(zhí)行一個靜態(tài)分析,但是沒有指定調度,而且用于給任務指定優(yōu)先級,使得可以使用傳統(tǒng)的優(yōu)先級驅動的搶占式調度器?;趧討B(tài)規(guī)劃調度調度算法:在運行時動態(tài)地確定可行性,而不是在開始運行前離線地確定。一個到達的任務,只有當能夠滿足它的時間約束時,才可以被接受執(zhí)行??尚行苑治龅慕Y果是一個調度或規(guī)劃,可用于確定何時分派這個任務。動態(tài)盡力調度調度算法:不執(zhí)行可行性分析。系統(tǒng)試圖滿足所有的最后期限,并終止任何已經(jīng)開始運行但錯過最后期限的進程。10.關于一個任務的哪些信息在實時調度時非常有用?在實時調度時通常需要任務的最壞情況執(zhí)行時間,任務的截止時間,任務的到達時間或周期,以及任務的優(yōu)先級等信息。這些信息都可以影響任務的調度決策。第五章存儲管理習題1.存儲管理的主要功能有哪些?存儲管理的主要功能是管理內存,協(xié)調內存、外存的使用,主要功能包括:內存管理方法、內存的分配和釋放算法、虛擬存儲器的管理、控制內存和外存之間的數(shù)據(jù)流動方法、地址變換技術和內存數(shù)據(jù)保護與共享技術等。2.解釋下列術語:邏輯地址、絕對地址、地址重定位。邏輯地址:在多道程序設計的系統(tǒng)中,內存中同時存放了多個用戶程序。操作系統(tǒng)根據(jù)內存的使用情況為用戶分配內存空間。因此,每個用戶不能預先知道他的程序將被存放到內存的什么位置。這樣,用戶程序中就不能使用內存的絕對地址。為了方便用戶,每個用戶都可認為自己的程序和數(shù)據(jù)存放在一塊“0”地址開始的連續(xù)空間中。用戶程序中使用的地址稱為“邏輯地址”。絕對地址指硬件編址的地址,CPU能夠尋址,通常是從0開始連續(xù)的,也可以是不連續(xù)的:存儲器以字節(jié)(每個字節(jié)為8個二進制位)為編址單位,假定存儲器的容量為n個字節(jié),其地址編號順序為0,1,2,…,n-1。這些地址稱為內存的“絕對地址”。指硬件編址的地址,CPU能夠尋址,通常是從0開始連續(xù)的,也可以是不連續(xù)的地址重定位:把邏輯地址轉換成絕對地址3.在可變分區(qū)管理方式下,什么是“碎片”?如何解決“碎片”問題?在可變分區(qū)管理方式下,內存分配鏈表中有記錄,可以分配但區(qū)域很小的空閑空間稱為碎片。解決碎片問題的辦法是在適當時刻進行碎片整理,通過移動內存中的進程,把所有空閑碎片合并成一個連續(xù)的大空閑區(qū),這種方法稱之為“內存緊縮”。4.采用緊縮技術有什么優(yōu)點?移動一道程序時操作系統(tǒng)要做哪些工作?緊縮技術可以集中分散的空閑區(qū),提高內存的利用率,便于動態(tài)擴充內存。移動一道程序時操作系統(tǒng)需要進行數(shù)據(jù)塊移動,還要進行地址重定位,修改內存分配表和進程控制塊。5.設在內存中按地址遞增次序有三個不連續(xù)的空閑區(qū)F1、F2、F3,它們的容量分別是60K、130K、20K。請給出一個后備進程序列,使得實施存儲分配時(1)采用最優(yōu)適應算法將取得好的效果,而采用最壞適應算法和最先適應算法效果都不好;(2)采用最優(yōu)適應算法效果不好,而采用最壞適應算法和最先適應算法都可取得好的效果;(3)采用最壞適應算法將取得好的效果,而采用最先適應算法和最優(yōu)適應算法效果都不好;(4)采用這三種算法都可取得好效果;(5)采用這三種算法效果都不好。(1)20K,60K,130K(2)10K,50K,70K,60K,20K(3)50K,60K,20K,60K(4)10K,10個20K(5)50K,70K,50K,30K6.用可變分區(qū)方式管理內存時,假定內存中按地址順序依次有五個空閑區(qū),空閑區(qū)的大小依次為32K,10K,5K,228K,100K?,F(xiàn)有五個程序J1,J2,J3,J4和J5。它們各需內存1K,10K,108K,28K和115K。若采用最先適應分配算法能把這五個程序按J1~J5的次序全部裝入內存嗎?你認為按怎樣的次序裝入這五個程序可使內存空間利用率最高。不能,最優(yōu)適應算法7.解釋頁式存儲管理中為什么要設置頁表和TLB。頁式存儲管理中設置頁表和TLB的主要目的是加速地址轉換過程,并提高系統(tǒng)的性能和效率。頁表的作用是實現(xiàn)地址轉換,將邏輯地址轉換為物理地址,從而使程序能夠正常運行。TLB是一種高速緩存,用于存儲最近使用的頁表項,可以加快頁表的訪問速度。設置頁表和TLB的好處包括:通過TLB的緩存機制可以避免每次訪問內存都需要訪問主存中的頁表,從而提高了地址轉換的速度;減少了CPU訪問內存的延遲時間,使得系統(tǒng)的響應速度更快,提高了整體的系統(tǒng)性能;通過修改頁表項或TLB的內容,操作系統(tǒng)可以動態(tài)地改變邏輯地址和物理地址之間的映射關系,從而實現(xiàn)靈活的存儲管理策略。8.設計一個頁表應考慮哪些因素?設計一個頁表時需要考慮以下因素:①頁表大?。喉摫淼拇笮∪Q于系統(tǒng)的地址空間大小和頁面大小。需要確保頁表足夠大以容納所有可能的頁表項,但又不能太大以至于消耗過多的內存空間。②頁表項的結構:每個頁表項應該包含哪些信息,例如物理頁框號、訪問權限、臟位(用于標記頁面是否被修改過)、有效位(表示該頁是否有效)、其他控制位等。③頁表的組織方式:頁表可以使用單級結構、多級結構或者倒排頁表等方式組織。不同的組織方式會影響頁表的訪問效率和空間利用率。④頁表的訪問速度:需要考慮如何快速地查找頁表中的頁表項??梢酝ㄟ^使用TLB、多級頁表、哈希表等技術來提高頁表的訪問速度。⑤頁面替換算法:如果內存不足時需要進行頁面替換,需要選擇合適的頁面替換算法,例如LRU(最近最少使用)、FIFO(先進先出)、Clock等算法。⑥支持的特性:頁表是否支持虛擬內存、內存保護、共享內存、寫時復制等特性。⑦頁表的更新策略:頁表的更新策略包括頁面調入(頁面缺失時將頁面從磁盤調入內存)、頁面替換(當內存不足時選擇哪些頁面進行替換)、頁面寫回(當頁面被修改時將頁面寫回磁盤)等。⑧空閑頁框管理:需要考慮如何管理空閑的物理頁框,以便于在需要時分配給進程使用。綜上所述,設計一個頁表需要考慮頁表大小、頁表項的結構、頁表的組織方式、頁表的訪問速度、頁面替換算法、支持的特性、頁表的更新策略以及空閑頁框管理等多個因素。9.請敘述頁式存儲管理中地址轉換的過程。頁式存儲管理中的地址轉換過程如下:①生成邏輯地址:當程序需要訪問內存中的數(shù)據(jù)時,CPU會生成一個邏輯地址。邏輯地址由兩部分組成:頁號(PageNumber)和頁內偏移量(Offset)。頁號指示所需數(shù)據(jù)所在的頁,頁內偏移量指示數(shù)據(jù)在頁內的具體位置。②TLB查找:CPU首先會在TLB中查找邏輯地址對應的頁表項。如果在TLB中找到了對應的頁表項,則說明該頁表項已經(jīng)緩存了最近的地址映射信息,CPU可以直接使用TLB中存儲的物理地址頁框號,完成物理地址轉換。③TLB未命中:如果在TLB中未找到對應的頁表項(TLB未命中),則需要訪問頁表。CPU將邏輯地址的頁號發(fā)送給內存管理單元(MMU),MMU將該頁號發(fā)送給內存中的頁表。④頁表查找:內存中的頁表是操作系統(tǒng)維護的數(shù)據(jù)結構,用于存儲邏輯頁號到物理頁框號的映射關系。根據(jù)邏輯頁號在頁表中查找對應的頁表項。如果找到了,就得到了對應的物理頁框號。⑤生成物理地址:根據(jù)頁表項中存儲的物理頁框號和邏輯地址中的頁內偏移量,CPU可以計算出所需數(shù)據(jù)在物理內存中的確切地址。物理地址由兩部分組成:物理頁框號和頁內偏移量。物理頁框號指示數(shù)據(jù)所在的物理頁框,頁內偏移量指示數(shù)據(jù)在頁內的具體位置。10.某采用頁式存儲管理的系統(tǒng)地址結構長度為16位,頁面大小為210。當前進程的頁表如下:0618210312414519圖5-22習題10圖假設虛擬地址為0000110010101100,試畫出地址轉換圖并計算相應的物理地址。物理地址:001100001010110011.考慮一個使用單級頁表的分頁系統(tǒng)。假設所需的頁表總在內存中。(1)如果一次物理內存訪問耗時200ns,那么一次邏輯內存訪問耗時多少?400ns200ns×2(2)現(xiàn)添加一個MMU,對每次命中或缺頁MMU造成20ns開銷。假設85%的內存訪問都命中MMUTLB。有效訪問時間(EMAT)是多少?250ns20ns×100%+200ns×0.15+200ns(3)解釋TLB命中率是如何影響EMAT的。TLB命中率越高,表示越多的邏輯地址轉換可以直接通過TLB完成,減少了訪問頁表的需要,從而減少了內存訪問次數(shù)和總體訪問時間。相反,TLB命中率低意味著更多的地址轉換需要訪問頁表,增加了內存訪問次數(shù)和總體訪問時間,從而增加了EMAT。假設頁面大小為4KB,頁表項大小4B。要映射64位的地址空間,如果頂級頁表能在一頁中存儲,需要多少級頁表?畫出地址轉換圖,并詳細描述從虛擬地址到物理地址的轉換過程。對于一個64位地址空間,如果頁面大小為4KB(即2^12字節(jié)),頁表項大小為4B,則每個頁面可以存儲2^12/2^2=2^10(也就是1024)個頁表項。每個頁表項對應一個頁面,所以一個單級頁表可以映射2^10×2^12字節(jié)(即4MB)的地址不是地址空間,是次級頁表個數(shù)這個題有點問題,64位系統(tǒng),頁表項4B是不足的,次級頁表只能存放在內存低段,且最末級頁表項4B不夠不是地址空間,是次級頁表個數(shù)這個題有點問題,64位系統(tǒng),頁表項4B是不足的,次級頁表只能存放在內存低段,且最末級頁表項4B不夠計算所需的頁表級數(shù):要映射整個64位地址空間,我們需要確定足夠的頁表級數(shù)n以便滿足以下條件:(2^10)^n×2^12≥2^64。我們之前已經(jīng)計算過這個問題,得出所需的頁表級數(shù)為6級。地址轉換圖:對于具有6級頁表的地址轉換,64位虛擬地址被分為7部分:6個部分用于頁表級別的索引(每部分10位),最后部分用于頁內偏移(12位)。虛擬地址的最高10位用于索引頂級頁表,接下來的10位用于索引第二級頁表,隨后的10位用于索引第三級頁表,以此類推,第51~60位用于索引第六級頁表。虛擬地址的最低12位表示頁內偏移,這部分在所有級別的頁表中是相同的,用于在找到的物理頁面中定位具體的數(shù)據(jù)。虛擬地址到物理地址的轉換過程:使用虛擬地址的最高10位在頂級頁表中找到第二級頁表的地址。使用虛擬地址的接下來的10位在第二級頁表中找到第三級頁表的地址。這個過程一直繼續(xù),直到第六級頁表。在第六級頁表中,使用虛擬地址的倒數(shù)第二個10位段找到物理頁框號。最后,將物理頁框號與虛擬地址的最后12位(頁內偏移)結合,形成完整的物理地址。13.考慮一個分頁式的虛擬地址空間(由32個2KB的頁組成),將它映射到一個1MB的物理內存空間。(1)該處理器的虛擬地址格式是什么?虛擬地址由5位的頁號和11位的頁內地址組成(2)頁表的長度和寬度是多少?(忽略“訪問權限”位)頁表長度為32,寬度為9(3)若物理內存空間減少一半,則會對頁表有何影響?物理地址空間大小減半:由于物理內存空間減少到512KB,即2^19字節(jié),所以物理地址空間的大小變?yōu)榱?9位。每個頁表項寬度變化:每個頁表項仍然需要能夠表示物理地址的偏移量,這個偏移量需要19-11=8位,因為頁面大小仍然是2KB。頁表長度不變:虛擬地址空間大小并未改變,因此虛擬地址空間仍然需要32個頁表項。14.頁式存儲管理系統(tǒng)中程序的地址空間是一維的還是二維的?請說明理由?!??】頁式是一維的。理由:在頁式存儲管理中,程序的地址空間被劃分為固定大小的頁,同時物理內存也被劃分為相同大小的物理頁框。程序的邏輯地址由頁號(PageNumber)和頁內偏移量(Offset)組成,頁號用于指示程序中的哪一頁,頁內偏移量用于指示頁內的具體位置。當程序訪問內存時,操作系統(tǒng)將頁號映射到物理內存中相應的頁框上,然后使用頁內偏移量來確定具體的地址。由于頁式存儲管理系統(tǒng)中,頁號對應于物理內存中的頁框號,因此程序的地址空間在邏輯上是一維的,即通過頁號和頁內偏移量來唯一確定內存中的地址。15.FIFO和時鐘頁面置換算法有何聯(lián)系?時鐘頁面置換算法是對FIFO算法的改進,它引入了一個“時鐘指針”,并根據(jù)頁面的訪問情況來決定是否置換頁面。當需要進行頁面置換時,時鐘算法檢查指針所指向的頁面是否被訪問過。如果該頁面已經(jīng)被訪問過,就將其訪問位清零,并將指針指向下一個頁面;如果該頁面未被訪問過,則選擇該頁面進行替換,并將指針指向下一個頁面。這樣時鐘算法能夠更好地反映頁面的實際使用情況,從而減少"“Belady異常"”的發(fā)生。16.簡述什么是覆蓋技術,什么是交換技術?它們之間的區(qū)別是什么?覆蓋技術:是指把程序劃分為若干個功能上相對獨立的程序段,按照其自身的邏輯結構使那些不會同時執(zhí)行的程序段共享同一塊內存區(qū)域,未執(zhí)行的程序段先保存在磁盤上,當有關程序段的前一部分執(zhí)行結束后,把后續(xù)程序段調入內存,覆蓋前面的程序段。覆蓋技術可以完全由用戶實現(xiàn),也可以由編譯程序提供支持。交換技術:由操作系統(tǒng)控制,將那些不在運行中的進程或其一部分調出內存,暫時存放在外存上的磁盤交換區(qū)中,以騰出內存空間給現(xiàn)在需要內存空間的進程,后者可能需要從外存換入內存,以后再將換出的進程調入內存繼續(xù)執(zhí)行。主要區(qū)別:①內存管理的粒度和方式:覆蓋技術是基于模塊或段的內存管理方式,而交換技術是基于進程的內存管理方式。②覆蓋技術通常用于解決單一連續(xù)分配內存管理方式下的內存不足問題,而交換技術通常用于解決分頁式和分段式內存管理方式下的內存不足問題。17.何謂程序局部性原理,請舉出三個例子。程序局部性原理是指在計算機程序執(zhí)行過程中,訪問數(shù)據(jù)和指令的趨勢會表現(xiàn)出一定的集中性,即在一段時間內,程序傾向于重復訪問相同的數(shù)據(jù)或者執(zhí)行相鄰的指令。舉例:①時間局部性:指程序在一段時間內對同一數(shù)據(jù)的反復訪問。例如循環(huán)結構中的變量,每次迭代都會重復使用,因此具有時間局部性。②空間局部性:指程序在一段時間內對相鄰內存地址中的數(shù)據(jù)進行訪問。例如數(shù)組或者矩陣的訪問。③緩存局部性:指程序訪問的數(shù)據(jù)往往會被緩存在高速緩存中,從而提高數(shù)據(jù)的訪問速度。例如,如果一個循環(huán)中的數(shù)據(jù)可以被緩存到CPU的緩存中,那么循環(huán)的執(zhí)行速度將會更快。18.虛擬存儲器是什么?為什么要引入虛擬存儲器?虛擬存儲器是一種計算機內存管理技術,它通過將部分存儲器內容暫時保存在磁盤上,以擴展可用的物理內存空間。這種技術使得程序能夠使用比物理內存更大的地址空間。虛擬存儲器的主要目標是允許程序在有限的物理內存下運行,同時提供了以下幾個優(yōu)點:第一,更大的地址空間。虛擬存儲器使得每個進程擁有一個巨大的地址空間,遠遠大于實際的物理內存大小。這樣,即使物理內存有限,也能夠運行大型程序。第二,更好的內存管理。虛擬存儲器提供了更靈活的內存管理機制,使得操作系統(tǒng)能夠更好地管理內存,包括內存分配、回收和保護等方面。第三,更高的性能。虛擬存儲器通過將不常用的數(shù)據(jù)暫時存儲在磁盤上,釋放物理內存空間供其他程序使用,從而提高了系統(tǒng)的整體性能。19.敘述虛擬頁式存儲管理方案的基本思想。為了實現(xiàn)虛擬頁式存儲管理,系統(tǒng)必須提供的硬件支持有哪些?虛擬存儲技術的基本思想是利用大容量的外存來擴充內存,產(chǎn)生一個比有限的實際內存空間大得多的、邏輯的虛擬內存空間,簡稱虛存,以便能夠有效地支持多道程序系統(tǒng)的實現(xiàn)和大型程序運行的需要,從而增強系統(tǒng)的處理能力。虛擬存儲管理是由操作系統(tǒng)在硬件支持下把兩級存儲器(內存和外存)統(tǒng)一實施管理,達到“擴充”內存的目的,呈現(xiàn)給用戶的是一個遠遠大于物理內存容量的編程空間,即虛存。程序、數(shù)據(jù)、堆棧的大小可以超過物理內存的大小,操作系統(tǒng)把程序當前使用的部分保留在物理內存,而把其他部分保存在磁盤上,并在需要時在內存和磁盤之間動態(tài)交換。虛擬存儲管理支持多道程序設計技術。實現(xiàn)虛擬存儲器需要以下的硬件支持:①系統(tǒng)有容量足夠大的外存;②系統(tǒng)有一定容量的內存;③硬件提供實現(xiàn)虛-實地址映射的機制。20.某采用頁式虛擬存儲管理的系統(tǒng),接收了一個共7頁的程序,程序執(zhí)行時依次訪問的頁為1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。若采用最近最少用(LRU)調度算法,程序在得到兩塊內存空間和四塊內存空間時各會產(chǎn)生多少次缺頁異常?如果采用先進先出(FIFO)調度算法又會有怎樣的結果?采用LRU:2塊內存空間:18次;4塊內存空間:10次1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6#,1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3x,x,x,x,x,x,x,x,x,x,o,x,x,x,x,x,x,o,x,x1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6#,1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3#,#,1,2,3,4,2,1,5,6,6,1,2,3,7,6,3,3,1,2#,#,#,1,1,3,4,2,1,5,5,6,1,2,2,7,6,6,6,1x,x,x,x,o,o,x,x,o,o,o,x,x,x,o,o,x,o,o,o采用FIFO:2塊內存空間:18次;4塊內存空間:14次1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,2,1,5,6,2,1,1,3,7,6,3,2,1,1,3,6#,1,2,3,4,2,1,5,6,2,2,1,3,7,6,3,2,2,1,3x,x,x,x,x,x,x,x,x,x,o,x,x,x,x,x,x,o,x,x1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,61,2,3,4,4,4,5,6,2,1,1,3,7,6,6,2,1,1,3,3#,1,2,3,3,3,4,5,6,2,2,1,3,7,7,6,2,2,1,1#,#,1,2,2,2,3,4,5,6,6,2,1,3,3,7,6,6,2,2#,#,#,1,1,1,2,3,4,5,5,6,2,1,1,3,7,7,6,6x,x,x,x,o,o,x,x,x,x,o,x,x,x,o,x,x,o,x,o21.有一個虛擬存儲系統(tǒng)。分配給某進程3頁內存,開始時內存為空,頁面訪問序列如下:6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5(1)若采用先進先出頁面置換算法(FIFO),缺頁次數(shù)為多少?176,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,56,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6#,#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x(2)若采用最近最少使用頁面置換算法(LRU),缺頁次數(shù)為多少?176,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,56,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6#,#,6,5,4,3,2,1,5,4,3,6,5,4,3,2,1x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x(3)若采用理想頁面置換算法呢?126,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,56,5,4,3,2,1,5,5,5,6,5,5,5,5,5,5,5#,6,5,4,3,3,3,3,3,3,3,3,3,2,2,6,6#,#,6,5,4,4,4,4,4,4,4,4,4,4,1,2,2x,x,x,x,x,x,x,o,o,x,x,o,o,x,x,x,o22.有一個虛擬存儲系統(tǒng)采用最近最少使用(LRU)頁面置換算法,每個程序占3頁內存,其中一頁用來存放程序和變量i,j(不作他用)。每一頁可存放150個整數(shù)變量。程序A和程序B如下: 程序A: VARC:ARRAY[1..150,1..100]OFinteger; i,j:integer; FORi:=1to150DO FORj:=1to100DO C[i,j]:=0;程序B: VARC:ARRAY[1..150,1..100]OFinteger; i,j:integer; FORj:=1to100DO FORi:=1to150DO C[i,j]:=0; 設變量i,j放在程序頁中,初始時,程序及變量i,j已在內存,其余兩頁為空。矩陣C按行序存放。(1)試問當程序A和程序B執(zhí)行完后,分別缺頁多少次?程序A執(zhí)行完后,缺頁50次。程序B執(zhí)行完后,缺頁5000次。(2)最后留在內存中的各是矩陣C的哪一部分?程序A、B執(zhí)行完后,留在內存中的是C的最后三行;23.什么是異常現(xiàn)象(或稱Belady現(xiàn)象)?你能找出一個異?,F(xiàn)象的例子嗎?例子:某程序在內存中分配m頁,初始為空,頁面走向為1,2,3,4,1,2,5,1,2,3,4,5,采用FIFO算法替換策略,通過計算得到當m=3時,缺頁異常9次;m=4時,缺頁異常10次。在這個例子中,當分配給進程的物理頁面數(shù)增加時,缺頁次數(shù)不僅不減少,反而增加。這一現(xiàn)象稱為異常現(xiàn)象(Belady異?,F(xiàn)象),而FIFO頁面置換算法會產(chǎn)生這一異常現(xiàn)象。24.虛擬頁式存儲管理中,頁面置換算法所花的時間屬于系統(tǒng)開銷,這種說法對嗎?【?】這種說法是對的,在虛擬頁式存儲管理系統(tǒng)中,頁面置換算法的執(zhí)行屬于系統(tǒng)開銷的一部分。(書上暫時沒找到相關內容)25.缺頁異常的處理過程是軟硬件配合完成的,請敘述缺頁異常處理過程。整個缺頁異常處理過程簡單闡述如下:1)根據(jù)當前執(zhí)行指令中的邏輯地址查頁表的有效位,判斷該頁是否在內存。2)該頁標志為“0”,形成缺頁異常。保留現(xiàn)場。中斷裝置通過交換PSW讓操作系統(tǒng)的缺頁中斷處理程序占用處理器。3)操作系統(tǒng)處理缺頁異常,尋找一個空閑的物理頁面。4)若有空閑頁,則把磁盤上讀出的信息裝入該頁面中。5)修改頁表及內存分配表,表示該頁已在內存。6)如果內存中無空閑頁,則按某種算法選擇一個已在內存的頁面,把它暫時調出內存。若在執(zhí)行中該頁面已被修改過,則要把該頁信息重新寫回到磁盤上(否則不必重新寫回磁盤)。當一頁被暫時調出內存后,讓出的內存空間用來存放當前需要使用的頁面。頁面被調出或裝入之后都要對頁表及內存分配表作修改。7)恢復現(xiàn)場,重新執(zhí)行被中斷的指令。當重新執(zhí)行該指令時,由于要訪問的頁面已被裝入內存,所以可正常執(zhí)行下去。26.試述缺頁與一般中斷的主要區(qū)別。處理缺頁的主要目的是將缺失的頁面從外部存儲加載到物理內存中,然后恢復程序的執(zhí)行。處理一般中斷的目的是響應和處理中斷請求,完成請求后再繼續(xù)之前被中斷的任務。此外,缺頁異常引起的中斷與普通中斷不同,它可以在指令中間發(fā)生,而普通中斷只能在指令之間發(fā)生。27.何謂系統(tǒng)的“顛簸”現(xiàn)象?為什么會出現(xiàn)這一現(xiàn)象?當系統(tǒng)發(fā)生“顛簸”時,應該采取什么措施來加以克服?如果頁面置換算法設計不當,導致剛被調出的頁面又立即要用,因而又要把它裝入,而裝入不久又被選中調出,調出不久又被裝入,如此反復,使調度非常頻繁。這種現(xiàn)象稱為“抖動”或稱“顛簸”。所以選擇不常使用的頁面置換出去會使系統(tǒng)性能好得多。措施:減少并發(fā)進程數(shù)量;增加可用內存容量;改變頁面置換算法。28.什么是工作集?它的作用是什么?顛簸是由缺頁率高引起的,對于給定的進程訪頁序列,在時刻(t-Δ)到時刻t之間所訪問頁面的集合,稱為該進程的工作集。操作系統(tǒng)采用工作集模型,為每個進程保持一個工作集,通過動態(tài)調整,使該進程獲得與工作集相等的物理頁面數(shù),可以解決顛簸問題。29.比較各種存儲管理方式的特征(包括內存空間的分配方式、是否要有硬件的地址轉換機構作支撐、適合單道或多道系統(tǒng)等)、重定位方式、地址轉換的實現(xiàn)(操作系統(tǒng)和硬件怎樣配合)、存儲保護的實現(xiàn)(操作系統(tǒng)和硬件各自做些什么工作)?!??】內存空間的分配方式:連續(xù)內存分配:將內存空間分為若干連續(xù)的區(qū)域,每個區(qū)域可以被分配給一個進程。主要有單一連續(xù)分配和多道連續(xù)分配兩種方式。非連續(xù)內存分配:將內存空間分為多個不連續(xù)的區(qū)域,每個區(qū)域可以分配給一個進程。主要有分頁式和分段式兩種方式。硬件的地址轉換機構支撐:需要硬件支持:如分頁式和分段式內存管理方式,需要硬件支持地址轉換機構,用于將邏輯地址映射到物理地址。不需要硬件支持:如單一連續(xù)分配和多道連續(xù)分配,通常不需要硬件支持地址轉換機構,內存的分配由操作系統(tǒng)控制。適合單道或多道系統(tǒng):單道系統(tǒng):單一連續(xù)分配適合單道系統(tǒng),因為它只允許一個進程占用整個內存空間。多道系統(tǒng):多道連續(xù)分配、分頁式和分段式內存管理方式適合多道系統(tǒng),因為它們允許多個進程共享內存空間。重定位方式:絕對重定位:在裝入時就確定了程序在內存中的絕對地址,適用于靜態(tài)重定位。相對重定位:在程序執(zhí)行過程中進行重定位,通常使用基址寄存器+限長寄存器的方式。地址轉換的實現(xiàn):操作系統(tǒng)配合硬件:操作系統(tǒng)負責管理頁面表或段表,硬件負責實際的地址轉換,如分頁式和分段式內存管理方式。操作系統(tǒng)獨立實現(xiàn):如單一連續(xù)分配和多道連續(xù)分配,操作系統(tǒng)自身負責地址轉換。存儲保護的實現(xiàn):操作系統(tǒng)與硬件合作:操作系統(tǒng)通過設置頁表項或段表項中的保護位來實現(xiàn)存儲保護,硬件在訪問內存時檢查這些保護位,如果違反了存儲保護規(guī)則,則產(chǎn)生異常。硬件獨立實現(xiàn):如單一連續(xù)分配和多道連續(xù)分配,由于不涉及地址轉換,存儲保護通常由操作系統(tǒng)自行實現(xiàn)。30.請描述圖5-23中的地址轉換過程(提示:要指出各種可能出現(xiàn)的情況)。圖5-23習題30虛擬地址與內存、輔存的映射關系圖中描述的是帶有TLB的地址轉換過程。1.虛擬地址生成:處理器生成一個虛擬地址,該地址被分為兩部分,頁號和頁內偏移。2.TLB查找:首先,在TLB中根據(jù)頁號進行查找。如果頁號在TLB中找到,這意味著TLB命中,TLB會直接提供對應的幀號。然后,幀號和虛擬地址中的頁內偏移組合成物理地址,直接訪問物理內存中的數(shù)據(jù)。如果頁號在TLB中未找到,即TLB未命中,那么系統(tǒng)需要訪問頁表。3.頁表訪問:在TLB未命中的情況下,系統(tǒng)使用頁號去頁表中進行查找。頁表通常存儲在內存中。如果在頁表中找到對應頁號的頁表項,系統(tǒng)將獲得幀號,并將此頁表項加載到TLB中以便將來快速訪問。接著,幀號和虛擬地址中的頁內偏移組合,形成物理地址,并訪問物理內存。如果頁表中也找不到對應的頁號,這意味著發(fā)生了缺頁(PageFault)。在這種情況下,操作系統(tǒng)必須從磁盤中找到所需的頁,并將其加載到物理內存中,同時更新頁表和TLB。4.物理內存訪問:一旦物理地址被確定,數(shù)據(jù)就可以從物理內存中讀取或寫入。第六章文件系統(tǒng)習題1.什么是文件和文件系統(tǒng)?文件系統(tǒng)的功能是什么?文件是一組帶標識的、在邏輯上有完整意義的信息項的序列。這里所謂“標識”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論