計算機組成原理1

2021-10-24 00:18:32 字數 1720 閱讀 8434

完好的程式都滿足以下特徵

自動執行

我們的程式和指令都是一條條順序執行,不需要通過鍵盤或者網路給這個程式任何輸入

正常執行

沒有遇到計算溢位之類的程式錯誤。

不過,現實的軟體世界可沒有這麼簡單

程式不僅是簡單的執行指令,更多的還需要和外部的輸入輸出打交道

程式在執行過程中,還會遇到各種異常情況,比如除以0、 溢位,甚至我們自己也可以讓程式丟擲異常。

遇到這些情況,計算機是怎麼運轉的呢,也就是說,計算機究竟是如何處理異常的

軟體異常指軟體開發中遇到的異常,而硬體異常是和系統、軟體相關的硬體異常

硬體異常有的來自硬體的也有來自軟體層面的。

比如,硬體層面上,當兩個數相加遇到算術溢位。軟體層面,程式進行了乙個系統呼叫,也是通過異常來實現的。

計算機會為每一種可能會發生的異常,分配乙個異常**(exception number)

異常**也叫作中斷向量(interrupt vector)。

異常發生的時候,通常是cpu檢測到了乙個特殊的訊號。

比如你按下鍵盤上的按鍵,輸入裝置就會給cpu發乙個訊號

正在執行的指令發生了加法溢位,同樣,我們可以有乙個進製溢位的訊號

這些訊號呢,在組成原理,一般叫發生了乙個事件(event)

cpu在檢測到事件的時候,其實也就拿到了對應的異常**。

這些異常**裡

i/o發出的訊號的異常**,是由作業系統來分配的,也就是由軟體來設定的

像加法溢位這樣的異常**,則是由cpu預先分配好的,也就是由硬體來分配的. 這又是另乙個軟體和硬體共同組合來處理異常的過程

拿到異常**之後,cpu就會觸發異常處理的流程

計算機在記憶體裡,會保留乙個異常表 (exception table)。

也叫中斷向量表(interrupt vector table),好和上面的中斷向量對應起來。

這個異常表有點兒像我們在之前的got表,存放的是不同的異常**對應的異常處理程式(exception handler)所在的位址

顧名思義,就是程式在執行到一半的時候,被打斷了。這個打斷執行的訊號,來自於cpu外部的i/o裝置。

你在鍵盤上按下乙個按鍵,就會對應觸發乙個 相應的訊號到達cpu裡面。cpu裡面某個開關的值發生了變化,也就觸發了乙個中斷型別的異常

程式設計師「故意「主動觸發的異常。就好像你在程式裡面打了乙個斷點,這個斷點就是設下的乙個"陷阱"。

當程式的指令執行到這個位置的時候,就掉到了這個陷阱當中。然後,對應的異常處理程式就會來處理這個"陷阱"當中的獵物。

最常見的一類陷阱,應用程式呼叫系統呼叫的時候,也就是從使用者態切換到核心態的時候。

可以用linux下的time指令,去檢視乙個程式執行實際花費的時間,裡面有在使用者態花費的時間(user time),也有在核心態發生的時間 (system time)。

應用程式通過系統呼叫去讀取檔案、建立程序,其實也是通過觸發一次陷阱來進行的。這是因為使用者態的應用程式沒有許可權來做這些事情,需要把對應的流程轉交給有許可權的異常處理程式來進行。

陷阱是我們開發程式的時候刻意觸發的異常,而故障通常不是。

比如,我們在程式執行的過程中,進行加法計算發生了溢位,其實就是故障型別的異常。

這個異常不是我們在開發的時候計畫內的,也一樣需要有對應的異常處理程式去處理。

故障和陷阱、中斷的重要區別

故障在異常程式處理完成之後,仍然回來處理當前的指 令,而不是去執行程式中的下一條指令。

因為當前的指令因為故障的原因並沒有成功執行完成。

計算機組成原理 1

儲存器有主儲存器和輔助儲存器之分,主機中只包括主儲存器,而不包括輔助儲存器。主儲存器由ram和 rom組成,對於微型計算機而言,是指插在主機板上的記憶體條和其他儲存晶元。輔助儲存器側是硬碟,軟盤,光碟等儲存器的總稱,他們處於主辦之外,屬於外部裝置。單匯流排 單匯流排 系統匯流排 按匯流排上傳送資訊的...

計算機組成原理1

數字計算機的主要特點 按位運算,並且不連續地跳動計算。模擬計算機的特點 數值由連續量來表示,運算過程也是連續的。數字計算機分兩類,一為專用計算機,二為通用計算機 其分類的依據是 根據計算機的效率 速度 執行的經濟性和適應性。儲存容量 儲存器所有儲存單元的總數 資料字 計算機字 w 代表要處理的資料 ...

計算機組成原理(1

計算機組成原理 第一章 概論 1.世界上第一台電子數字計算機是eniac 1946 2.電子計算機的發展 第一代 1946 1959 電子管計算機 電子管為基礎器件 延遲線作為儲存器 第二代 1959 1964 電晶體計算機 電晶體成為基礎器件 磁芯儲存器為儲存器 第三代 1964 1975 小中規...