計算機基礎整理

1編程語言的做用css

爲了使計算機能夠根據人類的須要來執行計算機能聽得懂的語言,來讓計算機執行代碼和工做html

編程是編寫程序的中文簡稱,就是讓計算機爲解決某個問題而使用某種程序設計語言編寫程序代碼,並最終獲得相應結果的過程。算法

爲了使計算機可以理解人的意圖,人類就必須將需解決的問題的思路、方法、和手段經過計算機可以理解的形式告訴計算機,使得計算機可以根據人的指令一步一步去工做,完成某種特定的任務。這種人和計算機之間交流的過程就是編程。shell

2操做系統和硬件的關係編程

操做系統是計算機的第一層硬件,給人類操做計算機提供方便和接口等。緩存

計算機啓動到操做系統能夠運行都是BIOS基本輸入程序再進行引導和做用的當全部硬件都進行檢測協調以後BIOS就把控制權交給了操做系統。網絡

操做系統若是到讀取一個數據就把一個指令好比回車轉爲數字信號交給了CPU和主板上的芯片組由它們把這些數字信號轉爲機器能聽得懂的語言再把機器語言轉變爲電信號而後由CPU和芯片組把不一樣的電信號傳輸給主機所鏈接搜索的各個部件協調同理再把電信號轉爲數字信號進入操做系統後再把它轉爲模擬圖像就看到了最後的結果
併發

操做系統(Operating System,簡稱OS)是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在「裸機」上的最基本的系統軟件,任何其餘軟件都必須在操做系統的支持下才能運行。dom

操做系統是用戶和計算機的接口,同時也是計算機硬件和其餘軟件的接口。操做系統的功能包括管理計算機系統的硬件、軟件及數據資源,控制程序運行,改善人機界面,爲其它應用軟件提供支持,讓計算機系統全部資源最大限度地發揮做用,提供各類形式的用戶界面,使用戶有一個好的工做環境,爲其它軟件的開發提供必要的服務和相應的接口等。實際上,用戶是不用接觸操做系統的,操做系統管理着計算機硬件資源,同時按照應用程序的資源請求,分配資源,如:劃分CPU時間,內存空間的開闢,調用打印機等。編程語言

中央處理器(CPUCentral Processing Unit)是一塊超大規模的集成電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計算機指令以及處理計算機軟件中的數據。

中央處理器主要包括運算器(算術邏輯運算單元,ALUArithmetic Logic Unit)和高速緩衝存儲器(Cache)及實現它們之間聯繫的數據(Data)、控制及狀態的總線(Bus)。它與內部存儲器(Memory)和輸入/輸出(I/O)設備合稱爲電子計算機三大核心部件。

寄存器部件,包括寄存器、專用寄存器和控制寄存器。 通用寄存器又可分定點數和浮點數兩類,它們用來保存指令執行過程當中臨時存放的寄存器操做數和中間(或最終)的操做結果。 通用寄存器是中央處理器的重要部件之一。

3內核態與用戶態

內核態指cpu自行控制運算,用戶態指用戶發送指令給cpu進行指定運算,兩者切換須要用戶的程序使用 系統調用(system call)

內核態: CPU能夠訪問內存全部數據, 包括外圍設備, 例如硬盤, 網卡. CPU也能夠將本身從一個程序切換到另外一個程序

用戶態: 只能受限的訪問內存, 且不容許訪問外圍設備. 佔用CPU的能力被剝奪, CPU資源能夠被其餘程序獲取

爲何要有用戶態和內核態

因爲須要限制不一樣的程序之間的訪問能力, 防止他們獲取別的程序的內存數據, 或者獲取外圍設備的數據, 併發送到網絡, CPU劃分出兩個權限等級 -- 用戶態 和 內核態

用戶態與內核態的切換

全部用戶程序都是運行在用戶態的, 可是有時候程序確實須要作一些內核態的事情, 例如從硬盤讀取數據, 或者從鍵盤獲取輸入等. 而惟一能夠作這些事情的就是操做系統, 因此此時程序就須要先操做系統請求以程序的名義來執行這些操做.

這時須要一個這樣的機制: 用戶態程序切換到內核態, 可是不能控制在內核態中執行的指令

這種機制叫系統調用, 在CPU中的實現稱之爲陷阱指令(Trap Instruction)

他們的工做流程以下:

  1. 用戶態程序將一些數據值放在寄存器中, 或者使用參數建立一個堆棧(stack frame), 以此代表須要操做系統提供的服務.
  2. 用戶態程序執行陷阱指令
  3. CPU切換到內核態, 並跳到位於內存指定位置的指令, 這些指令是操做系統的一部分, 他們具備內存保護, 不可被用戶態程序訪問
  4. 這些指令稱之爲陷阱(trap)或者系統調用處理器(system call handler). 他們會讀取程序放入內存的數據參數, 並執行程序請求的服務
  5. 系統調用完成後, 操做系統會重置CPU爲用戶態並返回系統調用的結果

