淺談計算機系統——引子

提及計算機,先看以下數學模型:linux

 

針對計算機來講,中間一塊就是CPU中的運算器,那麼咱們的計算機模型應該是這樣:windows

 

因此才說中央處理器CPU、存儲器(Memory)和輸入/輸出(I/O)設備合稱爲電子計算機三大核心部件。緩存

而後咱們開始演進~~架構

First :spa

一開始只須要CPU和寄存器就能夠搞基,各類high;操作系統

但是後來發現寄存器徹底裝不下東西,因此咱們搞個內存,能夠放各類參數之類的。線程

second:blog

因爲寄存器芯片過貴,在考慮成本下咱們的內存都採用的比較慢速的設備。那內存徹底跑不贏CPU啊,CPU老是等啊等,花兒都謝了。繼承

因此咱們在CPU和內存之間,採用運算速度較強的內存,即高速緩存。現今計算機架構來講,基本使用的是三級緩存。進程

Third:

內存過小了啊,徹底裝不下這個大千世界了啊。而且嚴重的是內存通常爲電容性器件,關機則消失,好比DRAM。

因此咱們的外存登場,固然如今咱們常常看到的就是磁盤了。

Fouth:

原本相對於CPU,內存就夠慢了,天啊,這磁盤什麼的簡直慢到睡着了。

DMA出馬,代替CPU完成讀取寫入等待等工做,和磁盤交互。

Sixth:

設備好多,無法最開始那樣一對一了,因此就來個總線對接下吧。

這麼多設備和CPU打交道,信號過來我都不知道誰的,因此加個ID標識吧。

Seventh:

磁盤慢?其實還有不少更慢的I/O等設備。CPU須要和這麼多設備打交道,那如何是好,不可能一直等,因此想到了切換,經過中斷技術實現

 Eighth:

內存和磁盤直接對接,也出現了速度不匹配的問題,因此緩存再次出現,再次以空間換取時間。

 Nigth:

 內存雖然夠大了,可是不少時候仍是沒法放下進程的臨時數據啊,對,咱們老是以爲電腦或者手機怎麼越用越卡,就這出了問題。

可是磁盤很大啊,因此咱們能夠考慮先把一半部分數據放入磁盤,window叫虛擬緩存,linux叫交換空間。

但是磁盤的讀取速度很慢啊,CPU直接從內存讀取多快,哎,這可難辦了啊

 

天啊!就這麼簡單的介紹,管理起來就夠麻煩了。我玩計算器,莫非還要我懂這些才能玩?顯然不是,那麼就得讓人管理啊,所以操做系統出現了。

操做系統做爲大管家,管理着時間和空間,帶領硬件大小朋友們,和你一塊兒走向了人生巔峯!

 

模式切換

操做系統本質也是一段程序,一樣須要在CPU和內存上運行才行。

因此咱們把操做系統在CPU上運行時候,叫內核模式(內核空間);將CPU運行其餘程序叫用戶模式(用戶空間)。

這裏咱們將遇到繼中斷後的第二個切換,咱們將CPU輪換的工做在內核模式和用戶模式,叫模式切換

而且規定只有操做系統才能使用特權命令(四級命令中的0級),使用硬件設備。

若是其餘程序須要使用硬件,必須向操做系統申請,即系統調用。

內存也相應的作了照顧,將低位區除了DMA區,專門獨享給內存。

     備註:CPU資源爲時間;內存資源爲空間;CPU指令集初始爲0~3等級,後面還有-1級。

 

進程切換

針對每一個程序任務,操做系統給他們統一取了個名叫:進程。

經過windows任務管理器你會看到若干進程在運行,實際上同一時間CPU上只有一個進程在運行,而其餘進程都在等待。

運行進程在超過一段時間或者本身退出後,輪換到等待的進程,叫進程切換,這是第三種切換。

就是操做系統會不斷切換應用程序來使用CPU。

目的有兩個:減小等待時間,好比磁盤讀數據這種;

                      讓人感受全部任務是同一時間運行的,好比你在打字和屏幕上顯示字,原本屬於兩個進程來完成,但操做系統不會等你把全部字打完了再顯示出來。

   線程

線程的特色是繼承但不超過父進程的硬件權限,實際就是被閹割了一部分系統調用的權限。但因爲共享資源,大大減小了進程(線程)切換的代價,從而提高了速率。

 

如此爾爾~~~下文分解!

相關文章
相關標籤/搜索