計算機組成原理第9章課件_第1頁
計算機組成原理第9章課件_第2頁
計算機組成原理第9章課件_第3頁
計算機組成原理第9章課件_第4頁
計算機組成原理第9章課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理第9章計算機組成原理第9章2022/9/10第九章操作系統支持 操作系統是管理計算機資源并為用戶提供服務的系統軟件,作為硬件與應用軟件之間的接口,操作系統起著承上啟下的作用。了解操作系統與硬件之間的相互關系有助于理解計算機系統的整體工作過程。本章僅就操作系統與硬件關系最密切的處理機調度與存儲管理問題進行討論。2022/9/3第九章操作系統支持 操作系統是管理2022/9/109.1操作系統概述一、操作系統的概念 計算機系統大體上可以分為三個部分:硬件、系統軟件和應用軟件。硬件是所有軟件運行的物質基礎。 操作系統(簡稱OS)則是最重要的系統軟件,是管理計算機系統資源、控制程序執行的

2、系統軟件。操作系統作為計算機用戶與計算機硬件之間的接口程序,向用戶和應用軟件提供各種服務,合理組織計算機工作流程,并為用戶使用計算機提供良好運行環境。 操作系統已經成為現代計算機系統不可分割的重要組成部分。操作系統依托計算機硬件并在其基礎上提供許多新的服務和功能,從而使用戶能夠方便、可靠、安全、高效地操縱計算機硬件并運行應用程序。2022/9/39.1操作系統概述一、操作系統的概念2022/9/10二、操作系統的主要目標歸結為以下幾點:管理系統資源:操作系統能有效管理系統中的所有硬件資源和軟件資源,使資源得到充分利用。提高系統效率:操作系統能合理地組織計算機的工作流程,改進系統性能,提高系統效

3、率。方便用戶使用:通過向用戶提供友好的用戶界面,操作系統能讓用戶更方便、更輕松地使用計算機系統。增強機器功能:操作系統能通過擴充改造硬件部件并提供新的服務來增強機器功能。構筑開放環境:操作系統通過遵循相關技術標準的方式支持體系結構的可伸縮性和可擴展性,支持應用程序在不同平臺上的移植和互操作。2022/9/3二、操作系統的主要目標歸結為以下幾點:2022/9/109.1.2操作系統的功能操作系統的核心任務:管理計算機系統中的資源。從資源管理的角度來看,作為資源管理器的操作系統對計算機硬件資源的管理主要體現在以下三個方面:處理器管理存儲器管理設備管理2022/9/39.1.2操作系統的功能操作系統

4、的核心任務:2022/9/109.1.2操作系統的功能 處理機管理:處理機是最重要的硬件資源,因為所有軟件的執行和系統功能的實現都依賴于處理機。因此,能否充分發揮處理機的效能,是系統功能和性能的關鍵。 早期的計算機系統是單用戶、單任務系統,處理機僅為一個用戶的一個任務服務見圖所示。2022/9/39.1.2操作系統的功能 處理機管理:處理2022/9/109.1.2操作系統的功能 現代的計算機系統廣泛采用多任務機制支持多個程序或多個用戶并行使用計算機。在引入多任務機制后,當一個作業需等待I/O操作等外部條件滿足時,處理機轉去執行另一個作業,從而實現多任務的并行執行。操作系統負責組織多個任務的并

5、行執行,并負責解決處理機的調度、分配和回收等問題。多務系統運行兩道程序時處理機的使用效率見圖2022/9/39.1.2操作系統的功能 現代的計算機系2022/9/109.1.2操作系統的功能存儲管理:1)存儲分配:即根據程序的需要為其分配存儲器資源,在方便存儲器使用的同時又要保證存儲器的高利用率。2)存儲共享:允許主存中的多個任務或多個用戶程序共享存儲器資源,這一方面可以提高存儲器的利用率,另一方面又便于多任務間的數據交換。3)存儲保護:確保用戶程序不會有意或無意地訪問或破壞操作系統的關鍵代碼和數據。各個用戶程序之間也需要相互隔離、互不干擾。4)存儲擴充:基于存儲器的層次結構,存儲管理需要為用

