计算机系统复杂笔记
計(jì)算機(jī)系統(tǒng)復(fù)雜筆記
1,AMD 既做CPU又做顯卡
2,Inter 全球最大的CPU廠商,GPU,FPGA
3,NVIDA 人工智能起家的公司,且一直在做,顯卡最出名,CUDA讓N卡勝了AMD
CPU上 AMD - Inter
顯卡 AMD - NVIDA
TPU 谷歌自研的專門用于深度學(xué)習(xí)的處理器
【Intel/AMD CPU世代表】
架構(gòu)/代號 世代 年代 制造工藝 架構(gòu)/代號 類別 年代 制造工藝
Coffee Lake 第八代酷睿 2017-2018年 14nm Zen+ 第二代銳龍 2018年 12nm
Kaby Lake 第七代酷睿 2016年 14nm Zen 第一代銳龍 2017年 14nm
Skylake 第六代酷睿 2015年 14nm Piledrever 第二代FX 2012-2013年 32nm
Broadwell 第五代酷睿 2014-2015年 14nm Bulldozer 第一代FX 2011年 32nm
Haswell 第四代酷睿 2013年 22nm Godavari 第七代APU 2015年 28nm
Ivy Bridge 第三代酷睿 2012年 22nm Carrizo 第五代APU 2014年 28nm
Sandy Bridge 第二代酷睿 2011年 32nm Richland 第三代APU 2013年 32nm
Nehalem/Westmere 第一代酷睿 2008-2011年 32nm Trinity 第二代APU 2012年 32nm
Conroe 酷睿2 2006-2008年 65/45nm Llano 第一代APU 2011年 32nm
Netburst 奔騰4/D 2000-2008年 65nm K10 弈龍/速龍 2007-2011年 45nm
Tualatin 奔騰3 1999-2001年 130nm K8 速龍64 2003-2007年 65nm
K7 速龍XP 1999-2004年 130nm
操作系統(tǒng)和普通應(yīng)用進(jìn)程的關(guān)系是什么?
應(yīng)用程序啟動后,還依賴操作系統(tǒng)嗎?還需要操作系統(tǒng)的東西嗎?
硬件中斷時通過中斷請求線輸入信號來請求處理機(jī);
軟件中斷是處理機(jī)內(nèi)部識別并進(jìn)行處理的中斷過程。
硬件中斷一般是由中斷控制器提供中斷碼類型,處理機(jī)自動轉(zhuǎn)向中斷處理程序;
軟件中斷完全有處理機(jī)內(nèi)部形成中斷處理程序的入口地址并轉(zhuǎn)向中斷處理程序的入口地址,
并轉(zhuǎn)向中斷處理程序,不需要外部提供信息。
-----------------------------------------------------------------------------------
程序員的自我修養(yǎng),疑問
-----------------------------------------------------------------------------------
1,編譯器優(yōu)化導(dǎo)致加鎖的代碼也非線程安全?
2,CPU亂序?qū)е录渔i加voliatile的代碼也非線程安全?
進(jìn)程也是以CPU時間片方式調(diào)試的
有了線程概念后,進(jìn)程成為了資源分配的單位,線程是調(diào)度的單位,
3,內(nèi)核線程:????
由操作系統(tǒng)內(nèi)核創(chuàng)建和管理的線程,單核CPU也可能有多個內(nèi)核線程?
用戶線程是時間片輪轉(zhuǎn)出模擬線程
4,我們所說的編譯一般是指編譯和匯編兩步
編譯是將源代碼翻譯成匯編語言,
匯編則是將匯編語言翻譯成機(jī)器碼, 生成目標(biāo)文件.obj
就是說目標(biāo)文件是機(jī)器碼
同時,庫文件 dll也是目標(biāo)文件,在鏈接時被鏈接進(jìn)最終的EXE中
預(yù)編譯:編譯之前的階段,這個階段是處理所有帶#預(yù)編譯命令(除了#pragma),
主要是將預(yù)編譯指令展開,遞歸展開,包括#include
5,目標(biāo)文件.obj與exe結(jié)構(gòu)非常相似,只是多了些符號和描述信息。
在鏈接完成后這些符號信息被去除了。
exe文件結(jié)構(gòu)大概是什么樣的?文件頭,數(shù)據(jù)段,代碼段等,
文件頭用來描述各段及其偏移地址以定位各段,
這樣看起來EXE的執(zhí)行就是匯編程序的機(jī)制,這里是機(jī)器碼
堆的最大申請值,大概2G左右,linux上3G左右
棧最大限制 ,windows上2M左右, linux上8M左右
X86的頁大小一般為4k
6,一個EXE是如何執(zhí)行的
請求執(zhí)行:雙擊EXE,OS檢測該EXE是否有效-通過檢查其頭格式
如果合法有效則為它創(chuàng)建一個進(jìn)程,并根據(jù)EXE頭部信息將EXE的相關(guān)信息映射到進(jìn)程上,
包括數(shù)據(jù)段,代碼段,只讀數(shù)據(jù)等。并讀取頭部信息中的入口函數(shù),
然后加載所有需要的DLL,
然后調(diào)用入口函數(shù),開始進(jìn)程執(zhí)行
?
posted on 2018-08-13 12:20 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結(jié)
- 上一篇: VULKAN学习笔记-inter教学四篇
- 下一篇: 2018.8.14笔记