1. 程式人生 > >python 學習day1--計算機組成原理

python 學習day1--計算機組成原理

編程 系統 height 保持 次數 電腦 但是 col 存儲

1. Python是一款編程語言,用於程序員與計算機的溝通,即程序員可以通過編程讓計算機實現某些特定功能。

用程序語言開發程序,最終開發出的是一個軟件,目前我們使用的軟件均是需要運行在操作系統之上的,我了解到之前也有過在沒有操作系統的環境下實現編程,但是太過復雜,難以滿足現在應用軟件的需求。操作系統是運行於硬件之上,來控制硬件的。

2.應用程序-》操作系統-》硬件 (計算機 = 硬件 + 操作系統 + 應用程序

計算機硬件包含:運算器、控制器、存儲器、輸入設備、輸出設備,例如常見的計算機系統一般是由一個或多個處理器、主存、磁盤、打印機、鍵盤、鼠標、顯示器、網絡接口以及機箱、音響等各種輸入/輸出設備組成。

操作系統:主要負責管理計算機硬件資源,控制其他程序運行並為用戶提供交互操作界面的系統軟件的集合。是一種運行在內核態的軟件。

軟件(應用程序):指使用各種不同的編程語言(C、C++、JAVA、Ruby、Python等等)、通過各種開發工具並基於各種操作系統開發的——軟件。例如Word、QQ。

CPU、內存以及I/O設備都由一條系統總線(bus)連接起來並通過總線與其他設備通信

3.cpu-》內存-》磁盤(三者讀取數據速度的比較:cpu>內存>磁盤

cpu是人的大腦,負責運算(CPU是核心,計算機的大腦就是CPU,它從內存中取指令->解碼->執行,然後再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。每個cpu都有一套可執行的專門指令集,任何軟件的執行最終都要轉化成cpu的指令去執行。

內存是人的記憶,負責臨時存儲(內存:1. 負責硬盤等硬件上的數據與CPU之間數據交換處理;2. 緩存系統中的臨時數據。3. 斷電後數據丟失)

硬盤是人的筆記本,負責永久存儲(硬盤:存儲資料和軟件等數據的設備,有容量大,斷電數據不丟失的特點。)

4.cpu與寄存器,內核態與用戶態及如何切換

由於訪問內存和CPU執行指令存在時間差,為了更高效,出現了寄存器,所有CPU內部都有一些用來保存關鍵變量和臨時數據的寄存器。

寄存器種類:通用寄存器、程序計數器、堆棧指針、程序狀態字寄存器(PSW)

程序狀態字寄存器(PSW):這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各種其他控制位。用戶通常讀入整個PSW,但是只對其中少量的字段寫入。在系統調用和I/O中,PSW非常非常非常非常非常非常重要

內核態:獲取CPU所有的指令集,包含計算,包含硬件方面的操作 用戶態:獲取部分CPU的指令集,不包含硬件方面的操作,包含計算 用戶態和內核態指的是CPU的兩種工作狀態,兩者可以互相轉換。通常,PSW中有一個二進制位控制這兩種模式

內核態與用戶態切換  

  當進程在執行用戶自己的代碼時,我們稱其處於用戶態。用戶態下工作的軟件不能操作硬件,但是我們的軟件比如暴風影音,一定會有操作硬件的需求,比如從磁盤上讀一個電影文件,那就必須經歷從用戶態切換到內核態的過程,為此,用戶程序必須使用系統調用(system call),系統調用陷入內核並調用操作系統,當一個進程執行系統調用而陷入內核代碼中執行時,我們就稱進程處於內核態

5.存儲器系列,L1緩存,L2緩存,內存(RAM),EEPROM和閃存,CMOS與BIOS電池

L1緩存:在cpu芯片中加入更大的緩存,一級緩存L1,用和cpu相同的材質制成,cpu訪問它沒有時延

L2緩存:當某個程序需要讀一個存儲字時,高速緩存硬件檢查所需要的高速緩存行是否在高速緩存中。如果是,則稱為高速緩存命中,緩存滿足了請求,就不需要通過總線把訪問請求送往主存(內存),這畢竟是慢的。高速緩存的命中通常需要兩個時鐘周期。高速緩存為了命中,就必須訪問內存,這需要付出大量的時間代價。高速緩存價格昂貴,大小有限,有些機器具有兩級甚至三級高速緩存,每一級高速緩存比前一級慢但是容易大。L1與L2的差別在於對cpu對L1的訪問無時間延遲,而對L2的訪問則有1-2個時鐘周期(即1-2ns)的延遲。

內存(RAM):(隨機存取存儲器)主存是易失性存儲,斷電後數據全部消失

EEPROM:在電源切斷之後,非易失性存儲的內容並不會丟失。ROM只讀存儲器在工廠中就被編程完畢,然後再也不能修改,EEPROM與ROM區別就是可以擦除和重寫

閃存:非易失性。閃存在速度上介於RAM和磁盤之間,但與磁盤不同的是,閃存擦除的次數過多,就被磨損了。

CMOS:易失性。許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,所以,即使計算機沒有加電,時間也仍然可以正確地更新,除此之外CMOS還可以保存配置的參數,比如,哪一個是啟動磁盤等,之所以采用CMOS是因為它耗電非常少,一塊工廠原裝電池往往能使用若幹年,但是當電池失效時,相關的配置和時間等都將丟失

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

6.磁盤結構,平均尋道時間,平均延遲時間,虛擬內存與MMU

磁盤結構:由磁頭、磁道、扇區、柱面組成、

磁道:每個磁頭可以讀取一段換新區域,稱為磁道

扇區:每個磁道劃成若幹扇區,扇區是磁盤級別的最小讀寫單位:512Bytes,操作系統級別的最小讀寫單位是:1 block=8*512Bytes

柱面:把一個戈丁手臂位置上所以的磁道合起來,組成一個柱面

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

平均尋道時間:機械手臂從一個柱面隨機移動到相鄰的柱面的時間稱為尋道時間,找到了磁道就意味著找到了數據所在的那個圓圈,但是還不知道數據在這個圓圈的具體位置

平均延遲時間:機械臂到達正確的磁道之後還必須等待旋轉到數據所在的扇區下,這段時間稱為延遲時間

虛擬內存:該機制使計算機可以運行大於物理內存的程序,方法是將正在使用的程序放入內存取執行,而暫時不需要執行的程序放到磁盤的某塊地方,這塊地方稱為虛擬內存,在linux中稱為swap

MMU:這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,稱為存儲器管理單元(MMU)

7.磁帶

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

8.設備驅動與控制器

控制器:控制器負責控制連接的設備,它從操作系統接收命令,比如讀硬盤數據,然後就對硬盤設備發起讀請求來讀出內容。提供給操作系統一個簡單而清晰的接口

設備驅動器:要想調用設備,必須根據該接口編寫復雜而具體的程序,必須把設備驅動程序安裝到操作系統中。

9.總線與南橋和北橋

總線:數據總線:用於傳送數據信息。/地址總線:是專門用來傳送地址的。/控制總線:用來傳送控制信號和時序信號。這裏是按照功能分類,還可以按照層次和傳輸方式分類。

北橋即PCI橋:連接高速設備 例如:CPU、主存儲器

南橋即ISA橋:連接慢速設備 例如:磁盤

10.操作系統的啟動流程

在計算機的主板上有一個基本的輸入輸出程序(Basic Input Output system)

BIOS就相當於一個小的操作系統,它有底層的I/O軟件,包括讀鍵盤,寫屏幕,進行磁盤I/O,該程序存放於一非易失性閃存RAM中。

啟動計算機過程:

10.1.計算機加電

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

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

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

10.5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統

10.6.然後操作系統詢問BIOS,以獲得配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。一旦有了全部的設備驅動程序,操作系統就將它們調入內核。然後初始有關的表格(如進程表),穿件(?)需要的進程,並在每個終端上啟動登錄程序或GUI

11.應用程序的啟動流程

當我們在電腦上打開QQ時(右鍵-打開 或者雙擊QQ圖標),其實是通過鼠標(輸入設備)向CPU發送了一條命令,CPU接收到這條命令後,QQ程序就從硬盤裏被加載到內存(加載時不通過處理器,直接從硬盤加載程序到內存裏),加載完成後,CPU就開始執行QQ程序。程序執行起來後,CPU可以讓QQ程序顯示在我們的在顯示器上。也就是你看到了QQ 程序運行起來了。如果這個時候,你用QQ截取了一張屏幕的圖片,那麽這張圖片會首先保存到內存,在沒有退出截屏狀態時,你可以在這張圖片上寫字、畫線條,等你右鍵保存這張圖片的時候,這張圖片就會保存到硬盤裏。

其他:

*對用戶來說一個有兩個線程的cpu就相當於兩個cpu進程是資源單位而線程才是cpu的執行單位。

*“進程是擁有資源的最小單位,線程是CPU調度的最小單位。”

由於進程擁有著計算機的資源,因而其內部線程可以方便的訪問其內部的各種資源。

一個cpu同一時刻只能處理一個進程(一個進程中至少一個線程)

總結:

只是可以理解,但是還沒有轉化為自己可以描述出來的知識。

有些圖片沒有放上去,添加圖片可以更直觀。

僅限於理解課堂知識,沒有很好的發散思維。

python 學習day1--計算機組成原理