?? page27.html
字號:
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>第3章 中斷調用與子程序</title>
</head>
<body>
<style type="text/css">
body {
background-color: #c0c0c0;
}
table {
background-color: #c0c0c0;
line-height: 24px;
}
</style>
<!導航條>
<p><a href="content1.html">目錄</a> <a href="page26.html">上一頁</a> <a href="page28.html">下一頁</a> <a href="page45.html">下一章</a></p>
<table border=0 align="center" width=800 frame="box" rules="none">
<!標尺行>
<tr>
<td width=3%></td><td width=6%></td><td width=1%></td> <!左側空白>
<td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td>
<td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td><td width=5%></td>
<td width=1%></td><td width=6%></td><td width=3%></td> <!右側空白>
</tr>
<!頁眉行>
<tr height=60 valign="bottom">
<td></td><td></td><td></td>
<td colspan=6><img src="icons/flag.gif"></td><td colspan=4></td><td colspan=6 align="right">第3章 中斷調用與子程序</td> <!章節名>
<td></td><td>-27-</td><td></td> <!頁碼>
</tr>
<!頁眉線>
<tr valign="top">
<td></td><td colspan=20><hr></td><td></td>
</tr>
<!正文>
<font face="宋體" lang="ZH-CN" size=3>
<tr height=20><td colspan=22></td></tr> <!頂部空白>
<tr>
<td></td><td></td> <!左邊距>
<td colspan=18>
<font face="隸書" lang="ZH-CN" size=6><p align="CENTER">第3章 中斷調用與子程序</p></font>
<font face="黑體" lang="ZH-CN"><a name="31"><p>3.1 中斷的概念和處理過程</p></a></font>
<font face="黑體" lang="ZH-CN"><a name="311"><p>3.1.1 中斷的基本概念</p></a></font>
<p>
"中斷"在計算機技術中占有極其重要的地位。它來源于我們日常的生活。舉一個生活中的簡單例子:A君正在自己的書房內讀書,廚房的煤氣灶上正燒著開水,客廳中有一部電話,A君的一位朋友約好要給他打電話。<br>
讀書是A君的主要工作,但A君同時又要處理其它事情:水開了,A君必須去關煤氣灶;電話鈴響,又需要去接電話。<br>
對于這樣的事情,A君可以有這樣兩種處理方案:<br>
<font face="楷體_GB2312" lang="ZH-CN" size=3>
方案(1):<br>
先讀幾行書,記下頁碼后去客廳看看有無電話打來,若無電話則再跑到廚房看看水開了沒有,如果水未開就返回書房看書。如此循環。<br>
"咳!我活得可真夠累的啊......"A君感慨地說。<br>
感慨歸感慨,但是必須承認,這的確是個方案。而且只要循環的“頻率”足夠高,則這個方案還是行之有效的。<br>
</font>
當然,人是不會這樣工作找累受的,但CPU卻能這樣運行。比如某時刻CPU正在執行一個程序,打印機正在打印,打印字符要由CPU負責供給。而操作人員正要接鍵輸入字符,輸入的字符也要CPU負責保存。<br>
在這樣的情況下,CPU就可以按方案(1)處理這兩項工作:執行一段程序,停下來轉去執行一小段程序來判斷是否有鍵盤輸入,有輸入則保存輸入的字符;而后轉去執行另一小段程序去給打印機發送數據;最后返回主要的程序繼續執行,如此循環。<br>
這樣一種工作方式在一些結構非常簡單的計算機中確實是有應用的,此種方式一般稱為“設備輪循”。如果讓CPU以很高的速度進行輪循就能保證每種外設都能及時得到CPU的支援。<br>
當然,“設備輪循”使得CPU的運行效率很低,因為無論外設是否需要CPU提供服務CPU都要去“關照”它們。而如果某個外設需要CPU支援的時候CPU正在“關照”其他設備,那么此設備就可能因為得不到CPU的支援而陷入運轉混亂狀態。由此看來,這種令CPU無時無刻不在四處奔走、東擋西殺的工作方式是不能用在PC電腦中的。<br>
<font face="楷體_GB2312" lang="ZH-CN" size=3>
方案(2):<br>
A君專心致志地看書,若電話鈴響,則記下正在看的頁碼,放下書去接電話。接完電話返回來繼續從記下的頁碼處讀書;若水開發出響聲,則記下頁碼,放下書去關煤氣灶,而后返
</p>
</font>
</font>
<!頁腳線>
<tr valign="top">
<td></td><td colspan=20><hr></td><td></td>
</tr>
<!頁腳>
<tr height=60 valign="top">
<td></td><td></td>
<td colspan=9><i>Copyright © 2004-2005 <a href="mailto:webmaster@nucstorm.com">Chunk Lee</a></i></td>
<td colspan=9 align="right"><i><a href="http://www.nucstorm.com" target="_top">www.nucstorm.com</a></i></td>
<td></td><td></td>
</tr>
</table>
<!導航條>
<p align="right"><a href="content1.html">目錄</a> <a href="page26.html">上一頁</a> <a href="page28.html">下一頁</a> <a href="page45.html">下一章</a></p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -