處理器與寄存器 處理器部件的簡單示意 用戶程式可見寄存器 可以使程式員減少訪問主存儲器的次數,提高指令執行的效率,所有程式可使用,包括應用程式和系統程式 + 數據寄存器:又稱通用寄存器 + 地址寄存器:索引、棧指針、段地址等寄存器 控制與狀態寄存器 用於控制處理器的操作;主要被具有特權的操作系統程式 ...
處理器與寄存器
處理器部件的簡單示意
用戶程式可見寄存器
可以使程式員減少訪問主存儲器的次數,提高指令執行的效率,所有程式可使用,包括應用程式和系統程式
- 數據寄存器:又稱通用寄存器
- 地址寄存器:索引、棧指針、段地址等寄存器
控制與狀態寄存器
用於控制處理器的操作;主要被具有特權的操作系統程式使用,以控製程序的執行,程式計數器PC:存儲將取指令的地址,指令寄存器IR:存儲最近使用的指令,條件碼CC:CPU為指令操作結果設置的位,標誌正/負/零/溢出等結果,標誌位:中斷位、中斷允許位、中斷屏蔽位、處理器模式位、記憶體保護位、...,等
程式狀態字PSW
PSW既是操作系統的概念,指記錄當前程式運行的動態信息,通常包含:程式計數器,指令寄存器,條件碼,中斷字,中斷允許/禁止,中斷屏蔽,處理器模式,記憶體保護、調試控制
PSW也是電腦系統的寄存器,通常設置一組控制與狀態寄存器,也可以專設一個PSW寄存器
指令與處理器模式
機器指令
機器指令是電腦系統執行的基本命令,是中央處理器執行的基本單位,指令由一個或多個位元組組成,包括操作碼欄位、一個或多個操作數地址欄位、以及一些表徵機器狀態的狀態字以及特征碼,指令完成各種算術邏輯運算、數據傳輸、控制流跳轉
指令執行過程
CPU根據PC取出指令,放入IR,並對指令解碼,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行
一種指令執行步驟如下:
- 取指:根據PC從存儲器或高速緩衝存儲器中取指令到IR
- 解碼:解譯IR中的指令來決定其執行行為
- 執行:連接到CPU部件,執行運算,產生結果並寫回,同時在CC里設置運算結論標誌;跳轉指令操作PC,其他指令遞增PC值
特權指令與非特權指令
用戶程式並非能夠使用全部機器指令,那些與電腦核心資源相關的特殊指令會被保護,如:啟動I/O指令、置PC指令、等等,核心資源相關的指令只能被操作系統程式使用
- 特權指令:只能被操作系統內核使用的指令
- 非特權指令:能夠被所有程式使用的指令
處理器模式
電腦通過設置處理器模式實現特權指令管理,電腦一般設置0、1、2、3等四種運行模式,建議分別對應:0操作系統內核、1系統調用、2共用庫程式、3用戶程式等保護級別,0模式可以執行全部指令;3模式只能執行非特權指令;其他每種運行模式可以規定執行的指令子集,一般來說,現代操作系統只使用0和3兩種模式,對應於內核模式和用戶模式,處理器模式的切換,簡稱模式切換,包括“用戶模式→內核模式”和“內核模式→用戶模式”的轉換
中斷、異常或系統異常等事件導致用戶程式向OS內核切換,觸發:用戶模式→內核模式:程式請求操作系統服務,程式運行時發生異常,程式運行時發生並響應中斷;OS內核處理完成後,調用中斷返回指令(如Intel的iret)觸發:內核模式→用戶模式
中斷
中斷的概念
中斷是指程式執行過程中,遇到急需處理的事件時,暫時中止CPU上現行程式的運行,轉去執行相應的事件處理程式,待處理完成後再返回原程式被中斷處或調度其他程式執行的過程,操作系統是“中斷驅動”的;換言之,中斷是激活操作系統的唯一方式,中斷有廣義和狹義之分,上述中斷是指廣義的中斷
中斷、異常與系統異常
- 狹義的中斷指來源於處理器之外的中斷事件,即與當前運行指令無關的中斷事件,如I/O中斷、時鐘中斷、外部信號中斷等
- 異常指當前運行指令引起的中斷事件,如地址異常、算術異常、處理器硬體故障等
- 系統異常指執行陷入指令而觸發系統調用引起的中斷事件,如請求設備、請求I/O、創建進程等
陷入指令:也稱訪管指令,或異常中斷指令,電腦系統為實現系統調用而引起處理器中斷的指令
中斷源–處理器硬體故障中斷事件
由處理器、記憶體儲器、匯流排等硬體故障引起,處理原則為:保護現場,停止設備,停止CPU,向操作員報告,等待人工干預
中斷源-程式性中斷事件
處理器執行機器指令引起,除數為零、操作數溢出等算術異常:簡單處理,報告用戶;也可以由用戶編寫中斷續元程式處理,非法指令、用戶態使用特權指令、地址越界、非法存取等指令異常:終止進程,終止進程指令:終止進程,虛擬地址異常:調整記憶體後重新執行指令
中斷源-自願性中斷事件
處理器執行陷入指令請求OS服務引起;在操作系統中,它一般又被稱作系統調用,請求分配外設、請求I/O、等等,處理流程是:陷入OS,保護現場,根據功能號查入口地址,跳轉具體處理程式
中斷源-I/O中斷事件
來源於外圍設備報告I/O狀態的中斷事件,I/O完成:調整進程狀態,釋放等待進程,I/O出錯:等待人工干預,I/O異常:等待人工干預
中斷源-外部中斷事件
由外圍設備發出的信號引起的中斷事件,時鐘中斷、間隔時鐘中斷:記時與時間片處理,設備報到與結束中斷:調整設備表,鍵盤/滑鼠信號中斷:根據信號作出相應反應,關機/重啟動中斷:寫迴文件,停止設備與CPU