<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
核心部分: CPU、記憶體
現代 CPU 為了提升執行效率,減少 CPU 與記憶體的互動(互動影響 CPU 效率),一般在 CPU上整合了多級快取架構,常見的為三級快取結構
此機器的三級快取架構如下圖:L1 Cache又分為兩種,指令儲存單元(存指令),和邏輯儲存單元(存邏輯)。理論上一臺機器可以有多個 CPU,由插槽決定,一個 CPU 又有多核,一個核又可以由多個邏輯處理器。
暫存器是 CPU 內部元件,讀寫速度非常快。 CPU 讀取資料只會從暫存器中去取,每個 CPU 都有一個獨有的暫存器,其他 CPU 無法存取。採用暫存器,可以減少 CPU 存取記憶體的次數,從而提高了 CPU 的工作速度。
越靠近 CPU 讀取速度越快,摩爾定律中,CPU 以每18個月翻一番的速度在發展,而記憶體和硬碟的發展速度遠遠跟不上。為了解決 CPU 運算速度和 IO 速度不匹配的問題,CPU 開始被內建了少量的快取記憶體 Lx Cache(CPU空間有限,儲存元件大小受限)。
- 記憶體儲存空間大小: 記憶體 > L3 Cache > L2 Cache > L1 Cache > 暫存器
- 記憶體讀取速度快慢: 暫存器 > L1 Cache > L2 Cache > L3 Cache > 記憶體
- 快取是由最小的儲存區塊--- 快取行(CacheLine) 組成,快取行大小通常為64byte。我的機器L1的快取大小時512K,則由512 * 1024/64個快取行組成。
CPU讀取記憶體資料過程: CPU 僅能直接從暫存器中獲取資料。 假設資料 x = 0 在記憶體中,則它的取值過程如下:
判斷暫存器中是否存在
不存在則遍歷L1 Cache 看是否存在,不存在遍歷L2 Cache,L2 Cache 中沒有,遍歷L3 Cache。中間過程存在,則會把 Cache 行鎖住,拷貝到上一級,直至到暫存器。
Cache 中沒有則區記憶體中找,先通知記憶體控制器佔用匯流排頻寬,通知記憶體加鎖,發起記憶體讀請求,等待迴應,迴應資料拷貝到L3 Cache。 注意:整個過程加鎖直至到CPU才會解開
區域性性原理:在CPU存取儲存裝置時,無論是存取資料還是存取指令,都趨於聚集在一片連續的區域中。
這種區域性性原理又有兩種:
空間區域性性的例子: 一個很大的二維陣列,累加求和一行一行加會比一列一列累加快很多。在CPU 在記憶體中讀取資料時會將附件的資料都讀進去。
CPU被劃分為 4 個執行級別:
Linux 和 Windows 都只用到了兩個級別:ring0、ring3,作業系統內部內部程式指令通常執行在 ring0 級別,作業系統以外的第三方程式執行在 ring3 級別,第三方程式如果要呼叫作業系統內部函數功能,由於執行安全級別不夠,必須切換CPU執行狀態,從 ring3 切換到 ring0, 然後執行系統函數,建立執行緒,執行緒阻塞喚醒是重型操作,因為CPU要切換執行狀態。
JVM 建立執行緒是 CPU 的流程:
- 第一步:CPU 從 ring3 切換 ring0 建立執行緒
- 第二步: 建立完畢,CPU從 ring0 切回 ring3
- 第三步: 執行緒執行JVM程式
- 第四步: 執行緒執行完畢,銷燬切回 ring0
- 第五步: 執行緒銷燬,切回 ring3
為了使程式執行安全隔離與穩定,作業系統有使用者空間
與核心空間
兩個概念。以 32位元作業系統4G大小的記憶體空間為例:
Linux 為核心程式碼和資料結構預留了幾個頁框,這些頁永遠不會被轉出到磁碟上(4GB記憶體空間,使用者程式可使用3GB)。如圖綠色部分的線性地址可由使用者程式碼和核心程式碼進行參照(即使用者空間)。黃色部分的線性地址只能由核心程式碼進行存取(即核心空間)。
程序與執行緒只能執行在使用者方式(usermode) 或 核心方式(kernelmode) 下。使用者程式執行在使用者方式下,而系統呼叫執行在核心方式下。
使用者方式下使用一般的堆疊(使用者空間的堆疊),核心方式下使用固定大小的堆疊(核心空間的堆疊,一般為一個記憶體頁的大小),即每個程序與執行緒其實有兩個堆疊,分別執行與使用者態與核心態。
CPU排程的基本單位執行緒,也劃分為:
執行緒都有兩個堆疊,一個在使用者空間,一個在核心空間。阻塞、建立、殺死執行緒將拋棄使用者空間的堆疊,轉移到核心空間,執行完畢後再轉移到使用者空間。
程序: 作業系統資源分配的最小單位,例如:啟動一個 Java 程式,作業系統就會建立一個Java 程序,程序中可以包含多個執行緒。
執行緒: 作業系統排程CPU的最小單元,執行緒都擁有各自的計數器、堆疊和區域性變數等屬性, 並且能夠存取共用的記憶體變數。CPU 在這些執行緒上高速切換,讓使用者感覺到這些執行緒在同時執行(並行)。
執行緒上下切換: 儲存上一個執行緒執行的中間狀態,執行下一個執行緒
到此這篇關於認識Java底層作業系統與並行基礎的文章就介紹到這了,更多相關Java底層作業系統內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45