計算機基礎之計算機硬件基礎

1、瞭解編程語言

  語言是人與人之間交流的介質,咱們平時每時每刻用來交流都用的語言。編程語言也是一種語言,也是用來交流的介質,不一樣的是編程語言是程序員和計算機之間交流的介質,程序員編程的目的就是讓計算機去工做。知己知彼才能百戰不殆,因此咱們要想成爲一名合格的程序員,首先就要了解咱們的「工人」-計算機的特性,計算機能作什麼,怎麼作,因此咱們要學習計算機基礎。程序員

2、操做系統和硬件的關係

  咱們都能說出咱們的電腦有顯示器,CPU,硬盤,內存,顯卡。。。這些屬於計算機的硬件系統,咱們平時常用的qq,360,word。。。這些屬於計算機的軟件系統。這些軟件就是程序員經過沒日沒夜的操勞開發出來的最終產品,這些產品沒法直接控制計算機硬件,還必需要有操做系統,固然若是是學習彙編語言的話,就不用這樣了。操做系統就是運行在硬件之上來控制硬件的,當咱們編程時,只須要調用操做系統爲咱們提供的便利的接口就能夠了。編程

  因此軟件、硬件和操做系統的關係能夠這樣表述,軟件經過操做系統來控制硬件。緩存

  一套完整的計算機系統包括硬件系統,操做系統和軟件。下面讓咱們先來學習計算機硬件系統。編程語言

3、計算機硬件介紹

  一臺簡單的我的計算機能夠抽象爲下圖的模型,CPU、內存和I/O設備都由一條系統總線(bus)鏈接起來並經過總線與其餘設備通訊。性能

1.處理器

  計算機的大腦叫中央處理器(CPU),它從內存中取指令->解碼->執行,而後再取指令->解碼->執行下一條命令,直到整個程序被執行完。每一個CPU都有一套專門的可執行的指令集,任何軟件的執行最終都要轉化成CPU的指令去執行。 由於從內存讀取數據比CPU執行指令花費的時間長的多,因此CPU內部有一些用來保存關鍵變量和臨時數據的寄存器,一般在CPU的指令集中專門提供一些指令,用來將數據從內存調入寄存器,或者將數據從寄存器存入內存。CPU的其餘指令則能夠把來自寄存器和內存的數據組合或者用二者運算產生一個結果,並把結果存在寄存器或者內存中。學習

1.1寄存器的分類

  通用寄存器,用來保存變量和臨時結果;spa

  程序計數器,早期計算機只有一個cpu,執行程序只能按順序進行,切換到下個程序時要斷掉前一個程序,可是要保留程序的運行狀態,即保存將要取出的下一條指令的內存地  址,以便再次運行該程序時能接着上次的狀態,這就是程序計數器;操作系統

  堆棧指針,當咱們須要尋找一個數據時,遍歷整個硬盤會花費很長時間,由於硬盤的讀寫速度比較慢,咱們能夠把數據的地址存儲在寄存器裏面,這就是堆棧指針;指針

  程序狀態字寄存器(Program Status Word,PSW),這個寄存器包含了條碼位、CPU優先級、模式(用戶態或內核態),以及各類其餘控制位。在系統調用和I/O中,PSW  很是重要。blog

1.2內核態和用戶態及如何切換

  除了在嵌入式系統中的很是簡單的CPU以外,多數CPU都有兩種模式,即內核態和用戶態。一般在PSW中有一個二進制位控制這兩種模式。

  內核態:當CPU在內核態運行時,CPU能夠執行指令集中的全部指令,即操做系統在內核態下運行,能夠訪問整個硬件。

  用戶態:用戶程序在用戶態下運行,僅僅只能執行CPU整個指令集的一個子集,該子集不包括操做系統的硬件功能部分。即在用戶態下,沒法訪問硬件系統。

  用戶態下工做的軟件不能操做硬件,可是咱們使用的軟件不少都有硬件操做的需求,好比讀取一個文件,保存一個文件等等,就必須經歷從用戶態切換到內核態的過程。所以,用       戶程序必須使用系統調用(system call),系統調用陷入內核並調用操做系統,TRAP指令把用戶態切換成內核態,並啓用操做系統從而得到服務。

2.存儲器系列

2.1高速緩存

  咱們知道CPU的速度很快,比內存的速度快的多,這樣當CPU須要從內存讀取數據時,因爲存在速度差,CPU就要等待內存,這樣會大大下降效率。於是高速緩存就出現了,高速緩存是速度介於CPU和內存之間的存儲介質,當cpu須要讀取數據時,會先在高速緩存中尋找,若是找到所需數據,就稱爲命中,這樣就不用去內存中尋找了,大大節省了時間。其中L1緩存採用與cpu相同的介質製成,速度和cpu同樣,於是訪問無延遲。L2緩存速度比CPU慢些,cpu訪問時有1~2時鐘週期(即1~2ns)的延遲。有些cpu還存在L3緩存,也是爲了提高命中率存在。因爲高速緩存價格昂貴,因此容量很小。

2.2隨機存儲器(RAM)

  隨機存儲器(RAM)就是咱們平時所說的內存,既能夠從中讀取數據,也能夠寫入數據,全部在高速緩存中找不到的數據,就會到RAM中尋找。可是當電源切斷時,存儲在其中的數據就會丟失。

