python硬件驱动_Python学习:计算机基础之计算机硬件
本節重點:
1.編程語言的作用及與操作系統和硬件的關系:
Python是編程語言,簡之,Python即語言。
語言有漢語,外語,是人與人之間溝通交流的介質,編程語言即人與計算機之間的語言,目的是為了讓計算機了解程序員想要表達的內容;
用戶程序操作最終體現在硬件上,但是假如每個用戶程序的基礎都是先寫操作硬件的編程,然后再寫程序功能,寫一個,兩個可以,以后每次寫程序都是先寫操作硬件的代碼,然后再寫程序的代碼豈不是一直在做重復的工作,所以這時候就需要有操作系統了,操作系統操作硬件,對硬件擁有所有權限,用戶程序再控制操作系統,這樣就省去了重復的工作。
2.cup-->內存-->硬盤
cup相當于人體的大腦,作運算的工作;
內存相當于人的臨時記憶,負責臨時存儲的作用;
硬盤相當于筆記本,作永久存儲的作用;
整個運行的過程是,把程序從硬盤中取出,放在內存中運行,然后把關鍵數據輸入到cpu中運算。
3.cpu與寄存器,內核態與用戶態及如何切換
cpu:它從內存中取指令->解碼->執行,然后再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。
每個cpu都有一套可執行的專門指令集,任何軟件的執行最終都要轉化成cpu的指令去執行。所以Pentium(英特爾第五代x86架構的微處理器)不能執行SPARC(另外一種處理器)的程序。這就好比不同的人腦,對于大多數人類來說,人腦的結構一樣,所以別人會的東西你也都可以會,但對于愛因斯坦的腦子來說,它會的你肯定不會。
因訪問內存以得到指令或數據的時間比cpu執行指令花費的時間要長得多,所以,所有CPU內部都有一些用來保存關鍵變量和臨時數據的寄存器,這樣通常在cpu的指令集中專門提供一些指令,用來將一個字(可以理解為數據)從內存調入寄存器,以及將一個字從寄存器存入內存。cpu其他的指令集可以把來自寄存器、內存的操作數據組合,或者用兩者產生一個結果,比如將兩個字相加并把結果存在寄存器或內存中。
寄存器分為4種:通用寄存器,程序計數器,堆棧指針,程序狀態字寄存器(Program StatusWord,PSW)。
本節主要講解了PSW,這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各種其他控制位。用戶通常讀入整個PSW,但是只對其中少量的字段寫入。在系統調用和I/O中,PSW非常非常非常非常非常非常重要。
用戶態:用戶程序在用戶態下運行,僅僅只能執行cpu整個指令集的一個子集,該子集中不包含操作硬件功能的部分,因此,一般情況下,在用戶態中有關I/O和內存保護(操作系統占用的內存是受保護的,不能被別的程序占用),當然,在用戶態下,將PSW中的模式設置成內核態也是禁止的。
內核態:當cpu在內核態運行時,cpu可以執行指令集中所有的指令,很明顯,所有的指令中包含了使用硬件的所有功能,(操作系統在內核態下運行,從而可以訪問整個硬件)。
當軟件在操作系統中打開,此時處于用戶態,無法操作系統,假如軟件需要從硬盤中需要讀取某段數據,需要操作硬件,此時軟件控制操作系統此時處于用戶態,當操作系統收到軟件指令,操作硬盤,此時切換為內核態,然后把文件讀入內存中,供軟件使用,此時cpu恢復為用戶態,cpu是不斷處于內核態與用戶態切換的過程的。
4.存儲器系列,L1緩存,L2緩存,內存(RAM),EEPROM和閃存,CMOS與BIOS電池
存儲器系列:存儲器按照典型訪問時間,存儲容量分為5個梯度,從高到低排列,寄存器,高速緩存,內存,硬盤,磁帶。
寄存器,1ns,<1K
高速緩存,2ns,4M
內存,10ns,512-2048MB
硬盤,10ms,200-1000GB
磁帶,100s,400-800GB
L1緩存即為寄存器,L2緩存即為高速緩存,最常用的高速緩存行放置在cpu內部或者非常接近cpu的高速緩存中。
內存,通常稱為隨機訪問存儲RAM,容量一直在不斷攀升,所有不能在高速緩存中找到的,都會到主存中找,主存是易失性存儲,斷電后數據全部消失。
除了主存RAM之外,許多計算機已經在使用少量的非易失性隨機訪問存儲如ROM(Read Only Memory,ROM),在電源切斷之后,非易失性存儲的內容并不會丟失,ROM只讀存儲器在工廠中就被編程完畢,然后再也不能修改。ROM速度快且便宜,在有些計算機中,用于啟動計算機的引導加載模塊就存放在ROM中,另外一些I/O卡也采用ROM處理底層設備的控制。
EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的,但是與ROM相反,他們可以擦除和重寫。不過重寫時花費的時間比寫入RAM要多。在便攜式電子設備中中,閃存通常作為存儲媒介。閃存是數碼相機中的膠卷,是便攜式音譯播放器的磁盤,還應用于固態硬盤。閃存在速度上介于RAM和磁盤之間,但與磁盤不同的是,閃存擦除的次數過多,就被磨損了。
還有一類存儲器就是CMOS,它是易失性的,許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,所以,即使計算機沒有加電,時間也仍然可以正確地更新,除此之外CMOS還可以保存配置的參數,比如,哪一個是啟動磁盤等,之所以采用CMOS是因為它耗電非常少,一塊工廠原裝電池(BIOS電池)往往能使用若干年,但是當電池失效時,相關的配置和時間等都將丟失。
5.磁盤結構,平均尋道時間,平均延遲時間,虛擬內存與MMU
磁盤低速的原因是因為它一種機械裝置,在磁盤中有一個或多個金屬盤片,它們以5400,7200或10800rpm(RPM =revolutions per minute 每分鐘多少轉 )的速度旋轉。從邊緣開始有一個機械臂懸在盤面上,這類似于老式黑膠唱片機上的拾音臂。信息卸載磁盤上的一些列的同心圓上,是一連串的2進制位(稱為bit位),為了統計方法,8個bit稱為一個字節bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我們平時所說的磁盤容量最終指的就是磁盤能寫多少個2進制位。
每個磁頭可以讀取一段換新區域,稱為磁道
把一個戈丁手臂位置上所以的磁道合起來,組成一個柱面
每個磁道劃成若干扇區,扇區典型的值是512字節
數據都存放于一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據需要經歷尋道時間和延遲時間
平均尋道時間
機械手臂從一個柱面隨機移動到相鄰的柱面的時間成為尋到時間,找到了磁道就以為著招到了數據所在的那個圈圈,但是還不知道數據具體這個圓圈的具體位置
平均延遲時間
機械臂到達正確的磁道之后還必須等待旋轉到數據所在的扇區下,這段時間成為延遲時間
虛擬內存與MMU
虛擬內存使電腦能運行大于真實內存的程序,虛擬內存一般設置為真實內存的1-1.5倍,其工作原理是在真實內存上運行重要的數據,暫時不需要的先放在硬盤的某處,這里即稱為虛擬內存,在linux中成為swap,這種機制的核心在于快速地映射內存地址,由cpu中的一個部件負責,成為存儲器管理單元(Memory Management Unit MMU)。
6.磁帶
磁帶價格便宜,容量大,多作為備份用,并且易于搬運。
7.設備驅動與控制器
設備驅動:舉例內存插入主板,下面有一塊芯片,控制內存,但是光有芯片不行,系統需要操控內存,但是光寫讓自己得硬件可以理解的程序不行,操作系統不能理解這段程序的話,操作系統不能操作內存,所以需要設備廠商寫設備驅動,已操作硬件。
控制器:是查找主板上的一塊芯片或一組芯片(硬盤,網卡,聲卡等都需要插到一個口上,這個口連的便是控制器),控制器負責控制連接的設備,它從操作系統接收命令,比如讀硬盤數據,然后就對硬盤設備發起讀請求來讀出內容。
8.總線與南橋和北橋
CPU、內存以及I/O設備都由一條系統總線(bus)連接起來并通過總線與其他設備通信
北橋即PCI橋:連接高速設備
南橋即ISA橋:連接慢速設備
9.操作系統的啟動流程
1.計算機加電
2.BIOS開始運行,檢測硬件
3.BIOS讀取CMOS中參數,選擇啟動設備
4.從啟動盤第一個扇區(MBR主引導記錄),扇區為512字節,前446位引導信息,后64為分區信息,后2位為標志位。
5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統。
6.然后操作系統詢問BIOS,以獲得配置信息。對于每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。一旦有了全部的設備驅動程序,操作系統就將它們調入內核。然后初始有關的表格(如進程表),穿件需要的進程,并在每個終端上啟動登錄程序或GUI。
10.應用程序的啟動流程
應用軟件在操作系統啟動后啟動,雙擊應用圖標,發送給操作系統指令,然后軟件文件會從硬盤中調用到內存中,cpu調用運行。
總結
以上是生活随笔為你收集整理的python硬件驱动_Python学习:计算机基础之计算机硬件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言 行业_如何入门编程开发
- 下一篇: python避免深度嵌套的if-else