1. 程式人生 > 實用技巧 >【0201】32個Java 面試必考點 作業系統與計算機網路

【0201】32個Java 面試必考點 作業系統與計算機網路

一、作業系統

在這裡插入圖片描述

作業系統知識對於服務問題的排查定位十分重要

二、程序與執行緒

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 親和性等