1、計算機基礎

計算機基礎python


1、咱們爲何要學習計算機基礎

mysql

咱們學習python離不開計算機基礎,想要學好,就必需要把基礎打牢,否則在學習的期間不少知識都不知道是怎麼來的。linux


程序員編程的本質就是讓計算機去工做,而編程語言就是程序員與計算機溝通的介質。

程序員若是想要計算機去工做運行,就必須知道計算機是幹什麼用的?怎麼幹活的?這就是咱們必須學習的計算機基礎的理由。

程序員

然而光有編程語言和硬件也並不能知足你們的編程需求,爲何這麼說呢?sql

 

  程序用編程語言寫程序,最終開發出的結果就是一個軟件,既然是軟件,那就與騰訊qq、暴風影音、快播等軟件沒有區別了。這些軟件必須運行在操做系統之上,你確定會問:爲什麼要有操做系統呢?沒錯,遠古時代的程序員確實是在沒有操做系統的環境下,用編程語言之間操做硬件來編程的,你可能以爲這沒有問題,但其實問題是至關嚴重的,由於此時你必須掌握如何操做硬件的全部具體細節,好比如何具體操做硬盤(如今你得把硬盤拆開,而後你能看見的全部的東西,你都得研究明白,由於你編程時要用到它),這就嚴重影響了開發的效率,操做系統的出現就是運行於硬件之上,來控制硬件的,咱們開發時,只須要調用操做系統爲咱們提供的簡單而優雅的接口就能夠了。

因此的一套完整的計算機系統分爲:應用程序、操做系統、計算機硬件。以下圖。咱們的python編程之路分爲計算機硬件基礎,操做系統基礎,和python編程三部分,咱們就先從計算機基礎硬件開始學習。數據庫





2、計算機硬件介紹
  計算機硬件分爲五大部分:控制器、運算器、儲存器、輸入設備、輸出設備,下面咱們來詳細的描述下這五大部分的工做原理。

1.控制器:是計算機的指揮系統(就比如人的大腦)。控制器經過地址訪問儲存器,從儲存器中取出指令,通過譯碼器分析後,根據指令分析的結果產生相應的操做控制信號做用與其餘部件,使得各部件在控制下協調的工做。

2.運算器計算機中執行各類算術和邏輯運算操做的部件。運算器的基本操做包括加、減、乘、除四則運算等。

3.儲存器:是計算機用來存放因此數據和程序的記憶部分。他的基本功能是按指令的地址寫入或讀取出信息,計算機的儲存器分爲兩大類:一類是儲存器,簡稱爲內存或者主存;另外一類是外存儲器,簡稱外存或輔存。存儲器由若干個存儲單元組成,每一個存儲單元都有一個地址,計算機經過地址對存儲單元進行讀寫。一個存儲器所包含的字節數稱爲存儲容量,單位有B、KB、MB、GB、TB等。編程


4.輸入設備:是向計算機中輸入信息(程序、數據、聲音、文字、圖形、圖像等)的設備。常見的輸入設備有:鍵盤、鼠標、圖形掃描儀、觸摸屏、條形碼輸入器、光筆等。 外存儲器也是一種輸入設備。

5. 輸出設備:主要有顯示器、打印機和繪圖儀等。外存儲器也看成一種輸出設備。緩存

控制器+運算器=CPU,CPU、內存以及其餘i/o設備都是有一條系統總線連接起來並經過其餘設備通訊。服務器


CPU是人的大腦,負責控制全身和運算
內存是人的記憶,負責零食存儲
硬盤是人的筆記本,負責永久存儲
出入設備是人的耳朵或眼睛,嘴巴,負責接收外部的信息存入內存
輸出設備是臉部或者屁股,負責通過處理後輸出的結果
以上全部的設備都是經過總線連接,總線至關於人的神經

                  網絡

上課開始,老師講課,學生聽課,老師是程序員,學生是計算機,學生的器官都是計算機各部分組成

 

(1)你經過耳朵接收老師講的知識->輸入

 

(2)經過本身的神經,將接收的數據存入本身的內存/短時間記憶(總線、內存)

 

