轉 [學習筆記]時鐘中斷的定義及作用


時鐘中斷:是指在計算機CMOS中一個芯片晶片中(常被稱爲實時時鐘)由電池供電,用於計時,而另一個芯片則根據實時時鐘提供的時間定期向CPU引腳發送中斷信號的中斷。

 

時鐘中斷非常特殊而且在系統作用也非常重大。

1.他用做記時。這點顯而易見。

2.現在流行的操作系統linux和windows他們都是多進程併發執行的,爲什麼多進程可以併發,這是由中斷支持的。一個進程執行的腳本是代碼,而我們知道我們在寫代碼過程中不會每隔多少行,或者說多少命令就寫一個讓出CPU語句將自己停止。既然這樣,就是說進程不會自己讓出CPU了(讓出CPU我想除了中斷其他方式用的都是有自己特殊目的的,比如異常,讓他來支持多進程併發運行顯然不實際,因爲他將會執行的異常處理程序,確切說他可能連進程也不會切換),那麼就得靠其它中斷來阻止他繼續運行,讓CPU停下來從新調度所有進程,然後給人造成多進程併發運行的假象。

 

那麼只有靠硬件的中斷了,(爲什麼不是軟件呢,剛說過了正在執行的進程沒有中斷自己,其它進程還在內存中,連CPU都沒拿到,它如何能向CPU中斷引腳發送中斷信號)硬件中斷都是有自己的特殊用途的,一般他們目的都是想讓CPU執行它們的驅動程序給他們提供服務,絕大部分是。明顯時鐘中斷沒這個要求,我的中斷服務程序裏面一個應該涉及到計時,除此之外我不需要CPU給我實時時鐘提供什麼服務。而且如果你操作系統不需要,甚至連前面的計時都可以不用。現在時鐘中斷了當前運行的進程,然後它按理應該做的是恢復原來的現場,但如果我不恢復現場呢,做一次進程調度。這樣就實現了多進程併發運行。

 

當然如果你在代碼中每隔幾行加上一次自己主動讓出CPU的語句(不一定是中斷),但這麼做明顯將進程調度的部分任務交給了程序,編寫的程序將會很複雜,而且每個語句指定時間長短不一,很難做到時間很短或者很確定時間





轉載自:http://zouyou1986.blog.163.com/blog/static/17726259201059105341121/

發佈了28 篇原創文章 · 獲贊 19 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章