關於程式中斷i o方式的進一步認識

2021-08-11 10:37:39 字數 1300 閱讀 1090

1、還是分類的問題,由計組課本來看,與作業系統分類差別並不大,都是從內中斷外中斷也即是中斷源的角度進行分類,至於同步非同步或者可遮蔽不可遮蔽這些就是額外的點綴;

2、中斷的應用很廣泛,i/o方面只是其中之一,還有上篇文章所介紹的作業系統上所認識的目態和管態的狀態切換等等;考試的話主要以這兩種應用為主,另外實現人機互動、實現多道程式切換等等都需要有一些了解;

3、還有很重要的一點就是中斷優先順序的區分,有時候選擇題會有那麼一道,需要牢記下面六點:硬體故障中斷屬於最高端,其次是軟體中斷,然後非遮蔽中斷優於可遮蔽中斷,dma請求中斷優於i/o裝置傳輸的請求中斷,高速裝置優於低速裝置,輸入裝置優於輸出裝置,實施裝置優於普通裝置;

4、(計組是從硬體的角度進行認識的,之所以說是硬體角度,是因為這裡很多地方都用到了暫存器,可以與作業系統有所對比,但是也不能完全copy,否則會很混亂)類似的,要想執行中斷,需要由使用者態切換到核心態,這個時候:

1)首先起作用的就是中斷隱指令,中斷隱指令並不是指令系統中的一條真正的指令,他沒有操作碼,所以中斷隱指令是一種不允許為使用者所使用的特殊指令(這個跟訪管指令還不一樣,所以不能盲目模擬);

2)中斷隱指令它的主要功能是三點:關中斷(保證執行期間不被打斷)、儲存斷點(保證能夠返回到原來程式處)、引出中斷服務程式(類似於訪管指令引出特定的特權指令);

3)還要認識一點,引出中斷服務程式實質就是取出中斷服務程式的入口位址並傳送給程式計數器;(區分中斷向量和中斷向量位址)

5、上面其實類似於狀態切換,下面才是真正的在核心態下的執行過程:

首先要區分兩個概念:

保護斷點:由系統自動完成,方便中斷服務程式執行完後,可以返回到斷點處繼續執行。

保護現場:指的是進入中斷服務程式或子程式後,由於暫存器有限,主程式和中斷服務程式或子程式中用到相同的暫存器,所以為防止衝突,在中斷服務程式前或在子程式前用進棧指令保護那些可能受到衝突的暫存器,然後在返回前恢復

1)進入中斷服務程式之後首先要儲存現場,一般是指程式狀態字、中斷遮蔽暫存器、cpu中某些暫存器的內容;

2)開中斷(方便中斷巢狀)

3)執行中斷服務程式(即執行我們的作業或者說任務)

4)關中斷(保證恢復現場前不被中斷)

5)恢復現場和遮蔽字

6)開中斷、中斷返回(最後一條指令是一條中斷返回指令,此時還在核心態)

目前來看中斷遮蔽技術(用於多重中斷)在真題大題中還未出現過;

不過在王道八套卷第五套有一道大題是這個,可以參考

關於DOMAIN TESTING的進一步理解

在cem kaner的 中有這樣一句話 domain testing is a type of functional testing 13,14 we view the program as a function and test it by feeding it interesting input...

關於MVC的進一步學習

前一段第一次接觸springmvc的時候,是學習與開發同時進行的,難免會留下一些壞習慣,使的 結構不夠標準。現將最近看到的文章總結的一些想法歸納一下。一般controller的作用應該侷限於連線前端request以及後端服務的樞紐,不應該實現過多複雜的業務邏輯。甚至可以將前端request直接傳遞到...

關於float浮動進一步了解

語法 clear none left right both 取值 none 預設值。允許兩邊都可以有浮動物件 left 不允許左邊有浮動物件 right 不允許右邊有浮動物件 both 不允許有浮動物件 對於css的清除浮動 clear 一定要牢記 這個規則只能影響使用清除的元素本身,不能影響其他元...