1. cpu
馮諾依曼體系(Von Neumann Architecture)

衡量cpu好壞:1. 主頻 (基準頻率,睿頻)單個核心的運算能力?1s之內,一個核心能夠執行多少條指令(近似)2. 核心數? ?多個核心的運算能力??


馮?諾依曼結構體系
早期計算機采用馮?諾依曼結構,該結構的精髓在于將 “執行” 和 “存儲” 功能分離。在這種體系下,CPU 執行指令前,需要從內存中讀取相應的數據和指令。這種設計理念的核心目標是實現 “解耦合”,即將計算處理單元(CPU)和數據存儲單元(內存)分開設計。這樣做的好處顯著,極大地降低了硬件設計的復雜度和成本。因為不同功能模塊可以獨立進行優化和改進,使得計算機的設計和制造更加靈活、高效。
緩存的出現
隨著硬件技術的飛速發展,CPU 的運算速度得到了極大提升,其性能提升的幅度遠遠超過了內存讀取速度的提升。這就導致了一個嚴重的問題:內存逐漸跟不上 CPU 的處理節奏,CPU 常常需要等待從內存中讀取數據和指令,從而造成了大量的時間浪費,計算機整體性能的提升受到了內存讀取速度的嚴重制約。
為了解決這一問題,緩存技術應運而生。緩存是一種高速的臨時存儲區域,它被集成到 CPU 上。緩存的主要作用是臨時存儲從內存中讀取的指令和數據。由于緩存的訪問速度遠高于內存,當 CPU 需要數據或指令時,首先會在緩存中查找。如果緩存中存在所需內容(即命中緩存),CPU 可以迅速獲取,從而避免了從相對較慢的內存中讀取數據,大大提高了 CPU 的執行效率。
流水線技術
流水線技術是進一步提高 CPU 執行效率的重要手段。傳統的 CPU 執行指令的方式是串行的,即一條指令執行完成后,才會去讀取并執行下一條指令。這種方式在 CPU 等待指令和數據從內存傳輸時會造成大量的空閑時間。
而流水線技術打破了這種串行執行的模式。在流水線工作模式下,CPU 在執行指令 A 的同時,可以并行地從內存中讀取指令 B。當指令 A 執行完畢后,CPU 可以立即開始執行已經讀取到的指令 B,無需再等待從內存中讀取新的指令。這樣就使得 CPU 的各個處理單元可以在不同的指令階段同時工作,大大提高了 CPU 的利用率和指令執行的吞吐量,進一步提升了計算機的整體性能。
2. 操作系統
操作系統的職責:
1. 管理各種硬件設備
2. 給其他軟件提供穩定的運行環境
1. 進程
定義:
進程是指正在運行的程序的實例,是操作系統進行資源分配和調度的基本單位。它包含了程序執行所需的各種資源,如內存空間、CPU 時間、文件句柄等。
組成部分:
- 程序代碼:即進程所執行的指令序列,描述了進程要完成的任務。
- 數據:包括程序運行時使用的各種變量、常量、文件等數據。
- 進程控制塊(PCB):這是操作系統用于管理進程的核心數據結構,包含了進程的各種信息,如進程標識符、狀態、優先級、資源分配情況等。操作系統通過操作 PCB 來實現對進程的控制和管理。
1. 進程標識符(PID):是進程的唯一標識,用于區分系統中的不同進程。同一機器上的同一時刻,每個進程都pid都是唯一的。操作系統通過 PID 來對進程進行各種操作,如調度、終止等。
2. 內存指針:指向進程在內存中的地址空間,包括代碼段、數據段、堆棧段等的起始地址和界限。操作系統通過內存指針來管理進程的內存分配和訪問,確保進程只能訪問自己的內存空間,避免不同進程之間的內存沖突。
3. 文件描述符:在操作系統中,文件描述符是進程與外部存儲資源(主要涉及硬盤)交互時極為關鍵的概念。硬盤作為數據持久化存儲的核心硬件,其內部數據的組織和訪問方式較為復雜。為了簡化進程對硬盤資源的操作,操作系統對硬盤進行了抽象封裝,將各類數據存儲單元統一以文件的形式呈現給進程。
?當一個進程需要操作文件時,首要步驟便是 “打開文件”。這一操作的本質是操作系統在進程專屬的文件描述符表中為該文件分配一個表項。文件描述符表是操作系統用于跟蹤進程所打開文件的關鍵數據結構。在分配表項時,系統會構造一個結構體,該結構體中詳細記錄了這個文件的諸多相關信息。
4. 進程狀態:描述進程當前所處的狀態,如就緒、運行、阻塞等。操作系統根據進程狀態來決定是否將 CPU 分配給該進程,以及如何在不同狀態之間進行轉換。
5. 優先級:表示進程相對于其他進程的重要程度和執行順序。優先級高的進程通常會優先獲得 CPU 資源,以便更快地執行。操作系統根據優先級來決定在多個就緒進程中選擇哪個進程投入運行
6. 記賬信息:在多任務操作系統中,,為了高效且公平地管理 CPU 資源,記賬信息針對每個進程占用 CPU 的時間進行精確統計。這一統計過程是動態且持續的,操作系統會在進程的整個生命周期內,記錄其每次獲得 CPU 使用權的時間片段,并進行累加。根據統計結果來進一步調整調度策略,確保每個進程都有機會使用 CPU 資源,避免出現某些進程長期得不到執行而處于 “饑餓” 狀態的情況。
7. 進程上下文:包括進程的地址空間、寄存器狀態、打開的文件等所有與進程執行相關的信息。進程上下文在進程切換時需要進行保存和恢復,以保證進程在不同的執行時刻都能正確地運行。
保存:把cpu的關鍵寄存器中的數據保存到內存中(pcb的上下文屬性中)
恢復:把內存中的關鍵寄存器中的數據,加載到cpu的對應寄存器中
- 定義:指在同一時間段內,多個任務或進程交替執行,但在任意時刻只有一個任務在執行。
- 實現方式:通過操作系統的調度算法,將 CPU 時間劃分為多個時間片,每個任務輪流獲得 CPU 時間片來執行。
- 定義:指在同一時刻,多個任務或進程同時執行,需要多個處理器或多核處理器來實現。
- 實現方式:通過將任務分配到不同的處理器或核心上,讓它們同時進行處理,從而實現真正的并行執行。