您好,登錄后才能下訂單哦!
編程語言就相當于一種能和計算機溝通的語言,編程語言告訴系統,我要做什么,系統就會幫我們控制硬件,完成我們想要完成的動作
應用軟件需要完成某項功能的時候,就需要告訴操作系統,系統控制硬件,完成一次動作。
CPU它從內存中取指令->解碼->執行,然后再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。如果內存沒有需要的數據,則會從磁盤搜尋,然后再存儲至內存。
操作系統必須知曉所有的寄存器。在時間多路復用的CPU中,操作系統會經常中止正在運行的某個程序并啟動(或再次啟動)另一個程序。每次停止一個運行著的程序時,操作系統必須保存所有的寄存器,這樣在稍后該程序被再次運行時,可以把這些寄存器重新裝入。
除了在嵌入式系統中的非常簡答的CPU之外,多數CPU都有兩種模式,即內核態與用戶態。通常,PSW中有一個二進制位控制這兩種模式。
內核態:當CPU在內核態運行時,CPU可以執行指令集中所有的指令,很明顯,所有的指令中包含了使用硬件的所有功能,(操作系統在內核態下運行,從而可以訪問整個硬件)
用戶態:用戶程序在用戶態下運行,僅僅只能執行CPU整個指令集的一個子集,該子集中不包含操作硬件功能的部分,因此,一般情況下,在用戶態中有關I/O和內存保護(操作系統占用的內存是受保護的,不能被別的程序占用),當然,在用戶態下,將PSW中的模式設置成內核態也是禁止的。
存儲器有許多種類,按照存儲速度由高到低排名:寄存器->高速緩存->內存->固態硬盤->磁盤->磁帶。
寄存器:
即L1緩存,與CPU相同材質制造,速度一樣快,因而CPU訪問它無時延。
高速緩存:
即L2、L3緩存,二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對于CPU的重要性。
CPU在緩存中找到有用的數據被稱為命中,當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說CPU一級緩存中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由于不能準確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。那么還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。目前的較高端的CPU中,還會帶有三級緩存,它是為讀取二級緩存后未命中的數據設計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了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還可以保存配置的參數,比如,哪一個是啟動磁盤等,之所以采用CMOS是因為它耗電非常少,一塊工廠原裝電池往往能使用若干年,但是當電池失效時,相關的配置和時間等都將丟失。
CMOS電池
主板上的CMOS存儲器和電池
磁盤:
磁盤低速的原因是因為它一種機械裝置,在磁盤中有一個或多個金屬盤片,它們以5400,7200或10800rpm(RPM =revolutions per minute 每分鐘多少轉 )的速度旋轉。從邊緣開始有一個機械臂懸在盤面上,這類似于老式黑膠唱片機上的拾音臂。信息寫在磁盤上的一些列的同心圓上,是一連串的2進制位(稱為bit位),為了統計方法,8個bit稱為一個字節bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我們平時所說的磁盤容量最終指的就是磁盤能寫多少個2進制位。
每個磁頭可以讀取一段換新區域,稱為磁道, 把一個戈丁手臂位置上所以的磁道合起來,組成一個柱面,每個磁道劃成若干扇區,扇區典型的值是512字節。數據都存放于一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據需要經歷尋道時間和延遲時間。
虛擬內存:
許多計算機支持虛擬內存機制,該機制使計算機可以運行大于物理內存的程序,方法是將正在使用的程序放入內存取執行,而暫時不需要執行的程序放到磁盤的某塊地方,這塊地方成為虛擬內存,在linux中成為swap,這種機制的核心在于快速地映射內存地址,由CPU中的一個部件負責,成為存儲器管理單元(Memory Management Unit MMU)
磁帶:
價錢相同的情況下比硬盤擁有更高的存儲容量,雖然速度低于磁盤,但是因其大容量,在地震水災火災時可移動性強等特性,常被用來做備份。(常見于大型數據庫系統中)
控制器:是查找主板上的一塊芯片或一組芯片(硬盤,網卡,聲卡等都需要插到一個口上,這個口連的便是控制器),控制器負責控制連接的設備,它從操作系統接收命令,比如讀硬盤數據,然后就對硬盤設備發起讀請求來讀出內容。
控制器的功能:通常情況下對設備的控制是非常復雜和具體的,控制器的任務就是為操作系統屏蔽這些復雜而具體的工作,提供給操作系統一個簡單而清晰的接口
設備本身:有相對簡單的接口且標準的,這樣大家都可以為其編寫驅動程序了。要想調用設備,必須根據該接口編寫復雜而具體的程序,于是有了控制器提供設備驅動接口給操作系統。必須把設備驅動程序安裝到操作系統中。
北橋,南橋是主板上芯片組中最重要的兩塊了。相對的來講,北橋要比南橋更加重要。北橋連接系統總線,擔負著 CPU訪問內存的重任。同時連接這AGP插口,控制PCI總線,割斷了系統總線和局部總線,在這一段上速度是最快的。南橋不和CPU連接通常用來作I/O 和IDE設備的控制。所以速度比較慢,一般情況下,南橋和北橋中間是PCI總線。
在計算機的主板上有一個基本的輸入輸出程序(Basic Input Output system)
BIOS就相當于一個小的操作系統,它有底層的I/O軟件,包括讀鍵盤,寫屏幕,進行磁盤I/O,該程序存放于一非易失性閃存RAM中,如CMOS。
1.計算機加電
2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等
3.BIOS讀取CMOS存儲器中的參數,選擇啟動設備
4.從啟動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446為引導信息,后64為分區信息,最后兩個為標志位)
5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統
6.然后操作系統詢問BIOS,以獲得配置信息。對于每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。一旦有了全部的設備驅動程序,操作系統就將它們調入內核。然后初始有關的表格(如進程表),穿件需要的進程,并在每個終端上啟動登錄程序或GUI
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。