問題解答:
問題1:為什么程序運(yùn)行要加載到內(nèi)存?
由計(jì)算機(jī)的體系結(jié)構(gòu)所決定。
-
中央處理器CPU(控制單元+運(yùn)算單元)無(wú)法直接與磁盤進(jìn)行數(shù)據(jù)交換,只能通過內(nèi)存與CPU進(jìn)行溝通。
-
程序最終是以二進(jìn)制文件的形式存儲(chǔ),必須在CPU上運(yùn)行,因此需要先加載到內(nèi)存中。
問題2:input和output是相對(duì)于什么而言的?相對(duì)于內(nèi)存而言。input指的是外部設(shè)備向內(nèi)存寫入數(shù)據(jù),output則是內(nèi)存向輸出設(shè)備發(fā)送數(shù)據(jù)。
問題3:描述利用qq聊天的過程??jī)膳_(tái)設(shè)備可以視為兩個(gè)馮諾依曼體系結(jié)構(gòu)。
-
首先啟動(dòng)QQ,QQ程序會(huì)被加載到內(nèi)存中并開始運(yùn)行。
-
要發(fā)送消息“你好”,我們通過鍵盤輸入“你好”,然后點(diǎn)擊發(fā)送。
-
此時(shí),“你好”被寫入到內(nèi)存中。QQ也在內(nèi)存中運(yùn)行,其程序代碼會(huì)處理“你好”并控制將其輸出到網(wǎng)卡(輸出設(shè)備),然后通過網(wǎng)絡(luò)傳輸?shù)綄?duì)方的網(wǎng)卡(輸入設(shè)備)。
-
對(duì)方的網(wǎng)卡接收到信息后,將“你好”加載到內(nèi)存中,然后由QQ控制處理,最后輸出到對(duì)方的顯示器上。
問題4:為什么需要內(nèi)存?可以用木桶效應(yīng)來(lái)解釋:一只水桶能盛多少水,取決于最短的那塊木板。
-
CPU的處理速度與磁盤的讀取速度存在巨大差異:CPU速度極快,而磁盤讀取速度相對(duì)較慢,因此系統(tǒng)的整體速度受限于磁盤的讀取速度。
-
引入內(nèi)存后,將需要的數(shù)據(jù)加載到內(nèi)存中,CPU可以更快地讀取數(shù)據(jù),從而提升整體速度。
-
在內(nèi)存之上還有緩存,緩存存儲(chǔ)的數(shù)據(jù)量更少,但速度更快,成本也更高。在緩存之上還有寄存器。
?馮諾依曼體系:
?哈佛體系:
現(xiàn)代計(jì)算機(jī)引入了緩存,內(nèi)存可以被視為一種緩存器。