1. 程式人生 > >操作系統的硬件環境

操作系統的硬件環境

字節 讀取 物理 程序員 返回 缺陷 發生 包含 轉移指令

一 中央處理器 (CPU)

微處理器是微機的硬件核心

主要包含指令執行的運算和控制部件,還有多種寄存器

對程序員來說,微處理器抽象為以名稱存取的寄存器

8086內部結構有兩個功能模塊,完成一條指令的取指和執行功能

模塊之一:總線接口單元BIU,主要負責讀取指令和操作數

模塊之二:執行單元EU ,主要負責指令譯碼和執行

指令執行的基本過程(1)

先從存儲器中每次讀取一條指令

然後執行這條指令

一個單條指令處理過程稱為一個指令周期

程序的執行是由不斷取指和執行的指令周期組成

指令執行的基本過程(2)

每個指令周期開始時,依據在程序計數器中的指令地址從存儲器中取一條指令

在取指完成後根據指令類別自動將程序計數器的值變成下條指令的地址,自增1

取到的指令放在指令寄存器中

處理器解釋並執行所要求的動作

cpu五類指令

訪問存儲器指令: 處理器和存儲器間數據傳送

I/O指令: 處理器和I/O模塊間數據傳送和命令發送

算術邏輯指令(數據處理指令): 執行數據算術和邏輯操作

控制轉移指令: 指定一個新的指令的執行起點

處理器控制指令: 修改處理器狀態,改變處理器工作方式

特權指令和非特權指令

特權指令:只能由操作系統使用的指令。

特權指令一般引起處理器狀態的切換 處理器通過特殊的機制將處理器狀態切換到操作系統運行的特權狀態(管態) 然後將處理權移交給操作系統中的一段特殊代碼,這一個過程稱為陷入。

CPU通過處理器狀態的標識判斷當前運行的是操作系統還是一般應用軟件。

匯編指令的組成

指令由操作碼和操作數兩部分組成。

操作碼說明計算機要執行哪種操作,如傳送、運算、移位、跳轉等操作,它是指令中不可缺少的組成部分。

操作數是指令執行的參與者,即各種操作的對象。有些指令不需要操作數,通常的指令都有一個或兩個操作數,也有個別指令有3個甚至4個操作數。

每種指令的操作碼: 用一個唯一的助記符表示(指令功能的英文縮寫) 對應著機器指令的一個二進制編碼。

指令中的操作數: 可以是一個具體的數值,可以是存放數據的寄存器或指明數據在主存位置的存儲器地址。

操作碼 操作數1,操作數2

操作數2,稱為源操作數 src,它表示參與指令操作的一個對象

操作數1,稱為目的操作數 dest,它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結果

程序狀態字PSW:根據運行程序對資源和機器指令的使用權限將處理器設置為不同狀態

多數系統將處理器工作狀態劃分為管態和目態

管態:操作系統管理程序運行的狀態,較高的特權級別,又稱為特權態(特態)、核心態、系統態

目態:用戶程序運行時的狀態,較低的特權級別,又稱為普通態(普態)、用戶態

數據寄存器:用來存放計算的結果和操作數,也可以存放地址

變址寄存器:常用於存儲器尋址時提供地址

指針寄存器:用於尋址內存堆棧內的數據

二、存儲系統

作業必須把它的程序和數據存放在內存中才能運行 操作系統本身也要存放在內存中並運行 多道程系統中,若幹個程序和相關的數據要放入內存。

存儲器是是計算機的記憶部件,用來存放程序和數據。分類: 讀寫型的存儲器 只讀型的存儲器。

內存(RAM): 隨機訪問存儲器(RAM:Random Access Memory),主要用作存放隨機存取的程序和數據 存放當前正在執行的程序和使用的數據,CPU可以直接存取。

速度快,但是成本高,容量小,斷電以後內容會丟失。

可把數據存入其中任一地址單元,並可在以後的任何時候把數據讀出,或者重新存入新的數據的一種存儲器。

存儲單元: 每個存儲單元都有一個編號;被稱為存儲器地址 存儲內容: 每個存儲單元存放一個字節的內容

0002H單元存放有一個數據34H 表達為 [0002H]=34H

三、中斷技術

及時處理設備的中斷請求

它使得OS可以捕獲用戶程序發出的系統功能調用

防止用戶程序中破壞性的活動等

中斷:在CPU執行程序的過程中,出現了中斷請求,CPU需暫停正在執行的程序,轉去處理該事件(執行中斷服務程序) 並在處理完畢後返回斷點處繼續執行被暫停的程序,這一過程稱為中斷。。

CPU對系統發生的某個事件作出的一種反應。CPU暫停正在執行的程序,保留現場後自動轉去執行相應事件的處理程序,處理完成後返回斷點,繼續執行被打斷的程序。斷點處是指返回主程序時執行的第一條指令的地址。

特點:

1) 中斷是隨機的

2) 中斷是可恢復的

3) 中斷是自動處理的

中斷的引入:

為了開發CPU和通道(或設備)之間的並行操作,當CPU啟動通道(或設備)進行輸入/輸出後,通道 (或設備)便可以獨立工作,CPU轉去處理與此次輸入/輸出不相關的事情。

當通道(或設備)完成輸入/輸出後,通過向CPU發中斷告訴CPU此次輸入/輸出結束,使CPU繼續處理輸入/輸出以後的事情。

中斷的類型

中斷(外中斷):

I/O中斷

時鐘中斷

異常(內中斷):

系統調用

缺頁異常

斷點指令

其他程序性異常 (如算術溢出等)

四、I/O系統

I/O控制使用下面幾種技術:

程序控制

中斷驅動

直接存儲器存取(DMA)

通道

1、程序控制I/O技術

由處理器提供I/O相關指令來實現

I/O處理單元處理請求並設置I/O狀態寄存器相關位

不中斷處理器,也不給處理器警告信息

處理器定期輪詢I/O單元的狀態,直到處理完畢

I/O軟件包含直接操縱I/O的指令

控制指令: 用於激活外設,並告訴它做什麽

狀態指令: 用於測試I/O控制中的各種狀態和條件

數據傳送指令: 用於在設備和主存之間來回傳送數據

主要缺陷: 處理器必須關註I/O處理單元的狀態,因而耗費大量時間輪詢信息,嚴重地降低了系統性能

2、中斷驅動I/O技術

為了解決程序控制I/O方法的主要問題:讓處理器從輪詢任務中解放出來,使I/O操作和指令執行並行起來

具體作法: 當I/O處理單元準備好與設備交互的時候 通過物理信號通知處理器,即中斷處理器的執行

3、DMA技術

直接存儲器訪問(DMA:Direct Memory Access) 通過系統總線中一獨立控制單元DMA控制器,自動控制成塊數據在內存和I/O單元間的傳送。 大大提高處理I/O的效能。

當處理器需要讀寫一整塊數據時, 給DMA控制單元發送一條命令。 包含:是否請求一次讀或寫,I/O設備的編址,開始讀或寫的主存編址,需要傳送的數據長度等信息。

處理器發送完命令後就可處理其他事情, DMA控制器將自動管理數據的傳送。 當這個過程完成後, DMA控制器給處理器發一個中斷,處理器只在開始傳送和傳送結束時關註一下就可。

處理器和DMA傳送不完全並行,因為: 有時會有總線競爭的情況發生, 處理器用總線時可能稍作等待, 不會引起中斷, 不引起程序上下文的保存。 通常過程只有一個總線周期。 在DMA傳送時,處理器訪問總線速度會變慢。 對於大量數據I/O傳送,DMA技術很有價值。

4、通道

通道又稱為I/O處理機,獨立於中央處理器,是專門負責數據I/O傳輸的處理機。

它對外設實現統一管理 代替CPU對I/O操作進行控制 使CPU和外設可以並行工作

引入通道的目的: 為了使CPU從I/O事務中解脫出來 同時為了提高CPU/設備、設備/設備之間的並行度

操作系統的硬件環境