python編程基礎--電腦原理之硬體基礎,python編程基礎
一、寄存器:寄存器是CPU內部用來存放資料的一些小型儲存地區,用來暫時存放參與運算的資料和運算結果。
1、寄存器的特性:
1)寄存器位於CPU內部,數量很少,僅十四個;
2)寄存器所能儲存的資料不一定是8bit,有一些寄存器可以儲存16bit資料,對於386/486處理器中的一些寄存器則能儲存32bit資料;
3)每個內部寄存器都有一個名字,而沒有類似儲存空間的地址編號。
2、寄存器的分類:
1)資料寄存器:資料寄存器主要用來儲存運算元和運算結果等資訊,從而節省讀取運算元所需佔用匯流排和訪問儲存空間的時間。
2)變址寄存器:主要用於存放儲存單元在段內的位移量,用它們可實現多種儲存空間運算元的定址方式,為以不同的地址形式訪問儲存單元提供方便。變址寄存器不可分割成8位寄存器。作為通用寄存器,也可儲存算術邏輯運算的運算元和運算結果。它們可作一般的儲存空間指標使用。在字串操作指令的執行過程中,對它們有特定的要求,而且還具有特殊的功能。
3)指標寄存器:主要用於存放堆棧記憶體儲單元的位移量,用它們可實現多種儲存空間運算元的定址方式,為以不同的地址形式訪問儲存單元提供方便。指標寄存器不可分割成8位寄存器。作為通用寄存器,也可儲存算術邏輯運算的運算元和運算結果。也稱為堆棧指標寄存器。
4)段寄存器:段寄存器是根據記憶體分段的管理員模式而設定的。記憶體單元的物理地址由段寄存器的值和一個位移量組合而成的,這樣可用兩個較少位元的值組合成一個可訪問較大物理空間的記憶體位址。
5)程式狀態字寄存器:用來存放兩類資訊:一類是體現當前指令執行結果的各種狀態資訊,如有無進位(CY位),有無溢出(OV位),結果正負(SF位),結果是否為零(ZF位),奇偶標誌位(P位)等;另一類是存放控制資訊,如允許中斷(IF位),追蹤旗標(TF位)等。有些機器中將PSW稱為標誌寄存器FR(Flag Register)。
二、處理器設計的演變:
1、最初:取值、解碼、執行,三步同時執行,這樣意味著每步執行完都要等待其他步執行的結果,比較浪費時間和資源。
2、後來:取值單元------>解碼單元------->執行單元,三步成流水線式的設計,即:取值N時,可以解碼N+1,也可以執行N+2
3、超變數CPU,比流水線CPU更加先進,可以同時執行多個單元,類似有多條流水線同時執行;
三、核心態和使用者態:
1、核心態:當程式運行在核心態時,CPU可以執行指令集中的所有指令,包括可以使用硬體的雖有功能。
2、使用者態: 當程式運行在使用者態時,僅僅只能執行CPU的一個指令集,不能直接操作硬體,因此,一般情況下,使用者態進程對I/O和記憶體保護不能被其他的程式佔用;當然也不能修改程式狀態字寄存器裡的程式狀態。
四、核心態和使用者態的切換:
1、發生系統調用時
這是處於使用者態的進程主動請求切換到核心態的一種方式。使用者態的進程通過系統調用申請使用作業系統提供的系統調用服務常式來處理任務。而系統調用的機制,其核心仍是使用了作業系統為使用者特別開發的一個中斷機制來實現的,即非強制中斷。
2、產生異常時
當CPU執行運行在使用者態下的程式時,發生了某些事先不可知的異常,這時會觸發由當前啟動並執行進程切換到處理此異常的核心相關的程式中,也就是轉到了核心態,如缺頁異常。
3、外設產生中斷時
當外圍裝置完成使用者請求的操作後,會向CPU發出相應的中斷訊號,這時CPU會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理常式,如果先前執行的指令是使用者態下的程式,那麼這個轉換的過程自然也就發生了由使用者態到核心態的切換。比如硬碟讀寫操作的完成,系統會切換到硬碟讀寫的中斷處理常式中執行後續操作等
五、儲存空間
1、寄存器:整合在CPU內部,使用和CPU相同的材質,速度最快,但是相應的造價也最貴。所有空間都很小,<1kB
2、進階緩衝:即通常所說的L1(一級緩衝)、L2(二級緩衝)、L3(三級緩衝),位於CPU與記憶體之間的臨時儲存空間,它的容量比記憶體小但交換速度快。在緩衝中的資料是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量資料時,就可避開記憶體直接從緩衝中調用,從而加快讀取速度。最初緩衝只有一級,二級緩衝(L2 CACHE)出現是為了協調一級緩衝與記憶體之間的速度。二級緩衝比一級緩衝速度更慢,容量更大,主要就是做一級緩衝和記憶體之間資料臨時交換的地方用。實際上,現在Intel和AMD處理器在一級緩衝的邏輯結構設計上有所不同,所以二級緩衝對CPU效能的影響也不盡相同。
3、記憶體:與CPU溝通的橋樑,所有程式都是在記憶體中啟動並執行,包括作業系統本身;作用是暫時存放CPU中的運算資料,以及與外部儲存的交換資料,記憶體的大小和頻率也影響到計算的整體效能;記憶體是隨機儲存,斷電資料丟失。
4、ROM:唯讀儲存,在製造時即寫入需要的程式,唯讀,不能修改,斷電不丟失,例如電腦的BIOS
5、CMOS:用於儲存計算的時間資訊,和BIOS的配置參數等資訊,斷電資料丟失。
6、外存:外部儲存,包括硬碟、高速快閃記憶體等,主要用於儲存資料,斷電不遺失資料,電腦的作業系統就是安裝在外部儲存內。
六:磁碟
磁碟也是儲存空間的一種,主要儲存的是使用者資料,作業系統,以及安裝的應用軟體。
1.盤面
硬碟的碟片一般用鋁合金材料做基片,高速硬碟也可能用玻璃做基片。硬碟的每一個碟片都有兩個盤面(Side),即上、下盤面,一般每個盤面都會利用,都可以儲存資料,成為有效碟片,也有極個別的硬碟盤面數為單數
2.磁軌
磁碟在格式化時被劃分成許多同心圓,這些同心圓軌跡叫做磁軌(Track)。磁軌從外向內從0開始順序編號。硬碟的每一個盤面有300~1 024個磁軌,新式大容量硬碟每面的磁軌數更多。資訊以脈衝串的形式記錄在這些軌跡中,這些同心圓不是連續記錄資料,而是被劃分成一段段的圓弧,這些圓弧的角速度一樣。由於徑向長度不一樣。
3.柱面 (柱面數=磁軌數)
所有盤面上的同一磁軌構成一個圓柱,通常稱做柱面(Cylinder),每個圓柱上的磁頭由上而下從“0”開始編號。資料的讀/寫按柱面進行,即磁頭讀/寫資料時首先在同一柱面內從“0”磁頭開始進行操作,依次向下在同一柱面的不同盤面即磁頭上進行操作,只在同一柱面所有的磁頭全部讀/寫完畢後磁頭才轉移到下一柱面,因為選取磁頭只需通過電子切換即可,而選取柱面則必須通過機械切換。
4.扇區
作業系統 以扇區(Sector)形式將資訊儲存在硬碟上,每個扇區為512個位元組。一個扇區有兩個主要部分:儲存資料地點的標識符和儲存資料的資料區段。資料都是儲存在一個個扇區上的。
系統將檔案儲存體到磁碟上時,按柱面、磁頭、扇區的方式進行,即最先是第1磁軌的第一磁頭下(也就是第1盤面的第一磁軌)的所有扇區,然後,是同一柱面的下一磁頭,……,一個柱面儲存滿後就推進到下一個柱面,直到把檔案內容全部寫入磁碟。
系統也以相同的順序讀出資料。讀出資料時通過告訴磁碟控制卡要讀出扇區所在的柱面號、磁頭號和扇區號(物理地址的三個組成部分)進行。磁碟控制卡則 直接使磁頭組件步進到相應的柱面,選通相應的磁頭,等待要求的扇區移動到磁頭下。 所以,讀取和讀取資料時都是有尋道時間和延遲時間的。
5、平均尋道時間:磁頭從一個柱面移動到另外一個柱面,稱為尋道時間;
6、延遲時間:磁頭移動到磁軌後必須等待旋轉到資料所在的地區,這個時間稱為延遲時間。
7、虛擬記憶體:虛擬記憶體是電腦在硬碟中開闢的一段用於記憶體性質的儲存空間。
七、電腦啟動過程
1、電腦加電。
2、載入BIOS,硬體檢測。
3、載入CMOS,根據CMOS內的設定尋找啟動裝置。
4、根據啟動順序,從啟動裝置上讀取第一個扇區的內容(一個扇區512位元組,第一個扇區包含:前446個位元組為MBR,即主引導記錄,64位元組的磁碟分割表,2個位元組的保留位)
5、根據主引導記錄和磁碟分割表,讀入bootloader,啟動裝載模組,啟動作業系統。
6、作業系統會根據BIOS資訊載入驅動程式,所有的驅動程式都載入到核心中去,最後啟動一些開機自啟的應用程式和一些系統的內部表格。