python用於硬體 python之計算機硬體知識

2021-10-16 23:17:52 字數 3029 閱讀 9406

程式語言的作用:程式設計師程式設計的本質就是讓計算機去工作,而程式語言就是程式設計師與計算機溝通的介質

作業系統和硬體之間的關係:作業系統的出現就是執行於硬體之上,來控制硬體的,我們開發時,只需要呼叫作業系統為我們提供的簡單而優雅的介面就可以了

cpu是人的大腦,負責運算,cpu有向下相容性

64位處理器可以跑為32位處理器編寫的程式,反之則不行

記憶體是人的記憶,負責臨時儲存

硬碟是人的筆記本,負責永久儲存

輸入裝置是耳朵或眼睛,負責接收外部的資訊傳給cpu

輸出裝置是你的表情,負責經過處理後輸出的結果

以上所有的裝置都通過匯流排連線,匯流排相當於人的神經

暫存器:通用暫存器,程式計數器,堆疊指標,程式狀態字寄存。比記憶體執行速度高,和cpu處理速度差不多

通用暫存器:除了用來儲存變數和結果的通用暫存器除外

堆疊指標:它指向記憶體中當前堆疊的頂端

程式狀態字寄存(psw):包含了條碼位,cpu優先順序,模式(使用者態或核心態),以及各種其他控制位(可以通過應用軟體驅動硬體)

核心態與使用者態:除了在嵌入式系統中的非常簡答的cpu之外,多數cpu都有兩種模式,即核心態與使用者態。

通常,psw中有乙個二進位制位控制這兩種模式。

核心態:當cpu在核心態執行時,cpu可以執行指令集中所有的指令,很明顯,所有的指令中包含了使用硬體的所有功能,(作業系統在核心態下執行,從而可以訪問整個硬體)

使用者態:使用者程式在使用者態下執行,僅僅只能執行cpu整個指令集的乙個子集,該子集中不包含操作硬體功能的部分,因此,一般情況下,在使用者態中有關i/o和記憶體保護(作業系統占用的記憶體是受保護的,不能被別的程式占用),當然,在使用者態下,將psw中的模式設定成核心態也是禁止的。

核心態與使用者態切換

使用者態下工作的軟體不能操作硬體,但是我們的軟體比如暴風影音,一定會有操作硬體的需求,比如從磁碟上讀乙個電影檔案,那就必須經歷從使用者態切換到核心態的過程,為此,使用者程式必須使用系統呼叫(system call),系統呼叫陷入核心並呼叫作業系統,trap指令把使用者態切換成核心態,並啟用作業系統從而獲得服務。

儲存器系列:

暫存器:l1快取,用與cpu相同材質製造,與cpu一樣快,因而cpu訪問它無時延,典型容量是:在32位cpu中為32*32,在64位cpu中為64*64,在兩種情況下容量均<1kb。

快取記憶體:l2快取,主要由硬體控制快取記憶體的訪問,記憶體中有快取記憶體行按照0~64位元組為行0,64~127為行1。。。最常用的快取記憶體行放置在cpu內部或者非常接近cpu的快取記憶體中。

,比如,多數作業系統在記憶體中保留頻繁使用的檔案(的一部分),以避免從磁碟中重複地呼叫這些檔案,類似的/root/a/b/c/d/e/f/a.txt的長路徑名轉換成該檔案所在的磁碟位址的結果然後放入快取,可以避免重複尋找位址,還有乙個web頁面的url位址轉換為網路位址(ip)位址後,這個轉換結果也可以快取起來供將來使用。

再往下一層是主存,此乃儲存器系統的主力,主存通常稱為隨機訪問儲存ram,就是我們通常所說的記憶體,容量一直在不斷攀公升,所有不能再快取記憶體中找到的,都會到主存中找,主存是易失性儲存,斷電後資料全部消失

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

