【電腦底層】程式是如何被執行的?

by - 晚上7:45

         用了那麼多電腦軟體,應該會好奇這些程式是怎麼執行的吧!今天就來大致講一下程式執行的背後原理吧!

        首先,我們都知道程式是存在硬碟中的,那至於如何儲存呢?先看到硬碟,硬碟內有幾兆個小單元,每個小單元都有兩種型態,例如有磁性跟無磁性等,因為能表示兩種型態的物體很多,所以較容易找到可以做更小更便宜的材料,因此硬碟內可能如下圖所示:

 就只有兩種顏色(灰線為方便區別而畫),我們就以此圖來暫時表示硬碟。圖中一個小格就代表硬碟中的一個小單元,我們稱之「位元」,不過僅僅一個位元只能表示兩種狀態,像對或錯、是或否等,完全不夠我們使用,俗話說團結力量大,所以我們就把位元們分成八個一組,稱之「位元組」,這樣一來,位元組能表示的型態已有二的八次方也就是256種可能,正好是兩位的十六進位數所能表示的最大數(00~FF)、十進位數0~255,通常電腦底層都用十六近未來儲存資料,像一個程式的片段便可以寫成:

當中兩位兩位一組的十六進位數就是一個位元組。
        呼~硬碟的部分講完了,接下來要說明那堆看不懂是甚麼碗糕的十六進位用途何在,這些十六進位的數值分別代表指令和資料,指令就是指機械碼(或稱機器語言-machine code),而資料就很多種了,像一串字、數字、符號都會被轉成十六進位存到底層,至於如何區分資料和指令就得靠中央處理器(Central Processing Unit即:CPU英文直譯為中央處理單元)來分辨了,若是指令,CPU就會執行,資料的不分當然就看各程式如何處理。
        接著要說明CPU如何執行那些指令(整個程式),首先,那堆看不懂的機械碼會被載入到記憶體(或稱內存-RAM),因為RAM存取速度比硬碟快很多,故先將程式載入到RAM才跑的順,接著CPU就會從RAM抽取指令來執行,程式便開始執行了!
常見問題: 
Q:阿RAM不是很快,拿它來當硬碟不就好了?
A:RAM快歸快,但RAM太貴了啊!而且RAM只能短期保存資料,一斷電資料就都不見了。
Q:SSD跟RAM誰比較快?
A:SSD是屌打傳統硬碟沒錯,但其存取速度還是差RAM一大截呢!

以上就是今天的教學,有問題可以至粉專發問喔!不妨幫我們按個讚和分享這篇文章給親朋好友,讓他們知道更多有趣的知識喔!

你可能會喜歡

1 意見