4 L1L2緩存

 L1緩存就是一級緩存,L2緩存就是二級緩存。

  一級緩存即L1 Cache。集成在CPU內部中,用於CPU在處理數據過程當中數據的暫時保存。因爲緩存指令和數據與CPU同頻工做,L1級高速緩存緩存的容量越大,存儲信息越多,可減小CPU與內存之間的數據交換次數,提升CPU的運算效率。但因高速緩衝存儲器均由靜態RAM組成,結構較複雜,在有限的CPU芯片面積上,L1級高速緩存的容量不可能作得太大。

  二級緩存就是一級緩存的緩衝器:一級緩存制形成本很高所以它的容量有限,二級緩存的做用就是存儲那些CPU處理時須要用到、一級緩存又沒法存儲的數據。一樣道理,三級緩存和內存能夠看做是二級緩存的緩衝器,它們的容量遞增,但單位制形成本卻遞減。須要注意的是,不管是二級緩存、三級緩存仍是內存都不能存儲處理器操做的原始指令,這些指令只能存儲在CPU的一級指令緩存中,而餘下的二級緩存、三級緩存和內存僅用於存儲CPU所需數據。

5 內存ram

隨機存取存儲器(random access memoryRAM)又稱做「隨機存儲器」,是與CPU直接交換數據的內部存儲器,也叫主存(內存)。它能夠隨時讀寫,並且速度很快,一般做爲操做系統或其餘正在運行中的程序的臨時數據存儲媒介。

存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時將丟失其存儲內容,故主要用於存儲短期使用的程序。 按照存儲單元的工做原理,隨機存儲器又分爲靜態隨機存儲器(英文:Static RAMSRAM)和動態隨機存儲器(英文Dynamic RAMDRAM)

6 EEPROM和閃存和CMOS和BIOS

FLASH存儲器又稱閃存,它結合了ROM和RAM的長處,不只具有電子可擦出可編程(EEPROM) 的性能,還不會斷電丟失數據同時能夠快速讀取數據 (NVRAM 的優點),U 盤和MP3 裏用的就 是這種存儲器。在過去的20 年裏,嵌入式系統一直使用ROM(EPROM)做爲它們的存儲設備, 然而近年來 Flash 全面代替了ROM(EPROM)在嵌入式系統中的地位,用做存儲Bootloader 以 及操做系統或者程序代碼或者直接當硬盤使用(U 盤)。 

EEPROM(帶電可擦寫可編程只讀存儲器)是用戶可更改的只讀存儲器(ROM),其可經過高於普通電壓的做用來擦除和重編程(重寫)。不像EPROM芯片,EEPROM不需從計算機中取出便可修改。在一個EEPROM中,當計算機在使用的時候可頻繁地反覆編程,所以EEPROM的壽命是一個很重要的設計考慮參數。EEPROM是一種特殊形式的閃存,其應用一般是我的電腦中的電壓來擦寫和重編程。

CMOS的三個領域

一是用於計算機信息保存,CMOS做爲可擦寫芯片使用,在這個領域,用戶一般不會關心CMOS的硬件問題,而只關心寫在CMOS上的信息,也就是BIOS的設置問題,其中提到最多的就是系統故障時拿掉主板上的電池,進行CMOS放電操做,從而還原BIOS設置。

二是在數字影像領域,CMOS做爲一種低成本的感光元件技術被髮展出來,市面上常見的數碼產品,其感光元件主要就是CCD或者CMOS,尤爲是低端攝像頭產品,而一般高端攝像頭都是CCD感光元件。

三是在更加專業的集成電路設計與製造領域。

BIOS是英文"Basic Input Output System"的縮略詞,直譯過來後中文名稱就是"基本輸入輸出系統"。其實,它是一組固化到計算機內主板上一個ROM芯片上的程序,它保存着計算機最重要的基本輸入輸出的程序、開機後自檢程序和系統自啓動程序,它可從CMOS中讀寫系統設置的具體信息。 其主要功能是爲計算機提供最底層的、最直接的硬件設置和控制。

一塊主板的性能是否優異,很大程度上取決於BIOS的管理功能是否先進

主板電池用於記錄計算機系統的時間,也就是維持系統時鐘的準確性,電量不夠時,時間會回到出廠日期,還有記錄啓動時要用的硬件信息,也就是維持CMOS的BIOS信息。

7 硬盤

平均尋道時間(average seek time)是指MO磁光盤機在接收到系統指令後,磁頭從開始移動到移動到數據所在磁道所須要的平均時間,它是指計算機在發出一個尋址命令,到相應目標數據被找到所需時間,單位爲毫秒(ms)

指磁頭移動到數據所在磁道須要的時間。在不一樣的磁頭調度算法中,有不一樣的尋道時間。(數值越小,性能越好)

