Linux系統
linux系統主要組成:應用程序、shell、文件系統、內核;
內核
內核作用:負責管理系統的進程、內存、設備驅動、文件系統和網絡系統等,是操作系統的核心。
內核組成:
內存管理
進程管理
文件系統
設備驅動管理
網絡管理
內核實現:通過系統調用接口來完成用戶和內核之間的交互
內存
內存:
優點:存取速度遠高於硬盤的速度
缺點:斷電丟失數據,不能持久化數據
作用:交換數據
暫時存放cpu中的運算數據,與硬盤外部存儲器交換的數據(相當於一個倉庫)
保存從硬盤讀取的數據,提供給cpu進行運算
保存cpu運算的臨時執行結果,以便cpu下次使用或保存到硬盤中
硬盤:
優點:持久化存儲數據(磁盤、光盤等)、存儲容量大
缺點:速度慢
電腦工作時,會把要用的東西先從硬盤調用到內存中(內存比硬盤速度快,如果每次訪問硬盤太慢了)
當我們在計算機上執行一個程序時,首先由輸入設備向CPU發出操作指令,CPU接收到操作指令后,硬盤中對應的程序指令被直接加載到內存中,此后,CPU再對內存進行尋址操作,將加載到內存中的指令翻譯出來,而后發送操作信號給操作控制器,實現程序的運行或數據的處理
cpu
cpu:
作用:處理指令、執行操作、控制時間、處理數據(即數據運算)等
組成:寄存器、控制單元、邏輯運算單元等
cpu執行指令過程:
程序實際上就是一條條指令,程序的運行過程就是指令一步步的執行起來,cpu本質上就是執行指令;
1. cpu先讀取【程序計數器】的值即指令的內存地址,cpu的【控制單元】操作【地址總線】指定需要訪問的內存地址,通知內存准備數據,數據准備好后通過【數據總線】將指令數據傳給cpu,cpu收到傳來的數據,將指令數據存入到【指令寄存器】;
2. cpu分析【指令寄存器】中的指令,確定指令的類型和參數,如果是計算類型的指令,就把指令交給【邏輯運算單元】運算,如果是存儲類型的指令,則交由【控制單元】執行;
3. cpu執行完指令后,【程序計數器】的值自增,表示指向下一條指令;
緩存
緩存:
位置:緩存是cpu的一部分,位於cpu中
來源:在沒有緩存之前,cpu一直是在內存中讀取數據,但由於兩者速度差異,cpu每次都要等內存的"回信", 緩存的設計是用來解決cpu與內存速度差異問題
理解:
假設一個8核的cpu,每個核都有自己獨立L1 Cache(1級緩存)、L2 Cache(2級緩存),而L3 Cache(3級緩存)是8核共享的;
緩存大小:離核心越近、等級越高越小、速度越快、L1 Cache緩存最小,速度最快;
內存的數據會先加載到共享的L3 Cache中,再加載到每個核心獨有的L2 Cache,最后進入到最快的L1 Cache,之后才被cpu讀取;
虛擬內存
虛擬內存是windows操作系統用來管理內存的一種方法,虛擬內存說穿了就是把內存中的信息分出去一部分存在硬盤上,
這樣從表面上看就擴大了內存容量(難怪內存中存了這么多東西,原來有一部分被轉到了硬盤上)
緩存是一種硬件,而虛擬內存是存在硬盤上的文件,緩存的目的是加快系統的速度,而虛擬內存技術是為了使更多的程序能夠在有限的內存中運行。
寄存器
寄存器:
作用:暫時存放參與運算的數據和運算結果
位置:是cpu內部元件,其讀寫速度非常快
種類:
通用寄存器:存儲需要進行運算的數據(需要加減等運算的兩個數據)
程序計數器:存儲cpu要執行下一條指令所在的內存地址
指令寄存器:存儲程序計數器指向的指令,指令被執行完之前都放在這里
cpu中的寄存器主要是存儲計算時的數據,為什么有了內存還需要寄存器?因為內存離cpu太遠了,而寄存器就在cpu里,
就比如,將100元放在口袋(寄存器), 和放在書包(內存)里,你(cpu)當然從口袋里取是最快的,並且寄存器離控制和邏輯運算單元都很近,速度可想而知;
進程
各個進程間共享cpu資源
進程間的內存是共享的
總結
速度:
寄存器 > 緩存 > 內存 > 硬盤
關系:
寄存器存儲在cpu中,緩存是cpu划分的一片區域,cpu從內存中獲取數據,內存是從硬盤中獲取數據,
cpu從內存中拿到數據后,在cpu內部開辟一片存儲空間,即緩存,將數據存儲在緩存中,
以后cpu就從緩存中讀取頻繁使用的數據,減少cpu與內存的頻繁交互,cpu從緩存中拿到數據后,
再將數據放入寄存器中,cpu對寄存器的數據進行計算,計算完后再將數據放到內存中
注:
1.當緩存中沒有cpu所需要的數據,cpu會從內存中讀取數據,再放到緩存中,再從緩存中讀取數據;
2.當cpu需要將數據寫入到內存中,會先存入到緩存,再找合適的機會寫到內存中;