磁碟(硬碟):磁碟低速的原因是因為它一種機械裝置,在磁碟中有乙個或多個金屬碟片,它們以5400,7200或更高速度旋轉,從邊緣開始有乙個機械臂懸在盤面上,這類似於老式黑膠唱片機上的拾音臂。資訊解除安裝磁碟上的一些列的同心圓上,是一連串的2進製位(稱為bit位),為了統計方法,8個bit稱為乙個位元組bytes,1024bytes=1k,1024k=1m,1024m=1g,所以我們平時所說的磁碟容量最終指的就是磁碟能寫多少個2進製位。

資料都存放於一段一段的扇區,即磁軌這個圓圈的一小段圓圈,從磁碟讀取一段資料需要經歷尋道時間和延遲時間

平均尋道時間

機械手臂從乙個柱面隨機移動到相鄰的柱面的時間成為尋道時間,找到了磁軌就以為著招到了資料所在的那個圈圈,但是還不知道資料具體這個圓圈的具體位置

平均延遲時間

機械臂到達正確的磁軌之後還必須等待旋轉到資料所在的扇區下,這段時間成為延遲時間

虛擬記憶體:

許多計算機支援虛擬記憶體機制,該機制使計算機可以執行大與物理記憶體的程式,方法是將正在使用的程式放入記憶體去執行,而暫時不需要執行的程式放到磁碟的某塊地方,這塊地方成為虛擬記憶體,在linux中稱為swap,這種機制的核心在於快速的對映記憶體位址,由cpu中的乙個部分負責,成為儲存器管理單元

磁帶:因其大容量,在**水災火災時可移動性強等特性,常被用來做備份

裝置驅動:每個硬體廠商都會為自己的硬體新增支援各種作業系統的介面,方便該作業系統的cpu呼叫驅動

控制器:通常情況下對裝置的控制是非常複雜和具體的,控制器的任務就是為作業系統遮蔽這些複雜而具體的工作,提供給作業系統乙個簡單而清晰的介面

匯流排:處理i/o裝置及cpu到儲存器

北橋即pci橋:連線高速裝置

南橋即isa橋:連線慢速裝置

作業系統的啟動流程:在計算機的主機板上有乙個基本的輸入輸出程式(basic  input output system)

bios就相當於乙個小的作業系統,它有底層的i/o軟體,包括讀鍵盤,寫螢幕,進行磁碟i/o,該程式存放於一非易失性快閃儲存器ram中

1.計算機加電

2.bios開始執行,檢測硬體:cpu、記憶體、硬碟等

3.bios讀取cmos儲存器中的引數,選擇啟動裝置

4.從啟動裝置上讀取第乙個扇區的內容(mbr主引導記錄512位元組,前446為引導資訊,後64為分割槽資訊,最後兩個為標誌位)

5.根據分割槽資訊讀入bootloader啟動裝載模組,啟動作業系統

6.然後作業系統詢問bios,以獲得配置資訊。對於每種裝置,系統會檢查其裝置驅動程式是否存在,如果沒有,系統則會要求使用者按照裝置驅動程式。一旦有了全部的裝置驅動程式,作業系統就將它們調入核心。然後初始有關的**(如程序表),穿件需要的程序,並在每個終端上啟動登入程式或gui

應用程式的啟動流程:

python硬體控制 python控制硬體嗎

simplifieddisplay new infocard newcard card search infocard bannerurl title visual datalist scenecard txt page context simplifieddisplay new infocard ...

python應用於網路 python應用於網路通訊

專案需要用到採用python實現維護測試工具,測試物件是linux裝置,需要在pc端採用python獲取linux裝置相關資訊 一 採用udp獲取普通資訊 udpserver socket af inet,sock dgram udpserver.bind ip,port data,client a...

Python用於機器學習

機器學習可實現一些演算法,能自動檢測給定輸入中的模式。比如,您給機器學習的演算法提供1000張狗的 和1000張桌子的 那麼,它將會學習區別狗和桌子。當您給出一張狗或桌子的新時,它將能夠識別出是狗還是桌子。我認為,這和嬰兒學習新事物有點類似。嬰兒是如何知道一樣東西看起來像狗,而另一樣東西看起來像桌子...