標籤:根據 價格 情況 快速 bytes 丟失 通用 退出 右鍵
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--電腦群組成原理