(3)光聽不行,你還須要反應/處理老師講的知識,因而你的大腦/cpu從短時間記憶裏取出知識/指令,分析知識/指令,而後學習知識/執行指令 (cpu取指、分析、執行)

 

(4)你經過做業或者說話輸出你學到的結果

 

(5)你想要永久將知識保存下來,只能拿出一個筆記本,把剛剛學會的知識都寫到本子上,這個本子就是硬盤(磁盤)           

1.處理器
    計算機處理器是解釋和執行指令的功能單元,也稱爲中央處理器或cpu,它是計算機的中樞神經系統,與處理器和內存周圍被稱爲外設的設備造成對比,如鍵盤、顯示器、磁盤、磁帶機等都是外設。每一種處理器都有一套獨特的操做命令,可稱爲處理器的指令集,如存儲、調入等之類都是操做命令。計算機的設計者喜歡將計算機稱爲機器,所以,指令集有時也稱爲機器指令,編寫這些指令的二進制語言也叫機器語言。中央處理器(英文Central Processing Unit,CPU)是一臺計算機的運算核心和控制核心。

    其中運算器用來主要負責程序運算與邏輯判斷,控制器則主要協調各組件和各單元的工做,因此CPU的工做主要在於管理和運算。能夠說計算機的大腦就是CPU,它從內存中取指令->解碼->執行,而後再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。

         既然CPU的重點在於進行運算和判斷,那麼要被運算與判斷的數據是從哪裏來的?CPU讀取的數據都是從主存儲器(內存)來的!主存儲器內的數據則是從輸入單元所傳輸進來!而CPU處理完畢的數據也必須先寫回主存儲器中,最後數據才從主存儲器傳輸到輸出單元。

綜合上面所說的,咱們會知道其實計算機是由:輸入單元、輸出單元、CPU(控制單元、算術邏輯單元)與主存儲器五大單元構成的。也能夠說CPU+輸入輸出+主存儲器構成了電子計算機的三大核心組件,相關性以下圖:

 

在超大規模集成電路構成的微型計算機中,每每將CPU製成一塊具備特定功能的芯片,稱爲微處理器,芯片裏邊有編寫好的微指令集,咱們在主機上的全部操做或者說任何軟件的執行最終都要轉化成cpu的指令去執行,如輸入輸出,閱讀,視頻,上網等這些都要參考CPU是否內置有相關微指令集才行。若是沒有那麼CPU沒法處理這些操做。不一樣的CPU指令集不一樣對應的功能也不一樣,這就比如不一樣的人腦,對於大多數人類來講,人腦的結構同樣,可是你們的智商都有差異。

#一、CPU的分類

  咱們已經知道CPU內部是含有微指令集的,咱們所使用的的軟件都要通過CPU內部的微指令集來完成才行。這些指令集的設計主要又被分爲兩種設計理念,這就是目前世界上常見到的兩種主要的CPU種類:分別是精簡指令集(RISC)與複雜指令集(CISC)系統。下面咱們就來談談這兩種不一樣CPU種類的差別!

 

#1.一、精簡指令集

  精簡指令集(Reduced Instruction Set Computing,RISC):這種CPU的設計中,微指令集較爲精簡,每一個指令的運行時間都很短,完成的動做也很單純,指令的執行效能較佳;可是若要作複雜的事情,就要由多個指令來完成。常見的RISC指令集CPU主要例如Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、與ARM系列等。【注:Sun已經被Oracle收購;】

 

  SPARC架構的計算機經常使用於學術領域的大型工做站中,包括銀行金融體系的主服務器也都有這類的計算機架構;

 

  PowerPC架構的應用,如Sony出產的Play Station 3(PS3)使用的就是該架構的Cell處理器。

 

  ARM是世界上使用範圍最廣的CPU了,經常使用的各廠商的手機、PDA、導航系統、網絡設備等,幾乎都用該架構的CPU。

 

