如何做網(wǎng)站不容易被攻擊關(guān)鍵詞搜索推廣排行榜
一. 操作系統(tǒng)的概念
1. 概念
操作系統(tǒng)(Operating System). 首先, 所有的計(jì)算機(jī)都是由軟件和硬件構(gòu)成的. 而操作系統(tǒng)就是許許多多軟件中的一種軟件, 操作系統(tǒng)可以看作是由兩部分組成: 操作系統(tǒng)內(nèi)核+系統(tǒng)級(jí)應(yīng)用程序.
2. 作用
(1) 管理硬件設(shè)備, 調(diào)度和協(xié)調(diào)各個(gè)硬件之間的工作.
(2) 給軟件提供穩(wěn)定的運(yùn)行環(huán)境.
3. 常見(jiàn)的操作系統(tǒng)
(1) Windows
(2) Linux
(3) Android
(4) MacOS
(5) IOS
其中Windows, Linux, MacOS 主要用于桌面端. Android和IOS主要用于移動(dòng)端. 不同的系統(tǒng)之間, 程序是不能相互兼容的 (比如我在Linux上寫(xiě)了一個(gè)程序, 那么這個(gè)程序是不能直接拿到Windows上運(yùn)行的).
二. 馮諾依曼架構(gòu)
馮諾依曼架構(gòu)提出: 計(jì)算機(jī)由輸入設(shè)備(Input Device), 輸出設(shè)備(Output Device), 存儲(chǔ)器(Memory Unit), 中央處理器(Central Processing Unit "CPU") 四部分構(gòu)成. (其中CPU又包括控制器(CU),和運(yùn)算器(ALU)).
(1)輸入設(shè)備:輸入設(shè)備: 常見(jiàn)輸入設(shè)備有: 磁盤(pán), 網(wǎng)卡, 鍵盤(pán), 話筒, 攝像頭 等.
(2)輸出設(shè)備: 常見(jiàn)的輸出設(shè)備有: 磁盤(pán), 網(wǎng)卡, 顯示器, 打印機(jī), 音箱 等.
(3)存儲(chǔ)器: 用于存儲(chǔ)數(shù)據(jù).存儲(chǔ)器又分為內(nèi)存和硬盤(pán)(外存). 內(nèi)存: 存儲(chǔ)空間小, 訪問(wèn)速度快, 成本較高, 斷電后數(shù)據(jù)丟失.? 硬盤(pán): 存儲(chǔ)空間大, 訪問(wèn)速度慢, 成本較低, 斷電后數(shù)據(jù)仍在.
(4)CPU: 中央處理器主要負(fù)責(zé)控制指令執(zhí)行和運(yùn)行計(jì)算, CPU除了控制器和運(yùn)算器, 還包括一些小容量的寄存器(用于存儲(chǔ)數(shù)據(jù)), 寄存器又分為通用寄存器(存儲(chǔ)運(yùn)算數(shù)據(jù)), 程序計(jì)數(shù)器(存儲(chǔ)CPU下一條要執(zhí)行的指令的地址), 指令寄存器(存儲(chǔ)當(dāng)前正在執(zhí)行的指令).
計(jì)算機(jī)訪問(wèn)數(shù)據(jù)時(shí)的局部性原理: (1)空間局部性: 計(jì)算機(jī)在訪問(wèn)完一次數(shù)據(jù)之后, 下次在訪問(wèn)數(shù)據(jù)時(shí), 總是會(huì)選擇上次訪問(wèn)數(shù)據(jù)周?chē)臄?shù)據(jù)進(jìn)行訪問(wèn). (2)時(shí)間局部性: 計(jì)算機(jī)在訪問(wèn)完一次數(shù)據(jù)之后, 后面再訪問(wèn)數(shù)據(jù)時(shí), 會(huì)有很大概率再次訪問(wèn)到這次的數(shù)據(jù).
馮諾依曼架構(gòu)中的各個(gè)組成部分是如何通信和傳輸數(shù)據(jù)的?--總線. 總線包括: 控制總線(發(fā)出或接收型號(hào),比如讀/寫(xiě)/中斷 等信號(hào)), 地址總線(傳輸CPU將要操作的數(shù)據(jù)在內(nèi)存中的地址), 數(shù)據(jù)總線(用來(lái)讀寫(xiě)內(nèi)存中的數(shù)據(jù)).
馮諾依曼架構(gòu)的優(yōu)點(diǎn): 簡(jiǎn)單性, 指令和數(shù)據(jù)存儲(chǔ)在同一塊內(nèi)存中, 簡(jiǎn)化了計(jì)算機(jī)的設(shè)計(jì)和構(gòu)造, 降低了硬件的復(fù)雜性. 缺點(diǎn): 性能瓶頸: 指令和數(shù)據(jù)使用同一條總線傳輸, 且無(wú)法并行. 因此當(dāng)傳輸數(shù)據(jù)時(shí), CPU會(huì)處于等待狀態(tài), 這樣就無(wú)法充分利用CPU, 從而降低了系統(tǒng)性能.
三. CPU
1. CPU的主流架構(gòu)
(1) x86 / x64 架構(gòu): 主要給桌面端和服務(wù)器端使用.
(2) arm架構(gòu): 主要給移動(dòng)端和嵌入式使用.
(3) RISC-V架構(gòu): 一套開(kāi)源的CPU指令架構(gòu). 目前國(guó)內(nèi)使用該架構(gòu)發(fā)展我們自己的CPU.
2. CPU的核心參數(shù)
(1) 核心數(shù): 最早的CPU都是單核的, 相當(dāng)于電腦里只有一個(gè)人在工作. 后來(lái)intel發(fā)明了多核心CPU,
又發(fā)明了超線程技術(shù), (例如: 12核心24線程 就相當(dāng)于電腦里一共有24個(gè)人在工作, 每個(gè)核心里有兩個(gè)人在工作). 這樣使得CPU的性能大大增強(qiáng).
(2) 頻率: CPU的運(yùn)算速度可以用頻率來(lái)描述. 頻率越高, 表示CPU的運(yùn)算速度越快.
所以, 作為一名程序員, 我們衡量一個(gè)CPU的好壞, 就是看這個(gè)CPU的核心數(shù)多不多, 頻率高不高.
3. CPU的寄存器和緩存
(1) 寄存器: CPU中除了控制器CU和運(yùn)算器ALU, 還有"寄存器". 寄存器就是CPU內(nèi)部用來(lái)存儲(chǔ)數(shù)據(jù)的部分. 寄存器的存儲(chǔ)空間比內(nèi)存更小(往往只有幾個(gè)kb), 訪問(wèn)速度比內(nèi)存更快(因?yàn)殡x內(nèi)存更近), 成本比內(nèi)存更高.([注]: 寄存器中有一種叫做"程序計(jì)數(shù)器", 這個(gè)寄存器是用來(lái)存放下一條指令的地址的).
(2) 緩存: 如果內(nèi)存中的某些數(shù)據(jù)是比較常用的, 而寄存器內(nèi)又存不下這些數(shù)據(jù). 那么這時(shí)候計(jì)算機(jī)就會(huì)把這些數(shù)據(jù)讀到緩存中. 由于CPU不斷從內(nèi)存中讀數(shù)據(jù)速度太慢的問(wèn)題.([注]:java程序員在開(kāi)發(fā)程序時(shí), 往往吧緩存和寄存器看成是一個(gè)整體, 不區(qū)分那么細(xì).)
4. CPU執(zhí)行指令的流程
(1) 讀取指令: CPU從內(nèi)存中將指令讀到CPU內(nèi)部(程序計(jì)數(shù)器中).
(2) 解析指令: 識(shí)別出這個(gè)指令是具體要執(zhí)行什么.
(3) 執(zhí)行指令: 根據(jù)指令執(zhí)行對(duì)應(yīng)操作.