作業系統精髓與設計原理學習筆記

2021-09-14 05:08:41 字數 3646 閱讀 1157

1.3指令的執行

1.4中斷

1.5儲存器的層次結構

計算機基本構成:處理器、儲存器、輸入/輸出部件

處理器:邏輯處理單元,控制計算機的操作,執行資料處理功能,(cpu)。

記憶體:儲存資料和程式。特點是易失性,關機後,儲存器的內容就會丟失,通常被稱為實儲存器或主儲存器。

輸入/輸出模組:在計算機和外部環境(外部裝置(儲存器裝置:硬碟、通訊裝置和終端))之間移動資料。

系統匯流排:為處理器、記憶體和輸入/輸出模組間提供通訊的設施。

暫存器簡介:

cpu使用的暫存器

儲存器位址暫存器(mar):確定下一次讀寫的儲存器位址。

儲存器緩衝暫存器(mbr)存放要寫入儲存器的資料或從儲存器讀取的資料。

輸入/輸出暫存器:

輸入/輸出位址暫存器(i/o ar)確定乙個特定的輸入/輸出裝置。

輸入/輸出緩衝暫存器(i/o br)用於在輸入/輸出模組和處理器間交換資料。

處理器包含一組暫存器,它們提供一定的儲存能力,比記憶體訪問速度快,但比記憶體的容量小。

使用者可見暫存器:優先使用這些暫存器,可以減少使用機器語言或組合語言的程式設計師對記憶體的訪問次數。對高階語言而言,由優化編譯器負責決定哪些變數應該分配給暫存器,哪些變數應該分配給記憶體。一些高階語言(如c語言)允許程式設計師建議編譯器把哪些變數儲存在暫存器中。

控制和狀態暫存器:用以控制處理器的操作,且主要被具有特權的作業系統例程使用,以控制程式的執行。

使用者可見暫存器可以通過由處理器執行的機器語言來引用。

資料暫存器:可以被執行資料操作的任何機器指令使用。

位址暫存器:存放資料和指令的記憶體位址,或者存放用於計算完整位址或有效位址的部分位址。

變址暫存器:變址定址是一種最常用的定址方式,它通過給乙個基值加乙個索引來獲得有效位址。

段指標:對於分段定址方式,儲存器被劃分為段,這些段由長度不等的字塊組成,段由若干長度的字組成。乙個儲存器引用由乙個特定的段號和段內的偏移量組成,採用這種方式,需要由乙個暫存器儲存段的基位址(起始位址).。

棧指標:如果對使用者可見的棧進行定址,則應該有乙個專門的暫存器指向棧頂。這樣就可以使用不包含位址域的指令,如入棧(push)和出棧(pop)。

有多種處理器的暫存器用於控制處理器的操作。

程式計數器(pc):包含將取指令的位址。

指令暫存器(ir):包含最近取的指令的內容。

程式狀態字(psw):包含條件碼與狀態資訊,如中斷允許/禁止位和核心/使用者態位

條件碼(標記):是處理器硬體為操作結果設定的位。

處理器執行的程式是由一組儲存在儲存器中的指令組成的。

指令處理的兩個步驟:

1.處理器從儲存器中一次讀(取)一條指令。(取指階段)

2.執行讀取的指令。(執行階段)

指令週期:

乙個指令需要的處理時間成為乙個指令週期。

在每個指令週期開始時,處理器從儲存器中取一條指令。程式計數器(pc)儲存下一次要取的指令位址(即位於下乙個儲存器位址的指令)。

取得的指令被放置在處理器的乙個暫存器中,這個暫存器稱作指令暫存器(ir)

指令操作:

處理器-儲存器:資料可以從處理器傳送到儲存器,或者從儲存器傳送到處理器。

處理器-i/o:通過處理器和i/o模組間的資料傳送,資料可以輸出到外部裝置,或者從外部裝置輸入資料。

資料處理:處理器可以執行很多與資料相關的算數操作或邏輯操作。

控制:某些指令可以改變執行順序。改變取指位址。

指令的執行可能涉及這些行為的組合。

指令格式:由操作碼與儲存器位址構成。

i/o模組(例如磁碟控制器)可以直接與處理器交換資料。處理器可以通過指定儲存單元的位址來啟動對儲存器的讀和寫一樣,處理器也可以從i/o模組中讀取資料或向i/o模組中寫資料。

在某些情況下,允許i/o模組直接與記憶體發生資料交換,以減輕在完成i/o任務過程中的處理器負擔。此時,處理器允許i/o模組具有從儲存器中讀或往儲存器中寫的特權,這樣i/o模組與儲存器之間的資料傳送無需通過處理器完成。在這類傳送過程中,i/o模組對儲存器發出讀命令或寫命令,從而免去了處理器負責資料交換的任務。這個操作稱為直接記憶體訪問。

事實上所有計算機都提供了允許其他模組(i/o、儲存器)中斷處理器正常處理過程的機制。

中斷分類:

程式中斷:在某些條件下由指令執行的結果產生,例如算數溢位、除數為0、試圖執行一條非法的機器指令,以及訪問到使用者不允許的儲存器位置。

