【0201】32個Java 面試必考點 作業系統與計算機網路
阿新 • • 發佈:2020-10-12
一、作業系統
作業系統知識對於服務問題的排查定位十分重要
二、程序與執行緒
1、首先需要掌握程序與執行緒的區別和聯絡:
A) 程序是系統資源分配的最小單位,執行緒是程式執行的最小單位;
B) 程序使用獨立的資料空間,而執行緒共享程序的資料空間。
2、執行緒排程:如時間片輪轉排程、先來先服務排程、優先順序排程、多級反饋佇列排程以及高響應比優先排程。
3、執行緒切換的步驟:執行緒的上下文切換,明白執行緒切換的代價。
4、程序間通訊(IPC) 6 種程序通訊方式的原理與適用場景。例如,程序間資料共享的場景可以使用共享記憶體;程序間資料交換的場景可以使用 Unix Socket 或者訊息佇列。
5、協程部分:瞭解協程更輕量化,是在使用者態進行排程,切換的代價比執行緒上下文切換要低很多。瞭解 Java 的第三方協程框架,例如 Kilim、Quasar 等。
三、Linux 常用命令
1、 學習 AWK、top、netstat、grep 等高頻使用的工具。
2、記憶體分頁管理與Swap機制、任務佇列與CPU Load等
3、記憶體屏障、指令亂序、分支預測、NUMA 與 CPU 親和性等