筆記.軟考.操作系統概述
硬件
CPU
與內存交互,提取指令并執行,循環如此直至程序運行結束。
指令集
X86指令集和ARM指令集之間并不能夠相互執行。
寄存器
保存關鍵變量和臨時結果。
程序計數器(program counter)
程序計數器不斷指示下一條需要從內存中提取出的指令的地址。
堆棧指針(stack pointer)
堆棧指針指向當前棧頂,包含輸入過程中的有關參數、局部變量以及未在寄存器中的臨時變量。
程序狀態寄存器(PSW program status word)
程序狀態寄存器由操作系統維護,是8字節long類型的數據集合。
程序狀態寄存器會跟蹤當前系統的狀態。主要在系統調用和I/O中起重要作用。
設計
為提升性能,CPU的設計具有能夠同時讀取、解碼和執行指令的機制。組織形式有流水線
和超標量
流水線形式為:CPU對指令的執行、解碼和讀取都不會停止,流水線一樣一個接著一個。
超標量形式為:多個指令一次性取出,解碼放入緩存區,由執行單元不斷搜索自己的任務直至指令執行完畢。超標量設計是由于多數情況應用程序是無序執行的,使用硬件來保證此設計的結果與順序執行的結果一致。
為保證硬件安全,多數CPU會擁有兩種模式——內核態和用戶態,控制CPU處于何種模式取決于PSW寄存器中的一個二進制位。
內核態:CPU可執行任何指令集,可使用硬件的功能,權限開放。
用戶態:CPU僅可執行部分指令集,使用部分硬件功能,權限限制。
為了進一步提升CPU性能,奔騰引入超線程技術,合理利用空閑的CPU核心,提升效率。
我的CPU為十代i5,四核八線程,資源監視器中的CPU0~7中多出的四個核心即是虛擬出的核心數,稱之為線程。可在bios界面關閉超線程模式來減小CPU負載增長壽命(沒必要罷了)
內存
為了不影響CPU的執行效率,內存應當比執行一條指令要快,但是如此其存儲容量就不能夠太大,價格也就不會便宜,足夠大足夠便宜的存儲,其速度又不會特別快,于是計算機的存儲器采用了層級結構。
寄存器
寄存器的材料與CPU相同,從而速度基本無差,寄存器由程序自行管理。
高速緩存
高速緩存由多個64字節的高速緩存行組成,高速緩存行會因其造價限制容量自身容量大小,一些機器會擁有兩個或三個緩存級別(常稱為二級緩存,三級緩存)每一級高速緩存比前一級速度慢、容量大,為保證效率,最頻繁使用的高速緩存行保存在CPU內部或靠近CPU的高速緩存中。
在任務管理器中可以看到自己的高速緩存層級。
應用程序在內存中讀取關鍵詞時,首先使用高速緩存的硬件檢查自己是否擁有對應的高速緩存行,查找到即高速緩存命中,緩存未命中時會從磁盤中調入,所以操作系統會在內存中保留頻繁使用的文件,從而避免重復從磁盤中獲取。
主存
通常為RAM(Random Access Memory),所有無法在高速緩存中得到滿足的內存訪問都會轉向內存。
除RAM外還會有ROM(Read Only Memory)非易失性隨機存取存儲器也稱只讀存儲器,內容存儲后就不會再修改,且又快又便宜,常用于計算機的引導加載模塊。
EEPROM(Electrically Erasable PROM)和閃存(flash memory)同樣是非易失的,但是內容可以擦除和重寫,但是耗時要比RAM長。
閃存多數用于U盤中,擦除次數過多會出現磨損。
COMS是易失性的,常用于保持計算機當前時間日期。
磁盤
磁盤的隨機訪問數據時間比RAM慢了三個數量級,其原因是其構造。
磁盤是一類機械裝置,內部會有多個金屬盤片告訴旋轉,利用磁頭進行讀寫,很像老式唱片機……
固態硬盤(SSD Solid State Disk)不屬于磁盤,其數據存儲于閃存之中,與U盤相似,讀寫速度要比磁盤快,但是因擦寫次數有限壽命不比磁盤,同樣容量的固態造價也比磁盤高。
更多有待更新