首先,讀寫頭沿徑向移動,移到要讀取的扇區所在磁道的上方,這段時間稱爲尋道時間。讀寫頭起始位置與目標位置之間的距離不一樣,尋道時間也不一樣,通常爲2-30毫秒,平均約爲10毫秒。

8 虛擬內存與MMU磁帶設備驅動與控制器總線與南橋和北橋

虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認爲它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它一般是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在須要時進行數據交換。目前,大多數操做系統都使用了虛擬內存,如Windows家族的「虛擬內存」;Linux的「swap」等。

MMUMemory Management Unit的縮寫,中文名是內存管理單元,它是中央處理器(CPU)中用來管理虛擬存儲器、物理存儲器的控制線路,同時也負責虛擬地址映射爲物理地址,以及提供硬件機制的內存訪問受權,多用戶多進程操做系統。

MMU就是虛擬內存和物理內存之間的工做交接的對應關係的記錄

控制總線CBControlBus),鏈接在一塊兒並完成和實現它們之間的通信與數據傳送的,所以總線的概念是理解PC和主板的組成結構、工做原理及部件之間相互關係統的基礎。是用來傳送控制信息的信號線,這些控制信息包括CPU對內存和輸入輸出接口的讀寫信號,輸入輸出接口對CPU提出的中斷請求或DMA請求信號,CPU對這些輸入輸出接口回答與響應信號,輸入輸出接口的各類工做狀態信號以及其餘各類功能控制信號。控制總線來往於CPU、內存和輸入輸出設備之間,其特色是:在單向、雙向、雙態等種形態,是總線中最複雜、最靈活、功能最強的,其數量、種類、定義隨機型不一樣而不一樣。

南橋芯片(South Bridge)是主板芯片組的重要組成部分,通常位於主板上離CPU插槽較遠的下方,PCI插槽的附近,這種佈局是考慮到它所鏈接的I/O總線較多,離處理器遠一點有利於佈線。相對於北橋芯片來講,其數據處理量並不算大,因此南橋芯片通常都沒有覆蓋散熱片。南橋芯片不與處理器直接相連,而是經過必定的方式(不一樣廠商各類芯片組有所不一樣,例如英特爾的英特爾Hub Architecture以及SISMulti-Threaded「妙渠」)與北橋芯片相連。

南橋芯片主要是負責I/O接口等一些外設接口的控制、IDE設備的控制及附加功能等等。(鏈接慢速設備)

北橋是電腦主板上的一塊芯片,位於CPU插座邊,起鏈接做用。(鏈接高速設備)

北橋是我的電腦主板芯片組兩枚大規模芯片中的一枚。北橋被用來處理高速信號、一般處理CPU(處理器)、RAM(內存)、AGP端口或PCI Express和南橋芯片之間的通訊。

北橋芯片就是主板上離CPU最近的芯片,這主要是考慮到北橋芯片與處理器之間的通訊最密切,爲了提升通訊性能而縮短傳輸距離。北橋在電腦裏起到的做用很是明顯,在電腦中起着主導的做用,因此人們又稱爲主橋(Host Bridge)。

9啓動流程

開機執行BIOS引導程序,系統自檢,標識和配置全部的即插即用設備,並配置DMA通道;完成加電自檢,測試內存,端口,鍵盤,視頻適配器,磁盤驅動器等基本設備,以及CD-ROM驅動器;對引導驅動器可引導分區定位:在CMOS中,能夠自行設置引導順序,通常順序是軟驅,磁盤,光驅;加載主引導記錄以及引導驅動器的分區表,執行主引導記錄MBR,主引導記錄在硬盤上找到可引導分區,將其分區引導記錄裝入內存,並將控制權交給分區引導記錄,由分區引導記錄定位根目錄,而後裝入操做系統。

加電-BIOS自檢-讀取CMOS參數-讀取MBR第一個扇區內容-讀入bootloader-啓動操做系統

如今有一個App.exe文件,雙擊App.exe以後操做系統作的工做以下: 

1shell調用CreateProcss激活一個App.exe進程。Shell即命令解釋器,是操做系統引導時即加載的一個系統進程,在Windows任務管理器裏面能夠看到一個名爲」Explorer.exe」的進程,就是它了。

2CreateProcss建立了一個進程內核對象,而系統爲該進程建立4GB的虛擬地址空間(Win2000/WinXP下,每一個進程能夠有2GB的私有地址空間,剩餘的2GB由操做系統佔用)用來加載App.exe和其餘必要的DLL函數;

3CreateProcess加載exe文件,分析文件頭(具體格式見PE文件格式分析)以識別文件的運行環境,根據文件頭決定由那個環境進行加載操做;

4、 加載App.exe及其必要的DLL文件數據和代碼後,CreateProcss即建立主線程,執行C/C++運行時的啓動代碼,由啓動代碼執行剩下的過程

 複習:http://www.cnblogs.com/linhaifeng/p/6523843.html

相關文章
相關標籤/搜索