#1.二、複雜指令集

  複雜指令集(Complex Instruction Set Computer,CISC)與RISC不一樣,在CISC的微指令集中,每一個小指令能夠執行一些較低階的硬件操做,指令數目多並且複雜,每條指令的長度並不相同。所以指令執行較爲複雜因此每條指令花費的時間較長,但每條個別指令能夠處理的工做較爲豐富。常見的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架構的CPU。

 

  因爲AMD、Intel、VIA所開發出來的x86架構CPU被大量使用於我的計算機(Personal Computer)上面,所以,我的計算機常被稱爲x86架構的計算機!舉個例子,咱們在MySQL官網下載MySQL時名字爲:

      Windows(x86,32-bit),ZIP Archive

      (mysql-5.7.20-win32.zip)

 

  咱們發現名字中有x86,這其實就是告訴咱們該軟件應用於x86結構的計算機。那麼爲什麼稱爲x86架構呢?這是由於最先的那顆Intel發展出來的CPU代號稱爲8086,後來依此架構又開發出8028五、80386....,所以這種架構的CPU就被稱爲x86架構了。

 

  在2003年之前由Intel所開發的x86架構CPU由8位升級到1六、32位,後來AMD依此架構修改新一代的CPU爲64位,爲了區別二者的差別,所以64位的我的計算機CPU又被統稱爲x86_64的架構了。

 

  不一樣的x86架構的CPU的差異在哪呢?除了CPU的總體結構(如第二層緩存、每次運做可執行的指令數等)以外,主要是在於微指令集的不一樣。新的x86的CPU大多含有很先進的微指令集,這些微指令集能夠加速多媒體程序的運做,也可以增強虛擬化的效能,並且某些微指令集更可以增長能源效率,讓CPU耗電量下降,這對於高電費是個不錯的消息。 試想一下,若是CPU的指令集都相同,那麼OS是否是就不用分32bit和64bit了,各類程序的跨平臺是否是就更簡單了呢。

 

#2 CPU歷史

  

 1 計算機的發展主要表如今其核心部件——微處理器【微處理器由一片或少數幾片大規模集成電路組成的中央處理器。這些電路執行控制部件和算術邏輯部件的功能。微處理器能完成取指令、執行指令,以及與外界存儲器和邏輯部件交換信息等操做,是微型計算機的運算控制部分。它可與存儲器和外圍電路芯片組成微型計算機。】的發展上,每當一款新型的微處理器出現時,就會帶動計算機系統的其餘部件的相應發展,如計算機體系結構的進一步優化,存儲器存取容量的不斷增大、存取速度的不斷提升,外圍設備的不斷改進以及新設備的不斷出現等。根據微處理器的字長和功能,可將其發展劃分爲如下幾個階段。
 2 
 3  
 4 
 5 第1階段(1971——1973年)是4位和8位低檔微處理器時代,一般稱爲第1代。
 6 
 7 第2階段(1974——1977年)是8位中高檔微處理器時代,一般稱爲第2代。
 8 
 9 第3階段(1978——1984年)是16位微處理器時代,一般稱爲第3代。
10 
11 第4階段(1985——1992年)是32位微處理器時代,又稱爲第4代。
12 
13 第5階段(1993-2005年)是奔騰(pentium)系列微處理器時代,一般稱爲第5代。
14 
15 第6階段(2005年至今)是酷睿(core)系列微處理器時代,一般稱爲第6代。「酷睿」是一款領先節能的新型微架構,設計的出發點是提供卓然出衆的性能和能效,提升每瓦特性能,也就是所謂的能效比。
16 
17 若想具體瞭解CPU歷史參見連接:
18 
19  
20 
21 https://baike.baidu.com/item/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8/284033?fr=aladdin&fromid=368184&fromtitle=%EF%BC%A3%EF%BC%B0%EF%BC%B5#10
22 
23  
24 
25   總結:CPU按照指令集能夠分爲精簡指令集CPU和複雜指令集CPU兩種,區別在於前者的指令集精簡,每一個指令的運行時間都很短,完成的動做也很單純,指令的執行效能較佳;可是若要作複雜的事情,就要由多個指令來完成。後者的指令集每一個小指令能夠執行一些較低階的硬件操做,指令數目多並且複雜,每條指令的長度並不相同。由於指令執行較爲複雜因此每條指令花費的時間較長,但每條個別指令能夠處理的工做較爲豐富。
cpu歷史簡述

 

 

  根據位數又可分爲32bit和64bit(指的是CPU一次執行指令的數據帶寬),這個具體後面瞭解。CPU每每又可細分爲運算器和控制器兩部分,下面咱們再來敘說一下這兩部分.

