怎樣深入學習作業系統?

只是個笨蛋


操作系統的知識體系灰常龐大,以下是我梳理的主要的知識點,希望對你有用。

  • 1、操作系統理論(重點)

> 站在馮諾依曼角度,理解操作系統定位

> 站在管理角度,理解操作系統[先描述再組織]

> 站在應用者的角度,理解操作系統

> 站在操作系統角度,理解系統調用接口

> 站在操作系統角度,理解操作系統外殼程序定位與作用(Linux shell)

> 對比系統調用,理解庫函數

  • 2、進程基本概念(重點)

> 進程概念(PCB[task_struct])

> 進程和程序有什麼區別

> 進程標識,進程間關係

> 進程狀態

> 進程優先級

> 進程創建

> 進程等待

> 進程程序替換

> 進程終止

> 進程地址空間

  • 3、進程間通信

> 為什麼要通信(重點)

> 怎麼通信,通信本質(重點

> 如何通信[管道,消息隊列,信號量,共享內存]

> 各自特點是什麼

> 各自的應用場景是什麼

  • 4、進程與文件(重點)

> 進程打開文件的本質

> 文件描述符的本質

> 文件描述符與C FILE*的關係,理解系統調用與庫函數

> 站在系統角度,常見的文件操作接口的使用

> 文件描述符重定向的本質與操作

> 理解文件系統中inode的概念

> 理解軟硬鏈接及其區別

> 理解動態與靜態庫

  • 5、進程與信號

> 什麼是進程信號

> 進程pending信號,block信號,handler信號的本質

> 信號產生方式有哪些

> 信號處理的方式有哪些

> 捕捉信號的流程

> 信號常見的操作有哪些

> 常見的信號有哪些,各自有哪些作用

  • 6、進程與線程(重點)

> 站在操作系統管理角度,理解什麼是線程

> 站在進程地址空間角度,理解什麼是線程

> 站在執行流角度,理解什麼是線程

> 如何理解線程是進程內部的一個執行分支

> 進程與線程有什麼區別

> Linux下線程有什麼特點

> Linux下,pthread庫如何控制線程

> 如何分離線程,為何要分離

> 什麼叫做臨界區,臨界資源,原子性

> 什麼叫做互斥與同步,為什麼要引入互斥與同步機制

> 死鎖以及死鎖產生的4個必要條件

> 如何避免死鎖

> 生產者消費者模型的理解

> 讀者寫著模型的理解

> 互斥量,條件變量,信號量,讀寫鎖,自旋鎖

  • 7、進程關係

> 作業進程組和會話

> 控制作業

> 守護進程(重點)




分享到:


相關文章: