電腦基礎知識
- 2020 年 7 月 7 日
- 筆記
電腦基礎知識
為什麼要學習電腦基礎
學習電腦基礎就像蓋一棟樓房一樣,需要先打好地基才能繼續蓋房子,所以學習電腦基礎就是學習如何打好地基。
python是一門程式語言,通俗一點就是語言,我們的漢語、英語、家鄉話等眾多語言,都是為了解決與人溝通所學習的語言,而我們學的程式語言是我們跟電腦溝通所學習的語言。當然電腦也有很多語言,比如:C、java、PHP、Python、Go等等語言,在我們中國java程式語言佔領的中國市場半壁江山。
我們學習程式語言是將它用戶編寫程式的,最終開發的目的是創造一個軟體,就像大家使用的QQ、抖音、快手等一系列軟體,這些軟體都是基於系統控制的,而在系統的底層是一個個電腦硬體的支援才能實現軟體的運行。
電腦硬體介紹
硬體的目的:為了運行軟體給它的一些命令。我們可以優先從硬體中提取出這三個主要的東西,分別為:CPU、記憶體、硬碟。
如果把電腦理解為人,我們可以總結為
CPU是人的大腦 負責運算
記憶體是人的記憶 負責臨時存儲
硬碟是人的筆記型電腦 負責永久存儲
輸入設備是人的耳朵和眼睛 負責接收外部的資訊並將資訊交給cpu
處理器
電腦的大腦是CPU,它是從記憶體中提取命令、進行解碼、執行,然後在提取指令、解碼、執行、周而復始。知道整個程式的生命周期結束。
暫存器
暫存器是一個存儲設備,最快的一種存儲設備就是暫存器。
暫存器的分類
-
通用暫存器:用來保存變數和臨時結果的。
-
程式計數器:它保存了將取出的嚇一跳指令的記憶體地址,在指令取出後,陳哥徐計算器就被更新以便執行後期的指令。
-
堆棧指針:它只想記憶體中當前棧的頂端,該棧包含已經進入但是還沒有推出的每個過程中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變數以及那些沒有保存在暫存器中的臨時變數
-
程式狀態字暫存器(Program Status Word 簡稱PSW):這個暫存器包含了條碼位(由比較指令設置)、CPU優先順序、模式(用戶態和內核態),以及各種其他控制位。用戶通常讀入整個PSW,但是只對其中少量的欄位寫入。在系統調用和I/O中,PSW非常重要。
-
內核態和用戶態
-
多數CPU都有兩種模式,即內核態與用戶態
當cpu處於內核狀態時,運行的是作業系統,能控制硬體(可以獲取所有CPU的指令集)
當CPU處於用戶狀態時,運行的是用戶軟體,不能控制硬體(可以獲取所有CPU的指令集中的一個子集,該子集不包括操作硬體的指令集)
-
什麼是內核態?
內核態:當CPU在內核態運行時,CPU可以執行指令集中所有的指令,所有的指令中包含了使用硬體的所有功能(作業系統在內核態下運行,從而可以訪問整個硬體)所以,歸根姐弟通俗一點的話就是內核狀態能控制硬體。
-
什麼是用戶態?
用戶程式在用戶態下運行,僅能執行cpu整個指令集的一個子集,該子集中不包含操作硬體功能的部分,因此,一般情況下,在用戶態中有關I/O和記憶體保護(作業系統佔用的記憶體是受到保護的,不能被其他的程式佔用),在用戶態下,將PSW中的模式設置成內核態也是禁止的。
-
-
內核態和用戶態的切換
- 用戶態下工作的軟體是不能相互之間操作硬體的,但是有一些軟體,比如暴風影音、Qvod一類的軟體,我們要向從磁碟中讀取一個電影文件,那就的從用戶態切換到內核態,為此,用戶程式必須使用系統調用(system call) 系統調用陷入內核並調用作業系統,TRAP指令把用戶態切換成內核態,並啟用作業系統從而獲得服務。
存儲器序列
- L1快取
- L2快取
- 記憶體 RAM
- EEPROM
- 快閃記憶體
- CMOS
- BIOS電池
電腦中第二重要的就是存儲,我們每個人都希望存儲速度快,這樣cpu的等待存儲器的延遲就降低了,我們希望存儲的硬體設備 速度快、容量大、價錢便宜。這樣我們就可以存儲很多影片。但是同時兼備三者是不可能的事情。所有有了以下的不同處理方法。
暫存器即L1快取:用於CPU相同材質製造,與CPU一樣快,因而CPU訪問它無時延,典型容量是:在32位CPU中32*32,在64位CPU中為64*64,在兩種情況下容量均<1kb
告訴快取即L2快取:主要由硬體控制告訴快取的存取,記憶體中有高速快取行按照0-64位元組為行,64-127位行1。最常用的高速快取行放置在CPU內部或者非常接近CPU的高速快取中
記憶體:主存通產成為隨機訪問存儲RAM,記憶體的容量一直在不斷攀升,所有不能在高速快取中找到的,都會在主存中找,主存是易失性存儲,斷電後數據全部消失。
EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和快閃記憶體(flash memory)也是非易失性的。還有一類存儲器就是CMOS,它是易失性的,許多電腦利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,所以,即使電腦沒有加電,時間也仍然可以正確地更新,除此之外CMOS還可以保存配置的參數,比如,哪一個是啟動磁碟等,之所以採用CMOS是因為它耗電非常少,一塊工廠原裝電池往往能使用若干年,但是當電池失效時,相關的配置和時間等都將丟失。
磁碟
磁碟由磁頭、磁軌、扇區組成的
磁軌:每個磁頭可以讀取一段換新區域。把一個戈丁手臂位置上所有的磁軌合起來,組成一個柱面。
每個磁軌化分若干個扇區,扇區典型的值是512位元組。
數據都存放於一段一段的扇區,即磁軌這個圓圈的一小段圓圈,從磁碟讀取一段數據需要經歷尋道時間和延遲時間。
什麼是尋道時間?
- ** 平均尋道時間: 機械手臂從一個柱面隨機移動到相鄰的柱面的時間成為尋道時間,找到磁軌就以為找到了數據所在的那塊區域,但是還不知道數據具體這個區域的具體位置。
- 平均延遲時間:機械臂到達正確的磁軌之後還必須等待旋轉到數據所在的扇區下,這段時間成為延遲時間
控制器的功能:通常情況下對設備的控制是非常複雜和具體的,控制器的任務就是為作業系統屏蔽這些複雜而具體到工作,提供個提作業系統一個簡單而清晰的介面。
設備本身有相對簡單的介面且標準,這樣大家都可以為其編寫驅動程式,要想調用設備,必須根據該介面編寫複雜而具體的程式,於是有了控制器提供設備驅動介面給作業系統,必須把設備驅動程式安裝到作業系統中。
匯流排
北橋即PCI橋:連接高速設備
南橋即ISA橋:連接慢速設備
作業系統的啟動流程
- 點擊電腦開關加電。
- BIOS開始運行,檢測硬體、CPU、記憶體、硬碟等。
- BIOS讀取CMOS存儲器中的參數,選擇啟動設備。
- 從啟動設備上讀取第一個扇區內容(MBR主引導記錄512位元組,前446為引導資訊,後64為分區資訊,最後兩個為標誌位)。
- 根據分區資訊讀取bootloader啟動裝載模組,啟動作業系統。
- 作業系統詢問BIOS,以獲得配置資訊,對於每種設備,系統會檢查其設備驅動程式是否存在,如果沒有,系統則會要求用戶按照設備驅動程式。一旦有了全部的設備驅動程式,作業系統就將它們調入內核,然後初始有關的進程,穿件需要的進程。並在每個終端上啟動登錄程式和GUI。
應用程式啟動流程
- 雙擊快捷鍵
- 告訴作業系統一個文件路徑
- 作業系統從硬碟讀取文件到記憶體中
- CPU從記憶體中讀取數據執行