今天看了劉欣的CDSN:碼農(nóng)翻身 ,一個(gè)技術(shù)大牛寫的博客文章;
大牛把計(jì)算機(jī)原理通過一個(gè)個(gè)小故事,讓你明白工作的過程,個(gè)人感覺挺容易理解和接受的;
今天主要學(xué)到的幾個(gè)點(diǎn)是:進(jìn)程,線程,cpu,內(nèi)存,硬盤,Linux操作系統(tǒng)幾個(gè)概念,以及工作過程;
理解到計(jì)算機(jī)底層硬件之間的相互合作,各自負(fù)責(zé)不同的功能;

計(jì)算機(jī)的執(zhí)行是根據(jù)程序代碼一行一行執(zhí)行的,自上而下,除非碰到循環(huán)判斷,以及控制流程語句,會(huì)跳轉(zhuǎn)執(zhí)行;
1. cpu是整個(gè)計(jì)算機(jī)的核心,執(zhí)行速度最快,處理單個(gè)任務(wù),同一個(gè)時(shí)間只運(yùn)行一個(gè)進(jìn)程;
2. 內(nèi)存存儲(chǔ)了需要執(zhí)行的代碼,運(yùn)行速度是cpu的百分之一;
3. 硬盤存儲(chǔ)資料,斷電也不會(huì)影響其數(shù)據(jù),運(yùn)行速度最慢,是cpu的千萬份之一;
4. 進(jìn)程,又叫process control block簡(jiǎn)稱pcb,保留了一個(gè)程序的工作現(xiàn)場(chǎng);
5. 線程:一個(gè)進(jìn)程當(dāng)資源容器,包含多個(gè)進(jìn)程,共享進(jìn)程的資源(地址空間,全局變量,文件資源);

6. 函數(shù)的調(diào)用,主要是參數(shù)和返回地址,用幀標(biāo)記函數(shù)(一段連續(xù)的內(nèi)存空間);ebp和esp在執(zhí)行完函數(shù)之后會(huì)重新指向調(diào)用著的棧幀;
7.內(nèi)存的分配過程比較復(fù)雜,涉及到棧(先進(jìn)后出),內(nèi)存地址的分配,以及寄存器的運(yùn)算,
詳細(xì)的可參考:CPU阿甘:函數(shù)調(diào)用的秘密
總的來說:
1.計(jì)算機(jī)的各種模式挺有意思的,為了解決具體一類問題而設(shè)計(jì)出來的;
2. 記得php的老師講過,慢慢加深對(duì)內(nèi)存的理解吧;