6、戶提供與實際物理內存空間不直接相關的邏輯編程空間,并在主存和輔助存儲器的支持下實現邏輯地址空間與物理地址空間之間的映射與變換,方便用戶的編程和使用。2022/9/39.1.2操作系統的功能存儲管理:2022/9/109.1.2操作系統的功能設備管理:設備管理的主要任務是進行各類外圍設備的調度與管理,協調各個用戶提出的I/O請求,提高各I/O設備操作與處理機運行的并行性,提高處理機和I/O設備的利用率。設備管理還需提供每種設備的設備驅動程序,向用戶屏蔽硬件使用細節。2022/9/39.1.2操作系統的功能設備管理:設備管理的2022/9/109.1.3操作系統的特性及其需要解決的問題操作系統作為

7、計算機系統的管理者,必須解決一系列復雜的管理問題。而計算機系統運行的特性決定著操作系統的策略。并發性共享性隨機性等特征。2022/9/39.1.3操作系統的特性及其需要解決的問題操2022/9/109.1.4操作系統的硬件環境處理機狀態控制:為了支持操作系統的特權,中央處理機需要知道當前執行的程序是操作系統代碼還是一般用戶程序代碼。為此,處理機中設置了狀態標志。大多數系統把處理機的狀態劃分為管理狀態又稱超級用戶狀態、管態或特權狀態和用戶狀態又稱目標狀態、常態、目態或解題狀態)。特權指令:為了防止用戶程序執行有關資源管理的機器指令從而破壞系統正常工作狀態,在多任務環境中,通常把指令系統中的指令分

8、為兩類:特權指令(Privileged Instructions)和非特權指令。特權指令是只能由操作系統核心程序執行的機器指令,用于系統資源管理與程序執行控制等操作,如啟動輸入輸出設備、設置系統時鐘、控制中斷屏蔽位、設置存儲管理狀態、加載程序狀態字等。2022/9/39.1.4操作系統的硬件環境處理機狀態控制:2022/9/109.1.4操作系統的硬件環境寄存器訪問權限:計算機系統的中央處理機內設置了很多寄存器,包括用于暫存數據的通用數據寄存器和用于存放處理器的控制和狀態信息的控制寄存器。后者主要有:程序計數器PC、程序狀態字寄存器PWSR、指令寄存器IR等,也包括和系統存儲管理、中斷管理等相

9、關的寄存器。程序狀態字和程序執行現場:為了記錄計算機系統當前的工作狀態,需要專門設置程序狀態字(PSW)用于控制指令的執行并存儲與程序有關的系統狀態。 程序狀態字寄存器保存的信息通常包括以下幾類:(1)當前正在執行的指令地址這由程序計數器給出。(2)狀態條件碼表示指令執行結果的狀態特征,例如算術運算指令運行結果是否為零、是否有溢出、是否是負數等。(3)處理機狀態指明當前的處理機狀態,如目態或管態,是否允許某類中斷,是否處于中斷嵌套狀態,當前的存儲保護狀態等。(4)控制標志能夠影響某些指令執行方式的一些標志位。2022/9/39.1.4操作系統的硬件環境寄存器訪問權限:2022/9/109.1.

10、4操作系統的硬件環境 中斷機制:現代的計算機系統都支持中斷(異常)。通過檢測中斷源并進行中斷響應,中斷機制提供了一種程序隨機切換的方式。通過響應硬件定時器中斷,操作系統可以執行周期性的例行管理任務,例如進程調度。這可以確保某個進程不會獨占系統資源。以中斷方式實現處理機與外界進行信息交換的握手聯絡,能保證CPU與外設的并行工作。計算機工作時可能發生軟件或硬件故障,故障發生的時間相對于CPU的指令執行是完全隨機的。常見的硬件故障有掉電、校驗錯、運算出錯等;常見的軟件故障有運算溢出、地址越界、使用非法指令等。一旦發生故障,應由CPU執行中斷處理程序進行處理。2022/9/39.1.4操作系統的硬件環

11、境 中斷機制:2022/9/109.1.4操作系統的硬件環境存儲管理:系統硬件通過存儲管理部件支持操作系統實現多級存儲體系和存儲保護功能。在后面將詳盡討論與存儲管理相關的問題。2022/9/39.1.4操作系統的硬件環境存儲管理:系統硬2022/9/109.2 調度 9.2.1進程 1、進程的概念: 操作系統除了負責管理用戶程序的執行外,也需要處理各種系統任務。在操作系統中,通常使用進程(process)這一概念描述程序的動態執行過程。程序是靜態實體;進程是動態實體,是執行中的程序。進程不僅僅包含程序代碼,也包含了當前的狀態(這由程序計數器和處理機中的相關寄存器表示)和資源。因此,如果兩個用戶

12、用同樣一段代碼分別執行相同功能的程序,那么其中的每一個都是一個獨立的進程。雖然其代碼是相同的,但是數據卻未必相同。2022/9/39.2 調度 9.2.1進程2022/9/109.2.1進程的概念2、進程的狀態: 進程在不同階段會處于不同狀態。進程的狀態會隨著進程當前進行的活動而改變。 創建進程:正在被創建,并未準備好運行。 就緒進程:已經準備好運行,并正等待分配處理器時間。 運行進程:正占用處理機執行。 阻塞進程:由于等待I/O操作完成或某些事件出現而被系統掛起。 終止進程:完成操作結束運行。 在不同的系統中,進程的狀態種類和名稱不盡相同。系統中可能有多個進程處于創建、就緒、阻塞和終止等狀態

13、,但是處理機在任意時刻只能運行一個進程。2022/9/39.2.1進程的概念2、進程的狀態:2022/9/103.進程控制塊:為了管理和控制進程,操作系統必須保存與每個進程有關的狀態等信息。為此,操作系統為每個進程設置一個進程控制塊PCB(Process Control Block)。PCB中記錄了操作系統所需要的用于描述進程情況及控制進程運行所需的全部信息。PCB通常包含以下信息:(1)進程標識符用于唯一標識當前進程;(2)狀態記錄進程當前狀態;(3)程序計數器將要執行的下一條指令的地址;(4)進程上下文進程執行時CPU內部寄存器的取值,是進程執行的現場數據;(5)存儲管理信息指明進程占用的

14、內存空間的范圍;(6)I/O狀態信息例如打開的文件、未完成的I/O請求、占用的I/O設備等。2022/9/33.進程控制塊:2022/9/104.進程調度的模式進程調度是操作系統必備的功能。通常將進程調度分為搶占式和非搶占式兩種模式。 1)非搶占模式:非搶占模式是指一旦將處理機時間分配給某個進程后,便讓該進程一直運行,直到該進程因運行完畢或因發生某事件而被阻塞,才把處理機時間重新分配給其它進程。否則,不允許其他進程搶占已經分配出去的處理機時間。“先來先服務”策略就是一種非搶占調度模式,先進入就緒隊列的進程首先運行,直到運行結束或被阻塞為止。這種調度模式的優點是實現簡單、系統開銷小,但無法滿足實

15、時系統對緊急事件處理的時間要求。 2)搶占模式:在搶占調度模式中,允許進程調度程序根據某種策略,暫停某個正在運行的進程,將處理機時間重新分配給另一個進程。2022/9/34.進程調度的模式進程調度是操作系統必備的2022/9/10常用的搶占策略有:時間片策略處理機時間被分割為等長的時間單位,稱為時間片。每個進程被分配一個時間片運行,當該時間片超時時,由操作系統重新進行進程調度,將處理機時間交給另一個就緒進程。這種策略適用于分時系統和要求較高的批處理系統。優先權策略操作系統為某些重要或緊急的進程指定較高的優先級。當這種進程就緒時,如果其優先級比正在運行的進程的優先級高,便暫停正在運行的進程,將處

16、理機時間分配給優先級高的進程。短進程優先策略當就緒隊列中的某個進程比正在運行的進程的運行時間明顯地短時,操作系統將剝奪長進程的執行,將處理機分配給短進程,使之優先運行。該調度策略能有效地降低進程的平均等待時間,提高系統的吞吐量。2022/9/3常用的搶占策略有:2022/9/109.2.2 調度的層次調度的層次: 高級調度:作業調度 中級調度:內存調度 低級調度:進程調度 1.高級調度: 是指按一定原則把輔存上處于后備隊列中的作業調入內存,并為它們創建進程、分配必要的資源,再將新創建的進程排在就緒隊列上準備執行。高級調度決定哪些作業可以進入系統競爭系統資源。2022/9/39.2.2 調度的層

17、次調度的層次: 高級調度2022/9/10操作系統在進行高級調度時必須考慮兩個因素:(1)接納多少個作業系統允許有多少個作業同時在內存中運行用多道程序度表征。內存中同時運行的作業太多可能會影響到系統的服務質量,同時運行的作業太少又會導致系統資源利用率和系統吞吐量太低。因此,多道程序度的確定應根據系統的規模和運行速度等做適當折衷。(2)接納哪些作業操作系統根據所采用的調度算法決定哪些作業從輔存調入內存。例如,先來先服務調度算法將最早進入輔存的作業最先調入內存;短作業優先調度算法將輔存上最短的作業最先調入內存;而基于作業優先權的調度算法則需根據作業的重要程度與輕重緩急選擇調入內存的作業。高級調度在