時鐘中斷:由處理器內部的計時器產生,允許作業系統以一定的規律執行函式。

i/o中斷:由i/o控制器產生,用於發訊號通知乙個操作的正常完成或各種錯誤條件。

硬體故障中斷:由諸如掉電或儲存器奇偶錯誤之類的故障產生。

中斷的作用:例如在io程式執行準備的過程中,可以繼續執行使用者程式,當使用者程式接收到io操作準備完成的中斷訊號後。此時中斷執行io命令,多以中斷不一定是在執行io指令的時候。

中斷的過程中,處理器會將psw和pc壓入控制棧,根據中斷,處理器載入新的pc值,並儲存剩餘的處理器狀態資訊,然後處理中斷。完成後,恢復處理狀態資訊,並恢復老psw和pc值。

處理過程:

1. 裝置給處理器發出乙個中斷訊號。

2. 處理器在響應中斷前結束當前執行的指令。

3. 處理器對中斷進行測定,確定存在未響應的中斷,並給提交中斷的裝置傳送確認訊號,確認訊號允許該裝置取消它的中斷訊號。

4. 處理器需要把控制權轉移到中斷程式中去做準備。(需要儲存當前的資訊)

5. 處理器把響應此中斷的中斷處理程式入口的位址裝入程式計數器中。

6. 中斷處理程式完成後,之前儲存的資訊還原。

7. 繼續執行使用者程式。

處理多個中斷有兩種方法:

1. 當處理乙個中斷時,禁止再發生中斷。禁止中斷的意思是處理器將對任何新的中斷請求訊號不予理睬。如果在這期間發生了中斷,通常中斷保持掛起,當處理器再次允許中斷時,再由處理器檢查,若存在新的中斷,則執行中斷。多個中斷也需要按照順序執行。

該方法的缺陷:

沒有考慮定義中斷優先順序,和時間限制的要求。

2. 定義中斷優先順序,允許高優先順序的中斷打斷低優先順序的中斷處理程式的執行

如在處理器等待該使用者程式的實踐過程,此時處理器是空閒的,造成了浪費。

假設處理器執行兩道程式。一道程式從儲存器中毒資料並放入外部裝置中,另一道是包括大量計算的應用程式。處理器開始執行輸出程式,給外部裝置傳送乙個寫命令,接著開始執行其他應用程式。當處理器處理很多程式時,執行順序取決於他們的相對優先順序以及它們是否正在等待i/o。

為了儲存器達到乙個容量、讀寫速度、**上的折中,通常使用組合型的儲存器。

高速儲存器到低速儲存器特點:

1. 每乙個位的**遞減

2. 容量遞增

3. 訪問時間遞增

4. 處理器訪問儲存器的頻率遞減

若資料儲存在二級儲存器中,則先將二級儲存器資料存放在一級儲存器中,處理器在從一級儲存器中獲得資料。

4成立的條件是,當處理器執行乙個迴圈時,處理器只需重複訪問乙個指令集合,因此對其它級別的處理器訪問頻率會遞減。

此原理可以應用於多級儲存器組織結構中。最快、最小和最貴的儲存器型別由位於處理器內部的暫存器組成。

記憶體:向下跳過兩級儲存器層次就到了記憶體層次,記憶體是計算機中主要的內部儲存器系統。記憶體中的每個單元位置都有乙個唯一的位址對應,而且大多數機器指令會訪問乙個或多個記憶體位址。記憶體通常是高速的,容量較小的快取記憶體的擴充套件。快取記憶體通常對程式設計師不可見,或者更確切的說,是對處理器不可見。快取記憶體用於在記憶體和處理器的暫存器之間分段移動資料,以提高資料訪問的效能。

作業系統精髓與設計原理學習筆記七 記憶體管理

在單道程式設計系統中,記憶體被劃分成兩個部分 一部分供作業系統使用 駐留監控程式 核心 一部分供當前正在執行的程式使用。在多道程式設計系統中,必須在記憶體中進一步細分出 使用者 部分,以滿足多個程序的要求。細分的任務由作業系統動態完成,這稱為記憶體管理。有效的記憶體管理在多道程式設計系統中是至關重要...

《作業系統 精髓與設計原理》 作業系統概述

作業系統為應用程式提供與硬體互動的介面,它的主要功能是為執行中的程式動態地分配可共享的系統資源,與之相關的研究主要涉及記憶體 程序及外設的管理和排程。相鄰層次間的介面不斷改變。一方面,原來由作業系統負責的功能被遷移到硬體中,另一方面,一些與應用程式解決的問題無關的程式化函式也被加入作業系統中 作業系...

筆記 《作業系統精髓與設計原理》 4 併發

併發原理 訊號量管程 訊息生產者 消費者 讀者 寫者 死鎖的條件 互斥 乙個資源一次只能給乙個程序使用。其他程序不能訪問已分配給其他程序的資源。占有且等待 乙個程序等待其他程序時,繼續占有已經分配的資源。不可搶占 不能強行搶占程序已占有的資源。迴圈等待。1 3條件是死鎖存在的必要條件。加上條件4才是...