2.運算器

  運算器是對信息進行處理和運算的部件。常常進行的運算是算術運算和邏輯運算,因此運算器又可稱爲算術邏輯運算部件(Arithmetic and Logical,ALU)。

 

  運算器的核心是加法器。運算器中還有若干個通用寄存器或累加寄存器,用來暫存操做數並存放運算結果。寄存器的存取速度比存儲器的存放速度快不少。關於寄存器,咱們在後面介紹CPU的時候再認識。

 

3.控制器

整個計算機的指揮中心,它的主要功能是按照人們預先肯定的操做步驟,控制整個計算機的各部件有條不紊的自動工做。

 

  控制器從主存中逐條地讀取出指令進行分析,根據指令的不一樣來安排操做順序,向各部件發出相應的操做信號,控制它們執行指令所規定的任務。

 

  控制器中包括一些專用的寄存器。

 

因訪問內存以獲得指令或數據的時間比cpu執行指令花費的時間要長得多,因此,全部CPU內部都有一些用來保存關鍵變量和臨時數據的寄存器,這樣一般在cpu的指令集中專門提供一些指令,用來將一個字(能夠理解爲數據)從內存調入寄存器,以及將一個字從寄存器存入內存。cpu其餘的指令集能夠把來自寄存器、內存的操做數據組合,或者用二者產生一個結果,好比將兩個字相加並把結果存在寄存器或內存中。

 

    寄存器的分類:

 

1.除了用來保存變量和臨時結果的通用寄存器外

 

2.多數計算機還有一些對程序員課件的專門寄存器,其中之一即是程序計數器,它保存了將要取出的下一條指令的內存地址。在指令取出後,程序計算器就被更新以便執行後期的指令

 

  3.另一個寄存器即是堆棧指針,它指向內存中當前棧的頂端。該棧包含已經進入可是尚未退出的每一個過程當中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保存在寄存器中的臨時變量

 

  4.最後 一個很是重要的寄存器就是程序狀態字寄存器(Program Status Word,PSW),這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各類其餘控制位。用戶一般讀入整個PSW,可是隻對其中少許的字段寫入。在系統調用和I/O中,PSW很是很是很是很是很是很是重要

 

  寄存器的維護:

 

  操做系統必須知曉全部的寄存器。在時間多路複用的CPU中,操做系統會常常停止正在運行的某個程序並啓動(或再次啓動)另外一個程序。每次中止一個運行着的程序時,操做系統必須保存全部的寄存器,這樣在稍後該程序被再次運行時,能夠把這些寄存器從新裝入。

 

4.儲存器

CPU和磁盤之間的緩衝設備,是臨時存儲器()。

         通常程序運行的時候會被調度到內存中執行,服務器關閉或程序關閉,自動從內存中釋放掉。

寄存器即L1緩存:

用與cpu相同材質製造,與cpu同樣快,於是cpu訪問它無時延,典型容量是:在32位cpu中爲32*32,在64位cpu中爲64*64,在兩種狀況下容量均<1KB。

 

高速緩存即L2緩存:

主要由硬件控制高速緩存的存取

 

5.硬盤

功能:硬盤簡單的來講就是一個容量大的存儲器,存儲視頻,文本,音頻等各類數據,成爲現代電腦不可缺乏的配件。

         做用:因爲計算機在工做時、CPU、輸入輸出設備與存儲器之間要大量地交換數據、所以。存儲器的存取速度和容量,也是影響計算機運行速度的主要因素之一

 