18、較大的粒度上決定對處理機時間的使用權分配,故又稱作業調度、收容調度或長程調度。2022/9/3操作系統在進行高級調度時必須考慮兩個因素:2022/9/102.低級調度即進程調度, 決定當存在多個就緒進程時,哪一個就緒進程將分配到中央處理機的運行時間,并且把中央處理機實際分配給這個進程。 低級調度在較小的粒度上決定對處理機時間的使用權分配,又稱為短程調度。低級調度執行非常頻繁,進程調度程序每秒鐘可執行多次進程調度,故進程調度程序必須常駐內存。2022/9/32.低級調度即進程調度,2022/9/10 3.中級調度的目的是為了提高內存的利用率和系統吞吐量。 為了讓那些因為某些原因暫時不能運行的進程

19、不再占用寶貴的內存資源,操作系統通過中級調度將這些進程調出至輔存等待。當這些處于掛起狀態的進程再次準備好運行,且內存又出現空閑空間時,由中級調度決定將輔存上的哪些處于就緒駐外存狀態的進程重新調入內存。被調入的進程將轉換為就緒狀態掛在就緒隊列上,等待進程調度。2022/9/3 3.中級調度的目的是為了提高內存的利用率2022/9/109.2.3 處理機調度的實現: 為了調度的方便,操作系統會建立并維護若干個進程隊列。每個隊列均用于維護一個等待某些資源的進程的列表。 在批處理系統中,作業進入系統后,先駐留在輔存的后備隊列中,作業調度從輔存的后備隊列中選擇作業調入內存,并為之創建進程,然后送入內存就

20、緒隊列,并等待進程調度。交互型作業則直接進入內存就緒隊列。2022/9/39.2.3 處理機調度的實現:2022/9/10三級處理機調度隊列模型2022/9/3三級處理機調度隊列模型2022/9/109.3 存儲管理 存儲管理主要解決存儲器的分配與回收,存儲器地址變換,存儲器擴充,存儲器共享與保護等問題。2022/9/39.3 存儲管理 存儲管理主要解決存儲器的2022/9/109.3.1 分區式存儲管理 早期的單用戶、單任務的操作系統將內存空間簡單地分為 兩個區域:系統區和用戶區。操作系統使用系統區;應用程序則裝入到用戶區,并使用用戶區全部空間。這種方式管理簡單,但浪費內存空間。 為了支持多

21、個程序并發執行,現代操作系統引入了分區式存儲管理。內存被分為若干個區域,操作系統占用其中一個分區,其余的分區則提供給應用程序使用,每個應用程序占用其中一個或幾個分區。根據分區的大小是否固定,可以將分區式存儲管理機制分為固定分區和動態分區兩種類型。動態分區在進程申請內存空間時按其要求的容量分配內存,或根據進程的要求在其執行過程中動態改變分區大小。 分區存儲管理的優點是易于實現,但缺點是容易造成空間浪費,產生碎片。2022/9/39.3.1 分區式存儲管理 早期的單用戶、單2022/9/109.3.2 交換技術和分頁技術 交換過程由換入和換出兩個過程組成:換入過程將外存交換區的數據和程序代碼換至內

22、存,而換出過程將內存中的數據換到外存交換區中。分頁技術引申出一種非常重要的存儲管理策略虛擬存儲器(簡稱虛存)。在存儲管理部件(MMU)的支持下,虛擬存儲器技術可以徹底解決存儲器的調度與管理問題。 2022/9/39.3.2 交換技術和分頁技術 交換過程由換2022/9/109.4虛擬存儲器9.4.1 虛擬存儲器的基本概念1、實地址與虛地址:用戶編制程序時使用的地址稱為虛地址或邏輯地址,其對應的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內存的訪問地址則稱為實地地或物理地址,其對應的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉換的過程稱為程序的再定位。2022/9/39.4虛

