日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C内存2:程序是如何运行的

發布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C内存2:程序是如何运行的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由內存1的講解我們知道,內存僅僅是一個存放指令和數據的地方,要完成計算功能需要將其讀取到CPU內部。

然而CPU內部又包含很多個小零件,它是一個復雜的計算機部件。

上圖中的運算單元相當于CPU的大腦功能,負責各種運算工作,而且每種運算工作都有對應的電路支持,速度很快。

寄存器(Register)是CPU內部一個非常小非常快速的存儲部件,但是它的容量是有限的。我們經常說到的多少位的CPU其實指的就是寄存器的位數,對于32位的CPU,每個寄存器一般能存儲32位(4個字節,一個字節是8位)的數據,對于64位的CPU每個寄存器一般能存儲64位(8個字節)的數據。為了實現程序中復雜的功能,現在的CPU都內置了幾十個甚至上百個寄存器,(嵌入式的功能單一,寄存器數量較少)。

寄存器在程序的執行過程中至關重要,不可或缺,它們可以用來完成數學運算、控制循環次數、控制程序的執行流程、標記CPU運行狀態等,CPU就是用它來記錄程序的運行狀態,然后根據他的值再決定下一步的操作。例如,EIP(Extern Instruction Pointer )寄存器的值是下一條指令的地址,CPU執行完當前指令后,會根據 EIP 的值找到下一條指令,改變 EIP 的值,就會改變程序的執行流程;CR3 寄存器保存著當前進程頁目錄的物理地址,切換進程就會改變 CR3 的值。

緩存:在CPU的內部設置一個緩存,是為了將使用頻繁的數據暫時讀取到緩存,當需要同一地址上的數據時,就不用再去訪問內存,直接從緩存讀取(對于不經常使用的數據依然從內存上讀取,對于那些數據保留在緩存上,哪些數據不保留都有復雜的算法控制)。因為雖然內存的讀取速度很快,但是同CPU比起來還是很慢,不在一個數量級上,這樣每次從內存讀取數據會嚴重拖慢CPU的運行速度,每次讀取會造成CPU等待無事可做。

所以我們購買電腦時也會關注緩存的容量,一級緩存是32KB,二級緩存是256KB,三級緩存是8MB。緩存容量越大,CPU越厲害。

要想讓CPU工作起來,是需要指令集的,我們編寫的C代碼最終也是會編譯成一條條的CPU指令集

總結

以上是生活随笔為你收集整理的C内存2:程序是如何运行的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。