操作系統
操作系統也是一門非常重要的知識,在面試中也是問的非常多。對於操作系統,要學的也太多太多了,例如:
啥是進程,啥是線程,他們的本質區別?我們運行一個程序時,數據放在哪裏?代碼放在哪裏?咋就還要分堆和棧?線程切換時是上下文是啥意思?
虛擬地址是什麼鬼東西?線程需要那麼多種狀態幹啥子?什麼是樂觀鎖、悲觀鎖?死鎖是怎麼造成的?解決死鎖的策略有哪些?等等
對於操作系統,我總結了下面一些比較核心,面試相對容易被考到的。
1、進程的通信方式
2、進程地址空間分段
3、內存管理,包括:虛擬內存(重點)、分頁、分段、分頁系統地址映射、內存置換算法(重點)。
4、死鎖的處理策略(死鎖預防、死鎖檢測與恢復、死鎖避免)
5、進程調度算法
6、磁盤尋道算法
上面說的這些,我認爲是比較重要的,如果你沒學過,我相信學了之後,你可以學到很多東西,知識點只是其中之一。
推薦書籍:我看過的書籍是《操作系統之哲學原理》,不過大佬們都推薦《深入理解計算機操作系統(原書第三版)》,我看過目錄,感覺還不錯,這裏也推薦這一本。不過對於零基礎的,我建議可以先看一本專門給小白看的書:《程序是如何跑起來的》。
0人點贊