1、編程語言的做用及與操做系統和硬件的關係ios
做用:編程語言是計算機語言,是一種程序員與計算機之間溝通的介質,經過編程語言可使得計算機可以根據人的指令一步一步去工做,完成某種特定的任務。程序員
關係:編程語言會經過編譯軟件寫成程序,程序是不能直接和硬件來進行交互的,而操做系統是用來管理計算機硬件設備的,因此咱們能夠就能夠在操做系統上來運行程序,讓操做系統去管理與配置內存、決定系統資源供需的優先次序、控制輸入與輸出、操做網絡與管理文件系統等基本任務。編程
2、應用程序、操做系統、硬件之間的關係緩存
硬件上運行操做系統,操做系統上運行應用程序,應用程序經過Windows API調用操做系統函數從而和計算機硬件交互。網絡
3、cpu、內存、磁盤之間的關係數據結構
1.CPU即中央處理器,CPU從內存或緩存中取出指令,放入指令寄存器,並對指令進行解碼,而後發出各類控制命令,從而完成一條指令的執行。編程語言
2.CPU並不能直接調用存儲在硬盤上的系統、程序和數據,必須將硬盤的有關內容經過總線存儲在內存中,才能被CPU讀取運行。於是,內存能夠理解爲硬盤和CPU的「中轉站」。函數
3.當運行數據大小超出物理內存的時候,這時系統就會將硬盤上的部分空間模擬成內存——虛擬內存,並將暫時不運行的程序或不使用的數據存放到這部分空間之中,等待須要的時候方便及時調用。操作系統
4.內存是帶電儲存,斷電消失,而且容量有限,若是想長期儲存的話還須要將數據存放到硬盤中。指針
4、cpu與寄存器,內核態與用戶態及如何切換
1.寄存器是cpu的一部分,由於cpu從內存獲得指令或數據的時間比cpu執行指令花費的時間要長,因此將關鍵變量和臨時數據保存到寄存器裏面,訪問速度和CPU同速或半速,用來避免內存速率比CPU慢幾個數量級的瓶頸問題,寄存器的分類:
a.通用寄存器:用來保存cpu運行中產生的變量和臨時結果。
b.程序計數器:cpu只能同時作一件事情,因此在運行過程當中會在多個指令中來回切換執行,程序計數器用來存放這些指令的狀態。
c.堆棧指針:堆棧指針的的做用是在堆棧過程當中始終指向棧頂,取出指令,而後cpu去運行。棧就是先進後出的一種數據結構。
d.程序狀態字寄存器:不管是系統軟件仍是應用軟件執行後都得轉換成cpu的指令,狀態字寄存器用來控制用戶態和內核態兩種狀態。
2.當cpu能夠訪問內存裏的全部數據,而且能夠訪問外圍設備(硬盤, 網卡等硬件)時爲內核態,CPU也能夠將本身從一個程序切換到另外一個程序;受限的訪問內存, 且不容許訪問外圍設備時爲用戶態,佔用CPU的能力被剝奪,CPU資源能夠被其餘程序獲取。
3.全部用戶程序都是運行在用戶態的,可是有時候程序確實須要作一些內核態的事情,例如從硬盤讀取數據, 或者從鍵盤獲取輸入等。 而惟一能夠作這些事情的就是操做系統, 因此此時用戶程序就須要使用系統調用,操做系統請求以程序的名義來執行這些操做,此時就會從用戶態切換到內核態。
5、L1緩存,L2緩存,內存(RAM),EEPROM和閃存,CMOS與BIOS電池
1.寄存器既L1緩存,材質、速度和CPU相同,CPU訪問寄存器時無延時。
2.L2緩存被稱爲告訴緩存,CPU比較經常使用的會放在L2緩存中,訪問速度會比L1緩存慢。
3.全部的程序都是在內存中運行的,計算機在運行中,操做系統也會在內存中運行。內存的速度會慢於L1和L2緩存,CPU訪問的前後順序是先訪問L1緩存嗎,而後訪問L2緩存,再訪問內存,最後訪問硬盤,每次訪問的命中率爲80%。
4.EEPROM和閃存都是一種儲存器,能夠擦除和重寫,可是重寫的速度介於內存和磁盤之間。被應用於便攜式電子設備的存儲媒介,磁盤,固態硬盤等,都是應用閃存。
5.CMOS也是一類存儲介質,它是易失性的,斷電既消失,可是由於它的耗電亮很小,因此採用它來存儲一些系統的參數配置,一塊電池能使用若干年。
6、平均尋道時間,平均延遲時間,虛擬內存與MMU
1.平均尋道時間它是指硬盤在接收到系統指令後,磁頭從開始移動到移動至數據所在的磁道所花費時間的平均值。
2.平均延遲時間機械臂到達正確的磁道以後,使得要讀取的扇區轉到讀寫頭的下方這段時間的平均值,爲平均延遲時間。
3.當計算機運行大小大於物理內存的程序時,會在硬盤中分塊一塊空間,而後將內存中程序不經常使用的數據放到硬盤的那塊空間中,當用到的時候在拿回到內存中,這時內存和虛擬的內存空間會造成映射,成爲存儲器管理單元(MMU)。這種方式的運行速度會比正常狀況下低。
7、磁帶
速度低於磁盤,可是因其大容量,在地震水災火災時可移動性強等特性,常被用來作備份。
8、設備驅動與控制器
1.控制器是計算機中的一個實體設備,實現I/O設備和計算機之間的數據交換,它是CPU與I/O設備之間的接口,它接收從CPU發來的命令,並去控制I/O設備工做,以使處理機從繁雜的設備控制事務中解脫出來。
2.設備驅動是操做系統和輸入輸出設備間的粘合劑。驅動負責將操做系統的請求傳輸,轉化爲特定物理設備控制器可以理解的命令。
9、總線與南橋和北橋
1.總線將計算機內部各部件鏈接,而且實現了計算機各功能部件之間的信息傳輸。
2.南橋鏈接慢速設備,硬盤,顯示器等設備。
3.北橋鏈接高速設備,CPU,內存等設備。
10、操做系統的啓動流程
1.機器加電,bios啓動檢查硬件設備。
2. bios讀取COMS中存儲的參數,選擇啓動設備。
3.從啓動設備中讀取第一個扇區的內容。
4.根據分區信息讀入bootloader啓動裝載模塊,啓動操做系統。
5.操做系統文件會從bios中獲取配置參數。會檢查計算機設備的驅動程序,若是有設備缺乏會提示用戶缺乏驅動,若是全動加載成功,則操做系統會將他們加入到內核中。
11、應用程序的啓動流程
1.輸入設備將指令發給控制器。
2.控制器經過驅動器將請求發給操做系統。
3.操做系統會去硬盤上尋找文件位置。
4.操做系統找到文件之後會往內存裏讀,讀完之後程序啓動成功。