計算機(computer)俗稱電腦,是現代一種用於高速計算的電子計算機器,能夠進行數值計算,又能夠進行邏輯計算,還具備存儲記憶功能。是可以按照程序運行,自動、高速處理海量數據的現代化智能電子設備。一個完整的計算機由硬件和操做系統組成。若是沒有操做系統的計算機,能夠稱之爲裸機。html
2.計算機的組成:緩存
硬件部分:計算機硬件主要由cpu,輸入設備,輸出設備,存儲器和系統總線組成。cpu就像人類的大腦同樣,負責計算,處理事件,系統總線則是人的血管和神經同樣,控制的輸入,輸出和存儲設備(控制總線),將養分物質傳輸到身體各處(數據傳輸總線)。輸入,輸出設備則負責計算機與外界作交互,進行數據的輸入和輸出,圖形的顯示等做用。而存儲設備則負責存儲內容。安全
軟件部分:計算機的軟件部分主要分爲操做系統和應用軟件。操做系統的出現,將計算機複雜的硬件結構進行了包裝,給人們提供了一個簡單,方便,優美的操做感覺和視圖界面。而應用軟件的出現則是爲了知足人們各類特定的需求,如暴風影音,遊戲等。多線程
3.硬件部分架構
1.CPU:cpu的組成以下圖所示,工做過程能夠分爲取指---解碼--執行,這三個部分,分別再指令寄存器,指令譯碼器和ALU這三個地方完成。由於從內存讀取數據的時間比cpu執行命令的時間要慢的多,因此計算機在內部有部分寄存器(和cpu同材質),寄存器主要分爲如下幾種類型:併發
通用寄存器:用來保存變量和臨時結果框架
程序計數器:用來保存下一個要執行的指令的內存地址。spa
程序狀態字寄存器(PSW):用來標記區分訪問狀態(用戶態,內核態),cpu優先級等內容。操作系統
堆棧指針寄存器:該棧包含已經進入可是尚未退出的每一個過程當中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保存在寄存器中的臨時變量。堆棧的特色是先進後出。線程
補充說明:
內核態:爲了保護硬件系統底層的安全和穩定性,只容許內核態進行操做硬件。通常操做系統處於內核態,而應用軟件處於用戶態
用戶態:只能操做cpu指令集的一個子集,沒法操做底層硬件內容,若是須要操做底層硬件,須要將用戶態轉換爲內核態。
多線程:線程是cpu執行的基本單位,線程之間內存的共享的。多線程cpu能夠保持兩個不一樣狀態的線程(休眠狀態和運行狀態),cpu來回切換這些線程,速度十分快,以至於讓人們認爲是併發處理的。cpu同一個時間只能處理一個線程。
進程:進程是最小的資源單位,進程間內存是不共享的。一個進程最少要有一個線程。
多核:增長了數個完整的cpu,這樣就能夠同時處理多個線程。每一個cpu有個跟cpu材質同樣的緩存區,稱爲一級緩存(L1),有個二級緩存(L2)連接着這幾個cpu(inter架構)。
2.存儲器
以下圖,緩存的級別由上到下一次遞增,寄存器爲一級緩存,高速緩存爲二級緩存,以此類推,緩存速度越快,容量就越小,造價就越昂貴。若是運行一個程序,所須要的內容已經在高速緩存中,即稱爲高速緩存命中,若是高速緩存未命中,則須要去內存讀取數據,速度會慢不少。
內存RAM爲易失性存儲,斷電後數據所有消失。
rom(Read Only Memory)爲非易失性存儲。
flash(閃存):非易失性存儲,固態硬盤,u盤都是有閃存進行存儲。
cmos:易失性存儲,保存當前時間和日誌,還有系統的一些參數。
磁盤:磁盤由多個碟片,磁柱,磁頭組成。每一個磁盤又以扇區爲單位進行劃分。一個扇區爲512B。最小的塊單元由8個扇區組成,即4KB。
磁盤讀取數據會有必定延時,主要非爲:
1.平均尋道延時:即找到所需數據所在的扇扇道
2.平均延時時間:在扇道上找到正確的扇區所須要的時間
因此一塊磁盤轉速約快,他的延時時間就越短,讀取速度就越快。
咱們還會劃分一小部分磁盤做爲內存來使用,防止運行軟件過多,所需內存超過實際內存大小,而形成內存溢出,服務崩潰。虛擬內存雖然運行速度較慢,可是能夠防止內存溢出的狀況發生,保證服務的穩定。
I/O設備(input/output)
I/O 通常分爲設備控制器(須要安裝驅動軟件)和設備自己。
設備控制器的做用是提供一個標準的接口來接入設備,驅動軟件則是提供給系統操控設備的方法。各個設備控制器由I/O總線連接着。
I/O總線分爲北橋和南橋,北橋鏈接cpu,內存,二級緩存,南橋鏈接硬盤,鍵盤,打印機等運行速度較慢的設備。
4.操做系統
操做系統的做用主要由兩個:
1.給用戶提供一個簡單,明瞭的硬件接口(工做在用戶態),程序開發人員不須要再去了解如何去控制硬件,而是調用相應的硬件接口就可使用。
2.讓線程的進程變得有序(工做在內核態)。如打印機同時打印a,b,c,若是是無序競爭,那麼打印出來的內容會是a一行,b一行,這樣混亂的內容。操做系統會使用鎖 這個方法讓競爭變得有序,若是a文件正常使用打印機,則會將打印線程鎖住,只給a只有,那麼b和c只有等a打印完以後纔會使用打印機。
操做系統與應用軟件的區別:
1.主要區別是:應用軟件開發週期短,可修改,操做系統由內核保護着,不能被修改。
2.操做系統是一個大型(源碼數量大)、複雜(提供複雜功能)、長壽(不會輕易被棄用)的軟件
多路複用(多道技術):
1.時間上的複用:當一個資源在時間上覆用時,不一樣的程序或用戶輪流使用它。例如:cpu的 上下文切換:一個內核可處理多個進程, 在只有一顆 CPU 的狀況下, 內核必須調度和平衡這些進程和線程。 每一個線程在處理器上都擁有一個時間分配單元, 當一個線程超過本身的時間單元或被更高優先級的程序搶佔時, 此線程及被傳回隊列而此時更高優先級的程序將在處理器上執行。
2.空間上的複用(須要硬件上的支持,將內存在硬件層面上進行分區):多個程序同時進入不一樣的內存區域。且由操做系統控制,這比一個程序獨佔內存一個一個排隊進入內存效率要高的多。 硬件層面的分割保證了安全性:應用程序不會操做到操做系統的內存區域 穩定性:釋放應用程序內存時,不會同時釋放掉操做系統的內存(即便是操做系統的部份內存),這樣能夠避免引發操做系統的崩潰。
參考博客連接:
https://www.cnblogs.com/linhaifeng/p/6523843.html
https://www.cnblogs.com/linhaifeng/p/6295875.html