2.3只讀存儲器(ROM)

  ROM是隻讀存儲器,在ROM製造的時候,數據就被存入其中,並永久保存,即便斷電數據也不會丟失,數據通常不能更改。

2.4EEPROM(Electrically Erasable PROM,電擦除可編程ROM)和閃存(flash memory)

  這種存儲介質斷電後數據也不會刪除,但不一樣的是,它們能夠重複擦出和重寫。固態硬盤,膠捲都屬於這種。

2.5CMOS

  CMOS是計算機主板上一塊可讀寫的RAM芯片,用來保存時間日期和BIOS設置,它雖然是RAM芯片,可是它靠一塊電池獨立供電,因此即便計算機斷電,日期時間和BIOS設置信息也不會丟失。

2.6磁盤

  如今仍普遍使用的大容量存儲介質還是機械硬盤,機械硬盤經過磁存儲數據。主要由盤片、磁頭、盤片轉軸、控制電機、磁頭控制器以及接口,緩存等部分組成。機械硬盤的內部結構以下圖所示


  與經過電存儲的固態硬盤不一樣,機械硬盤的機械手臂開始在一個固定的槽裏,通電後會移動到盤片上,若是忽然斷電,則機械手臂會停在盤片上,很容易對盤片形成損傷。一樣的道理,若是在工做中受到碰撞,機械硬盤也很容易損壞。

  當磁盤旋轉時,若磁頭保持在一個位置不動,每一個磁頭都會在磁盤表面劃出一個圓形軌跡,稱爲磁道

  磁盤上每一個磁道被等分紅若干個弧段,稱爲扇區。默認一個扇區爲512Bytes,在向磁盤讀寫數據時,一扇區爲單位。

  硬盤一般由一組重疊的盤片組成,每一個盤面都被劃分紅數量相等的磁道,並從外緣開始編號,具備相同編號的磁道造成一個圓柱,稱爲磁盤的柱面。咱們平時說的「分區」,就是指的柱面

平均尋道時間

  當硬盤接收到系統指令後,磁頭從開始移動到移動到數據所在的磁道所花費時間的平均值,就叫平均尋道時間,它必定程度上體現了硬盤讀取數據的能力,時間越短,產品性能越好。

平均延遲時間

  磁頭尋找數據時,磁頭到達正確的磁道以後還須要等待磁盤旋轉到數據所在的扇區下,這段時間稱爲延遲時間。

虛擬內存與MMU

  有時計算機能夠運行大於自身物理內存的程序,緣由是由於許多計算機都支持虛擬內存機制,即將硬盤的某一部分區域做爲虛擬內存,將暫時不須要執行的程序放到這塊區域。這塊區域在Linux中稱爲swap,這種機制由cpu中的一個部件負責,稱爲存儲器管理單元(Memory Management Unit ,MMU)

2.7磁帶

  這裏指計算機帶,是一種存儲容量大,價格低的信息存儲介質,主要用於計算機的外存儲器。雖然速度比磁盤低,可是可移動性強,經常使用來備份信息,以便在發生緊急狀況時能快速移動。

3.設備驅動與控制器

  咱們使用的硬件設備,如硬盤、網卡、聲卡、鼠標等都須要插到主板上的一個接口上,這個接口就是控制器,它是主板上的一塊或一組芯片,負責控制鏈接的設備。它從操做系統接收命令,而後對硬件設備發出控制請求。

然而要調用設備,還必須根據該接口編寫複雜而具體的程序,這就是驅動程序,必須把驅動程序安裝到操做系統中才能正常調用設備。

總線與南橋和北橋

  總線是計算機各功能部件之間傳送信息的公共通訊幹線,由導線組成傳輸線束。

  主板芯片組是主板的核心組成部分,分爲南橋芯片和北橋芯片。南橋芯片提供鍵盤控制器,RTC(實時時鐘控制器),USB(通用串行總線)等的支持,北橋芯片則提供對CPU的類型和主頻、內存的類型和存儲容量、ISA/PCI/AGP插槽等的支持。簡單來講,南橋即ISA橋,鏈接慢速設備;北橋即PCI橋,鏈接高速設備。

 

4、操做系統的啓動流程

  1.計算機加電

  2.BIOS開始運行,經過讀取COMS中存儲的配置信息識別硬件

  3.BIOS讀取CMOS中的參數,選擇啓動設備

  4.從啓動設備上讀取包含MBR引導代碼的主引導扇區(這一扇區共佔512字節,其中主引導程序佔446字節,分區信息佔64字節,最後兩個字節爲標誌位)

  5.根據分區信息讀入BootLoader啓動裝載模塊,啓動操做系統

  6.操做系統詢問BIOS,獲取配置信息,而且查看是否全部設備的驅動程序都存在,若是存在,操做系統就將它們調入內核,而後初始化有關表格,並在終端啓動登陸程序或者顯示用戶圖形界面。

 

5、應用程序的啓動流程

  雙擊應用程序圖標,計算機就會到相應的地址讀取該程序存儲在硬盤裏的數據,而後將數據加載在內存裏,CPU根據指令讀取內存裏的數據,程序運行。

相關文章
相關標籤/搜索