只是個笨蛋
操作系統的知識體系灰常龐大,以下是我梳理的主要的知識點,希望對你有用。
1、操作系統理論(重點)
> 站在馮諾依曼角度,理解操作系統定位
> 站在管理角度,理解操作系統[先描述再組織]
> 站在應用者的角度,理解操作系統
> 站在操作系統角度,理解系統調用接口
> 站在操作系統角度,理解操作系統外殼程序定位與作用(Linux shell)
> 對比系統調用,理解庫函數
2、進程基本概念(重點)
> 進程概念(PCB[task_struct])
> 進程和程序有什麼區別
> 進程標識,進程間關係
> 進程狀態
> 進程優先級
> 進程創建
> 進程等待
> 進程程序替換
> 進程終止
> 進程地址空間
3、進程間通信
> 為什麼要通信(重點)
> 怎麼通信,通信本質(重點)
> 如何通信[管道,消息隊列,信號量,共享內存]
> 各自特點是什麼
> 各自的應用場景是什麼
4、進程與文件(重點)
> 進程打開文件的本質
> 文件描述符的本質
> 文件描述符與C FILE*的關係,理解系統調用與庫函數
> 站在系統角度,常見的文件操作接口的使用
> 文件描述符重定向的本質與操作
> 理解文件系統中inode的概念
> 理解軟硬鏈接及其區別
> 理解動態與靜態庫
5、進程與信號
> 什麼是進程信號
> 進程pending信號,block信號,handler信號的本質
> 信號產生方式有哪些
> 信號處理的方式有哪些
> 捕捉信號的流程
> 信號常見的操作有哪些
> 常見的信號有哪些,各自有哪些作用
6、進程與線程(重點)
> 站在操作系統管理角度,理解什麼是線程
> 站在進程地址空間角度,理解什麼是線程
> 站在執行流角度,理解什麼是線程
> 如何理解線程是進程內部的一個執行分支
> 進程與線程有什麼區別
> Linux下線程有什麼特點
> Linux下,pthread庫如何控制線程
> 如何分離線程,為何要分離
> 什麼叫做臨界區,臨界資源,原子性
> 什麼叫做互斥與同步,為什麼要引入互斥與同步機制
> 死鎖以及死鎖產生的4個必要條件
> 如何避免死鎖
> 生產者消費者模型的理解
> 讀者寫著模型的理解
> 互斥量,條件變量,信號量,讀寫鎖,自旋鎖
7、進程關係
> 作業進程組和會話
> 控制作業
> 守護進程(重點)