23、擬存儲器9.4.1 虛擬存儲器的基本2022/9/102、虛存的訪問原理 虛存空間的用戶程序按照虛地址編程并存放在輔存中。程序運行時,由地址變換機構依據當時分配給該程序的實地址空間把程序的一部分調入實存。每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換并用實地址訪問主存;否則,按照某種算法將輔存中的部分程序調度進內存,再按同樣的方法訪問主存。由此可見,每個程序的虛地址空間可以遠大于實地址空間,也可以遠小于實地址空間。前一種情況以提高存儲容量為目的,后一種情況則以地址變換為目的。后者通常出現在多用戶或多任務系統中:實存空間較大,而單個任務并不需要很大的地址空間,較小的

24、虛存空間則可以縮短指令中地址字段的長度。2022/9/32、虛存的訪問原理2022/9/103、cache與虛存的異同 從虛存的概念可以看出,主存輔存的訪問機制與cache主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。 cache和主存之間以及主存和輔存之間分別有輔助硬件和輔助軟硬件負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。cache和主存構成了系統的內存,而主存和輔存依靠輔助軟硬件的支持構成了虛擬存儲器。2022/9/33、cache與虛存的異同2022/9/104、虛存機制要解決的關鍵問題(1)調度問題決定哪些程序和數據應被調

25、入主存。(2)地址映射問題在訪問主存時把虛地址變為主存物理地址(這一過程稱為內地址變換);在訪問輔存時把虛地址變成輔存的物理地址(這一過程稱為外地址變換),以便換頁。此外還要解決主存分配、存儲保護與程序再定位等問題。(3)替換問題決定哪些程序和數據應被調出主存。(4)更新問題確保主存與輔存的一致性。 在操作系統的控制下,硬件和系統軟件為用戶解決了上述問題,從而使應用程序的編程大大簡化。2022/9/34、虛存機制要解決的關鍵問題2022/9/109.4.2頁式虛存存儲器1、頁式虛存地址映射 頁式虛擬存儲系統中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。

26、相應地,虛地址分為兩個字段:高字段為邏輯頁號,低字段為頁內地址(偏移量);實存地址也分兩個字段:高字段為物理頁號,低字段為頁內地址。通過頁表可以把虛地址(邏輯地址)轉換成物理地址。 頁式虛擬存儲器的地址映射過程見下圖。2022/9/39.4.2頁式虛存存儲器2022/9/10頁式虛擬存儲器的地址映射過程見下圖2022/9/3頁式虛擬存儲器的地址映射過程見下圖2022/9/10 在大多數系統中,每個進程對應一個頁表。頁表中對應每一個虛存頁面有一個表項,表項的內容包含該虛存頁面所在的主存頁面的地址(物理頁號),以及指示該邏輯頁是否已調入主存的有效位。地址變換時,用邏輯頁號作為頁表內的偏移地址索引頁

27、表(將虛頁號看作頁表數組下標)并找到相應物理頁號,用物理頁號作為實存地址的高字段,再與虛地址的頁內偏移量拼接,就構成完整的物理地址。現代的中央處理機通常有專門的硬件支持地址變換。 每個進程所需的頁數并不固定,所以頁表的長度是可變的,因此通常的實現方法是把頁表的基地址保存在寄存器中,而頁表本身則放在主存中。由于虛存地址空間可以很大,因而每個進程的頁表有可能非常長。例如,如果一個進程的虛地址空間為2G字節,每頁的大小為512字節,則總的虛頁數為231/29=222。2022/9/3 在大多數系統中,每個進程對應一個頁表。頁2022/9/102、轉換后援緩沖器 由于頁表通常在主存中,因而即使邏輯頁已

28、經在主存中,也至少要訪問兩次物理存儲器才能實現一次訪存,這將使虛擬存儲器的存取時間加倍。為了避免對主存訪問次數的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍的部分存放在高速存儲器中,組成快表。這個專用于頁表緩存的高速存儲部件通常稱為轉換后援緩沖器(TLB)。保存在主存中的完整頁表則稱為慢表。2022/9/32、轉換后援緩沖器2022/9/10TLB的地址映射過程見圖2022/9/3TLB的地址映射過程見圖2022/9/109.4.2段式虛擬存儲器和段頁式虛擬存儲器1、段式虛擬存儲器: 段是按照程序的自然分界劃分的長度可以動態改變的區域。通常,程序員把子程序、操作數和常數等不同類型的數據劃分到不同的段中,并且每個程序可以有多個相同類型的段。在段式虛擬存儲系統中,虛地址由段號和段內地址(偏移量)組成。虛地址到實主存地址的變換通過段表實現。每個程序設置一個段表,段表的每一個表項對應一個段。每個表項至少包含下面三個字段:(1

溫馨提示

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

評論

0/150

提交評論