磁盤低速的緣由是由於它一種機械裝置,在磁盤中有一個或多個金屬盤片,它們以5400,7200或10800rpm(RPM =revolutions per minute 每分鐘多少轉 )的速度旋轉。從邊緣開始有一個機械臂懸在盤面上,這相似於老式黑膠唱片機上的拾音臂。信息卸載磁盤上的一些列的同心圓上,是一連串的2進制位(稱爲bit位),爲了統計方法,8個bit稱爲一個字節bytes,1024bytes=1k,1024k=1M,1024M=1G,因此咱們平時所說的磁盤容量最終指的就是磁盤能寫多少個2進制位。每一個磁頭能夠讀取一段換新區域,稱爲磁道把一個戈丁手臂位置上因此的磁道合起來,組成一個柱面每一個磁道劃成若干扇區,扇區典型的值是512字節

數據都存放於一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據須要經歷尋道時間和延遲時間

 

2.1 平均尋道時間

機械手臂從一個柱面隨機移動到相鄰的柱面的時間成爲尋到時間,找到了磁道就覺得着招到了數據所在的那個圈圈,可是還不知道數據具體這個圓圈的具體位置

         一個7200/m的磁盤的平均尋到時間:5ms

                                                             平均延遲時間:60/7200=0.008=8ms

                                                                                                4ms

2.2 平均延遲時間

機械臂到達正確的磁道以後還必須等待旋轉到數據所在的扇區下,這段時間成爲延遲時間

2.3 虛擬內存:

許多計算機支持虛擬內存機制,該機制使計算機能夠運行大於物理內存的程序,方法是將正在使用的程序放入內存取執行,而暫時不須要執行的程序放到磁盤的某塊地方,這塊地方成爲虛擬內存,在linux中成爲swap,這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,成爲存儲器管理單元(Memory Management Unit MMU)

 

 

 

6.磁帶

在價錢相同的狀況下比硬盤擁有更高的存儲容量,雖然速度低於磁盤,可是因其大容量,在地震水災火災時可移動性強等特性,常被用來作備份。(常見於大型數據庫系統中)

 

7. 輸入輸出設備

#一、輸入設備

  輸入設備的任務是把人們編好的程序和原始數據送到計算機中去,而且將他們轉換成計算機內存所能識別和接受的信息方式。

 

  安輸入信息的形態可分爲字符(包括漢字)輸入、圖形輸入、圖像輸入及語言輸入等。目前,常見的輸入設備有:鍵盤、鼠標、掃描儀等。輔助存儲器(磁盤、磁帶)也能夠看做輸入設備。另外,自動控制和檢測系統中使用的模數(A/D)轉換裝置也是一種輸入設備。

 

#二、輸出設備

  輸出設備的任務是將計算機的處理結果以人或其餘設備所能接受的形式送出計算機。

目前最經常使用的輸出設備是打印機和顯示器。輔助存儲器也能夠看作輸出設備。另外,數模(D/A)轉換裝置也是一種輸出設備。

 

3、開機啓動計算機步驟

1.計算機加電

2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等

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

4.從啓動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446爲引導信息,後64爲分區信息,最後兩個爲標誌位)

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

6.而後操做系統詢問BIOS,以得到配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,若是沒有,系統則會要求用戶按照設備驅動程序。一旦有了所有的設備驅動程序,操做系統就將它們調入內核。而後初始有關的表格(如進程表),穿件須要的進程,並在每一個終端上啓動登陸程序或GUI

 

4、完整的操做系統

4.1 什麼是操做系統

是一個協調、管理、控制計算機硬件與軟件的控制程序

4.2 操做系統分紅兩部分

cpu的兩種工做狀態

                  用戶態:cpu執行用戶程序/應用程序所處的狀態,處於用戶態不能控制硬件

                  內核態:cpu執行操做系統內核所處的狀態,處於內核態可以控制硬件

4.3 應用程序的啓動順序

         前提:先啓動操做系統

         1)向操做系統提交程序啓動文件的路徑

         2)操做系統根據文件路徑把硬盤的數據讀入內存

         3)操做系統調用cpu來執行內存中剛剛讀入的程序代碼

相關文章
相關標籤/搜索